@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#151a17;--muted:#68736b;--line:#dfe7df;--paper:#f7f8f4;--panel:#fff;--lime:#d8ff4e;--forest:#173d2b;--orange:#fd9b63;--red:#f06464}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:Manrope,sans-serif;color:var(--ink);display:flex;min-height:100vh}aside{width:245px;background:var(--forest);color:#ecf4ea;padding:26px 16px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{font-size:17px;font-weight:800;letter-spacing:.04em;display:flex;gap:10px;align-items:center;padding:0 9px 34px}.brand span{width:32px;height:32px;border-radius:9px;color:var(--forest);display:grid;place-items:center;background:var(--lime);font-size:19px}.brand small{display:block;font:10px 'DM Mono';letter-spacing:.17em;color:#a4b5a8;margin-top:2px}nav{display:grid;gap:4px}.nav-item{cursor:pointer;border:0;color:#bdd0c1;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;font:600 13px Manrope}.nav-item:hover,.nav-item.active{background:#28533d;color:#fff}.sidebar-foot{margin-top:auto;color:#a4b5a8;font-size:11px;padding:12px;line-height:1.7}.sidebar-foot strong{color:var(--lime)}main{margin-left:245px;width:calc(100% - 245px);padding:34px 46px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.eyebrow{font:10px 'DM Mono';letter-spacing:.14em;color:#4c7660;margin:0 0 7px}h1{font-size:30px;letter-spacing:-1.2px;margin:0 0 6px}header p:not(.eyebrow){font-size:13px;color:var(--muted);margin:0}.header-actions{display:flex;gap:12px;align-items:center;font:11px 'DM Mono';color:var(--muted)}button{font-family:inherit;cursor:pointer}.primary{border:0;background:var(--forest);color:white;border-radius:8px;padding:10px 14px;font-size:12px;font-weight:700}.primary:hover{background:#28533d}.ghost,.icon{border:0;background:transparent;color:var(--muted)}.grid{display:grid;gap:16px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:17px}.metric-label,.label{font:10px 'DM Mono';text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.metric-value{font-size:27px;font-weight:800;letter-spacing:-1px;margin:7px 0 2px}.metric-hint{font-size:11px;color:#5f7869}.metric-hint.warn{color:#b66335}.split{grid-template-columns:1.25fr .75fr}.card h3{font-size:14px;margin:0 0 15px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-head button{font-size:11px}.progress{height:7px;background:#edf0ea;border-radius:6px;overflow:hidden;margin:10px 0 7px}.progress>i{display:block;height:100%;background:var(--lime);border-radius:5px}.list{display:grid;gap:0}.row{display:grid;grid-template-columns:1.5fr .8fr .9fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.row:first-child{border-top:0}.row small{display:block;color:var(--muted);margin-top:2px}.badge{font:10px 'DM Mono';border-radius:99px;padding:4px 7px;display:inline-block;background:#edf4ec;color:#477456}.badge.lead,.badge.proposal{background:#fff3db;color:#9a662d}.badge.lost,.badge.overdue{background:#ffe8e8;color:#b04f4f}.badge.active{background:#e8f7d2;color:#507314}.task{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);font-size:12px}.task input{accent-color:var(--forest);margin-top:3px}.task.done span{text-decoration:line-through;color:var(--muted)}.empty{color:var(--muted);font-size:12px;padding:18px 0}.toolbar{display:flex;gap:9px;margin-bottom:17px}.toolbar .primary{margin-left:auto}.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.table th{text-align:left;padding:12px 14px;background:#f3f6f1;font:10px 'DM Mono';color:var(--muted);letter-spacing:.06em}.table td{padding:13px 14px;border-top:1px solid var(--line);font-size:12px;vertical-align:middle}.table td small{display:block;color:var(--muted)}.link-btn{border:0;background:transparent;color:#346b4a;font-size:11px;padding:0}.kpi{grid-template-columns:repeat(3,1fr)}.goal{margin-bottom:12px}.goal-top{display:flex;justify-content:space-between;font-size:12px}.goal .progress>i{background:var(--forest)}dialog{border:0;border-radius:14px;padding:0;width:min(540px,calc(100vw - 30px));box-shadow:0 18px 70px #19251a44}dialog::backdrop{background:#19312666}form{padding:21px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modal-head h2{font-size:17px;margin:0}.icon{font-size:25px}.field{margin:10px 0}.field label{display:block;font:10px 'DM Mono';color:var(--muted);margin-bottom:5px;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px;font:13px Manrope;background:#fcfdfb}.field textarea{min-height:70px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px;align-items:center}.danger{color:var(--red)}@media(max-width:850px){aside{width:60px;padding:18px 8px}.brand div,.sidebar-foot,.nav-item span{display:none}.brand{padding:0 6px 25px}.nav-item{font-size:18px;text-align:center}main{margin-left:60px;width:calc(100% - 60px);padding:25px 18px}.metrics,.split,.kpi{grid-template-columns:1fr 1fr}header{gap:16px;flex-direction:column}.row{grid-template-columns:1fr auto}.row>*:nth-child(2){display:none}.table{display:block;overflow-x:auto}}@media(max-width:520px){.metrics,.split,.kpi{grid-template-columns:1fr}.header-actions{width:100%;justify-content:space-between}}
/* Omicron visual system */
:root{--nav-line:#ffffff14}
nav{display:grid;gap:5px;overflow-y:auto;padding-right:2px}.nav-group{border-bottom:1px solid var(--nav-line);padding-bottom:5px}.nav-group-title{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#a4b5a8;padding:9px 11px 7px;text-align:left;font:700 10px 'DM Mono';letter-spacing:.08em;text-transform:uppercase}.nav-group-title b{font-size:12px;color:var(--lime)}.nav-group-items{display:none;gap:3px}.nav-group.expanded .nav-group-items{display:grid}
:root{--ink:#13201c;--muted:#6d7974;--line:#dce7df;--paper:#f5f7f3;--panel:#fff;--lime:#cbff3d;--forest:#102f24;--forest-2:#174535;--orange:#f6a56d;--red:#df5d5d}
body{background:radial-gradient(circle at 88% -10%,#e8f9bb 0,transparent 30%),var(--paper)}
aside{background:linear-gradient(180deg,#102f24 0%,#0a2018 100%);box-shadow:12px 0 34px #0c25150e}
.brand{letter-spacing:.09em}.brand span{border-radius:10px;box-shadow:0 7px 16px #caff3d35}.nav-item{transition:background .18s,color .18s,transform .18s}.nav-item:hover{transform:translateX(3px)}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#28543e,#204a36);box-shadow:inset 3px 0 var(--lime)}
main{max-width:1600px;padding:40px 52px}.eyebrow{color:#39795c;font-weight:500}h1{font-size:34px;letter-spacing:-1.6px}.header-actions{background:#ffffffa6;border:1px solid var(--line);border-radius:11px;padding:6px 7px 6px 13px;box-shadow:0 5px 18px #16342609}.primary{background:linear-gradient(135deg,#153d2d,#20513b);border-radius:9px;box-shadow:0 5px 12px #153d2d22;transition:transform .18s,box-shadow .18s}.primary:hover{background:#1b4935;transform:translateY(-1px);box-shadow:0 8px 18px #153d2d2c}
.card{border-radius:15px;border-color:#e0e9e2;box-shadow:0 7px 20px #142f2008}.metrics .card{position:relative;overflow:hidden}.metrics .card:after{content:"";position:absolute;width:82px;height:82px;border-radius:99px;background:#efffd2;right:-33px;top:-35px}.metric-value{font-size:29px}.metric-hint{position:relative;z-index:1}.progress{height:8px;background:#edf2ea}.progress>i{background:linear-gradient(90deg,#95d82d,var(--lime))}.card h3{letter-spacing:-.25px}.badge{font-weight:500;padding:5px 8px}.table{border-radius:15px;box-shadow:0 7px 20px #142f2008}.table th{background:#eff5ee}.table tr{transition:background .15s}.table tbody tr:hover{background:#f8fbf6}.table td{padding:15px 14px}.link-btn{font-weight:700}.toolbar{background:#ffffff9c;border:1px solid var(--line);padding:8px;border-radius:12px}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #cbff3d55;border-color:#8fbd31}
.badge.attention,.badge.renewal-due{background:#fff3db;color:#9a662d}.badge.set-date{background:#eef1ee;color:#637169}.badge.healthy{background:#e8f7d2;color:#507314}
body.login-page{position:relative;overflow:hidden;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 20%,#275f48 0,transparent 32%),radial-gradient(circle at 82% 80%,#253f32 0,transparent 34%),#091c15}.login-page:before,.login-page:after{content:"";position:fixed;border-radius:50%;filter:blur(1px);pointer-events:none}.login-page:before{width:480px;height:480px;right:-180px;top:-170px;background:#cbff3d12;border:1px solid #cbff3d1c}.login-page:after{width:310px;height:310px;left:-110px;bottom:-120px;background:#cbff3d0b;border:1px solid #cbff3d14}.login-card{position:relative;width:min(100%,450px);padding:42px;border:1px solid #ffffff22;border-radius:22px;background:#fffffff7;box-shadow:0 32px 100px #0008}.login-card .brand{padding:0;color:#102f24;margin-bottom:31px}.login-card .brand span{background:var(--lime)}.login-card h1{font-size:29px;letter-spacing:-1.2px;margin:0 0 9px}.login-card p{font-size:13px;line-height:1.6;color:#607168}.login-card label{display:grid;gap:8px;margin:28px 0 16px;font-size:12px;letter-spacing:.01em}.login-card input{padding:14px;border:1px solid #d6e3d8;border-radius:10px;font:inherit;transition:border-color .15s,box-shadow .15s}.login-card input:focus{outline:0;border-color:#8fbd31;box-shadow:0 0 0 4px #cbff3d45}.login-card button{width:100%;padding:13px}.form-error{color:#b42318;font-weight:700}.form-help{font-size:12px;color:var(--muted);line-height:1.5}.header-button{font-size:12px;font-weight:700;padding:9px 8px}.header-button:hover{color:var(--forest)}
.client-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.client-hero h2{margin:5px 0;font-size:24px;letter-spacing:-.8px}.client-hero p{font-size:12px;color:var(--muted);margin:5px 0;line-height:1.55}
@media(max-width:850px){body{display:block;padding-bottom:78px}aside{z-index:5;width:100%;height:64px;top:auto;bottom:0;right:0;left:0;padding:7px 8px;display:block;border-top:1px solid #ffffff20;box-shadow:0 -8px 24px #0a20182b}.brand,.sidebar-foot{display:none}nav{height:50px;display:flex;gap:3px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}nav::-webkit-scrollbar{display:none}.nav-item{min-width:46px;height:48px;padding:0;border-radius:10px;text-align:center;font-size:19px;scroll-snap-align:start}.nav-item:hover{transform:none}.nav-item.active{box-shadow:inset 0 -3px var(--lime);background:linear-gradient(180deg,#28543e,#204a36)}main{margin:0;width:100%;padding:24px 16px 4px;max-width:none}header{margin-bottom:20px}.header-actions{width:100%;justify-content:space-between;gap:6px;padding:5px 6px 5px 10px}.header-actions>span{font-size:10px;white-space:nowrap}.header-actions .primary,.header-actions .header-button{min-height:38px;padding:8px 10px}.toolbar{position:sticky;top:8px;z-index:3;box-shadow:0 7px 18px #142f2014}.toolbar .primary{min-height:40px}.table{border-radius:12px}.table th,.table td{white-space:nowrap}.client-hero{padding:16px}.row{gap:8px}.row .link-btn{min-height:34px;padding:6px 0}.metric-value{font-size:27px}}
@media(max-width:520px){main{padding:18px 12px 3px}h1{font-size:27px}.header-actions>span{display:none}.header-actions{justify-content:flex-end}.header-actions .primary{flex:1}.metrics,.split,.kpi{grid-template-columns:1fr;gap:12px}.card{padding:15px}.toolbar{margin:0 -1px 14px}.table{font-size:11px}.table th,.table td{padding:12px 11px}dialog{position:fixed;inset:auto 0 0;width:100%;max-width:none;max-height:88vh;margin:0;border-radius:18px 18px 0 0;overflow:auto}form{padding:18px}.modal-actions{position:sticky;bottom:-18px;background:#fff;padding:12px 0 1px}.modal-actions .primary,.modal-actions .ghost{min-height:42px}.client-hero h2{font-size:22px}}
/* Client Portal: intentionally separate from the authenticated OS shell. */
body.public-report-page{display:block;min-height:100vh;background:linear-gradient(135deg,#f5f8f1,#edf7d9);padding:32px 18px}
.public-report-shell{max-width:840px;width:100%;margin:0 auto;padding:0}
.public-report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.public-report-header .brand{padding:0;color:var(--forest)}.public-report-header .brand span{background:var(--lime)}
.public-report-content{display:grid;gap:16px}.public-report-intro,.public-report-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 10px 30px #1435250d}.public-report-intro{background:linear-gradient(135deg,#123b2b,#205841);color:#fff}.public-report-intro .eyebrow{color:var(--lime);margin-bottom:12px}.public-report-intro h1{margin:0;font-size:35px}.public-report-period{margin:8px 0 0;color:#d8e9df;font-size:14px}.public-report-card h2{font-size:16px;margin:0 0 12px;color:var(--forest)}.public-report-card p{white-space:pre-wrap;line-height:1.75;margin:0;color:#43544a;font-size:14px}.public-report-cta{background:#efffd2;border-color:#cce681}.public-report-footer{text-align:center;color:var(--muted);font:11px 'DM Mono';padding:16px}
@media(max-width:520px){body.public-report-page{padding:18px 12px}.public-report-header{align-items:flex-start;gap:12px}.public-report-header .header-button{font-size:10px}.public-report-intro,.public-report-card{padding:22px}.public-report-intro h1{font-size:29px}}
@media print{body.public-report-page{padding:0;background:#fff}.public-report-header button{display:none}.public-report-shell{max-width:none}.public-report-intro,.public-report-card{box-shadow:none;break-inside:avoid}.public-report-header{margin-bottom:18px}}
