:root{font-family:Calibri,"Segoe UI",sans-serif;color:#102c4d;background:#f1f7fc;--nav:#09283f;--teal:#008ba3;--muted:#8193ad}*{box-sizing:border-box}body{margin:0;line-height:1.45}button,input,select,textarea{font:inherit}button,summary,a{touch-action:manipulation}button{background:var(--teal);color:white;border:0;padding:11px 18px;border-radius:9px;cursor:pointer;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s}button:hover{filter:brightness(.97);box-shadow:0 4px 12px #123e4414}button:disabled{opacity:.55;cursor:wait}button:focus-visible,summary:focus-visible{outline:3px solid #54cdd7;outline-offset:3px}input,select,textarea{display:block;width:100%;border:1px solid #d1ddea;border-radius:8px;background:white;padding:11px;color:#173753;margin-top:5px}input:focus,select:focus,textarea:focus{outline:2px solid #8bd5df;outline-offset:1px}input[type=checkbox]{width:auto;display:inline-block;margin:0 8px}label{display:block;font-size:14px;margin-bottom:14px}textarea{min-height:110px}h1,h2{color:#102c4d;letter-spacing:-.4px}h1{font-size:28px}h2{font-size:20px;margin:0 0 18px}.ui-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}aside{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(160deg,#09283f,#0b2942);color:white;padding:28px 10px 18px;display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;scrollbar-color:#29465c transparent}.rail-brand{display:flex;align-items:center;gap:9px;padding:0 10px 26px}.rail-brand h2{font-size:20px;letter-spacing:-.5px;color:white;white-space:nowrap;margin:0}.rail-brand img{object-fit:contain}.brand-mark{width:45px;height:45px;background:url('/brand.png') center/contain no-repeat;color:transparent}nav{display:grid;gap:3px;flex:1;align-content:start;margin:0 0 28px}nav button,.navgroup summary,#navSettings button{display:flex;align-items:center;gap:17px;width:100%;padding:13px 15px;text-align:left;background:transparent;color:#e5eef7;font-size:16px;font-weight:400;box-shadow:none;border-radius:8px}nav .ui-icon,#navSettings .ui-icon{width:22px;height:22px;filter:brightness(0) invert(1);opacity:.94}nav button.active,nav button:hover,.navgroup[open] summary,#navSettings button:hover,#navSettings button.active{background:#00879d;color:white;filter:none}.navgroup summary{list-style:none;cursor:pointer}.navgroup summary::-webkit-details-marker{display:none}.navgroup summary:after{content:'⌄';margin-left:auto;color:#c0d3e5}.navgroup[open] summary:after{content:'⌃'}.navgroup button{display:block;padding:10px 10px 10px 54px;font-size:14px;color:#bad0e2}#navSettings{border-top:1px solid #2c465d;padding-top:12px}.rail-profile{display:flex;gap:14px;align-items:center;padding:16px 12px 6px}.rail-profile>span{width:42px;height:42px;border-radius:50%;background:#bfd0e5;color:#14334f;display:grid;place-items:center;font-size:20px}.rail-profile strong{font-weight:400}.rail-profile small{display:block;color:#88a2b9;font-size:11px}#logout{background:transparent;color:#8eabc3;font-size:12px;margin-top:6px;padding:6px;text-align:right}main{margin-left:250px;padding:23px 30px 26px;max-width:1900px;background:radial-gradient(at 95% 0%,#eaf8fb,transparent 35%);min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:45px;margin-bottom:12px}header h1{font-size:23px;margin:0}.header-actions{display:flex;align-items:center;gap:22px;margin-left:auto}.header-actions>span{font-size:14px}#newDocument{padding:13px 24px;box-shadow:0 4px 8px #008ba320}body:has(.dashboard-hero) header{float:right;margin-bottom:0}body:has(.dashboard-hero) header h1{display:none}body:has(.dashboard-hero) .dashboard-hero{padding-right:280px}.card{background:white;border:1px solid #e5eef8;border-radius:15px;padding:24px;margin-bottom:20px;box-shadow:0 5px 20px #1a4e7810}.card h2{display:flex;align-items:center;gap:12px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.notice{background:#e7f4f7;color:#3a667b;padding:12px 16px;border-radius:8px;font-size:13px}.secondary{background:#e7eff7;color:#284c6c}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white;font-size:14px}td,th{padding:14px 10px;border-bottom:1px solid #eaf0f6;text-align:left;vertical-align:middle}th{background:#f5f8fc;color:#617998;font-size:12px;font-weight:400;white-space:nowrap}tbody tr:hover{background:#f8fbfe}pre{white-space:pre-wrap;word-break:break-word}.rowline{display:grid;grid-template-columns:3fr 1fr 1fr 1fr;gap:10px}.muted{color:var(--muted);font-size:13px}#message{position:fixed;bottom:18px;right:18px;max-width:min(550px,90vw);background:#123651;color:white;padding:15px;border-radius:10px;box-shadow:0 5px 18px #0c2f422a;z-index:10}#message:empty{display:none}[hidden]{display:none!important}.dashboard-hero{padding:4px 0 25px}.dashboard-hero h1{font-size:36px;line-height:1.1;margin:0 0 10px;font-weight:700}.dashboard-hero p{margin:0;color:var(--muted);font-size:19px}.metrics{clear:both;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:20px}.metric{display:flex;align-items:flex-start;gap:14px;text-align:left;min-width:0;padding:21px 16px;background:white;color:#102c4d;border-radius:14px;border:1px solid #e9f0f8;box-shadow:0 5px 15px #123e4410;font-weight:400;min-height:139px}.metric:hover{background:#fbfdff;transform:translateY(-2px)}.metric-icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:#e2f3ff}.metric-icon .ui-icon{width:25px;height:25px}.metric p{font-size:15px;margin:0 0 6px}.metric strong{font-size:clamp(23px,2.2vw,34px);letter-spacing:-.8px;line-height:1.1;display:block;white-space:nowrap}.metric small{display:block;color:var(--muted);font-size:12px;margin-top:11px}.metric.coral strong{color:#f16b60}.coral .metric-icon{background:#ffe4e3}.green .metric-icon{background:#e0f8f0}.gold .metric-icon{background:#fff1d9}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(300px,1fr);gap:18px}.dashboard-grid>.card{min-width:0;margin:0;padding:22px 20px}.revenue-chart{display:block;width:100%;height:245px;object-fit:fill}.chart-notice{font-size:11px;color:var(--muted);padding-top:4px}.chart-notice summary{cursor:pointer}.chart-notice p{font-size:12px}.event-row{display:flex;width:100%;text-align:left;background:#f8fbff;color:#102c4d;border:1px solid #e7eef7;border-radius:10px;padding:14px 12px;margin:10px 0;font-weight:400;gap:14px}.event-row time{border-right:1px solid #dfe8f1;padding-right:14px;align-self:stretch;display:flex;align-items:center;font-size:16px;white-space:nowrap}.event-row strong{font-size:15px}.event-row small{display:block;color:#8093ad;font-size:12px;margin-top:5px}.text-button{background:transparent;color:#007e98;padding:6px 0;box-shadow:none;text-align:left;font-weight:500}.text-button:hover{background:transparent;box-shadow:none;color:#045b78}.dashboard-grid table{font-size:13px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:104px;border-radius:12px;font-size:15px;font-weight:600;padding:18px 8px}.quick-tile .ui-icon{width:30px;height:30px}.quick-tile.blue{background:#e1f2ff;color:#0068a9}.quick-tile.mint{background:#dff6f3;color:#007e88}.quick-tile.gold{background:#fff1d9;color:#a76900}.quick-tile.purple{background:#eeebff;color:#4e3ca8}.dashboard-updated{font-size:11px;color:var(--muted);margin:15px 0 0}.empty-state{padding:42px 8px;color:var(--muted)}.status{display:inline-block;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;white-space:nowrap}.status-good,.op-open{background:#d5f4e9;color:#067d5b}.status-warn,.op-soon{background:#ffedc3;color:#a26a00}.op-overdue{background:#ffe1de;color:#d44941}.status-neutral,.op-unknown,.op-settled{background:#edf2f8;color:#5a7390}.mail-body{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.5}.login{max-width:470px;margin:9vh auto;padding:34px}.login h1{margin:17px 0 5px}.login p{color:var(--muted)}.login button{width:100%;margin-top:8px}
@media(min-width:1600px){.metric{padding:25px 22px}.dashboard-grid>.card{padding:26px}.revenue-chart{height:270px}}
@media(max-width:1250px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1fr)}body:has(.dashboard-hero) header{float:none}body:has(.dashboard-hero) .dashboard-hero{padding-right:0}.metric strong{font-size:30px}}
@media(max-width:850px){aside{width:210px;padding:20px 7px}.rail-brand h2{font-size:16px}.rail-brand img{width:34px;height:34px}nav button,.navgroup summary,#navSettings button{font-size:14px;padding:11px 12px;gap:12px}main{margin-left:210px;padding:20px 18px}.header-actions{flex-wrap:wrap;gap:10px}.dashboard-hero h1{font-size:29px}.metrics{gap:12px}.metric{padding:15px 12px;gap:8px}.metric-icon{width:32px;height:32px;flex-basis:32px}.metric strong{font-size:26px}.metric p{font-size:13px}.grid{grid-template-columns:1fr}.rowline{grid-template-columns:1fr 1fr}}
@media(max-width:600px){aside{position:relative;width:100%;padding:14px}.rail-brand{padding-bottom:12px}nav{grid-template-columns:1fr 1fr;margin-bottom:10px}.rail-profile,#navSettings{display:none}#logout{text-align:left}main{margin-left:0;padding:18px}.header-actions>span{font-size:12px}.metric{flex-direction:column}.metric strong{font-size:25px}.dashboard-grid>.card{padding:18px 12px}.revenue-chart{height:210px}.login{margin:5vh 14px}.card{padding:20px}}

.project-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.project-totals .card{margin:0}.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.project-gallery .card{display:flex;flex-direction:column;gap:8px;margin:0}.project-gallery img{width:100%;height:170px;object-fit:contain;background:#edf4fa;border-radius:10px}.project-full{display:block;max-width:100%;max-height:75vh;object-fit:contain}
