@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--ink:#17211f;--muted:#74807c;--line:#e4e9e6;--bg:#f5f7f6;--green:#146b50;--green-dark:#0d513c;--green-soft:#e7f3ed;--amber:#946200;--amber-soft:#fff4d8;--red:#b42318;--red-soft:#fdecea;--shadow:0 12px 36px rgba(26,54,44,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#102b23;color:#eaf3ee;display:flex;flex-direction:column;padding:25px 16px;flex-shrink:0}.brand{align-items:center;gap:10px;padding:0 8px;font-family:Manrope,sans-serif;font-weight:700;letter-spacing:.04em;font-size:15px}.brand b{color:#a8d9bd}.brand-mark{height:34px;width:34px;border-radius:10px;background:#d8efe1;color:#14543e;display:grid;place-items:center;font-family:Manrope,sans-serif;font-size:20px;font-weight:800}.eyebrow,.nav-caption{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--muted)}.nav-caption{margin:42px 10px 12px;color:#8ca79a}.sidebar nav{display:grid;grid-gap:5px;gap:5px}.nav-item{border:0;background:transparent;color:#bfd0c6;text-align:left;border-radius:9px;padding:12px;display:flex;align-items:center;gap:12px;font-size:14px}.nav-item span{flex:1 1}.nav-item small{font-size:11px;color:#aac2b5}.nav-item.active,.nav-item:hover{background:#214b3c}.sidebar-bottom{margin-top:auto;border-top:1px solid #2b4b3f;padding:18px 5px 0;display:flex;align-items:center;gap:9px}.avatar{height:34px;width:34px;border-radius:50%;background:#d8efe1;color:#14543e;display:grid;place-items:center;font-weight:700}.user-meta{min-width:0;display:grid;grid-gap:3px;gap:3px;flex:1 1}.user-meta b{font-size:12px}.user-meta span{font-size:10px;color:#a5bdb0;overflow:hidden;text-overflow:ellipsis}.icon-button{border:0;background:transparent;color:inherit;font-size:20px;padding:5px}.main-area{min-width:0;flex:1 1;padding:0 34px 24px}.topbar{min-height:112px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);margin-bottom:24px}.topbar h1{font:700 25px Manrope,sans-serif;margin:5px 0 0}.top-actions{display:flex;align-items:center;gap:18px}.live-dot{font-size:11px;color:var(--green);white-space:nowrap}.primary,.secondary{border-radius:8px;padding:10px 15px;font-weight:600;border:1px solid transparent}.primary{background:var(--green);color:white}.primary:hover{background:var(--green-dark)}.secondary{background:white;border-color:var(--line);color:var(--ink)}.full{width:100%;margin-top:4px;padding:12px}.welcome{background:linear-gradient(110deg,#e5f2e9,#f0f7f2);border:1px solid #d8e9dd;border-radius:14px;padding:23px 26px;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.welcome .eyebrow{color:#507d66;margin:0 0 8px}.welcome h2{font:700 23px Manrope,sans-serif;margin:0 0 7px}.welcome p:not(.eyebrow){margin:0;color:#5e7669}.welcome-icon{font-size:36px;color:#3c8a67;padding:12px 18px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}.metric-card{padding:17px 18px}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#5e6a65}.metric-icon{height:30px;min-width:30px;padding:0 6px;border-radius:8px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:700}.metric-icon.alert{background:var(--red-soft);color:var(--red)}.metric-card strong{display:block;font:800 26px Manrope,sans-serif;margin:13px 0 5px;letter-spacing:-.03em}.metric-card p{font-size:11px;color:var(--muted);margin:0}.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);grid-gap:18px;gap:18px}.panel{padding:20px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-heading h3{font:700 16px Manrope,sans-serif;margin:0 0 5px}.panel-heading p{font-size:12px;color:var(--muted);margin:0}.text-button{border:0;background:transparent;color:var(--green);font-size:12px;font-weight:700;white-space:nowrap;padding:6px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}th{font-size:9px;letter-spacing:.09em;color:#7e8984;font-weight:700;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:14px 10px;border-bottom:1px solid #eef1ef;color:#53605a}td,td b{font-size:11px}td b{color:#26342e}.service-code{color:var(--green)!important;font-size:10px!important}.service-title{font-weight:600;color:#25322c;margin:4px 0}.service-title+small{color:#87918b;font-size:10px}.pill{display:inline-flex;border-radius:5px;padding:5px 7px;font-size:10px;font-weight:700;background:#eef1ef;color:#58645e}.pill.in_progress,.pill.planned{background:#e6f3eb;color:#226847}.pill.awaiting_approval,.pill.awaiting_client,.pill.in_review{background:#fff3d9;color:#946200}.pill.closed,.pill.delivered{background:#e5f1fc;color:#205c90}.pill.budgeting,.pill.received{background:#eef0ff;color:#4f57a3}.status-list{display:grid;grid-gap:17px;gap:17px;padding-top:3px}.status-row{display:grid;grid-template-columns:8px minmax(100px,1fr) 20px;align-items:center;grid-gap:9px;gap:9px;font-size:11px;color:#56635c}.status-row b{text-align:right;color:#27362e}.status-dot{width:7px;height:7px;border-radius:50%;background:#87938c}.status-dot.in_progress,.status-dot.planned{background:#27835d}.status-dot.awaiting_approval,.status-dot.awaiting_client,.status-dot.in_review{background:#d99a20}.status-dot.closed,.status-dot.delivered{background:#4385c1}.bar{grid-column:2/4;height:4px;background:#edf1ee;overflow:hidden}.bar,.bar i{border-radius:10px}.bar i{display:block;height:100%;background:#77b994}.search{border:1px solid var(--line);border-radius:8px;padding:9px 12px;min-width:210px;outline:none}.search:focus,input:focus,select:focus{border-color:#7bb59a;box-shadow:0 0 0 3px rgba(20,107,80,.08);outline:none}.empty{text-align:center;color:var(--muted);padding:28px 12px;font-size:12px}.page-footer{padding:22px 0 0;color:#8b9690;font-size:10px}.page-footer span{padding:0 6px}.modal-backdrop{position:fixed;inset:0;background:rgba(13,29,23,.45);display:grid;place-items:center;padding:18px;z-index:20}.modal{width:min(650px,100%);max-height:90vh;overflow:auto;background:white;border-radius:14px;padding:23px;box-shadow:var(--shadow)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2{font:700 20px Manrope,sans-serif;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px}.form-grid label,.login-card label{display:grid;grid-gap:7px;gap:7px;font-size:12px;font-weight:600;color:#435149}.form-grid input,.form-grid select,.login-card input{width:100%;border:1px solid #dce4df;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);min-width:0}.span-2{grid-column:span 2}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:8px}.error,.notice{border-radius:8px;padding:11px 13px;font-size:12px;margin:12px 0}.error{background:var(--red-soft);color:var(--red)}.notice{background:var(--green-soft);color:var(--green);display:flex;justify-content:space-between}.notice button{border:0;background:transparent;color:inherit}.global-error{margin-bottom:15px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:white}.login-side{background:#102b23;color:#eaf3ee;padding:45px 7%;display:flex;flex-direction:column}.login-pitch{margin:auto 0;max-width:470px}.login-pitch .eyebrow{color:#9ac9ae}.login-pitch h1{font:800 clamp(32px,4vw,52px)/1.12 Manrope,sans-serif;letter-spacing:-.04em;margin:15px 0 18px}.login-pitch p:not(.eyebrow){color:#b9cec2;line-height:1.8;max-width:380px}.login-footer{color:#8ca79a;font-size:11px}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(360px,100%);display:grid;grid-gap:17px;gap:17px}.login-card h2{font:700 27px Manrope,sans-serif;margin:0}.login-card .eyebrow{margin:0;color:var(--green)}.login-card .muted{margin:0}.muted{color:var(--muted);font-size:12px;line-height:1.7}.tiny{font-size:10px;text-align:center}.setup{min-height:100vh;display:grid;place-content:center;padding:24px;background:var(--bg)}.setup-card{background:white;border:1px solid var(--line);border-radius:16px;padding:32px;max-width:580px;box-shadow:var(--shadow)}.setup-card h1{font:800 30px Manrope,sans-serif;margin:6px 0}.setup-card ol{line-height:1.9;padding-left:22px}.setup-card code{background:#edf3ef;padding:2px 5px;border-radius:4px;font-size:12px}.spinner{height:28px;width:28px;border:3px solid #dce9e1;border-top:3px solid var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media(max-width:1100px){.sidebar{width:210px}.main-area{padding:0 20px 22px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{width:100%;padding:13px 14px}.sidebar .brand{padding:0 4px}.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;margin-top:15px;overflow-x:auto}.nav-item{white-space:nowrap;padding:10px}.main-area{padding:0 13px 18px}.topbar{min-height:90px;margin-bottom:15px}.topbar h1{font-size:22px}.top-actions{gap:8px}.live-dot{display:none}.primary{padding:10px 11px;font-size:12px}.welcome{padding:18px}.welcome h2{font-size:19px}.welcome-icon{display:none}.metrics{gap:9px}.metric-card{padding:13px}.metric-card strong{font-size:22px}.metric-card p{line-height:1.5}.panel{padding:14px}.panel-heading{align-items:flex-start;flex-direction:column}.search{width:100%;min-width:0}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.modal{padding:18px}.login-layout{grid-template-columns:1fr}.login-side{padding:25px;min-height:260px}.login-pitch{margin:45px 0 20px}.login-pitch h1{font-size:32px}.login-footer{display:none}.login-panel{padding:30px 22px}.login-card{max-width:440px}}:root{--ink:#10263d;--muted:#738397;--line:#e2e8ef;--bg:#f4f7fb;--panel:#fff;--green:#062447;--green-dark:#00172e;--green-soft:#e8f0f8;--shadow:0 12px 36px rgba(0,22,45,.08)}.login-side,.sidebar{background:#00172e;color:#f2f7ff}.sidebar{width:268px;padding-top:31px}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:0 9px}.brand-logo{display:block;width:195px;max-width:100%;height:auto;object-fit:contain}.brand-subtitle{font:700 10px Manrope,Arial,sans-serif;letter-spacing:.3em;color:#9fb9d3;padding-left:2px}.nav-caption{color:#7d9cb9}.nav-item{color:#bfd0e3}.nav-item.active,.nav-item:hover{background:#123657;color:#fff}.sidebar-bottom{border-top-color:#24425e}.avatar{background:#dceaf7;color:#062447}.user-meta span{color:#a5bad0}.welcome{background:linear-gradient(105deg,#eaf2fb,#f8fbff);border-color:#dce8f5}.welcome .eyebrow,.welcome-icon{color:#25577f}.welcome p:not(.eyebrow){color:#607992}.metric-icon{background:#e8f0f8;color:#174a78}.primary{background:#062447}.primary:hover{background:#123e68}.service-code,.text-button{color:#155688!important}.pill.in_progress,.pill.planned{background:#e6f0fb;color:#1d5b8e}.status-dot.in_progress,.status-dot.planned{background:#2672a6}.bar{background:#eaf0f6}.bar i{background:#6b9dc6}.login-side .brand{padding:0}.login-side .brand-logo{width:min(320px,100%)}.login-side .brand-subtitle{font-size:11px}.setup-logo{display:block;width:200px;max-width:100%;height:auto;margin:0 auto 18px}.login-pitch .eyebrow{color:#8eb8db}.login-footer{color:#9cb6cf}.search:focus,input:focus,select:focus{border-color:#6b9dc6;box-shadow:0 0 0 3px rgba(12,74,124,.1)}@media(max-width:760px){.sidebar{width:auto}.brand-logo{width:150px}.login-side .brand-logo{width:200px}}.workspace-backdrop{position:fixed;inset:0;background:rgba(0,12,30,.68);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.workspace{background:#fff;color:#14283b;border-radius:18px;width:min(1220px,100%);max-height:94vh;overflow:auto;padding:26px;box-shadow:0 24px 80px #00152b55}.workspace-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.workspace-header h2{margin:4px 0 0}.workspace-summary{display:flex;gap:18px;flex-wrap:wrap;align-items:end;background:#f3f7fb;padding:15px;border-radius:12px;margin-bottom:16px}.workspace-summary>div{display:flex;flex-direction:column;gap:4px;min-width:135px}.workspace-summary small{color:#61738a}.workspace-summary strong{font-size:18px}.workspace-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid #dbe4ed;margin-bottom:18px}.workspace-tabs button{border:0;background:transparent;padding:12px 13px;cursor:pointer;color:#506277}.workspace-tabs button.active{color:#073d70;border-bottom:3px solid #0c568e;font-weight:700}.workspace-form{background:#f5f8fb;border:1px solid #dce5ee;border-radius:12px;padding:18px;margin-bottom:16px}.workspace-form h3{margin:0 0 15px}.workspace-form p{margin:12px 0}.workspace-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.workspace-fields label,.workspace-summary label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.workspace-fields input,.workspace-fields select,.workspace-summary select,.workspace-table input,.workspace-table select{width:100%;padding:9px;border:1px solid #cbd8e3;border-radius:7px;background:white;color:#182e42}.workspace-table{width:100%;border-collapse:collapse;font-size:13px}.workspace-table td,.workspace-table th{text-align:left;border-bottom:1px solid #e2eaf1;padding:11px 7px;vertical-align:middle}.workspace-table th{color:#5d6f82}.workspace-totals{margin-top:14px;padding:15px;background:#eaf2f9;border-radius:9px;font-weight:600}@media(max-width:700px){.workspace{padding:15px}.workspace-fields{grid-template-columns:1fr}.workspace-table{display:block;overflow-x:auto}.workspace-summary{gap:10px}}.vhg-kanban{display:flex;gap:12px;overflow-x:auto;padding:8px 2px 18px;align-items:stretch;min-height:440px}.vhg-lane{flex:0 0 252px;background:#eaf0f7;border:1px solid #d6e0ed;border-radius:10px;padding:10px;min-height:380px}.vhg-lane-head{display:flex;flex-direction:column;gap:3px;padding:7px 4px 12px;border-bottom:3px solid #12365b;margin-bottom:12px;color:#0c2540}.vhg-lane-head small{color:#52708a}.vhg-ticket{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #d4dfeb;border-radius:8px;padding:12px;margin-bottom:10px;color:#12283d}.vhg-ticket small,.vhg-ticket span{font-size:12px;color:#58728a}.vhg-ticket strong{font-size:14px}.vhg-move{font-size:12px;color:#526b83}.vhg-move select{width:100%;margin-top:5px}.vhg-ticket[draggable=true]{cursor:-webkit-grab;cursor:grab;touch-action:pan-y}.vhg-ticket[draggable=true]:active{cursor:-webkit-grabbing;cursor:grabbing}.vhg-ticket-dragging{opacity:.45}.vhg-lane-drop{outline:2px dashed #2688c9;outline-offset:-3px;background:rgba(38,136,201,.09)}.vhg-view-switch{display:flex;gap:6px;margin-bottom:16px;align-items:center}.vhg-view-switch button{border:1px solid var(--border,#d6dce6);border-radius:9px;padding:9px 17px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:600}.vhg-view-switch button.vhg-view-active{background:#17385d;color:white;border-color:#17385d}.vhg-view-switch button:focus-visible{outline:3px solid #74a9e5;outline-offset:2px}.sidebar nav .vhg-subnav{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;padding:5px 0 9px 37px;margin:0;background:transparent}.sidebar nav .vhg-subnav button{display:block;width:100%;min-height:39px;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:#bfd0e3;text-align:left;font-size:13px;font-weight:400;line-height:1.35;white-space:normal;box-shadow:none;cursor:pointer}.sidebar nav .vhg-subnav button:focus-visible,.sidebar nav .vhg-subnav button:hover{background:#123657;color:#ffffff}.sidebar nav .vhg-subnav button.active{background:#21486f;color:#ffffff;font-weight:600}@media (max-width:700px){.sidebar nav .vhg-subnav{flex:0 0 auto;width:170px;padding-left:10px}}input:not([type=email]):not([type=password]):not([type=url]):not([type=date]):not([type=number]):not(.keep-case),textarea:not(.keep-case){text-transform:uppercase}input::placeholder,textarea::placeholder{text-transform:none}input[type=email]{text-transform:lowercase}textarea{font:inherit;width:100%;border:1px solid #dce4df;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);resize:vertical;min-width:0}textarea:focus{border-color:#6b9dc6;box-shadow:0 0 0 3px rgba(12,74,124,.1);outline:none}input[aria-invalid=true]{border-color:var(--red)!important}.modal-wide{width:min(920px,100%)}.form-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-3 .span-2{grid-column:span 2}.form-section,.span-all{grid-column:1/-1}.form-section{margin:8px 0 -4px;font:700 13px Manrope,sans-serif;color:#0c2540;padding-bottom:6px;border-bottom:1px solid var(--line)}.form-group .form-section{margin-bottom:12px}.form-spacer{display:block}.readonly{background:#f3f6f9!important;color:#52677d!important}.field-error{color:var(--red);font-size:11px;font-weight:600}.field-hint{color:var(--muted);font-size:11px;font-weight:500}.check-group{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0;display:flex;flex-wrap:wrap;gap:8px}.check-group legend{font-size:12px;font-weight:600;color:#435149;padding:0 4px}.check-group legend small{font-weight:400;color:var(--muted)}.check-group>p{flex-basis:100%;margin:0}.check-chip{display:inline-flex!important;align-items:center;gap:8px!important;border:1px solid #d6e0ea;border-radius:8px;padding:8px 12px;font-weight:500!important;cursor:pointer;background:#fff}.check-chip:has(input:checked){background:#e8f0f8;border-color:#6b9dc6;color:#062447}.check-chip input{width:auto!important;margin:0;accent-color:#062447}.check-chip small{color:var(--muted)}.people-checklist{flex-basis:100%;display:grid;grid-gap:8px;gap:8px}.people-filter{max-width:320px}.people-options{display:flex;flex-wrap:wrap;gap:8px;max-height:190px;overflow:auto}.row-actions{white-space:nowrap}.row-actions .text-button+.text-button{margin-left:2px}.text-button.danger{color:var(--red)!important}.text-button:disabled{opacity:.5}td .sub{font-size:10px;color:var(--muted);margin-top:3px}.wrap-cell{white-space:normal;min-width:180px}.pre{white-space:pre-wrap}.row-inactive td{opacity:.55}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.neg{color:var(--red)}.late{color:var(--red)!important}.late,.ok-text{font-weight:600}.ok-text{color:#1d7a4f!important}.detail-section{margin-bottom:18px}.detail-section h3{font:700 13px Manrope,sans-serif;color:#0c2540;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px 18px;gap:12px 18px;margin:0}.detail-item{min-width:0}.detail-item.span-2{grid-column:span 2}.detail-item dt{font-size:11px;color:var(--muted);margin-bottom:3px}.detail-item dd{margin:0;font-size:13px;color:#14283b;font-weight:600;overflow-wrap:anywhere}.detail-empty{color:#a3b0bd;font-weight:400;font-style:italic}.detail-list{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px;font-size:12px}.person-search{position:relative}.person-search input{width:100%}.person-results{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cbd8e3;border-radius:9px;box-shadow:0 12px 30px rgba(0,22,45,.15);list-style:none;margin:0;padding:5px;max-height:260px;overflow:auto}.person-results li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px}.person-results li span{font-size:11px;color:var(--muted);font-weight:400}.person-results li.active{background:#e8f0f8}.person-results li.person-empty{cursor:default;color:var(--muted)}.progress{display:flex;align-items:center;gap:8px;min-width:110px}.progress-track{flex:1 1;height:6px;background:#e3eaf2;border-radius:6px;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#1d5b8e,#2f8fd8);border-radius:6px}.progress span{font-size:11px;font-weight:700;color:#1d3f61;min-width:32px;text-align:right}.progress-overview{display:grid;grid-template-columns:auto 1fr;grid-gap:24px;gap:24px;align-items:center;background:#f3f7fb;border-radius:12px;padding:16px 18px;margin-bottom:16px}.progress-overview>div{display:flex;flex-direction:column;gap:2px}.progress-overview strong{font:800 28px Manrope,sans-serif;color:#062447}.progress-overview .progress-track{height:10px}.progress-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.progress-item{border:1px solid #dce5ee;border-radius:12px;padding:14px;display:grid;grid-gap:10px;gap:10px;background:#fff}.progress-item header{display:flex;flex-direction:column;gap:4px;font-size:13px}.progress-edit{display:flex;align-items:center;gap:10px}.progress-edit input[type=range]{flex:1 1;accent-color:#0c568e}.progress-edit input[type=number]{width:70px;padding:7px;border:1px solid #cbd8e3;border-radius:7px}.progress-item footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.primary.small{padding:7px 12px;font-size:12px}.notes-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.notes-list li{border-left:3px solid #6b9dc6;background:#f7f9fc;border-radius:0 9px 9px 0;padding:10px 14px}.notes-list p{margin:6px 0 0;font-size:13px}.note-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}.note-meta b{color:#14283b}.tag{display:inline-block;background:#e8f0f8;color:#1d5b8e;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700}.workspace-fields.fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-fields .span-2{grid-column:span 2}.catalog-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-gap:8px;gap:8px}.calc-line{background:#fff;border:1px dashed #b9cadb;border-radius:8px;padding:10px 12px;font-size:13px}.form-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.form-buttons.left{justify-content:flex-start}.row-editing td{background:#fff8e6}.segmented{display:inline-flex;border:1px solid #cbd8e3;border-radius:9px;overflow:hidden;margin-bottom:14px}.segmented button{border:0;background:#fff;padding:8px 14px;font-weight:600;color:#506277}.segmented button.active{background:#062447;color:#fff}.panel-heading .segmented{margin-bottom:0}.money-input{max-width:130px}.storage-row{display:flex;gap:10px;margin:12px 0 6px}.storage-row input{flex:1 1;padding:10px;border:1px solid #cbd8e3;border-radius:8px}.storage-open{display:inline-block;margin-top:12px;font-weight:700;color:#155688;text-decoration:none;border:1px solid #b9cadb;border-radius:8px;padding:10px 14px;background:#fff}.storage-open:hover{background:#e8f0f8}.pill.fin-to_invoice{background:#eef0ff;color:#4f57a3}.pill.fin-awaiting_invoice,.pill.fin-under_review{background:#e6f0fb;color:#1d5b8e}.pill.fin-invoiced{background:#fff3d9;color:#946200}.pill.fin-overdue{background:var(--red-soft);color:var(--red)}.pill.fin-paid{background:#e3f4ea;color:#1d7a4f}.vhg-ticket-locked{background:#f7f9fb;border-style:dashed}.lock-badge{font-size:11px!important;font-weight:600;color:#6a5a1e!important;background:#fff6dc;border-radius:6px;padding:5px 8px}.ticket-amount{font-size:15px;color:#062447}.stars{color:#d49a12;letter-spacing:1px;white-space:nowrap}.stars small{color:var(--muted);letter-spacing:0}.review-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.review-list li{border:1px solid var(--line);border-radius:10px;padding:12px 14px}.review-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.review-head .text-button{margin-left:auto}.review-scores{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:#435149;margin:8px 0}.review-list p{margin:0;font-size:13px}.proposal-items{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f8fafc}.proposal-items-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.proposal-items-head h3{margin:0;font:700 14px Manrope,sans-serif}.proposal-items-head input{max-width:280px}.proposal-line{background:#fff;border:1px solid #dce5ee;border-radius:10px;padding:12px;display:grid;grid-gap:8px;gap:8px;margin-bottom:10px}.proposal-line.has-error{border-color:var(--red)}.proposal-line-top{display:flex;gap:8px;align-items:center}.proposal-line-top select{flex:1 1}.proposal-line-values{display:grid;grid-template-columns:1fr 1fr 1.2fr;grid-gap:10px;gap:10px;align-items:end}.line-result{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.line-result small{color:var(--muted);font-size:11px;text-align:right}.line-result b{font:800 16px Manrope,sans-serif;color:#062447}.proposal-total{text-align:right;font-size:14px;margin:10px 0 0}.proposal-total b{font:800 20px Manrope,sans-serif;color:#062447}.proposal-total small{color:var(--muted)}@media(max-width:900px){.detail-grid,.form-3,.workspace-fields.fields-3{grid-template-columns:1fr 1fr}.detail-item.span-2,.form-3 .span-2{grid-column:1/-1}}@media(max-width:700px){.catalog-picker,.detail-grid,.form-3,.proposal-line-values,.workspace-fields.fields-3{grid-template-columns:1fr}.detail-item.span-2,.workspace-fields .span-2{grid-column:auto}.progress-overview{grid-template-columns:1fr}.storage-row{flex-direction:column}}body{font-size:13px}.sidebar{width:220px;padding:20px 12px}.brand-logo{width:160px}.nav-caption{margin:26px 10px 8px}.nav-item{padding:9px 10px;font-size:13px;gap:10px}.sidebar nav .vhg-subnav{padding:3px 0 6px 32px}.sidebar nav .vhg-subnav button{min-height:32px;padding:6px 10px;font-size:12.5px}.main-area{padding:0 22px 18px}.topbar{min-height:70px;margin-bottom:16px}.topbar h1{font-size:20px;margin-top:3px}.welcome{padding:14px 18px;margin-bottom:12px}.welcome h2{font-size:18px}.welcome-icon{font-size:26px;padding:6px 10px}.metrics{gap:10px;margin-bottom:12px}.metric-card{padding:11px 14px}.metric-card strong{font-size:20px;margin:7px 0 3px}.panel{padding:14px 16px}.panel-heading{margin-bottom:12px}.panel-heading h3{font-size:15px}td,th{padding:8px}.primary,.secondary{padding:8px 13px}.form-grid{gap:11px}.form-grid input,.form-grid select,textarea{padding:8px 10px}.modal{padding:18px}.workspace{padding:20px}.workspace-summary{padding:11px 13px;gap:14px}.workspace-summary strong{font-size:16px}.workspace-form{padding:14px}.workspace-table td,.workspace-table th{padding:8px 6px}.vhg-kanban{gap:8px;padding:4px 0 12px;min-height:0}.vhg-lane{flex:1 1;min-width:190px;padding:7px;min-height:300px;border-radius:9px}.vhg-lane-head{padding:3px 3px 7px;margin-bottom:7px;border-bottom-width:2px}.vhg-lane-head b{font-size:12.5px}.vhg-lane-head small{font-size:11px}.vhg-ticket{gap:4px;padding:8px 9px;margin-bottom:6px;border-radius:7px;cursor:pointer}.vhg-ticket:hover{border-color:#8fb2d3;box-shadow:0 2px 8px rgba(0,22,45,.08)}.vhg-ticket small,.vhg-ticket span{font-size:11px}.t-row{display:flex;justify-content:space-between;align-items:center;gap:6px;min-width:0}.t-code{font-weight:700;color:#155688!important;overflow:hidden;text-overflow:ellipsis}.t-code,.t-due{white-space:nowrap}.t-due{color:#58728a}.t-title{font-size:12.5px!important;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.t-client{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-actions{display:flex;gap:6px;align-items:center;margin-top:2px}.t-actions select{flex:1 1;min-width:0;border:1px solid #d4dfeb;border-radius:5px;background:#fff;color:#334b63}.t-actions .text-button,.t-actions select{font-size:11px;padding:3px 4px}.t-lock{font-size:12px}.vhg-ticket .progress{min-width:0;gap:6px}.vhg-ticket .progress-track{height:4px}.vhg-ticket .progress span{font-size:10px;min-width:26px}.vhg-ticket .ticket-amount{font-size:13px}.density-compact .t-detail{display:none!important}.density-compact .vhg-ticket{gap:3px;padding:7px 8px;margin-bottom:5px}.density-compact .t-actions{display:none}.density-compact .vhg-ticket:focus-within .t-actions,.density-compact .vhg-ticket:hover .t-actions{display:flex}.density-compact .t-title{-webkit-line-clamp:1;display:-webkit-box}@media(max-width:1100px){.vhg-lane{flex:0 0 200px}}.fin-tabs{flex-wrap:wrap;gap:4px}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 12px}.filter-bar label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#506277}.filter-bar label.check-chip{flex-direction:row}.filter-bar input,.filter-bar select{padding:7px 9px;border:1px solid #cbd8e3;border-radius:7px;background:#fff;font-size:12.5px}.filter-bar .grow{flex:1 1;min-width:200px}.filter-bar .segmented{margin-bottom:0}.notice.warn{background:#fff6dc;border-color:#f0d58a;color:#6a5a1e}.notice details{margin-top:8px}.notice pre{white-space:pre-wrap;font-size:11px;max-height:200px;overflow:auto}.settings-box{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0 0 12px;background:#f8fafc}.settings-box summary{cursor:pointer;font-weight:700;font-size:13px;color:#0c2540}.settings-box .form-grid{margin-top:12px}.chart-table td{padding-top:5px;padding-bottom:5px}.chart-table .strong{font-weight:700;color:#0c2540}.tree-toggle{border:0;background:none;width:18px;padding:0;margin-right:4px;cursor:pointer;color:#155688;font-size:12px}.tree-space{display:inline-block;width:22px}.progress-overview>div.progress{flex-direction:row;align-items:center}.progress-list{margin-bottom:18px;border:1px solid #dce5ee;border-radius:10px}.progress-list table{white-space:normal}.progress-list td{vertical-align:middle}.progress-list .progress-edit{min-width:210px}.progress-list .progress-edit input[type=number]{width:62px;padding:5px 6px}.progress-note{width:100%;min-width:180px;padding:6px 8px;border:1px solid #cbd8e3;border-radius:6px;font-size:12px}.pill.status-on{background:#e3f4ea;color:#1d7a4f}.pill.status-off{background:#eef1ef;color:#7a8580}.progress-list td:nth-child(4),.progress-list th:last-child,.progress-list th:last-child .primary{white-space:nowrap}.inline-pair{display:flex;gap:6px}.inline-pair input{flex:1 1;min-width:0}.inline-pair select{width:90px}.pill.in_review{background:#fff1dc;color:#a35a00;font-weight:700}.vhg-ticket-review{border-left:4px solid #e08a00!important;background:#fffaf1}.t-review{display:block;font-size:11px!important;font-weight:600;color:#a35a00!important;background:#fff1dc;border-radius:5px;padding:3px 6px;margin-top:2px;white-space:normal;line-height:1.3}.review-banner{margin:8px 0 0;padding:8px 12px;border-radius:8px;background:#fff1dc;color:#7a4300;font-size:13px}.review-panel{border-left:4px solid #e08a00;margin-top:12px}.review-items{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.review-items li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr);grid-gap:10px;gap:10px;align-items:center;padding:8px 10px;border:1px solid #f1dcb6;border-radius:8px;background:#fffaf1}.review-items .text-button{text-align:left}@media(max-width:800px){.review-items li{grid-template-columns:1fr}}.nf-badge{border:1px solid transparent;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;background:#eef2f6;color:#506277}.nf-badge.nf-checked{background:#e3f4ea;color:#1d7a4f}.nf-badge.nf-received{background:#e6f0fb;color:#1d5b8e}.nf-badge.nf-pending{background:var(--red-soft);color:var(--red)}.nf-badge.nf-na{background:transparent;border-color:#d6e0ea;color:#7b8b9c;font-weight:600}.nf-checklist{display:grid;grid-gap:6px;gap:6px;background:#f6f9fc;border:1px solid #dce5ee;border-radius:9px;padding:10px 12px;font-size:12px}.contract-summary{align-items:center}.contract-summary .primary{margin-left:auto}.contract-card{border:1px solid #dce5ee;border-radius:12px;padding:12px 14px;margin-bottom:12px;background:#fff}.contract-card>header{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.contract-card>header>div:first-child{flex:1 1;min-width:240px}.contract-values{display:flex;gap:14px;font-size:12px;color:#506277}.contract-values b{color:#062447}.contract-items{display:grid;grid-gap:6px;gap:6px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px}.contract-item{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-weight:500!important;font-size:12.5px}.contract-item input[type=checkbox]{width:auto!important}.contract-item .grow{flex:1 1;min-width:0}.pct-input{width:64px!important;text-align:right}.item-value{min-width:96px;text-align:right;color:#062447}.stage-list{display:grid;grid-gap:8px;gap:8px}.stage-row{display:flex;gap:8px;align-items:center}.stage-row input:first-child{flex:1 1}.stage-row input[type=date]{width:150px}.stage-foot{display:flex;justify-content:space-between;align-items:center}.total-row td{background:#f3f7fb}@media(max-width:700px){.contract-values,.stage-row{flex-wrap:wrap}}.ro .heading-actions .secondary:not(.keep),.ro .primary,.ro .row-actions .text-button,.ro .t-actions select,.ro .text-button.danger,.ro .vhg-move,.ro .workspace-form{display:none!important}.ro .progress-edit input,.ro td input,.ro td select{pointer-events:none;opacity:.75}.ro .progress-note{pointer-events:none;background:transparent}.review-box{border:1px dashed #d6dce6;border-radius:10px;padding:10px 14px;margin-bottom:14px;background:#fbfcfe}.review-box.active{border:1px solid #f1c27a;border-left:5px solid #e08a00;background:#fffaf1}.review-box-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.review-box-head p{margin:4px 0 0;font-size:13px}.review-form{margin-top:10px;display:grid;grid-gap:10px;gap:10px}.row-review td{background:#fffaf1}.tag.review-tag{background:#fff1dc;color:#a35a00}.tag.custom-tag{background:#efe7ff;color:#5b3aa6}.perm-head{display:flex;justify-content:space-between;align-items:center}.perm-table td{vertical-align:middle;padding:7px 8px}.perm-table td:first-child{min-width:220px}.perm-box{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px!important;margin-right:12px;font-weight:500!important;font-size:12px;cursor:pointer}.perm-box input{width:auto!important;accent-color:#062447}.perm-diff{font-weight:800!important;color:#5b3aa6}.perm-extras{display:flex;flex-wrap:wrap;gap:4px 0}.howto{padding-left:20px;font-size:13px}.audit-list,.howto{margin:10px 0 0;display:grid;grid-gap:6px;gap:6px}.audit-list{list-style:none;padding:0;font-size:12px}.goal-card .metric-top{display:flex;justify-content:space-between;align-items:center}.goal-track{height:8px;margin:6px 0}.goal-edit{display:grid;grid-gap:8px;gap:8px;margin-top:8px}.goal-edit label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600}.goal-edit input{padding:6px 8px;border:1px solid #cbd8e3;border-radius:6px}.icon-button.small{width:24px;height:24px;font-size:12px}.secondary.small{padding:6px 10px;font-size:12px}.notice{display:block;line-height:1.6}.notice>button:not([class]){float:right;margin:-2px -4px 0 10px;padding:0 4px;font-size:16px;line-height:1;cursor:pointer}.notice:after{content:"";display:block;clear:both}