@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
:root{--canvas:#f4f3ee;--surface:#fff;--surface-2:#ecebe4;--ink:#172421;--muted:#66716d;--border:#d8dbd3;--brand:#0b6b61;--brand-hover:#08574f;--selected:#dcece8;--accent:#c47a16;--danger:#b33a3a;--success:#2e7d52;--warning:#a96012;--private:#7057a3;--nav:#13211f;--nav-ink:#dbe4df;--shadow:0 18px 50px rgba(17,35,31,.18);--row-h:58px;--radius:6px}
html[data-theme=professional-dark]{--canvas:#111815;--surface:#18221e;--surface-2:#202d28;--ink:#eef5f1;--muted:#a7b5af;--border:#36463f;--brand:#67c7b5;--brand-hover:#8bd6c8;--selected:#21463e;--nav:#09100e;--nav-ink:#dce9e3;--private:#c0a8ef}
html[data-theme=ocean]{--canvas:#eef3f6;--surface:#fff;--surface-2:#e1e9ee;--ink:#152935;--muted:#5c7180;--border:#cedbe3;--brand:#087e91;--brand-hover:#066777;--selected:#d7eef2;--nav:#102b3b;--nav-ink:#dbeaf2;--private:#6d5aac}
html[data-theme=forest]{--canvas:#f1f2ea;--surface:#fff;--surface-2:#e5e8dc;--ink:#263126;--muted:#697566;--border:#d2d8ca;--brand:#486b3b;--brand-hover:#39572e;--selected:#e0ead9;--accent:#a4622b;--nav:#263628;--nav-ink:#e5ede1}
html[data-theme=warm-neutral]{--canvas:#f5f0e7;--surface:#fffdf8;--surface-2:#ebe2d5;--ink:#342724;--muted:#786c65;--border:#ddd0c2;--brand:#7d383c;--brand-hover:#672d31;--selected:#f0dfe0;--accent:#a46e2a;--nav:#342522;--nav-ink:#f2e9df}
html[data-theme=high-contrast]{--canvas:#fff;--surface:#fff;--surface-2:#eee;--ink:#000;--muted:#242424;--border:#000;--brand:#0047ff;--brand-hover:#002fb3;--selected:#fff200;--accent:#8a3d00;--private:#50117d;--nav:#000;--nav-ink:#fff;--shadow:0 0 0 3px #000}
html[data-density=compact]{--row-h:46px}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.45 'IBM Plex Sans','Segoe UI',sans-serif}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,a,input,select,textarea{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 22%,transparent)}.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:var(--surface);padding:10px}.skip-link:focus{top:10px}.topbar{height:56px;background:var(--nav);color:var(--nav-ink);display:grid;grid-template-columns:232px minmax(280px,640px) 1fr;align-items:center;gap:24px;padding:0 20px;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:10px;color:inherit;font-size:16px;letter-spacing:.01em}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:30px;height:30px;background:var(--brand);color:white;font-weight:600;border-radius:4px;clip-path:polygon(0 0,85% 0,100% 25%,100% 100%,15% 100%,0 75%)}.brand.large{font-size:20px}.brand.large .brand-mark{width:38px;height:38px}.global-search{height:36px;background:#ffffff16;border:1px solid #ffffff20;border-radius:5px;display:flex;align-items:center;gap:8px;padding:0 10px}.global-search input{flex:1;background:transparent;border:0;color:white}.global-search input::placeholder{color:#c7d2cd}.global-search kbd{border:1px solid #ffffff30;border-radius:3px;padding:1px 6px;color:#cad5d0}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.icon-button,.profile-chip,.mobile-nav{border:0;background:transparent;color:inherit;cursor:pointer}.icon-button{width:36px;height:36px;border-radius:4px;font-size:20px}.icon-button:hover{background:#ffffff12}.profile-chip{display:flex;align-items:center;gap:8px;text-align:left}.profile-chip>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--brand);font-weight:600}.profile-copy{display:flex;flex-direction:column;font-size:12px}.profile-copy small{opacity:.7}.mobile-nav{display:none}.app-frame{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:calc(100vh - 56px)}.sidebar{background:var(--nav);color:var(--nav-ink);padding:18px 12px;position:sticky;top:56px;height:calc(100vh - 56px);overflow:auto}.nav-group{margin-bottom:20px}.nav-group p{font-size:10px;text-transform:uppercase;letter-spacing:.16em;opacity:.55;padding:0 10px}.nav-group a{color:inherit;display:grid;grid-template-columns:24px 1fr auto;gap:7px;align-items:center;min-height:38px;padding:7px 10px;border-radius:4px;border-left:3px solid transparent}.nav-group a:hover{text-decoration:none;background:#ffffff0b}.nav-group a.active{background:color-mix(in srgb,var(--brand) 28%,transparent);border-left-color:#7ed2c2}.nav-group em{font-size:9px;font-style:normal;opacity:.48}.main{padding:28px clamp(18px,3vw,44px);min-width:0;max-width:1800px;width:100%;margin:auto}.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:600;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.15;margin-bottom:8px;font-weight:600}h2{font-size:17px;margin:0;font-weight:600}h3{font-size:15px}.workspace-header,.object-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.workspace-header>div>p:last-child{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--border);border-radius:4px;background:var(--surface);cursor:pointer;font-weight:500}.button:hover{text-decoration:none;background:var(--surface-2)}.button.primary{color:#fff;background:var(--brand);border-color:var(--brand)}.button.primary:hover{background:var(--brand-hover)}.button.ghost{background:transparent}.button.full,.full{width:100%}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.metric-grid article{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--brand);padding:17px;min-height:112px}.metric-grid article.accent{border-top-color:var(--accent)}.metric-grid span,.metric-grid small{display:block;color:var(--muted)}.metric-grid b{display:block;font:500 28px/1.2 'IBM Plex Mono',monospace;margin:7px 0}.dashboard-grid,.record-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:13px;margin-bottom:8px}.project-row{min-height:74px;display:grid;grid-template-columns:minmax(200px,1.4fr) minmax(170px,1fr) 100px;gap:18px;align-items:center;border-bottom:1px solid var(--border);color:var(--ink);padding:9px 4px}.project-row:hover{text-decoration:none;background:var(--surface-2)}.project-row>div:first-child{display:grid}.project-row span,.project-row time,.project-row small{color:var(--muted);font-size:12px}.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:.02em}.health-cell{display:grid;gap:5px}.health-rail{display:block;height:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;overflow:hidden;min-width:90px}.health-rail i{display:block;height:100%;background:var(--success)}.health-rail.at-risk i{background:var(--warning)}.health-rail.blocked i{background:var(--danger)}.health-rail.complete i{background:var(--brand)}.stage-stat{display:grid;grid-template-columns:1fr 30px;gap:7px;padding:10px 0;border-bottom:1px solid var(--border)}.stage-stat i{grid-column:1/-1;height:3px;background:linear-gradient(90deg,var(--brand) var(--w),var(--surface-2) var(--w))}.next-action{margin-top:18px;padding:15px;background:var(--surface-2);border-left:3px solid var(--accent)}.next-action small{display:block;color:var(--accent);letter-spacing:.13em;font-size:9px}.next-action b{display:block;margin:5px 0}.next-action p{margin:0;color:var(--muted);font-size:12px}.object-header .title-line{display:flex;align-items:center;gap:12px;margin-top:8px}.object-header h1 small{font:500 13px 'IBM Plex Mono';color:var(--muted)}.object-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--border);background:var(--selected);color:var(--brand);font-size:20px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:10px}.list-toolbar{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);padding:10px 12px;margin-bottom:10px}.view-title{display:grid;min-width:210px}.view-title small{font-size:11px;color:var(--muted)}.list-toolbar form{flex:1}.list-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--canvas);border-radius:4px;padding:0 9px;max-width:420px}.list-search input{height:34px;border:0;background:transparent;width:100%}.view-switch{display:flex}.view-switch a,.view-switch button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}.view-switch .active{background:var(--selected);color:var(--brand)}.table-shell{overflow:auto;border:1px solid var(--border);background:var(--surface)}table{border-collapse:collapse;width:100%;min-width:960px}caption{position:absolute;clip:rect(0 0 0 0)}th{height:42px;text-align:left;padding:0 13px;background:var(--surface-2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;position:sticky;top:0}td{height:var(--row-h);padding:7px 13px;border-top:1px solid var(--border);white-space:nowrap}tbody tr:hover{background:color-mix(in srgb,var(--selected) 45%,transparent)}.record-link{display:flex;align-items:center;gap:10px;color:var(--ink)}.record-link>span:last-child{display:grid}.record-link small{color:var(--muted)}.company-avatar,.project-glyph{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;background:var(--selected);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));font:500 11px 'IBM Plex Mono';clip-path:polygon(0 0,84% 0,100% 22%,100% 100%,16% 100%,0 78%)}.company-avatar.large,.project-glyph.large{width:58px;height:58px;font-size:16px}.badge,.privacy{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-size:11px;text-transform:capitalize}.badge.active{color:var(--success)}.badge.critical{color:var(--danger)}.privacy.private{color:var(--private);border-color:color-mix(in srgb,var(--private) 40%,var(--border))}.privacy.shared{color:var(--success)}.empty{text-align:center;padding:42px 20px;color:var(--muted)}.empty h3{color:var(--ink);margin:8px}.empty-mark{font-size:28px;color:var(--brand)}.record-header{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--border);padding:20px;margin-bottom:0}.record-title h1{margin-bottom:8px}.record-title>div{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.record-actions{display:flex;gap:8px}.header-rail{grid-column:2/-1;display:grid;gap:5px;max-width:500px}.record-tabs{display:flex;overflow:auto;border:1px solid var(--border);border-top:0;background:var(--surface);margin-bottom:18px}.record-tabs a{padding:11px 15px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}.record-tabs a.active{color:var(--brand);border-color:var(--brand)}.facts dl{display:grid;grid-template-columns:110px 1fr;gap:0}.facts dt,.facts dd{padding:9px 0;border-bottom:1px solid var(--border);margin:0}.facts dt{color:var(--muted)}.dialog{border:0;border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);padding:0;width:min(620px,calc(100vw - 24px));max-height:90vh}.dialog::backdrop{background:#0d1715aa;backdrop-filter:blur(2px)}.dialog.drawer{width:min(680px,100vw);max-height:100vh;height:100vh;margin:0 0 0 auto;border-radius:0}.dialog.compact{width:min(400px,calc(100vw - 24px))}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--border)}.dialog-header button{border:0;background:transparent;font-size:24px;cursor:pointer}.dialog form>.form-grid,.dialog>.stack,.dialog form.stack{padding:18px}.dialog footer{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 18px;display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,.stack label,.auth-form label{display:grid;gap:5px;font-size:12px;font-weight:500}.form-grid label span{color:var(--danger)}.form-grid .span-2{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:4px;background:var(--canvas);padding:9px 10px}textarea{resize:vertical}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px}.quick-grid button{display:grid;text-align:left;gap:4px;padding:15px;border:1px solid var(--border);background:var(--canvas);cursor:pointer}.quick-grid button span{color:var(--muted);font-size:12px}.quick-grid button:disabled{opacity:.5}.toast{position:fixed;right:20px;top:70px;z-index:80;background:var(--nav);color:var(--nav-ink);padding:12px 16px;border-left:4px solid var(--brand);box-shadow:var(--shadow)}.error-summary,.field-error{border:1px solid color-mix(in srgb,var(--danger) 50%,var(--border));border-left:4px solid var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface));padding:12px;margin-bottom:16px}.kanban{display:grid;grid-template-columns:repeat(5,minmax(250px,1fr));gap:12px;overflow:auto;padding-bottom:12px}.kanban-column{background:var(--surface-2);border:1px solid var(--border);min-height:520px}.kanban-column>header{display:flex;justify-content:space-between;padding:12px;border-top:3px solid var(--brand)}.kanban-column>header span{display:grid}.kanban-column>header small{color:var(--muted)}.kanban-column>header button{border:0;background:transparent}.kanban-drop{padding:7px;min-height:450px}.kanban-drop.drag-over{background:var(--selected);outline:2px dashed var(--brand);outline-offset:-4px}.kanban-card{position:relative;background:var(--surface);border:1px solid var(--border);padding:13px;margin-bottom:8px;display:grid;gap:7px}.kanban-card>a{font-weight:600;color:var(--ink)}.kanban-card>span{font-size:12px;color:var(--muted)}.kanban-card footer{display:flex;justify-content:space-between;color:var(--muted);text-transform:capitalize}.drag-handle{position:absolute;right:7px;top:7px;width:30px;height:30px;border:0;background:transparent;cursor:grab}.move-select{font-size:10px;color:var(--muted)}.move-select select{padding:4px;margin-top:3px}.milestone-ruler{display:grid;grid-template-columns:repeat(5,1fr);margin:26px 0}.milestone-ruler span{position:relative;border-top:3px solid var(--border);padding-top:12px;color:var(--muted);text-align:center;font-size:11px}.milestone-ruler span:before{content:'';position:absolute;top:-7px;left:50%;width:11px;height:11px;background:var(--surface);border:2px solid var(--border);border-radius:50%}.milestone-ruler span.done{border-color:var(--brand);color:var(--brand)}.milestone-ruler span.done:before{background:var(--brand);border-color:var(--brand)}.next-step-large{font-size:18px;line-height:1.5;padding:20px 0}.placeholder-board{display:flex;justify-content:space-between;align-items:center;background:var(--surface-2);padding:16px}.placeholder-board div{display:grid}.placeholder-board small{color:var(--muted)}.auth-page,.installer-page{min-height:100vh;background:var(--nav)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr}.auth-story{color:var(--nav-ink);padding:clamp(40px,8vw,120px);display:flex;flex-direction:column;justify-content:center;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:36px 36px}.auth-story h1{font-size:clamp(40px,5vw,72px);max-width:850px;letter-spacing:-.04em}.auth-story>p{max-width:650px;color:#bdcbc5;font-size:17px}.blueprint{display:flex;align-items:center;margin-top:70px;font:500 11px 'IBM Plex Mono';letter-spacing:.12em}.blueprint i{height:1px;background:#ffffff45;width:80px;margin:0 10px}.auth-form{background:var(--canvas);display:grid;place-items:center;padding:30px}.auth-form form{width:min(390px,100%);display:grid;gap:16px}.auth-form h2{font-size:26px;margin-bottom:10px}.auth-form .check{display:flex;grid-template-columns:auto 1fr;align-items:center}.auth-form .check input{width:auto}.security-note{color:var(--muted);font-size:11px;text-align:center}.installer-shell{width:min(900px,calc(100% - 30px));margin:30px auto;background:var(--canvas);min-height:calc(100vh - 60px);padding:32px}.installer-shell>header{display:flex;justify-content:space-between}.step{font:500 11px 'IBM Plex Mono';color:var(--muted)}.installer-intro{padding:70px 0 35px;max-width:680px}.installer-intro h1{font-size:42px}.check-list{border:1px solid var(--border)}.check-list>div{display:grid;grid-template-columns:35px 1fr auto;align-items:center;padding:12px;border-bottom:1px solid var(--border)}.check-list>div:last-child{border:0}.check-state{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:white}.check-state.pass{background:var(--success)}.check-state.fail{background:var(--danger)}.check-list b{font-size:11px}.installer-shell>footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.installer-shell>footer p{margin:0;color:var(--muted)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.topbar{grid-template-columns:64px minmax(220px,1fr) auto}.brand>span:last-child{display:none}.app-frame{grid-template-columns:64px 1fr}.sidebar{padding:15px 8px}.nav-group p,.nav-group a{font-size:0}.nav-group a{grid-template-columns:1fr;justify-items:center}.nav-group a span{font-size:17px}.nav-group em{display:none}.profile-copy{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.record-grid{grid-template-columns:1fr}.record-actions{grid-column:1/-1}.auth-shell{grid-template-columns:1fr 420px}.auth-story{padding:50px}.auth-story h1{font-size:42px}}
@media(max-width:760px){.topbar{height:52px;grid-template-columns:auto 1fr auto;padding:0 10px}.mobile-nav{display:block;order:-1}.global-search{justify-self:end;width:40px}.global-search input,.global-search kbd{display:none}.app-frame{display:block}.sidebar{position:fixed;top:52px;left:-250px;width:232px;height:calc(100vh - 52px);z-index:50;transition:left .18s}.sidebar.open{left:0}.nav-group p,.nav-group a{font-size:inherit}.nav-group a{grid-template-columns:24px 1fr auto;justify-items:start}.main{padding:18px 12px}.metric-grid{grid-template-columns:1fr 1fr}.workspace-header,.object-header{align-items:flex-end}.list-toolbar{flex-wrap:wrap}.view-title{width:100%}.list-toolbar form{order:3;flex-basis:100%}.record-header{grid-template-columns:auto 1fr;padding:15px}.record-actions{overflow:auto}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.kanban{display:block;overflow:visible}.kanban-column{min-height:0;margin-bottom:12px}.kanban-drop{min-height:60px}.auth-shell{display:block}.auth-story{min-height:42vh;padding:30px}.auth-story h1{font-size:32px}.blueprint{margin-top:20px}.auth-form{min-height:58vh}.installer-shell{padding:20px}.installer-intro{padding:40px 0 25px}.installer-intro h1{font-size:30px}.installer-shell>footer{display:grid;gap:12px}.quick-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Installer wizard */
.installer-shell.wide{max-width:980px}.installer-form{display:grid;gap:1rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.installer-form label{display:grid;gap:.4rem;font-size:.82rem;font-weight:650}.installer-form input,.installer-form select{width:100%;padding:.75rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text)}.check-row{display:flex!important;align-items:flex-start;gap:.65rem!important}.check-row input{width:auto;margin-top:.2rem}.notice,.alert,.cron-command,.sender-card{border:1px solid var(--line);border-radius:8px;padding:1rem;background:var(--surface)}.alert.error{border-color:#b6533c;background:#fff1eb}.alert.success{border-color:#318577;background:#edf9f5}.hint,small{color:var(--muted);font-size:.78rem}.sender-card summary{cursor:pointer;font-weight:700}.sender-card .field-grid{margin-top:1rem}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:1.2rem}.review-grid>div{display:grid;gap:.25rem;padding:1rem;background:var(--surface)}.review-grid span{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.cron-command{display:flex;align-items:center;justify-content:space-between;gap:1rem}.cron-command code{overflow-wrap:anywhere}.check-state.warn{background:#e9a63a;color:#1b2521}@media(max-width:700px){.field-grid,.review-grid{grid-template-columns:1fr}.installer-shell.wide{margin:0;min-height:100vh;border-radius:0}.cron-command{align-items:stretch;flex-direction:column}}.installer-form textarea{width:100%;min-height:90px;padding:.75rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);resize:vertical}.sender-admin-card{margin-top:1rem}.smtp-test{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);display:flex;gap:.75rem;align-items:end}.smtp-test label{display:grid;gap:.35rem;flex:1}.smtp-test input{width:100%}@media(max-width:700px){.smtp-test{align-items:stretch;flex-direction:column}}