:root{--ink:#203b31;--muted:#737b76;--paper:#f5f4ef;--line:#dddeda;--accent:#d5e8c7;--warn:#9b5c20}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);padding:11px 17px;border-radius:10px;min-height:44px}button:hover{border-color:var(--ink)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--ink);color:white;border-color:var(--ink)}.small{padding:7px 12px;min-height:38px;font-size:13px}.danger{color:#a53d32}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--ink);color:#eff3ea;padding:34px 23px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:28px}.brand{font-size:26px;letter-spacing:4px;font-weight:600}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#b9c6ba;margin-top:4px}.sidebar button{border:0;background:transparent;color:#c9d3ca;text-align:left}.sidebar button.active{background:#ffffff14;color:white}.sidebar nav{display:grid;gap:8px}.sidebar footer{margin-top:auto;color:#c9d3ca;font-size:12px}.main{padding:35px 44px 100px;max-width:1500px;width:100%;margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:var(--muted)}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:9px 0 12px;font-weight:550}h2{font-size:21px;font-weight:550;margin:0 0 18px}h3{font-size:16px;margin:0 0 12px}.muted{color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.stat strong{display:block;font-size:30px;font-weight:500}.stat span{font-size:13px;color:var(--muted)}.toolbar{display:flex;gap:12px;margin:24px 0}.toolbar input{flex:1}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project{padding:23px;background:white;border:1px solid var(--line);border-radius:15px;cursor:pointer}.project:hover{border-color:#65836c}.project h3{font-size:20px;margin-top:15px}.project p{margin:5px 0;color:var(--muted);font-size:14px}.badge{display:inline-block;background:#edf2e9;color:#436343;border-radius:20px;padding:4px 10px;font-size:11px}.project .meta{margin-top:25px;border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}input,select,textarea{width:100%;padding:11px 12px;background:#fcfcfa;border:1px solid #d9ddd6;border-radius:8px;color:var(--ink);min-height:46px}input:focus,select:focus,textarea:focus{outline:2px solid #a5bf99;outline-offset:1px}label{display:block;font-size:12px;font-weight:500;margin-bottom:6px}textarea{resize:vertical;min-height:105px}.field{min-width:0}.wide{grid-column:1/-1}.steps{display:flex;gap:7px;overflow:auto;padding:8px 0 23px}.steps button{white-space:nowrap;font-size:12px;background:transparent;border-color:transparent}.steps button.active{background:var(--ink);color:white}.panel{margin-bottom:18px}.notice{padding:14px 17px;background:#f5eddc;border-radius:10px;color:#775321;font-size:13px;margin:12px 0 20px}.good{background:#edf3e7;color:#3c6137}.empty{padding:60px 20px;text-align:center;border:1px dashed #c4cfc0;border-radius:14px;color:var(--muted)}.empty h2{color:var(--ink)}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px}.item-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.product-list{display:flex;gap:8px;overflow:auto;margin-bottom:20px}.product-list button{white-space:nowrap}.product-list .active{background:#d5e8c7}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.photo{margin:0}.photo img{width:100%;height:160px;object-fit:cover;border-radius:10px}.photo figcaption{font-size:12px;overflow-wrap:anywhere}.preview{background:white;border:1px solid var(--line);padding:28px;border-radius:12px}.preview dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:9px;font-size:13px}.preview dt{color:var(--muted)}.preview dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.preview h3{padding-top:18px;border-top:1px solid var(--line)}.signature{width:100%;height:190px;display:block;border:1px dashed #9bab99;border-radius:10px;background:#fff;touch-action:none;margin:14px 0}.login{min-height:100vh;display:grid;place-items:center;background:var(--ink);padding:24px}.login .panel{max-width:410px;width:100%;padding:36px}.login .brand{margin-bottom:28px}.login .field{margin-bottom:16px}.login button{width:100%;margin-top:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#203b31;color:#fff;border-radius:10px;padding:12px 20px;box-shadow:0 4px 20px #0002;display:none;max-width:90vw;z-index:20}#toast.show{display:block}.save-state{font-size:12px;color:var(--muted)}.loading{padding:60px}.catalog-table{width:100%;border-collapse:collapse;font-size:13px}.catalog-table th,.catalog-table td{padding:13px 8px;border-bottom:1px solid var(--line);text-align:left}.table-wrap{overflow:auto}a{color:#335c42}.checkline{display:flex;align-items:flex-start;gap:12px;margin:15px 0}.checkline input{width:20px;min-height:20px}.doc{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.error{color:#b43d32;white-space:pre-wrap}.integrations{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.integrations div{border:1px solid var(--line);padding:14px;border-radius:10px;font-size:12px}.integrations strong{display:block}.help{font-size:12px;color:var(--muted);margin-top:7px}.sticky-actions{position:sticky;bottom:0;background:#f5f4eff5;padding:14px 0}.workflow{display:grid;gap:14px}.workflow .panel{margin:0}.workflow p{margin:6px 0 0}.save-error{color:#b43d32}
@media(max-width:1000px){.main{padding:25px}.shell{grid-template-columns:190px 1fr}.sidebar{padding:25px 15px}.projects{grid-template-columns:1fr}}
@media(max-width:700px){.shell{display:block}.sidebar{height:auto;position:static;padding:14px 18px;display:block}.sidebar .brand{font-size:19px}.sidebar .brand small{display:none}.sidebar nav{display:flex;gap:5px;margin-top:12px;overflow:auto}.sidebar nav button{font-size:12px;white-space:nowrap;padding:8px 10px;min-height:35px}.sidebar footer{display:none}.main{padding:23px 16px 50px}h1{font-size:27px}.topbar{align-items:flex-start;gap:10px}.topbar>.row{justify-content:flex-end}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:25px}.stat span{font-size:10px}.grid{grid-template-columns:1fr}.panel{padding:20px 16px}.photos{grid-template-columns:repeat(2,1fr)}.integrations{grid-template-columns:1fr}.toolbar{flex-direction:column}.preview{padding:18px}.preview dl{grid-template-columns:1fr 1.4fr}.actions{gap:8px}.steps{margin:0 -5px}.steps button{padding:9px 10px}.doc{font-size:12px}.topbar .small{font-size:11px}}

.review-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#e7ecdd;color:#203b31;padding:12px 24px;font-size:12px;border-bottom:1px solid #bccab1}.review-banner strong{white-space:nowrap}.review-banner span{flex:1}.review-banner button,.import-button{font-size:12px;margin:0;padding:7px 12px;background:#ffffffa8;border:1px solid #bac5b2;border-radius:7px;cursor:pointer;min-height:34px}.import-button input{display:none}.sidebar{top:0}.project{text-align:left}@media(max-width:700px){.review-banner{padding:10px 16px;gap:8px}.review-banner span{flex-basis:100%}.review-banner button,.import-button{flex:1;text-align:center}}

/* Measurement fields follow the same vertical order on phones and tablets. */
#editor-body{max-width:780px;margin:0 auto}#editor-body .grid{grid-template-columns:minmax(0,1fr)}
.usage-guide{margin:0 0 22px;background:white;border:1px solid var(--line);border-radius:14px;padding:17px 20px}.usage-guide summary{cursor:pointer;font-weight:600;min-height:28px}.usage-guide ol{padding-left:22px}.usage-guide li{margin:10px 0}.usage-guide p{font-size:13px;color:var(--muted)}
@media(max-width:800px){
 .shell{display:block}.sidebar{position:static;height:auto;padding:18px 16px}.sidebar .brand{font-size:22px}.sidebar .brand small,.sidebar footer{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:15px}.sidebar nav button{padding:10px 5px;font-size:12px;text-align:center;white-space:normal;min-height:46px}
 .main{padding:22px 16px max(45px,env(safe-area-inset-bottom));min-width:0}.topbar{flex-direction:column;align-items:stretch;gap:14px}.topbar #back{align-self:flex-start}.topbar #new{width:100%}
 .grid,.projects,.photos{grid-template-columns:minmax(0,1fr)}.panel{padding:22px 17px}.field{margin-bottom:3px}label{font-size:14px;margin-bottom:9px}input,select,textarea{font-size:16px;min-height:54px;padding:14px 12px;max-width:100%}textarea{min-height:125px}
 button,.small{min-height:48px}.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;padding-bottom:22px;margin:0}.steps button{white-space:normal;font-size:13px;text-align:left;border:1px solid var(--line);padding:12px;min-height:48px}.steps button:last-child{grid-column:1/-1}
 .item-head{align-items:flex-start;flex-direction:column;gap:10px}.product-list{display:grid;grid-template-columns:1fr;overflow:visible}.product-list button{text-align:left;white-space:normal;overflow-wrap:anywhere}
 .actions{display:flex;flex-direction:column-reverse;gap:10px}.actions button{width:100%;min-height:54px}.actions span:empty{display:none}.sticky-actions{padding-bottom:max(12px,env(safe-area-inset-bottom));z-index:3}
 .preview dl{display:block}.preview dt{margin-top:15px;font-size:12px}.preview dd{margin-top:3px;font-size:15px}.signature{height:210px}.doc{align-items:flex-start;flex-direction:column}.doc a{display:block;padding:12px 0;font-size:15px}.integrations{grid-template-columns:1fr}.stats{gap:7px}.stat{padding:15px 9px}.stat span{font-size:11px}.project .meta{flex-direction:column;gap:6px}
 .review-banner{padding:12px 16px}.review-banner button,.import-button{min-height:44px;flex-basis:calc(50% - 8px);display:grid;place-items:center}#toast{bottom:max(18px,env(safe-area-inset-bottom));font-size:14px}.help{font-size:13px;line-height:1.6}
}

@media(max-width:800px){.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-list{padding-left:20px}.guide-list li{margin:14px 0;line-height:1.6}}
.decor-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.decor-card{border:1px solid var(--line);border-radius:12px;padding:18px;overflow-wrap:anywhere}.decor-card strong{font-size:14px}.decor-card h3{margin:8px 0}.decor-card p{font-size:13px;margin:6px 0}.decor-card .help{font-size:12px}@media(max-width:800px){.decor-results{grid-template-columns:minmax(0,1fr)}}

.goal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.goal-metrics h2{font-size:30px;margin:12px 0}.goal-rows>div{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.goal-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.goal-role-grid .decor-card p{font-size:14px}.guide-list{padding-left:22px}.guide-list li{margin:12px 0}@media(max-width:800px){.goal-metrics,.goal-role-grid{grid-template-columns:1fr}.goal-rows>div{grid-template-columns:1fr;gap:6px}.sidebar nav button[data-nav="goal"]{grid-column:1/-1}}
.material-tools{margin-top:12px}.material-tools>.small{width:100%}.selected-material{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#f8faf6;padding:14px;margin-top:12px}.selected-material img{width:140px;height:140px;object-fit:contain;border-radius:8px;background:#fff}.selected-material p{font-size:13px;margin:5px 0;overflow-wrap:anywhere}.material-no-image{display:grid;place-items:center;min-height:120px;padding:15px;border-radius:8px;background:#efefea;color:#646e66;text-align:center;font-size:13px}.material-picker{width:min(1050px,94vw);max-height:90dvh;border:1px solid var(--line);border-radius:16px;padding:24px;color:var(--ink);background:var(--paper);overflow:auto}.material-picker::backdrop{background:#112b22a6}.picker-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;position:sticky;top:-24px;background:var(--paper);padding:18px 0;z-index:2}.picker-header h2{margin:5px 0}.picker-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.picker-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.material-result{display:grid;grid-template-columns:125px minmax(0,1fr);gap:14px;border:1px solid var(--line);border-radius:12px;padding:15px;background:white;overflow-wrap:anywhere}.material-result img{width:125px;height:125px;object-fit:contain;background:#f6f6f3;border-radius:8px}.material-result p{font-size:13px;margin:7px 0}.material-result h3{font-size:15px;margin:5px 0}.material-result button{width:100%}.product-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.product-types button{text-align:left;min-height:64px}.sample-upload{display:block;border:1px dashed #9db38e;border-radius:8px;padding:14px;margin:14px 0;cursor:pointer}.sample-upload input{margin-top:10px}.extra-ref{margin:18px 0}.material-sample{margin-top:15px}@media(max-width:800px){.material-picker{width:96vw;max-height:94dvh;padding:16px}.picker-header{top:-16px;padding:12px 0}.picker-filters,.picker-results,.product-types{grid-template-columns:1fr}.material-result,.selected-material{grid-template-columns:1fr}.material-result img,.selected-material img{width:100%;height:180px}.material-result button{min-height:52px}.product-types button{min-height:58px}}

.schematic{margin:12px 0;break-inside:avoid}.schematic svg{display:block;width:100%;max-width:600px;height:auto;margin:auto}.sketch-panel .form-grid{grid-template-columns:1fr}

.cost-table-wrap{overflow-x:auto}.cost-table-wrap table{width:100%;border-collapse:collapse}.cost-table-wrap th,.cost-table-wrap td{padding:10px;text-align:left;border-bottom:1px solid #ddd;vertical-align:top}#cost-orders textarea{width:100%;box-sizing:border-box}
.costing-workspace input[type="checkbox"]{display:inline-block;width:20px;height:20px;min-height:20px;padding:0;margin:0 9px 0 0;vertical-align:middle;flex:none}
.costing-workspace label:has(>input[type="checkbox"]){display:flex;align-items:center;gap:4px;line-height:1.5;min-height:44px}
.costing-workspace .grid>label{min-width:0}.costing-workspace #cost-lines{overflow-wrap:anywhere}.costing-workspace .cost-table-wrap table{min-width:470px}
.costing-workspace #cost-orders textarea{min-height:240px;white-space:pre-wrap;resize:vertical}
#doc-supplier-field[hidden]{display:none}

/* Versioned documents and isolated client acknowledgement. */
.document-viewer{width:min(1100px,96vw);height:94dvh;max-height:94dvh;border:1px solid var(--line);border-radius:18px;padding:24px;background:var(--paper);color:var(--ink);overflow:auto}.document-viewer::backdrop{background:#10281ed9}.document-viewer header{justify-content:space-between}.document-viewer iframe{display:block;width:100%;height:58dvh;border:1px solid var(--line);border-radius:10px;background:white;margin:18px 0}.document-viewer .help{overflow-wrap:anywhere}.client-document{width:min(1000px,100vw)}.client-document .signature{height:180px}.document-viewer label input[type=checkbox],#editor-body input[type=checkbox]{width:22px;height:22px;min-height:22px;flex:none}#editor-body #doc-price-lines .decor-card{margin-bottom:14px}#editor-body summary{cursor:pointer;padding:8px 0;min-height:44px}#editor-body details>.grid{margin-top:18px}@media(max-width:800px){.document-viewer{width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:18px 16px max(24px,env(safe-area-inset-bottom));border-radius:0}.document-viewer iframe{height:48dvh}.document-viewer h2{font-size:18px;overflow-wrap:anywhere}.document-viewer .row>*{max-width:100%}.document-viewer button{min-height:50px}}

.learning-main{max-width:1020px;margin:0 auto;padding:48px 28px 80px}.learning-header{margin-bottom:28px}.learning-header .brand{margin-bottom:32px}.learning-header p{font-size:17px;max-width:720px}.learning-main h1{font-size:36px;max-width:800px}.learning-main label{font-size:14px}.learning-header progress{width:100%;height:14px;accent-color:#335c42}.learning-tabs{display:flex;gap:8px;overflow-x:auto;padding:6px 0 20px}.learning-tabs button{min-width:190px;text-align:left;flex:none;max-width:240px;white-space:normal}.learning-lesson{font-size:17px;line-height:1.65}.learning-lesson h2{font-size:26px;margin-top:12px}.learning-lesson li{margin:20px 0}.learning-lesson .row{justify-content:space-between}.learning-main summary{cursor:pointer;min-height:40px}@media(max-width:800px){.learning-main{padding:24px 16px 60px}.learning-main h1{font-size:29px}.learning-header .brand{font-size:22px;letter-spacing:2px}.learning-tabs button{min-width:165px;font-size:14px}.learning-lesson{font-size:16px}.learning-lesson .row>*{width:100%}}

/* DENZEL UI system: quiet surfaces, readable hierarchy, predictable controls. */
:root{--ink:#21372f;--muted:#58665f;--paper:#f4f5f2;--line:#dce2dc;--accent:#e6eee7;--warn:#865020;--radius:16px;color-scheme:light;font-size:100%}
[hidden]{display:none!important}body{font-size:1rem;line-height:1.55;-webkit-text-size-adjust:100%}h1{font-size:clamp(1.9rem,3.3vw,2.8rem);font-weight:650;letter-spacing:-.035em;line-height:1.12;text-wrap:balance}h2{font-size:1.35rem;font-weight:650;letter-spacing:-.02em}h3{font-size:1.05rem;line-height:1.4;font-weight:650}.muted,.help{color:var(--muted)}.help,small,.meta{font-size:.875rem}.eyebrow{font-size:.75rem;letter-spacing:.1em;font-weight:600}.main{max-width:1680px;min-width:0;margin:0 auto;padding:2.5rem 3rem 5rem}.shell{grid-template-columns:240px minmax(0,1fr)}.sidebar{background:#f9faf7;color:var(--ink);border-right:1px solid var(--line);padding:2rem 1.25rem;gap:2rem;overflow-y:auto}.brand{font-size:1.55rem;letter-spacing:.16em;font-weight:650}.brand small{font-size:.625rem;letter-spacing:.12em;color:var(--muted)}.sidebar button{color:#46594e;width:100%;font-weight:550}.sidebar button:hover{background:#eef1eb}.sidebar button.active{color:#193d2b;background:#e3ebe1;font-weight:650}.sidebar footer{color:var(--muted);font-size:.875rem}.sidebar footer button{margin-top:.8rem}.secondary-nav summary{padding:.6rem .8rem;cursor:pointer;font-size:.875rem;font-weight:600}.secondary-nav nav{margin-top:.6rem}.secondary-nav button{font-size:.9rem}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 4px #162a1b03;padding:1.5rem;margin-bottom:1.25rem}.narrow{max-width:750px}button,.button{min-height:44px;border-radius:10px;font-size:.9375rem;font-weight:550;padding:.65rem 1rem;transition:background-color 140ms ease,border-color 140ms ease,transform 120ms cubic-bezier(.23,1,.32,1);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}button:active:not(:disabled),.button:active{transform:scale(.98)}button:disabled{cursor:not-allowed}.primary{background:#244d38;border-color:#244d38;color:#fff}.primary:hover{background:#173c29;color:white}.small{min-height:44px;font-size:.875rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #487960;outline-offset:3px}input,select,textarea{font-size:1rem;min-height:46px;background:#fff;border-radius:9px;border:1px solid #c6d0c8;color:#21372f;padding:.65rem .8rem;width:100%;max-width:100%}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:#244d38;flex:none}label{font-size:.9375rem;font-weight:550;display:block;margin-bottom:1rem}label input,label select,label textarea{margin-top:.35rem}textarea{line-height:1.55;resize:vertical}fieldset{border:1px solid var(--line);border-radius:12px;margin:1rem 0;padding:1rem}legend{font-weight:600;padding:0 .4rem}.checkline{display:flex;align-items:center;gap:.7rem;min-height:44px}.checkline input{margin:0}.grid{gap:1.1rem 1.4rem}.topbar{align-items:flex-start;margin-bottom:2rem}.topbar p{max-width:680px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin:1.4rem 0}.stat{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:1.15rem;min-width:0;gap:.4rem}.stat strong{font-size:clamp(1.3rem,2.5vw,1.9rem);font-variant-numeric:tabular-nums;line-height:1.15;overflow-wrap:anywhere}.stat span{font-size:.875rem;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-heading h2{margin:0}.project-context{display:flex;gap:1rem 1.5rem;flex-wrap:wrap;color:var(--muted);font-size:.9375rem;margin-bottom:1.4rem}.project-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;border-bottom:1px solid var(--line);padding-bottom:.7rem}.project-tabs button{border:0;background:transparent;color:var(--muted)}.project-tabs button.active{background:#e3ebe1;color:#1f4d33}.crm-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem 1rem}.segmented{display:inline-flex;background:#eef1ec;border-radius:11px;padding:3px;gap:3px}.segmented button{border:0;background:transparent;min-height:38px;padding:.4rem .9rem}.segmented button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #173c2914}.crm-board{display:flex;overflow-x:auto;gap:1rem;padding:0 0 1rem;max-width:100%;align-items:flex-start;scroll-snap-type:x proximity}.crm-column{background:#e9ede7;border:1px solid #e0e5de;border-radius:16px;padding:.8rem;min-width:290px;width:310px;flex:none;scroll-snap-align:start}.crm-column>header{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.4rem .4rem 1rem;min-height:70px}.crm-column>header h2{font-size:1rem;margin:0;max-width:230px}.crm-column>header span{font-size:.875rem;color:var(--muted)}.crm-card{width:100%;display:block;text-align:left;padding:1.1rem;background:#fff;border:1px solid #dce2da;border-radius:12px;margin-bottom:.7rem;min-width:0}.crm-card h3{font-size:1.1rem;margin:.4rem 0 .7rem}.crm-card p{margin:.5rem 0;font-size:.9rem}.crm-card:hover{border-color:#8da793;box-shadow:0 3px 12px #2547320a}.crm-card:active{transform:none}.crm-next{display:grid;gap:.3rem;border-top:1px solid var(--line);padding-top:.8rem;margin-top:.8rem}.crm-next strong{font-size:.9375rem}.crm-next span{font-size:.875rem;color:var(--muted)}.risk{font-size:.8rem;line-height:1.3;font-weight:600;background:#fbefdf;color:#81501e;padding:.35rem .5rem;border-radius:6px;display:inline-block}.badge{font-size:.8rem;font-weight:600;background:#e8efe7;color:#294d34;border-radius:6px;padding:.3rem .5rem}.stage-distribution{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.stage-distribution button{justify-content:space-between;text-align:left}.table-scroll{overflow-x:auto;padding:.5rem}.table-scroll table{width:100%;min-width:1000px;border-collapse:collapse;font-size:.9375rem}.table-scroll th,.table-scroll td{padding:1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.table-scroll th{font-size:.8rem;color:var(--muted);font-weight:650}.table-scroll small{display:block;margin-top:.4rem;color:var(--muted)}.timeline-entry{border-left:2px solid #d7e3d7;padding:.3rem 0 .3rem 1rem;margin:1rem 0;overflow-wrap:anywhere}.timeline-entry time{display:block;color:var(--muted);font-size:.875rem;margin-bottom:.3rem}.task-row{border:1px solid var(--line);border-radius:14px;background:white;padding:1.2rem;margin:1rem 0}.task-row h3{margin-top:.8rem}.task-row p{white-space:pre-wrap;overflow-wrap:anywhere}.task-row .row{margin-top:1rem}.document-viewer{max-width:100%;overscroll-behavior:contain;box-shadow:0 20px 70px #10281e30}.document-viewer::backdrop{background:#142a224f;backdrop-filter:blur(4px)}.document-viewer>header{position:sticky;top:-24px;background:#f4f5f2ed;backdrop-filter:blur(16px);z-index:5;padding:.8rem 0;gap:1rem}.notice{border-radius:12px;padding:1rem 1.2rem;line-height:1.6}.doc{gap:1rem;overflow-wrap:anywhere}.doc>div{min-width:0}.save-state{font-size:.875rem}.empty{padding:2rem;text-align:center}.learning-lesson{font-size:1.0625rem}#toast{font-size:1rem;max-width:min(560px,calc(100vw - 32px));box-shadow:0 8px 30px #17291f22}.projects{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
@media(max-width:1100px){.shell{grid-template-columns:210px minmax(0,1fr)}.main{padding:2rem 1.5rem 4rem}.crm-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.shell{display:block}.sidebar{position:relative;height:auto;padding:1rem;border-right:0;border-bottom:1px solid var(--line);gap:1rem;overflow:visible}.sidebar .brand{font-size:1.2rem}.sidebar>nav{display:flex;overflow-x:auto;gap:.25rem;padding-bottom:.2rem}.sidebar>nav button{width:auto;white-space:nowrap;flex:none;padding:.6rem .8rem}.sidebar footer{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:space-between}.sidebar footer button{width:auto;margin:0}.sidebar footer br{display:none}.secondary-nav nav{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:1.5rem 1rem 3rem}.panel{padding:1.1rem;border-radius:14px}.topbar{gap:1rem;flex-wrap:wrap;margin-bottom:1.3rem}.topbar h1{font-size:2rem}.topbar>button{width:100%}.crm-filters,.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:1rem}.project-tabs{gap:.3rem}.project-tabs button{padding:.55rem .8rem;font-size:.9rem}.stage-distribution{grid-template-columns:1fr}.crm-column{min-width:270px;width:85vw;max-width:320px}.project-context{font-size:.875rem;gap:.5rem}.document-viewer>header{top:-18px}.document-viewer header h2{max-width:70%;font-size:1.15rem}.document-viewer .grid{grid-template-columns:1fr}.doc{flex-wrap:wrap}.doc>.row{width:100%}.task-row{padding:1rem}.task-row .row button{flex:1 1 130px}.actions{flex-wrap:wrap}.actions button{flex:1 1 140px}.learning-main{padding:1.5rem 1rem 3rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}button:active:not(:disabled),.button:active{transform:none}}
@media(prefers-reduced-transparency:reduce){.document-viewer>header{background:#f4f5f2;backdrop-filter:none}.document-viewer::backdrop{backdrop-filter:none}}
@media(prefers-contrast:more){:root{--muted:#334a3a;--line:#829586}.panel,button,input,select,textarea{border-color:#829586}}

/* Company identity shared by login, workspace and training. */
.company-brand{display:flex;align-items:center;gap:.75rem;letter-spacing:.13em;font-size:1.05rem;line-height:1.15;max-width:100%;color:var(--ink)}.company-brand img{width:40px;height:40px;border-radius:10px;flex:none}.company-brand>span{display:block;min-width:0}.company-brand small{font-size:.65rem;font-weight:600;letter-spacing:.18em;color:var(--muted);margin-top:.3rem}.sidebar .company-brand{font-size:1.05rem}.login .company-brand{margin-bottom:1.6rem}.learning-header .company-brand{margin-bottom:1.5rem}h1{font-size:2rem;line-height:1.18;letter-spacing:-.025em}h2{line-height:1.3}.table-scroll td,.stat strong{font-variant-numeric:tabular-nums}::selection{background:#d8e7d9;color:#173c29}input,textarea{caret-color:#244d38}a{text-underline-offset:.2em}.section-heading{align-items:flex-start}.section-heading>button{flex:none}.sidebar button{justify-content:flex-start}.project-tabs button:disabled{cursor:default}button[aria-busy=true]{cursor:progress}.empty p{max-width:55ch;margin:.7rem auto}.notice p{max-width:70ch}.panel>.row+h3{margin-top:1.5rem}.sidebar .secondary-nav button{font-size:.9rem}@media(max-width:800px){.sidebar .company-brand{font-size:.95rem}.sidebar .company-brand img{width:34px;height:34px}.sidebar>nav{scroll-padding-inline:.5rem}.main{padding-top:1.25rem}h1,.topbar h1{font-size:1.75rem}.section-heading{flex-wrap:wrap}.section-heading h2{flex:1 1 150px}}

/* Owner reports: visual scales never change underlying ledger amounts. */
.report-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:1rem}.report-filters label{margin:0}.report-metrics .stat{cursor:pointer}.report-count{display:flex;justify-content:space-between;gap:1rem;width:100%;text-align:left;margin:.5rem 0}.report-count strong{font-variant-numeric:tabular-nums}.report-month{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.report-month meter{display:block;width:100%;height:1rem;margin:.4rem 0}.report-month meter::-webkit-meter-bar{background:#edf1eb;border:0;border-radius:4px}.report-income::-webkit-meter-optimum-value{background:#315e45}.report-expense::-webkit-meter-optimum-value{background:#9a6b47}.report-income::-moz-meter-bar{background:#315e45}.report-expense::-moz-meter-bar{background:#9a6b47}.report-metrics small{color:var(--muted)}@media(max-width:800px){.report-filters{grid-template-columns:1fr}.report-count{flex-wrap:wrap;justify-content:flex-start}.report-month{grid-template-columns:1fr}}

.report-parameters summary,.report-quality summary{cursor:pointer;line-height:1.55}.report-parameters[open] summary{margin-bottom:1.2rem}.report-quality p{margin-bottom:0}.report-filters{min-width:0}

.break-anywhere{overflow-wrap:anywhere;word-break:break-word}

.bot-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6;padding:16px;background:var(--paper);border-radius:12px}

/* Keep exact monetary values together; narrow cards must not split decimals. */
.money-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.money-metrics .stat{container-type:inline-size}
.money-metrics .stat strong{white-space:nowrap;overflow-wrap:normal;font-size:1.375rem;font-size:clamp(1rem,calc(155cqi / var(--metric-ch,20)),1.875rem)}
@media(max-width:480px){.money-metrics{grid-template-columns:1fr}}

/* DENZEL operating interface: legible daylight surfaces, semantic colour, quiet depth. */
:root{
 --ink:#24352f;--muted:#5c6863;--paper:#f3f5f4;--line:#dce3df;--accent:#e7f0e9;--warn:#85551b;
 --forest:#153d30;--forest-deep:#103126;--surface:#fff;--surface-soft:#f7f9f8;
 --blue:#315e8c;--blue-soft:#edf3fa;--violet:#705295;--violet-soft:#f1ecf8;
 --success:#296345;--success-soft:#eaf4ed;--danger:#9b413a;--danger-soft:#faefed;
 --amber:#85551b;--amber-soft:#fbf2e2;--radius:16px;
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-optical-sizing:auto;
}
body{background:var(--paper);color:var(--ink);font-weight:400;line-height:1.6}
::selection{background:#cce5d6;color:#143d2a}
input,textarea{caret-color:var(--forest)}
*{scrollbar-color:#a8b9af transparent;scrollbar-width:thin}
a{text-underline-offset:.22em;text-decoration-thickness:1px}
h1{font-weight:680;letter-spacing:-.03em;line-height:1.14}h2{font-size:1.3rem;letter-spacing:-.02em;line-height:1.3;font-weight:650}h3{font-weight:630;letter-spacing:-.012em}
.main{padding:2.5rem 3rem 5rem}.topbar{gap:1.5rem;margin-bottom:2rem}.topbar p{max-width:68ch;margin:.7rem 0 0;color:var(--muted)}
.panel,.preview,.usage-guide{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:none;padding:1.6rem;margin-bottom:1.4rem}
.panel>h2,.preview>h2{margin-bottom:1.2rem}.panel>p,.panel>form>p{max-width:75ch}.grid{gap:1rem 1.5rem}
button,.button{font-weight:580;border-radius:11px;border-color:#cdd8d1;transition:background-color 140ms ease,border-color 140ms ease,transform 120ms ease-out}
button:hover:not(:disabled){background:#f0f5f1;border-color:#9eb5a7}.primary{background:var(--forest);border-color:var(--forest);color:white}.primary:hover:not(:disabled){background:#0d3022;border-color:#0d3022;color:white}
button:active:not(:disabled),.button:active{transform:scale(.98)}button:disabled{opacity:.55;cursor:not-allowed}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4b8465;outline-offset:3px}
input,select,textarea{background:var(--surface-soft);border:1px solid #c7d3cb;border-radius:10px;box-shadow:none;font-weight:400;line-height:1.5}
input::placeholder,textarea::placeholder{color:#65746b;opacity:1}input:focus,select:focus,textarea:focus{background:white;border-color:#53826a;outline:2px solid #53826a;outline-offset:1px}
label{font-weight:580;color:#354a3f}fieldset{border-color:var(--line)}.help,.muted,.save-state{color:var(--muted)}.help{line-height:1.65}
.sidebar{background:var(--forest-deep);color:#edf4ef;border:0;padding:2rem 1.15rem;gap:1.8rem}
.sidebar .company-brand{color:#f2f6f3;gap:.8rem}.sidebar .company-brand small{color:#b4cbbd}.sidebar .company-brand img{border-radius:10px}
.sidebar nav{gap:.35rem}.sidebar button{color:#d1e0d6;border:0;justify-content:flex-start;font-size:.925rem;padding:.75rem .85rem;min-height:47px}
.sidebar button:hover:not(:disabled){background:#244b3b;border:0;color:#fff}.sidebar button.active{background:#e7f0e8;color:#173f2b;font-weight:650}
.sidebar .secondary-nav summary{color:#bed3c6;font-weight:550;padding:.6rem .85rem}.sidebar .secondary-nav nav{margin-top:.5rem}.sidebar footer{font-size:.82rem;color:#c5d7cb;line-height:1.7;border-top:1px solid #325242;padding-top:1rem}
.sidebar footer button{color:#d1e0d6}.nav-icon{width:19px;height:19px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.sidebar button span{min-width:0}.sidebar button .nav-icon{margin-right:.35rem}
.stats{background:white;border:1px solid var(--line);border-radius:16px;gap:0;overflow:hidden;margin:1.5rem 0}
.stat{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:1.25rem 1.35rem;gap:.5rem;justify-content:center;min-height:110px}
.stat:last-child{border-right:0}.stat strong{font-weight:650;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-weight:500;line-height:1.4}.stat small{font-size:.76rem;color:var(--muted)}
.stat[data-metric=new] strong{color:var(--blue)}.stat[data-metric=confirmed] strong{color:var(--success)}.stat[data-metric=overdue] strong{color:var(--danger)}.stat[data-metric=missing_next] strong{color:var(--amber)}
.project-tabs{border-bottom:0;padding:5px;background:#e8eeea;border-radius:13px;gap:4px;width:fit-content;max-width:100%;margin-bottom:1.6rem}
.project-tabs button{border-radius:9px;min-height:42px;font-size:.9rem;color:#53675a}.project-tabs button.active{background:#fff;color:var(--forest);box-shadow:0 2px 6px #102d2010}
.project-context{font-size:.88rem;color:var(--muted);gap:.65rem 1.5rem}.project-context strong{color:var(--ink)}
.crm-column{background:#eaf0ec;border:0;border-radius:16px;padding:.8rem}.crm-column>header{min-height:64px;padding:.4rem .4rem 1rem}.crm-column>header span{display:grid;place-items:center;min-width:28px;height:28px;border-radius:8px;background:#dce7df;color:#315441;font-weight:650}
.crm-card{border:1px solid var(--line);border-radius:13px;box-shadow:none;padding:1.15rem}.crm-card:hover{box-shadow:none;border-color:#a3bbac;background:#fff}.crm-card h3{font-size:1.12rem;letter-spacing:-.015em}.crm-card p{font-size:.875rem;color:var(--muted)}
.card-meta{display:flex;gap:.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.card-meta .eyebrow{font-size:.7rem;letter-spacing:.065em}.stage-pill{font-size:.72rem;font-weight:600;line-height:1.3;padding:.3rem .5rem;border-radius:6px;max-width:100%;background:#eef1f0;color:#4d6258}
.stage-pill[data-stage-index="0"],.stage-pill[data-stage-index="1"]{background:var(--blue-soft);color:var(--blue)}.stage-pill[data-stage-index="2"],.stage-pill[data-stage-index="3"]{background:var(--violet-soft);color:var(--violet)}.stage-pill[data-stage-index="4"]{background:var(--amber-soft);color:var(--amber)}.stage-pill[data-stage-index="5"],.stage-pill[data-stage-index="6"],.stage-pill[data-stage-index="7"]{background:var(--success-soft);color:var(--success)}
.crm-next{background:#f5f8f6;border:0;border-radius:8px;padding:.75rem;margin-top:1rem}.crm-next span{font-size:.8rem}.crm-next strong{font-size:.9rem}.risk{background:var(--amber-soft);color:var(--amber);font-size:.76rem;border-radius:6px;font-weight:600}
.crm-card[data-overdue=true] .risk{background:var(--danger-soft);color:var(--danger)}
.stage-distribution{gap:.65rem}.stage-distribution button{display:grid;grid-template-columns:1fr auto;gap:.65rem 1rem;position:relative;padding:1rem;align-content:center;background:#fafcfb;border:1px solid #e0e7e2;font-size:.9rem;border-radius:10px}
.stage-distribution strong{font-size:1.2rem;font-variant-numeric:tabular-nums}.stage-bar{display:block;grid-column:1/-1;height:5px;background:#e7eeea;border-radius:3px;overflow:hidden}.stage-bar i{display:block;height:100%;background:var(--forest);border-radius:inherit}
.stage-distribution button:nth-child(-n+2) .stage-bar i{background:var(--blue)}.stage-distribution button:nth-child(3) .stage-bar i,.stage-distribution button:nth-child(4) .stage-bar i{background:var(--violet)}.stage-distribution button:nth-child(5) .stage-bar i{background:#b58238}
.panel:has(>#work-tasks){border:0;background:transparent;padding:0;box-shadow:none}.task-row{background:white;border:1px solid var(--line);border-radius:16px;padding:1.4rem;margin:1rem 0}.task-row h3{font-size:1.15rem;line-height:1.45;margin:.9rem 0 .65rem}.task-row p{font-size:.94rem}.task-row .row{padding-top:.8rem;border-top:1px solid #e9eeeb;margin-top:1rem;gap:.5rem}.task-assignment{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.task-assignment strong{font-weight:550}.task-assignment time{color:var(--muted);font-size:.85rem}
.status-pill{display:inline-flex;align-items:center;gap:.4rem;border-radius:7px;padding:.35rem .6rem;font-size:.77rem;font-weight:650;line-height:1.35;background:#eef1f2;color:#53626c}.status-pill::before{content:"";width:5px;height:5px;flex:none;border-radius:50%;background:currentColor}
.status-pill[data-state=todo]{color:var(--blue);background:var(--blue-soft)}.status-pill[data-state=in_progress]{color:#315b91;background:#e9f1fc}.status-pill[data-state=review]{color:var(--violet);background:var(--violet-soft)}.status-pill[data-state=done]{color:var(--success);background:var(--success-soft)}.status-pill[data-state=cancelled]{color:#5b6570;background:#eef0f2}.status-pill[data-blocked=true]{color:var(--danger);background:var(--danger-soft)}
.task-distribution{padding:1.2rem 0;margin:1rem 0}.task-distribution h3{font-size:.9rem;font-weight:600;margin:0 0 .85rem;color:var(--muted)}.status-track{height:9px;display:flex;overflow:hidden;border-radius:4px;background:#e5ece7;gap:2px}.status-track i{display:block;height:100%;min-width:0;background:#a9b6af}.status-track [data-state=todo]{background:#7da2c5}.status-track [data-state=in_progress]{background:#426fa5}.status-track [data-state=review]{background:#9373b0}.status-track [data-state=done]{background:#4d8863}.status-track [data-state=cancelled]{background:#a1aaa5}
.status-legend{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;padding-top:.9rem;font-size:.8rem;color:var(--muted)}.status-legend strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:.3rem}
.notice{background:var(--amber-soft);color:var(--amber);border-radius:12px;font-size:.875rem}.notice.good,.good{background:var(--success-soft);color:var(--success)}.notice.error{background:var(--danger-soft);color:var(--danger)}.task-row[data-blocked=true]>.notice,.task-row[data-blocked=true] .notice:not(.good){background:var(--danger-soft);color:var(--danger)}
.doc{padding:1rem 0;border-color:#e5ebe7}.doc p{color:var(--muted)}.doc strong{color:var(--ink)}.table-scroll th,.catalog-table th{background:#f3f7f4;color:#52675a;font-size:.78rem;font-weight:650}.table-scroll td,.catalog-table td{font-size:.9rem;border-color:#e5ebe7}.table-scroll tr:hover td{background:#fafcfb}
.cash-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);gap:1rem;overflow-x:auto;padding:1rem 0 .8rem;scroll-snap-type:x proximity;max-width:100%}.cash-month{scroll-snap-align:start;min-width:0}.cash-month>strong{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.cash-columns{height:160px;display:flex;align-items:flex-end;justify-content:center;gap:12px;border-bottom:1px solid #cedbd2;margin:.8rem 0 1rem;padding:0 15px}.cash-columns i{display:block;width:32px;max-width:35%;border-radius:5px 5px 0 0;min-height:0;background:#40755a}.cash-columns i:last-child{background:#b78150}.cash-month p{font-size:.78rem;margin:.45rem 0;color:var(--muted);line-height:1.5}.cash-month p strong{display:block;font-size:.95rem;color:var(--ink);font-variant-numeric:tabular-nums}.chart-key{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:.4rem;background:#40755a}.chart-key.expense{background:#b78150}
.report-count{border:0;border-radius:8px;background:#f5f8f6;padding:.85rem 1rem;font-size:.875rem}.report-count strong{color:var(--forest)}
.material-picker,.document-viewer{border:0;border-radius:16px;background:var(--paper);box-shadow:0 20px 70px #0d302637}.material-picker::backdrop,.document-viewer::backdrop{background:#102b2159;backdrop-filter:blur(5px)}.picker-header,.document-viewer>header{background:#f3f5f4f2;backdrop-filter:blur(16px)}.material-result,.decor-card{border-radius:13px;border-color:var(--line);background:white;box-shadow:none}.material-no-image{background:#eef2ef;color:#5c6c61}
.selected-material{background:#f2f7f3;border-color:#d4e2d8}.sticky-actions{background:#f3f5f4f2;backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-top:1rem}
.learning-module{border-radius:14px}.learning-lesson{line-height:1.75;max-width:72ch}.learning-header h1{max-width:22ch}.bot-preview{background:#edf3ef;border-radius:12px;line-height:1.7}
#toast{background:var(--forest-deep);border-radius:12px;box-shadow:0 8px 24px #102c2422}
@media(min-width:1500px){.main{padding:3rem 3.5rem 5rem}}
@media(max-width:1100px){.main{padding:2rem 1.5rem 4rem}.stat{padding:1.1rem}}
@media(max-width:800px){
 .shell{display:block}.sidebar{background:#fbfcfb;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;padding:1rem;border-bottom:1px solid var(--line);height:auto;position:static;overflow:visible}
 .sidebar>.company-brand{grid-row:1;grid-column:1;font-size:.95rem;color:var(--forest);gap:.55rem}.sidebar>.company-brand img{width:35px;height:35px}.sidebar .company-brand small{color:var(--muted)}
 .sidebar>nav{grid-row:2;grid-column:1/-1;display:flex;overflow-x:auto;gap:.25rem;padding:0 0 .2rem;margin:0}.sidebar>nav button{color:#52665a;font-size:.8rem;min-height:43px;padding:.6rem .75rem;width:auto;flex:none;white-space:nowrap}.sidebar>nav button.active{background:#e4eee7;color:#173f2b}.sidebar button:hover:not(:disabled){background:#eaf1ec;color:#173f2b}
 .sidebar .nav-icon{width:17px;height:17px;margin-right:.15rem}.sidebar>.secondary-nav{grid-row:3;grid-column:1/-1}.sidebar .secondary-nav summary{color:#52675b;font-size:.8rem;min-height:32px;padding:.3rem .4rem}.sidebar .secondary-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem}.sidebar .secondary-nav button{font-size:.8rem;color:#52675b;min-height:43px;padding:.6rem .55rem}
 .sidebar footer{grid-row:1;grid-column:2;display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:0;border:0;margin:0;color:#52665b;font-size:.7rem;max-width:180px;line-height:1.3}.sidebar footer br{display:none}.sidebar footer button{font-size:.72rem;color:#52665b;min-height:38px;width:auto;margin:0;padding:.5rem}
 .main{padding:1.5rem 1rem 3rem}.topbar{margin-bottom:1.5rem}.topbar h1{font-size:1.9rem;line-height:1.2}.topbar p{font-size:.94rem}.panel,.preview,.usage-guide{padding:1.25rem;border-radius:14px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:1.25rem 0}.stat{padding:1.1rem;min-height:105px;border-bottom:1px solid var(--line)}.stat:last-child:nth-child(odd){grid-column:1/-1}.stat:nth-child(even){border-right:0}.stat span{font-size:.8rem}.stat strong{font-size:1.7rem}
 .project-tabs{width:100%;gap:.2rem}.project-tabs button{font-size:.82rem;padding:.55rem .65rem}.task-row{padding:1.15rem}.task-row h3{font-size:1.1rem}.task-row p{font-size:.9rem}.task-row .row button{font-size:.82rem;min-height:44px}.status-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;font-size:.78rem}.task-distribution{padding:.75rem 0}.cash-chart{grid-auto-columns:175px}.cash-columns{height:145px}.stage-distribution button{font-size:.85rem}
 .document-viewer,.material-picker{padding:1.1rem}.document-viewer>header,.picker-header{top:-18px}.sticky-actions{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){button,.button{transition:none}button:active:not(:disabled),.button:active{transform:none}}
@media(prefers-reduced-transparency:reduce){.picker-header,.document-viewer>header,.sticky-actions{background:var(--paper);backdrop-filter:none}.material-picker::backdrop,.document-viewer::backdrop{backdrop-filter:none}}
@media(prefers-contrast:more){:root{--muted:#344e3e;--line:#7d9585}.panel,.task-row,input,select,textarea,button{border-color:#7d9585}}

/* Intrinsic grid sizing must not widen tablet screens. */
.shell{grid-template-columns:230px minmax(0,1fr)}.main{min-width:0}.goal-rows>div,.goal-role-grid,.report-counts{min-width:0}
@media(min-width:801px) and (max-width:1100px){.goal-role-grid{grid-template-columns:1fr}.goal-rows>div{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:last-child:nth-child(odd){grid-column:1/-1}}

@media(min-width:801px) and (max-width:1100px){.goal-metrics{grid-template-columns:1fr}.goal-metrics h2{overflow-wrap:anywhere}}

.sidebar nav button.active{background:#e7f0e8;color:#173f2b}.sidebar nav button.active:hover{color:#173f2b}

/* Apple-informed workspace: quiet chrome, clear content, immediate feedback. */
:root{
 --ink:#202a25;--muted:#58655e;--paper:#f5f6f5;--line:#e0e5e1;
 --surface:#fff;--surface-soft:#f8f9f8;--forest:#174b38;--forest-deep:#113a2a;
 --control-line:#c7d1ca;--chrome:#edf0ed;--focus:#39765c;
 --elevation:0 3px 20px #20372a0b;
}
body{font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
h1{font-size:clamp(1.9rem,2.4vw,2.35rem);font-weight:630;line-height:1.15;letter-spacing:-.035em;text-wrap:balance}
h2{font-size:1.3rem;font-weight:610;letter-spacing:-.022em}
h3{font-weight:600;letter-spacing:-.012em}
.shell{grid-template-columns:244px minmax(0,1fr)}
.main{padding:2.7rem clamp(1.5rem,3.5vw,3.5rem) 5rem}
.topbar{align-items:flex-start;margin-bottom:2rem;gap:1.5rem}.topbar>div{min-width:0}.topbar>button{flex-shrink:0;white-space:nowrap}
.topbar h1{max-width:35ch}.topbar p{font-size:1rem;line-height:1.65}
.main:has(.stage-distribution)>.topbar .eyebrow{display:none}
.eyebrow{font-size:.73rem;letter-spacing:.09em;font-weight:550}
.sidebar{background:var(--chrome);color:var(--ink);border-right:1px solid var(--line);padding:2rem 1rem;gap:1.6rem}
.sidebar>.company-brand{padding:.2rem .7rem .6rem;color:var(--forest)}
.sidebar .company-brand small{color:var(--muted)}
.sidebar nav{gap:.3rem}
.sidebar nav button,.sidebar footer,.sidebar footer button{color:#4f6055}
.sidebar nav button{min-height:46px;font-weight:530;font-size:.92rem;padding:.75rem .85rem;border-radius:10px}
.sidebar nav button.active{background:#fff;color:var(--forest);box-shadow:0 2px 8px #20372a0a;font-weight:630}
.sidebar nav button:hover:not(:disabled){background:#e2e9e3;color:var(--forest)}
.sidebar nav button.active:hover{background:#fff}
.sidebar .secondary-nav{padding-top:1rem;border-top:1px solid #d4ddd6}
.sidebar .secondary-nav summary{color:#56685b;font-weight:550;font-size:.8rem;line-height:1.5;padding:.55rem .65rem;cursor:pointer}
.sidebar footer{border-top:1px solid #d4ddd6;padding:1rem .7rem 0;font-size:.8rem}
.sidebar footer button{margin-top:.65rem;font-weight:500}
.sidebar .nav-icon{opacity:.85}
.panel,.preview,.usage-guide{padding:1.7rem;border-color:var(--line);border-radius:16px}
.panel>h2,.preview>h2{margin-bottom:1.1rem}
.panel .panel{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:1.35rem 0;margin:0;box-shadow:none}
.stats{border:0;border-radius:16px;box-shadow:var(--elevation);background:var(--surface);overflow:hidden;margin:1.8rem 0;gap:0}
.stats:not(.money-metrics) .stat{padding:1.5rem 1.4rem;min-height:125px}
.stats:not(.money-metrics) .stat strong{font-size:2.25rem;font-weight:610;letter-spacing:-.035em;line-height:1.3}
.stats .stat span{font-size:.86rem;line-height:1.45;font-weight:500}
.stage-distribution{gap:0 1.75rem}
.stage-distribution button{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:1rem 0;min-height:82px}
.stage-distribution button:hover:not(:disabled){background:#f7faf8;border-color:var(--line)}
.stage-distribution .stage-bar{height:4px;background:#e9eee9;border-radius:2px}
button,.button{border-color:var(--control-line);font-weight:550;border-radius:10px;min-height:44px}
button:active:not(:disabled),.button:active{transform:scale(.98)}
.primary{background:var(--forest);border-color:var(--forest);color:#fff}
.primary:hover:not(:disabled){background:var(--forest-deep);border-color:var(--forest-deep);color:#fff}
label{font-size:.875rem;font-weight:550;line-height:1.5;color:#485b4f;margin-bottom:.5rem}
input,select,textarea{background:#f9faf9;border-color:var(--control-line);border-radius:10px;min-height:48px;font-size:1rem;color:var(--ink)}
input:hover,select:hover,textarea:hover{border-color:#94aa9b}
input:focus,select:focus,textarea:focus{background:#fff;outline:2px solid var(--focus);outline-offset:2px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.help,.save-state,.doc p,.project p{font-size:.875rem;line-height:1.65;color:var(--muted)}
.project-tabs{background:#e9ede9;border-radius:12px;padding:4px;gap:3px;margin-bottom:1.7rem}
.project-tabs button{font-weight:550;border-radius:9px;min-height:42px}
.project-tabs button.active{background:#fff;color:var(--forest);box-shadow:0 1px 5px #223a2914}
.task-row{border-radius:14px;padding:1.5rem;margin:1rem 0}
.task-row h3{font-size:1.13rem;font-weight:610;line-height:1.5}
.task-row .row{border-color:var(--line);gap:.55rem}
.table-scroll th,.catalog-table th{background:#f2f5f2;font-size:.8rem;letter-spacing:.01em}
.table-scroll td,.catalog-table td{font-size:.94rem;padding-top:1rem;padding-bottom:1rem}
.notice{font-size:.9rem;line-height:1.65;padding:1rem 1.15rem}
.empty{border:0;background:#eef2ee;border-radius:14px;padding:2.7rem 1.5rem}
.empty h2{font-weight:600}.empty p{font-size:.94rem;line-height:1.65}
.integrations>div{background:#f6f9f6;border:0;border-radius:10px;padding:1.1rem;font-size:.875rem}
.integrations strong{font-weight:600;margin-bottom:.25rem}
.learning-lesson{font-size:1.03rem;line-height:1.8}
.document-viewer,.material-picker{box-shadow:0 24px 90px #15352530;border-radius:16px}
.sticky-actions{background:#f5f6f5eb;border-top:1px solid var(--line);backdrop-filter:blur(18px)}
@media(hover:hover) and (pointer:fine){
 .project{transition:transform 160ms ease-out,border-color 160ms ease-out}
 .project:hover{transform:translateY(-2px);border-color:#8ca999}
}
@media(min-width:801px) and (max-width:1100px){
 .shell{grid-template-columns:212px minmax(0,1fr)}.sidebar{padding:1.6rem .65rem}
 .sidebar nav button{font-size:.86rem;padding:.7rem .65rem}
 .main{padding:2rem 1.5rem 4rem}
}
@media(max-width:800px){
 .shell{display:block}.sidebar{background:#fafcfa;border-right:0;padding:1rem;gap:.6rem}
 .sidebar>.company-brand{padding:0;font-size:.95rem}.sidebar>.company-brand img{width:34px;height:34px}
 .sidebar>nav{gap:.3rem;padding:.3rem 0}.sidebar>nav button{min-height:44px;font-size:.84rem;padding:.65rem .8rem}
 .sidebar nav button.active{background:#e5eee7;box-shadow:none}
 .sidebar .secondary-nav{padding:0;border-top:0}.sidebar .secondary-nav summary{padding:.3rem .4rem;min-height:36px}
 .sidebar .secondary-nav button{min-height:44px;font-size:.82rem}
 .sidebar footer{padding:0;border:0;font-size:.7rem}.sidebar footer button{margin:0;min-height:38px;font-size:.73rem}
 .main{padding:1.55rem 1rem 4rem}.topbar{margin-bottom:1.6rem}.topbar h1{font-size:1.95rem;line-height:1.18}
 .panel,.preview,.usage-guide{padding:1.3rem;margin-bottom:1.15rem}.panel .panel{padding:1.2rem 0}
 .stats{margin:1.5rem 0}.stats:not(.money-metrics) .stat{min-height:112px;padding:1.2rem}
 .stats:not(.money-metrics) .stat strong{font-size:2rem}.stats .stat span{font-size:.83rem}
 .project-tabs{padding:4px;gap:3px}.project-tabs button{font-size:.85rem;min-height:44px;padding:.55rem .7rem}
 .task-row{padding:1.2rem}.stage-distribution button{min-height:80px}
 .help,.save-state,.doc p,.project p{font-size:.875rem}
 .integrations>div{padding:1rem}.table-scroll td{font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){
 .project,button,.button{transition:none}.project:hover,button:active:not(:disabled),.button:active{transform:none}
}
@media(prefers-reduced-transparency:reduce){.sticky-actions{background:var(--paper);backdrop-filter:none}}
@media(prefers-contrast:more){:root{--muted:#354c3e;--line:#879d8b;--control-line:#708b77}.sidebar{background:#e7eee7}.stats{box-shadow:none;outline:1px solid var(--line)}}

/* Supplier entries are rows within their section, not nested cards. */
.supply-overview .task-row{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:1.4rem 0;margin:0}
.supply-overview .task-row>.row:first-child{border:0;padding-top:0;margin-top:0}
h1,h2,h3,.stat span{overflow-wrap:anywhere}
@media(max-width:800px){
 .stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(10rem,calc((100% - 1px)/2))),1fr))}
 .stage-distribution{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
}
