:root{--ink:#193d43;--muted:#718286;--teal:#28636b;--teal-dark:#173d44;--mint:#eaf2ef;--paper:#fff;--line:#e3eae8;--bg:#f4f7f6;--gold:#c18b3b;--red:#b84a44;--shadow:0 12px 30px rgba(23,61,68,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:14px}h1,h2,h3,strong{font-family:Manrope,'DM Sans',sans-serif}h1{font-size:30px;letter-spacing:-.7px;margin:4px 0 8px}h2{font-size:18px;margin:0 0 15px}h3{font-size:15px;margin:18px 0 10px}p{line-height:1.55}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:var(--teal-dark);color:#fff;padding:27px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font:800 12px Manrope;letter-spacing:1.3px}.brand small{display:block;font:500 9px 'DM Sans';opacity:.63;letter-spacing:2px;margin-top:4px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#dfece5;color:var(--teal-dark);font:800 13px Manrope}.sidebar nav{display:grid;gap:6px;margin-top:48px}.sidebar nav a{display:flex;align-items:center;gap:11px;color:#c4d6d3;text-decoration:none;padding:12px 13px;border-radius:10px;font-size:13px;transition:.18s}.sidebar nav a:hover,.sidebar nav a.active{color:white;background:rgba(255,255,255,.12)}.nav-dot{width:7px;height:7px;border:1.5px solid currentColor;border-radius:3px;opacity:.8}.side-note{margin-top:auto;color:#d9e6e0;font-size:11px;line-height:1.8;padding:13px;border-top:1px solid #45676a}.side-note span{opacity:.55}.main{min-width:0}.topbar{height:80px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:4;backdrop-filter:blur(12px)}.topbar>div:first-child small{display:block;color:#8d9b9a;font-size:9px;letter-spacing:1.6px;margin-bottom:4px}.topbar>div:first-child strong{font-size:15px}.userbox{display:flex;align-items:center;gap:10px}.userbox>div strong,.userbox>div small{display:block}.userbox>div strong{font-size:12px}.userbox>div small{color:var(--muted);font-size:10px;margin-top:3px}.avatar{display:grid;place-items:center;background:#e4efeb;color:var(--teal);width:35px;height:35px;border-radius:50%;font-weight:700}.userbox form{margin-left:12px}.link-button{border:0;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:12px}.content{max-width:1440px;margin:auto;padding:34px 38px 55px}.footer{color:#9aa7a5;font-size:10px;padding:12px 38px 26px}.eyebrow{color:#859897;letter-spacing:1.7px;font-weight:700;font-size:9px;margin:0 0 8px}.muted{color:var(--muted)}.tiny{font-size:11px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 26px}.page-title>div>p:last-child{margin:7px 0 0}.back{display:inline-block;text-decoration:none;color:var(--teal);font-size:12px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;text-decoration:none;border-radius:9px;padding:10px 15px;font:600 12px 'DM Sans';cursor:pointer;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--teal);color:#fff;box-shadow:0 5px 13px #28636b26}.btn.secondary{background:#eef4f1;border-color:#e0e9e5;color:var(--teal-dark)}.btn.small{padding:6px 9px;font-size:10px;background:#f1f5f3;color:var(--teal)}button:disabled{opacity:.65;cursor:wait}.button-row{display:flex;gap:9px;flex-wrap:wrap}.panel{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}.table-panel{padding:0;overflow:hidden}.table-panel h2{padding:21px 22px 0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-head h2{margin:0}.panel-head a{color:var(--teal);font-size:12px;text-decoration:none}.welcome{border-radius:18px;background:linear-gradient(120deg,#e9f2ef,#f4f8f6);padding:29px 34px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.welcome h1{font-size:28px}.welcome p:not(.eyebrow){margin:0;color:#6c8282}.welcome-icon{width:66px;height:66px;border-radius:21px;background:#fff9;color:var(--teal);display:grid;place-items:center;font-size:30px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:18px 0}.metric{background:white;border:1px solid var(--line);border-radius:13px;padding:18px}.metric span,.metric small{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;font-size:22px;margin:9px 0 5px;letter-spacing:-.5px}.metric small{font-size:9px}.two-col{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:start}.two-col .panel{margin:0 0 18px}.list{display:grid}.list-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #edf1ef;color:var(--ink);text-decoration:none}.list-row:last-child{border:0}.list-row span:first-child strong,.list-row span:first-child small{display:block}.list-row small{font-size:10px;color:var(--muted);margin-top:4px}.list-row>span:last-child{font-size:11px;text-align:right}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick-grid a{border:1px solid var(--line);border-radius:11px;text-decoration:none;padding:12px;color:var(--teal);font-size:17px}.quick-grid a span{display:block;color:var(--ink);font-size:11px;margin-top:8px}.callout{background:#eef5f2;border:1px solid #dbe8e2;border-radius:11px;padding:15px 17px;margin:18px 0;color:#466466}.callout p{font-size:12px;margin:7px 0}.callout a{color:var(--teal);text-decoration:none;font-size:11px;font-weight:700}.callout.warning{background:#fff8e9;border-color:#f1e5c8;color:#775b30}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 17px;margin:16px 0}.field{display:block;font-size:11px;color:#52696b;font-weight:600}.field i{color:var(--red);font-style:normal}.field input,.field textarea,.field select{display:block;width:100%;margin-top:7px;border:1px solid #dce5e2;background:#fff;border-radius:8px;padding:10px 11px;color:var(--ink);font:13px 'DM Sans';outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:#75a3a1;box-shadow:0 0 0 3px #28636b12}.field textarea{min-height:78px;resize:vertical}.field input[type=color]{height:43px;padding:4px}.form-panel{padding:26px}.table-scroll{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{text-align:left;background:#f7f9f8;padding:13px 15px;color:#718286;font-size:10px;font-weight:600;border-bottom:1px solid var(--line)}td{padding:13px 15px;border-bottom:1px solid #edf1ef;color:#385256}td small{display:block;color:#91a09e;font-size:10px;margin-top:4px}td .btn{margin:2px 4px 2px 0}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;padding:25px;color:#8a9998;font-size:12px}.badge{display:inline-block;padding:5px 8px;border-radius:20px;background:#eff3f1;color:#637576;font-size:9px;white-space:nowrap}.badge.active,.badge.doing,.badge.accepted,.badge.paid,.badge.completed,.badge.done{background:#e6f3eb;color:#28734f}.badge.todo,.badge.planned,.badge.issued{background:#eaf1f4;color:#446a76}.badge.blocked,.badge.overdue,.badge.rejected,.badge.cancelled{background:#fff0ee;color:#ad5149}.badge.partially_paid,.badge.on_hold,.badge.archived{background:#fff5df;color:#98742c}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:.2s}.project-card:hover{transform:translateY(-2px);border-color:#b4cfca}.project-card h2{margin:5px 0;font-size:17px}.project-card .muted{font-size:11px}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.project-icon{display:grid;place-items:center;background:#edf5f1;color:var(--teal);width:32px;height:32px;border-radius:10px}.progress{height:5px;border-radius:9px;background:#edf1ef;margin:16px 0 10px;overflow:hidden}.progress span{display:block;height:100%;background:#6c9c89;border-radius:9px}.card-foot{display:flex;justify-content:space-between;font-size:9px;color:#829290}.task{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf1ef}.task-check{width:22px;height:22px;border:1px solid #c9d7d3;border-radius:7px;display:grid;place-items:center;color:#367255;font-weight:bold}.task-body{flex:1;min-width:0}.task-body strong,.task-body small{display:block}.task-body strong{font-size:12px}.task-body small{font-size:10px;color:var(--muted);margin-top:4px;white-space:normal}.task select{display:block;max-width:120px;margin-top:5px;padding:4px;border:1px solid var(--line);border-radius:6px;font-size:10px}.finance-card{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.finance-card strong{font-size:14px}.locked{border-radius:10px;background:#f4f6f6;padding:15px;color:#687879;font-size:12px}.totals{display:flex;justify-content:flex-end;gap:25px;padding:18px 0}.totals span{display:grid;gap:5px;color:var(--muted);font-size:10px}.totals strong{color:var(--ink);font-size:13px}.line-editor{margin:14px 0 20px}.line-head,.line-row{display:grid;grid-template-columns:2.5fr .8fr .8fr 1fr .65fr 30px;gap:7px;align-items:center}.line-head{padding:8px 4px;color:#849391;font-size:9px}.line-row{margin-bottom:7px}.line-row input,.source-line input[type=number]{min-width:0;width:100%;border:1px solid #dce5e2;border-radius:7px;padding:9px;font:11px 'DM Sans'}.remove-line{border:0;background:#fbefee;color:#b7534b;border-radius:7px;height:32px;font-size:18px;cursor:pointer}.source-lines{margin:12px 0}.source-line{display:grid;grid-template-columns:1fr 100px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.source-line span{font-size:11px}.source-line small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.inline-form{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.inline-form .field{flex:1;min-width:125px}.inline-form .btn{height:38px}.subrow td{background:#fbfcfc;padding-top:6px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0 20px}.permission{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:11px;font-size:11px;color:#465e60}.permission input{accent-color:var(--teal);margin-top:2px}.permission span{line-height:1.4}.permission small{display:block;color:#a17736;font-size:9px;margin-top:4px}.template-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:12px 0 20px}.template-choice{cursor:pointer}.template-choice input{accent-color:var(--teal)}.paper-sample{height:100px;border:1px solid var(--line);background:#f9fbfa;border-radius:7px;margin:7px 0;padding:12px;display:flex;flex-direction:column;gap:10px}.paper-sample span{height:5px;background:var(--teal);width:70%}.paper-sample b{font-size:10px}.paper-sample i{display:block;height:30px;border-top:1px solid #dce5e2;border-bottom:1px solid #dce5e2}.paper-sample.modern{border-top:8px solid var(--teal);}.paper-sample.minimal span{height:2px;width:100%}.paper-sample.compact{gap:6px;padding:8px}.template-choice>strong{font-size:10px}.chart-bars{padding:20px;background:#fbfcfc;border-radius:10px;margin:20px 0}.chart-row{display:grid;grid-template-columns:90px 1fr 130px;gap:12px;align-items:center;margin:11px 0;font-size:10px}.chart-row strong{text-align:right;font-size:10px}.chart-track{height:9px;border-radius:9px;background:#edf1ef}.chart-track i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#76a390,#28636b)}.notice{max-width:700px;margin:15px auto;padding:12px 16px;border-radius:9px;font-size:12px}.notice.success{background:#e8f4eb;color:#246e4b}.notice.error{background:#fff0ed;color:#a8423c}.auth-page{min-height:100vh;background:radial-gradient(circle at 18% 10%,#edf4f1,#f7f8f6 50%);display:grid;place-items:center;padding:24px}.auth-card{background:#fff;border:1px solid var(--line);box-shadow:0 20px 60px #173d4412;border-radius:18px;padding:36px;max-width:520px;width:100%}.auth-brand{color:var(--teal-dark);margin-bottom:32px}.auth-card h1{font-size:25px}.auth-card form{margin:22px 0}.auth-card .field{margin-bottom:14px}.auth-card .btn{width:100%;margin-top:8px}.auth-card .tiny{margin-top:28px}.auth-page>.notice{position:fixed;top:15px}.footer,.tiny{line-height:1.5}details{font-size:11px;margin-top:12px}summary{cursor:pointer;color:var(--teal);font-weight:600}
@media(max-width:1100px){.app-shell{grid-template-columns:205px 1fr}.content{padding:28px 24px}.topbar{padding:0 24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.app-shell{display:block}.sidebar{height:auto;position:static;padding:13px 14px 9px}.brand{font-size:10px}.brand-mark{width:34px;height:34px}.sidebar nav{display:flex;overflow:auto;gap:4px;margin-top:12px;padding-bottom:3px}.sidebar nav a{font-size:10px;padding:9px 10px;white-space:nowrap}.side-note{display:none}.topbar{height:62px;padding:0 16px;position:static}.userbox>div{display:none}.userbox form{margin-left:3px}.content{padding:22px 14px 35px}.footer{padding:5px 14px 20px}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:25px}.metric-grid{gap:9px}.metric{padding:13px}.metric strong{font-size:17px}.welcome{padding:20px}.welcome h1{font-size:23px}.project-grid{grid-template-columns:1fr}.panel{padding:18px}.table-panel{padding:0}.form-grid{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.template-grid{grid-template-columns:repeat(2,1fr)}.line-head{display:none}.line-row{grid-template-columns:1fr 1fr 1fr;gap:6px;padding:10px;border:1px solid var(--line);border-radius:9px}.line-row input:first-child{grid-column:span 3}.remove-line{grid-column:3;grid-row:2}.chart-row{grid-template-columns:68px 1fr}.chart-row strong{grid-column:2;text-align:left}.totals{justify-content:space-between;gap:8px}.inline-form{align-items:stretch}.inline-form .field{min-width:calc(50% - 9px)}.button-row{width:100%}.button-row .btn{flex:1;font-size:10px;padding:10px 8px}.auth-card{padding:25px}.task{align-items:flex-start}.task>div:last-child{max-width:120px}.source-line{grid-template-columns:1fr 75px}}

/* Quick client creation from quote and invoice forms */
.client-select-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:end;min-width:0}
.client-select-wrap .field{min-width:0;margin:0}
.quick-client-open{white-space:nowrap;min-height:40px}
.quick-client-result{grid-column:1/-1;color:#28734f;font-size:11px;min-height:1em}
.modal-dialog{width:min(760px,calc(100% - 28px));max-width:760px;max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:16px;padding:24px;color:var(--ink);box-shadow:0 24px 80px #102f3240}
.modal-dialog::backdrop{background:#102f32a6;backdrop-filter:blur(3px)}
.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.modal-heading h2{margin:0 0 5px;font-size:21px}
.modal-heading .muted{margin:0;font-size:12px}
.modal-x{border:0;background:#eef4f1;color:var(--teal-dark);border-radius:50%;width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer;flex:none}
.quick-client-form{max-height:calc(100dvh - 170px);overflow:auto;padding:0 4px 3px 0}
.quick-client-form .form-grid{margin-top:14px}
.quick-client-feedback{min-height:1.3em;margin:0 0 8px;color:#617879;font-size:12px}
.quick-client-feedback.error{color:#ad5149}
.modal-actions{justify-content:flex-end;margin:0}
@media(max-width:700px){.client-select-wrap{grid-template-columns:1fr}.quick-client-open{justify-self:start}.quick-client-result{grid-column:1}.modal-dialog{padding:18px}.modal-heading h2{font-size:18px}.quick-client-form{max-height:calc(100dvh - 145px)}}
