@font-face{font-family:Montserrat;src:url("/static/brand/Montserrat.ef2306ad45ba.ttf") format('truetype');font-weight:100 900;font-display:swap}
:root{--overlay:#0006;--photo-top:#0003;--photo-clear:#0000;--photo-bottom:#000c;--solar:#e8962d;--ink:#000;--brand-gray:#e4e2e2;--paper:#fff;--canvas:#f7f7f5;--text:#22262a;--muted:#6c7076;--line:#e4e2e2;--soft:#fcf1e3;--danger:#9d2828;--danger-bg:#fff2f0;--success:#296443;--success-bg:#edf4ee;--radius:12px;--radius-small:7px;--space-1:6px;--space-2:10px;--space-3:14px;--space-4:20px;--space-5:28px;--heading:Montserrat,Arial,sans-serif;--body:'Neue Montreal',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:14px/1.5 var(--body)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--solar);outline-offset:4px}h1,h2,strong{color:var(--ink)}h1,h2{font-family:var(--heading);line-height:1.2}h1{font-size:27px;letter-spacing:-1.2px;font-weight:600;margin:10px 0 14px}h2{font-size:16px;font-weight:600;margin:0}small{display:block;font-size:12px;color:var(--muted)}.subtle{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--muted);margin:0 0 17px}.brand img{width:150px;height:auto;display:block}.brand{display:inline-block;background:var(--paper);padding:8px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:40px;padding:9px 16px;border-radius:7px;border:1px solid var(--line);font-weight:600;font-size:14px}.primary{background:var(--solar);border-color:var(--solar);color:var(--ink)}.primary:hover{filter:brightness(.96)}.secondary{background:var(--paper)}.wide{width:100%}.text-button{border:0;background:transparent;color:var(--muted);padding:12px 0;text-align:left}.login-layout{min-height:100dvh;display:grid;grid-template-columns:minmax(0,48%) minmax(0,52%);background:var(--paper)}.login-panel{padding:24px 9%;display:flex;flex-direction:column;min-width:0;min-height:100dvh;gap:16px}.login-panel>.brand{align-self:flex-start;flex-shrink:0}.login-panel footer{flex-wrap:wrap;gap:4px 16px}.login-form{max-width:344px;width:100%;margin:auto;padding:24px 0;flex-shrink:0}.login-form h1{font-size:26px;letter-spacing:-.8px}.login-form .subtle{margin-bottom:20px}label{display:block;font-size:13px;font-weight:600;margin:16px 0 6px}input:not([type=checkbox]){display:block;width:100%;min-width:0;height:42px;border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:var(--paper);color:var(--text)}input:focus{outline:2px solid var(--solar);outline-offset:2px}.password-field{position:relative}.password-field input{padding-right:80px}.reveal{position:absolute;right:8px;top:3px;border:0;background:transparent;padding:7px;font-size:12px;color:var(--muted)}.check{display:flex;align-items:center;gap:8px;font-weight:400;margin:16px 0 20px;font-size:12px}.check input{accent-color:var(--ink);width:16px;height:16px}footer{font-size:10px;letter-spacing:1px;display:flex;justify-content:space-between;color:var(--muted)}.brand-photo{position:relative;background:linear-gradient(180deg,var(--photo-top) 0%,var(--photo-clear) 30%,var(--photo-bottom) 100%),url("/static/brand/installation.f5ba6b02206d.webp") center/cover;color:var(--paper);margin:12px 12px 12px 0;border-radius:12px;min-height:0;height:calc(100dvh - 24px);position:sticky;top:12px;align-self:start}.photo-top{position:absolute;top:24px;left:24px;font-size:10px;letter-spacing:2px}.photo-caption{position:absolute;bottom:32px;left:32px;right:24px}.photo-caption p{font-family:var(--heading);font-size:clamp(22px,2.1vw,32px);line-height:1.25;font-weight:500;letter-spacing:-1px;margin:25px 0}.photo-caption small{color:var(--paper);font-size:11px;letter-spacing:1px}.rule{width:50px;height:3px;display:block;background:var(--solar)}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--paper);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.sidebar .brand{margin-bottom:28px}.sidebar .eyebrow{padding-left:12px}.sidebar nav a{display:flex;gap:14px;align-items:center;padding:9px 10px;border-radius:7px;margin-bottom:4px;color:var(--muted);font-size:14px}.sidebar nav a.selected{background:var(--soft);color:var(--ink);font-weight:600}.sidebar nav span{font-size:22px}.current-user{margin-top:auto;padding-top:25px;border-top:1px solid var(--line);display:grid;grid-template-columns:32px 1fr;gap:10px;font-size:12px;overflow-wrap:anywhere}.current-user form{grid-column:1/-1}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--paper)}.main-column{display:flex;flex-direction:column;min-width:0}.topbar{height:58px;background:var(--paper);border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.divider{margin:0 15px;color:var(--line)}.content{padding:28px;max-width:1500px;width:100%;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-heading h1{margin-top:0}.page-heading p{margin-bottom:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.metrics article{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.metrics article span{font-size:13px;color:var(--muted)}.metrics strong{display:block;font:500 32px/1.3 var(--heading);margin:8px 0}.metrics article:first-child{border-top:3px solid var(--solar)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;padding:18px;gap:15px}.section-heading a{font-size:12px}.table-scroll{overflow-x:auto;padding:0 18px 12px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:11px;color:var(--muted);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:top}td:first-child,th:first-child{padding-left:0}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:20px;font-size:11px;padding:4px 11px;background:var(--success-bg);color:var(--success);white-space:nowrap}.inactive{background:var(--canvas);color:var(--muted)}.topbar .badge{background:var(--soft);color:var(--text)}.actions{min-width:105px}.actions summary{cursor:pointer;font-size:12px}.actions div{display:grid;gap:10px;padding:12px 0;font-size:12px;min-width:160px}.actions a:hover{text-decoration:underline}.pagination{padding:15px 24px;display:flex;justify-content:flex-end;gap:20px;font-size:12px}.quiet-note{display:flex;align-items:center;gap:18px;padding:20px 0;color:var(--muted);font-size:13px}.quiet-note>span{font-size:27px;color:var(--solar)}.quiet-note small{margin-top:4px}.admin-footer{margin-top:auto;padding:16px 28px;flex-wrap:wrap;gap:6px}.back{display:inline-block;color:var(--muted);font-size:13px;margin-bottom:25px}.form-card{padding:24px;max-width:600px;margin-top:20px}.form-card h1{font-size:25px}.form-card form>p{margin:0}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;flex-wrap:wrap}.notice{background:var(--soft);border-left:3px solid var(--solar);padding:16px;font-size:13px;margin:25px 0 10px}.errorlist{padding:12px 15px 12px 30px;background:var(--danger-bg);color:var(--danger);border-radius:6px;font-size:13px}.neutral{max-width:720px;margin:60px auto;padding:0 24px}.neutral-logo{width:190px;display:block;margin-bottom:50px}.neutral .form-card{margin:0}dl{display:grid;grid-template-columns:40% 60%;font-size:14px}dt,dd{padding:15px 0;margin:0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}dt{color:var(--muted)}.credential-dialog{position:relative;margin:50px auto;background:var(--paper);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:35px;max-width:550px;width:100%}.credential-dialog h1{font-size:26px}.credential-dialog input{font-family:monospace;font-size:16px}.copy-button{margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.empty{text-align:center;padding:40px;color:var(--muted)}
@media(min-width:1600px){.login-panel{padding-left:14%;padding-right:14%}.brand-photo{background-position:center 35%}}
@media(max-width:1050px){.admin-layout{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:22px 15px}.sidebar .brand img{width:144px}.content{padding:28px}.topbar{padding:0 28px}.metrics{gap:12px}.metrics article{padding:16px}.login-panel{padding:24px 8%}.photo-caption p{font-size:26px}.page-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.login-layout{display:block}.login-panel{padding:24px;min-height:100dvh}.brand-photo{display:none}.login-form{padding:24px 0}.login-form h1{font-size:25px}.brand img{width:140px}.admin-layout{display:block}.sidebar{height:auto;position:static;padding:15px 20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0}.sidebar .eyebrow,.current-user .avatar,.current-user>div{display:none}.sidebar nav{display:flex;gap:10px;margin-top:15px}.sidebar nav a{margin:0;font-size:13px}.current-user{margin:5px 0 0;padding:0;border:0;display:block}.current-user form{text-align:right}.topbar{display:none}.content{padding:22px 16px}.metrics{gap:8px}.metrics article{padding:14px 10px}.metrics article span{font-size:11px}.metrics strong{font-size:27px}.metrics small{font-size:10px}h1{font-size:25px}.section-heading{padding:16px}.form-card{padding:22px}.admin-footer{padding:22px}.credential-dialog{padding:22px;width:calc(100% - 32px)}.neutral{margin-top:35px}dl{grid-template-columns:1fr}dd{padding-top:0}dt{border:0;padding-bottom:5px}.photo-caption{left:25px}}

.nav-icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}

.credential-dialog::backdrop{background:var(--overlay)}.credential-dialog:modal{position:fixed;margin:auto}

/* Let content scroll when genuinely needed (zoom, keyboard or errors); the photo never sets page height. */
@media(max-width:760px){
  .login-layout{display:block}
  .login-panel{padding:24px;min-height:100dvh}
  .brand-photo{display:none}
  .login-form input:not([type=checkbox]){font-size:16px}
}
@media(max-height:650px){
  .login-panel{padding-top:16px;padding-bottom:16px;gap:8px}
  .login-panel .brand img{width:128px}
  .login-form{padding:12px 0}
  .login-form .eyebrow{margin-bottom:10px}
  .login-form h1{margin:6px 0 10px}
  .login-form .subtle{margin:0 0 14px}
  .login-form label{margin-top:12px}
  .login-form .check{margin:12px 0 16px}
}

/* Dense workspace surfaces: documents, rows and dividers instead of oversized statistic cards. */
:root{--radius:8px}
.nav-divider{display:block;border-top:1px solid var(--line);margin:14px 8px}
.content{max-width:1440px}
h3{font-size:14px;margin:18px 0 10px}
select,textarea{font:inherit;color:var(--text);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px 11px;max-width:100%;width:100%}
select{height:40px;cursor:pointer;padding-right:30px}
textarea{resize:vertical;min-height:70px}
select:focus,textarea:focus{outline:2px solid var(--solar);outline-offset:2px}
input[type=radio],input[type=checkbox]{accent-color:var(--solar)}
input[type=file]{font-size:12px;height:auto;min-height:40px}
input::file-selector-button{border:0;border-radius:4px;padding:6px 10px;margin-right:10px;background:var(--soft);cursor:pointer}
.summary-line,.project-meta{display:flex;flex-wrap:wrap;gap:12px 28px;padding:15px 0;margin-bottom:20px;border-block:1px solid var(--line);font-size:12px;color:var(--muted)}
.summary-line strong{font-size:15px;margin-right:5px}
.project-meta strong{margin-left:8px;font-size:12px}
.flat-section{padding:18px 0;border-top:1px solid var(--line);margin-bottom:10px;min-width:0}
.flat-section>h2{margin-bottom:14px}
.flat-section .section-heading{padding:0 0 14px}
.flat-table{padding:0;background:var(--paper);border-top:1px solid var(--line)}
.flat-table td,.flat-table th{padding:12px 14px}
.flat-table td{max-width:340px;overflow-wrap:anywhere}
.flat-table tr:hover td{background:#fcfbf8}
.row-link{font-weight:600;color:var(--ink)}
.row-link:hover,.inline-link:hover{text-decoration:underline}
.inline-link{font-size:12px;color:#8a5108;white-space:nowrap}
.filterbar{display:flex;align-items:center;gap:10px;margin:0 0 18px;flex-wrap:wrap}
.filterbar input{flex:1 1 240px;width:auto!important;max-width:560px}
.filterbar select{flex:0 1 280px;width:auto;min-width:180px}
.result-count{font-size:12px;color:var(--muted);margin-left:auto}
.button-row{display:flex;gap:8px;flex-wrap:wrap}
.form-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:32px;align-items:start}
.compact-form{min-width:0}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.field label{margin:0 0 5px;font-size:12px}
.field input:not([type=checkbox]):not([type=radio]),.field select{height:38px}
.field-wide{grid-column:1/-1}
.field .errorlist{margin:8px 0 0;font-size:12px}
.field input[type=radio]{width:16px;height:16px;display:inline}
.required{color:#935709}
.context-aside{border-left:1px solid var(--line);padding:18px 0 18px 24px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.context-aside h2{font-size:15px}
.context-aside>p{line-height:1.6}
.check-list{list-style:none;padding:0;margin:22px 0}
.check-list li{position:relative;padding:0 0 14px 24px}
.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:#976016;font-weight:bold}
.context-client{border-top:1px solid var(--line);padding-top:20px;margin-top:16px}
.context-client>strong{display:block;margin-top:8px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0 0 28px;padding:0}
.steps li{display:flex;gap:10px;position:relative;border-top:2px solid var(--line);padding-top:12px;min-width:0}
.steps li>span{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--muted);font-size:12px;background:white}
.steps strong{font-size:13px}
.steps small{font-size:11px;margin-top:2px}
.steps .current,.steps .done{border-color:var(--solar)}
.steps .current>span,.steps .done>span{background:var(--solar);border-color:var(--solar);color:#000}
.steps .current strong{color:#8a5108}
.client-selection{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);gap:32px}
.client-options{max-height:360px;overflow:auto}
.client-option{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:7px;padding:12px;margin:0 0 8px;font-weight:400;cursor:pointer}
.client-option:has(input:checked){border-color:var(--solar);background:var(--soft)}
.client-option>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.client-option input[type=radio]{width:18px;height:18px;flex-shrink:0}
.initials{display:grid;place-items:center;width:34px;height:34px;background:var(--soft);color:#8a5108;border-radius:50%;font-size:11px;flex-shrink:0}
.outline-icon{font-size:28px;color:var(--solar)}
.selected-client{display:flex;align-items:center;gap:10px;background:#faf9f6;border:1px solid var(--line);border-radius:6px;padding:7px 10px;margin:0 0 18px;font-size:12px}
.selected-client a{margin-left:auto;color:#8a5108}
.compact-note{font-size:12px}
.upload-strip{border:1px dashed #c6c1b8;border-radius:7px;padding:14px;margin-bottom:16px;background:#faf9f6}
.upload-strip small{margin-top:6px}
.capture-mode{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.history-entry{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.history-entry>div{min-width:0}
.history-entry label{font-size:11px;margin:8px 0 4px}
.history-entry input:not([type=checkbox]){height:36px;font-size:12px;padding:7px}
.detail-grid{grid-template-columns:minmax(120px,180px) minmax(0,1fr);font-size:13px;margin:0}
.detail-grid dt,.detail-grid dd{padding:10px 0}
.summary-document{max-width:1000px}
.history-summary{display:flex;gap:16px;flex-wrap:wrap}
.history-summary>div{border-left:2px solid var(--solar);padding-left:10px;min-width:80px}
.history-summary strong{font-size:13px}
.file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:8px 0;overflow-wrap:anywhere}
.file-icon{color:#a43b30;font-size:10px;font-weight:700}
.draft{background:var(--soft);color:#80501b}
.nowrap{white-space:nowrap}
.workspace-links{border-block:1px solid var(--line);margin-bottom:32px}
.workspace-links>a{display:flex;align-items:center;gap:24px;padding:22px 4px;border-bottom:1px solid var(--line)}
.workspace-links>a:last-child{border-bottom:0}
.workspace-links span{font-size:13px;color:var(--muted)}
.workspace-links b{margin-left:auto;color:#9c621b}
@media(max-width:1050px){.form-layout{grid-template-columns:minmax(0,1fr) 230px;gap:22px}.context-aside{padding-left:18px}.steps{gap:10px}.steps small{font-size:10px}.history-entry{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.form-layout,.client-selection{grid-template-columns:minmax(0,1fr)}.context-aside{border-left:0;border-top:1px solid var(--line);padding:16px 0}.steps small{display:none}.steps li{gap:6px}.steps strong{font-size:12px}.filterbar select{flex:1 1 180px}.client-options{max-height:400px}}
@media(max-width:700px){.sidebar nav{flex-wrap:wrap;gap:4px}.sidebar nav a{padding:8px;font-size:12px}.nav-divider{display:none}.steps{gap:7px;margin-bottom:20px}.steps li{flex-direction:column;padding-top:8px}.steps li>span{width:24px;height:24px}.steps strong{font-size:11px}.field-grid{gap:12px}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{font-size:16px}.history-entry{grid-template-columns:repeat(2,minmax(0,1fr))}.filterbar input{max-width:none}.result-count{width:100%;margin-left:0}.detail-grid{grid-template-columns:1fr}.detail-grid dt{padding-bottom:3px}.detail-grid dd{padding-top:0}.workspace-links>a{flex-wrap:wrap;gap:8px}.workspace-links span{width:100%;order:3}.summary-line,.project-meta{gap:8px 16px}.file-row{flex-wrap:wrap}}
@media(max-width:420px){.field-grid{grid-template-columns:minmax(0,1fr)}.form-actions{justify-content:stretch}.form-actions>*{flex:1}.capture-mode{align-items:flex-start;flex-direction:column}}

.detected{color:#8a5108;font-size:10px;margin-top:4px}.upload-strip.filterbar{align-items:end}.upload-strip.filterbar>small{flex-basis:100%}

.history-entry{grid-template-columns:repeat(3,minmax(0,1fr))}.history-entry>div{border-top:1px solid var(--line);padding-top:6px}@media(max-width:700px){.history-entry{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.history-entry{grid-template-columns:1fr}}

.history-details summary{cursor:pointer;font:600 15px var(--heading);padding:2px 0 10px}
.history-entry{display:block;max-height:340px;overflow:auto}
.history-entry>div,.history-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:center;padding:6px 0}
.history-head{font-size:11px;color:var(--muted);padding-right:12px}
.history-entry .errorlist{grid-column:1/-1}
.history-entry label.sr-only{margin:0}

/* Compact receipt review keeps fields near the document controls. */
.back{margin-bottom:18px}.page-heading{margin-bottom:20px}.steps{margin-bottom:22px}
.upload-strip{padding:12px}.notice{padding:12px;margin:14px 0}
.receipt-file{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:8px 0;border-bottom:1px solid var(--line)}
.receipt-file .check{margin:0}.receipt-file .inline-link{white-space:normal;overflow-wrap:anywhere;min-width:0}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236c706f' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}

.upload-strip.filterbar .field{min-width:0;max-width:100%;flex:1 1 280px}.upload-strip.filterbar input[type=file]{width:100%!important;max-width:100%}

/* Motion stays brief and honors the system's reduced-motion preference. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .12s ease both}
::view-transition-new(root){animation:page-in .2s ease both}
@keyframes page-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes page-out{to{opacity:0}}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes progress-slide{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
.content{animation:page-in .22s ease both}
a,button,input,select,textarea,summary,.client-option{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
button:active,.primary:active,.secondary:active,.contrast:active{transform:translateY(1px)}
dialog[open]{animation:page-in .2s ease both}dialog::backdrop{animation:page-in .2s ease both}
button:disabled{opacity:.55;cursor:wait}
.contrast{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;padding:11px 16px;background:#171717;color:#fff;border:1px solid #171717;font-size:13px;font-weight:600;text-decoration:none}
.contrast:hover{background:#373737;color:#fff}
.client-selection{grid-template-columns:minmax(0,1.35fr) minmax(240px,1fr)}
.client-selection>section{grid-column:1}.client-selection>aside{grid-column:2}
.toast{position:fixed;right:24px;top:20px;z-index:1000;max-width:min(460px,calc(100vw - 32px));padding:13px 18px;background:#181818;color:#fff;border-left:4px solid var(--solar);border-radius:7px;box-shadow:0 8px 28px #0002;font-size:13px;animation:toast-in .2s ease both;transition:opacity .2s,transform .2s}
.toast-error{border-left-color:#ef826f}.toast-leaving{opacity:0;transform:translateY(-8px)}
[hidden]{display:none!important}
.extraction-progress{flex-basis:100%;font-size:12px;color:var(--muted)}
.extraction-progress progress{display:block;width:100%;height:6px;margin-top:8px;border:0;border-radius:9px;overflow:hidden;appearance:none;background:#e4e2dc}
.extraction-progress progress::-webkit-progress-bar{background:#e4e2dc}
.extraction-progress progress::-webkit-progress-value{background:var(--solar);transition:width .2s}
.extraction-progress progress::-moz-progress-bar{background:var(--solar)}
.extraction-progress progress:indeterminate{background:linear-gradient(90deg,#e4e2dc 20%,var(--solar) 45%,#e4e2dc 70%);background-size:200% 100%;animation:processing 1.2s linear infinite}
@keyframes processing{to{background-position:-200% 0}}
.extraction-progress progress:indeterminate::-webkit-progress-bar{background:transparent}
.receipt-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px}
.receipt-viewer{position:sticky;top:16px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}
.viewer-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px}
.viewer-heading h2{font-size:14px;margin:0}
.viewer-tools{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-block:1px solid var(--line);background:#faf9f6;flex-wrap:wrap}
.viewer-tools button{padding:4px 9px;min-height:30px;border:1px solid var(--line);background:white;border-radius:5px;color:var(--ink);font-size:12px}
.viewer-tools output{font-size:11px;min-width:38px;text-align:center}
.tool-divider{height:18px;border-left:1px solid var(--line);margin:0 3px}
.viewer-canvas{overflow:auto;max-height:calc(100dvh - 155px);height:580px;min-height:240px;background:#e9e7e2;padding:12px;scrollbar-gutter:stable}
.viewer-canvas canvas{display:block;background:white;margin:0 auto;max-width:none}
.viewer-status{font-size:12px;color:var(--muted);padding:12px;margin:0}
.detected-address{font-size:12px;line-height:1.5;padding:10px 0;border-bottom:1px solid var(--line)}
.detected-address strong,.detected-address span{display:block}
@supports(appearance:base-select){
 select,select::picker(select){appearance:base-select}
 select{background-image:none;padding:9px 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 select::picker(select){border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 8px 24px #0002;padding:5px;opacity:0;transform:translateY(-4px);transition:opacity .16s,transform .16s,display .16s allow-discrete,overlay .16s allow-discrete}
 select::picker(select):popover-open{opacity:1;transform:none}
 @starting-style{select::picker(select):popover-open{opacity:0;transform:translateY(-4px)}}
 select option{padding:8px;border-radius:4px}select option:checked{background:var(--soft)}
}
@media(max-width:900px){.receipt-layout{grid-template-columns:minmax(0,1fr)}.receipt-viewer{position:static;grid-row:1}.viewer-canvas{height:380px;max-height:60dvh}}
@media(max-width:700px){.client-selection{grid-template-columns:minmax(0,1fr)}.client-selection>section,.client-selection>aside{grid-column:1}.client-selection>aside{grid-row:2}.toast{top:12px;right:16px}.viewer-heading{flex-wrap:wrap}.viewer-tools{gap:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.extraction-progress progress:indeterminate{background:var(--solar)}}

.steps{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.steps strong{font-size:12px}
#project-map{height:420px;border:1px solid var(--line);border-radius:8px;z-index:0;background:#e9e7e2}
.coordinate-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.coordinate-bar .field{flex:1 1 180px;max-width:240px}
.map-status{font-size:12px;color:var(--muted);min-height:20px}
.tier-map-marker{background:none;border:0}.tier-map-marker span{display:block;width:28px;height:28px;border:3px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#e8962d;box-shadow:0 2px 6px #0006}
@media(max-width:1050px){.steps small{display:none}.steps li{flex-direction:column;gap:4px}}
@media(max-width:700px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.steps li{flex-direction:row;align-items:center}.steps strong{font-size:10px}#project-map{height:360px}.coordinate-bar .field{max-width:none;min-width:0}}

.map-shell{position:relative;isolation:isolate;border-radius:8px}
.map-shell #project-map{height:500px}
.map-search{position:absolute;z-index:600;left:14px;top:14px;right:64px;max-width:690px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 15px #0002}
.map-search label{margin:0 0 5px;font-size:12px}
.map-search-row{display:flex;gap:8px}.map-search-row input{flex:1;min-width:0;height:38px!important}.map-search-row button{padding:7px 13px}
.map-search small{margin-top:7px;font-size:11px}
#address-suggestions{list-style:none;margin:8px 0 0;padding:3px 0;max-height:230px;overflow:auto;border-top:1px solid var(--line);animation:page-in .16s ease both}
#address-suggestions li{padding:9px 8px;border-radius:5px;font-size:12px;line-height:1.4;cursor:pointer}
#address-suggestions li:hover,#address-suggestions li[aria-selected=true]{background:var(--soft)}
.row-actions{display:flex;align-items:center;gap:14px;white-space:nowrap}
.icon-danger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:6px;color:#9d392f;background:var(--paper)}
.icon-danger:hover{background:#fae8e4;border-color:#d8a49b}
.danger-button{background:#9c342a;color:white;border:1px solid #9c342a;padding:10px 16px;border-radius:6px;font-size:13px;font-weight:600}
.small-button{padding:6px 10px;font-size:12px}
.delete-dialog{max-width:430px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--text);padding:24px}
.delete-dialog::backdrop{background:#0006}
@media(max-width:700px){.map-search{left:8px;right:8px;top:8px;padding:10px}.map-search-row input{font-size:16px}.map-shell #project-map{height:460px}.delete-dialog{padding:20px}}

/* New clients lead the first project step on desktop and mobile. */
.client-selection{grid-template-columns:minmax(240px,1fr) minmax(0,1.35fr)}
.client-selection>aside{grid-column:1;grid-row:1;border-left:0;padding-left:0;border-right:1px solid var(--line);padding-right:24px}
.client-selection>section{grid-column:2;grid-row:1}
@media(max-width:850px){.client-selection{grid-template-columns:minmax(0,1fr)}.client-selection>aside{grid-column:1;grid-row:1;border:0;padding:0 0 16px}.client-selection>section{grid-column:1;grid-row:2}}

.catalog-categories{display:flex;gap:12px;flex-wrap:wrap}.catalog-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.catalog-specs>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}.catalog-specs dd{margin:0;font-weight:600}@media(max-width:700px){.catalog-specs{grid-template-columns:1fr}}

.catalog-specs dt,.catalog-specs dd{padding:0;border:0;min-width:0}.catalog-specs dd{text-align:right;overflow-wrap:anywhere}.catalog-specs>div{align-items:baseline}
.catalog-product-cell{display:flex;align-items:center;gap:9px;min-width:220px}.product-thumb{display:block;width:42px;height:42px;object-fit:cover;flex:0 0 auto;border:1px solid var(--line);border-radius:6px;background:#f5f7f5}.product-thumb-empty{display:grid;place-items:center;color:#286246;font-size:8px;font-weight:700}.product-heading-with-image{display:flex;align-items:center;gap:12px;min-width:0}.product-preview{display:block;width:76px;height:76px;object-fit:cover;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:#f5f7f5}
.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:4px 0}.user-menu-trigger::-webkit-details-marker{display:none}.user-menu-trigger .avatar{flex:0 0 auto}.user-menu-copy{display:grid;gap:1px;line-height:1.2;text-align:left}.user-menu-copy strong{font-size:12px}.user-menu-copy small{font-size:10px}.user-menu-chevron{font-size:16px;color:var(--muted);margin-left:3px}.user-menu-panel{position:absolute;z-index:20;right:0;top:calc(100% + 10px);width:214px;padding:7px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 30px rgba(23,50,39,.12)}.user-menu-panel a,.user-menu-panel button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;border:0;border-radius:5px;background:transparent;color:var(--text);font-size:12px;text-align:left}.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--soft)}.user-menu-panel form{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}.profile-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.profile-section{padding:20px}.profile-section .zone-heading{margin-bottom:13px}.profile-avatar{background:var(--soft);color:var(--ink);font-weight:700}.field-error{color:var(--danger);font-size:11px;margin:4px 0 0}@media(max-width:700px){.user-menu-copy{display:none}.user-menu-panel{right:-4px}.profile-layout{grid-template-columns:1fr}.product-preview{width:58px;height:58px}}

/* Compact operational dashboard */
.dashboard-heading{margin-bottom:17px}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.dashboard-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--line);margin-bottom:18px;background:var(--paper)}.dashboard-kpis>a{padding:12px 16px;border-right:1px solid var(--line);min-width:0}.dashboard-kpis>a:last-child{border-right:0}.dashboard-kpis small{font-size:8px;letter-spacing:1px;font-weight:700}.dashboard-kpis strong{display:block;font:600 24px/1.1 var(--heading);margin:3px 0}.dashboard-kpis span{display:block;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-kpis>a:hover{background:var(--soft)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:14px;margin-bottom:14px}.dashboard-zone{border:1px solid var(--line);border-left:4px solid #3d6d60;background:var(--paper);padding:14px 16px;min-width:0}.dashboard-attention{border-left-color:var(--solar);background:#fffaf1}.dashboard-recent{border-left-color:#506b82;padding-bottom:5px}.pipeline-list{display:grid;gap:5px}.pipeline-row{display:grid;grid-template-columns:125px minmax(80px,1fr) 24px;align-items:center;gap:10px;padding:4px 0;font-size:10px}.pipeline-row>div{height:5px;background:#e5ebe7;overflow:hidden}.pipeline-row i{display:block;height:100%;background:#3d6d60}.pipeline-row strong{text-align:right;font-size:11px}.pipeline-row:hover span{color:#235442}.attention-total{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#ffe7bd;color:#7c531b;font-weight:700;font-size:11px}.attention-row{display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-top:1px solid rgba(135,102,50,.16)}.attention-row strong,.attention-row small{display:block}.attention-row strong{font-size:11px}.attention-row small{font-size:9px}.attention-row b{font-size:11px;color:#8a5a19}.attention-mark{width:7px;height:7px;border-radius:50%;background:#71867e}.attention-mark.late{background:#b6483f}.attention-mark.cfe{background:#d28a21}.dashboard-empty{font-size:10px;color:var(--muted);margin:14px 0 4px}.dashboard-recent .table-scroll{padding:0}.dashboard-recent table{font-size:11px}.dashboard-recent th{font-size:9px}.dashboard-recent td{padding-top:8px;padding-bottom:8px}.dashboard-recent .badge{font-size:9px;padding:3px 8px}
@media(max-width:1050px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-kpis>a:nth-child(3){border-right:0}.dashboard-kpis>a:nth-child(-n+3){border-bottom:1px solid var(--line)}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-heading{align-items:flex-start}.heading-actions{width:100%}.heading-actions a{flex:1}.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-kpis>a,.dashboard-kpis>a:nth-child(3){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.dashboard-kpis>a:nth-child(2n){border-right:0}.dashboard-kpis>a:last-child{grid-column:1/-1;border-right:0;border-bottom:0}.dashboard-zone{padding:12px}.pipeline-row{grid-template-columns:105px minmax(70px,1fr) 20px}.dashboard-recent{overflow:hidden}}

/* Live list controls retain their standard GET fallback when JavaScript is unavailable. */
.filterbar.live-filter-ready>button{display:none}.filterbar.filtering:after{content:'Actualizando…';font-size:9px;color:var(--muted);letter-spacing:.4px}.filterbar.filtering+*{opacity:.58}.flat-table,.quote-list,.client-options{transition:opacity 140ms ease}

/* Account controls: one compact trigger and two explicit actions. */
.user-menu-trigger{min-height:42px;padding:5px 8px 5px 5px;border:1px solid transparent;border-radius:var(--radius-small);transition:border-color 140ms ease,background 140ms ease}.user-menu-trigger:hover,.user-menu[open] .user-menu-trigger{border-color:var(--line);background:var(--canvas)}.user-menu-trigger .avatar{width:34px;height:34px;background:var(--soft);color:#744a18;font-weight:700}.user-menu-panel{top:calc(100% + 7px);width:278px;padding:8px;border-radius:10px;border-top:3px solid var(--solar);box-shadow:0 12px 25px rgba(23,28,25,.1)}.user-menu-heading{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:8px 8px 11px;border-bottom:1px solid var(--line);margin-bottom:4px}.user-menu-heading .avatar{width:38px;height:38px;background:var(--soft);color:#744a18;font-weight:700}.user-menu-heading span:last-child{min-width:0}.user-menu-heading strong,.user-menu-heading small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-heading strong{font-size:12px}.user-menu-heading small{font-size:9px;margin-top:2px}.user-menu-panel a,.user-menu-panel button{justify-content:flex-start;gap:10px;padding:10px 8px}.user-menu-panel svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6}.user-menu-panel a>span,.user-menu-panel button>span{display:block}.user-menu-panel a strong,.user-menu-panel button strong{display:block;font-size:11px}.user-menu-panel a small,.user-menu-panel button small{font-size:9px;margin-top:2px}.user-menu-panel form{margin-top:3px;padding-top:3px}.user-menu-panel form button{color:#633939}.section-icon{width:27px;height:27px;fill:none;stroke:#87591e;stroke-width:1.4}

/* Catalog detail reference language: clear hierarchy, light grouping and technical density. */
.product-hero{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr) auto;gap:var(--space-5);align-items:center;padding:var(--space-4);margin-bottom:var(--space-3);background:var(--paper);border-block:1px solid var(--line);border-left:4px solid var(--solar)}.product-hero-media{display:grid;place-items:center;height:250px;padding:var(--space-3);background:#f5f5f2;border:1px solid var(--line);border-radius:var(--radius-small);overflow:hidden}.product-hero-media img{width:100%;height:100%;object-fit:contain}.product-hero-media>span{color:var(--muted);font-size:11px}.product-badges{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.product-category{font-size:9px;letter-spacing:1.3px;font-weight:700;text-transform:uppercase;color:#80531b}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:20px;background:var(--success-bg);color:var(--success);font-size:9px;font-weight:700}.status-badge:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.status-badge.status-muted{background:#efefed;color:var(--muted)}.product-hero h1{font-size:clamp(26px,3vw,38px);margin:0 0 var(--space-3);letter-spacing:-1.4px}.product-identity{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin:0}.product-identity>div{min-width:120px}.product-identity dt,.product-identity dd{border:0;padding:0}.product-identity dt{font-size:9px;text-transform:uppercase;letter-spacing:.8px}.product-identity dd{font-size:12px;font-weight:600;margin-top:2px}.product-origin{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--line)}.product-origin svg{width:24px;height:24px;fill:none;stroke:#87591e;stroke-width:1.5}.product-origin small,.product-origin strong,.product-origin em{display:block}.product-origin small{font-size:8px;letter-spacing:1px}.product-origin strong{font-size:11px}.product-origin em{font-size:9px;color:var(--muted);font-style:normal;margin-top:1px}.product-hero-actions{align-self:start;display:grid;gap:var(--space-1);min-width:145px}.tertiary-action{padding:7px 9px;text-align:center;color:var(--muted);font-size:10px}.tertiary-action:hover{color:var(--text);text-decoration:underline}.technical-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:var(--space-4);background:var(--paper);border-bottom:1px solid var(--line)}.technical-summary>div{min-width:0;padding:12px var(--space-3);border-right:1px solid var(--line)}.technical-summary>div:last-child{border-right:0}.technical-summary small{font-size:8px;line-height:1.25;min-height:20px;text-transform:uppercase;letter-spacing:.5px}.technical-summary strong{display:block;font:600 17px/1.25 var(--heading);margin-top:3px;overflow-wrap:anywhere}.missing-value{color:#92958f!important;font-weight:400!important;font-style:italic}.product-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:var(--space-4);align-items:start}.product-specifications,.product-supporting-info>section,.product-history{background:var(--paper);border-top:1px solid var(--line)}.product-specifications{padding:var(--space-4)}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.section-title small{font-size:8px;letter-spacing:1.2px;font-weight:700;margin-bottom:4px}.section-title h2{font-size:18px}.section-title>p{font-size:10px;color:var(--muted);margin:0}.spec-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.spec-group{border:1px solid var(--line);border-radius:var(--radius-small);overflow:hidden;min-width:0}.spec-group>header{padding:11px 12px;background:#f6f6f3;border-bottom:1px solid var(--line)}.spec-group h3{font:600 12px/1.25 var(--heading);margin:0}.spec-group header p{font-size:9px;color:var(--muted);margin:3px 0 0}.spec-group dl,.record-section dl{display:block;margin:0}.spec-group dl>div,.record-section dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.8fr);gap:var(--space-2);align-items:baseline;padding:8px 12px;border-bottom:1px solid #ecece9}.spec-group dl>div:last-child,.record-section dl>div:last-child{border-bottom:0}.spec-group dt,.spec-group dd,.record-section dt,.record-section dd{padding:0;border:0;font-size:10px}.spec-group dd,.record-section dd{text-align:right;font-weight:600}.product-supporting-info{display:grid;gap:var(--space-3)}.product-supporting-info>section{padding:var(--space-3);border-left:3px solid #536d65}.document-section{border-left-color:var(--solar)!important}.document-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:var(--space-2);align-items:start;padding:var(--space-2) 0 var(--space-3)}.document-icon{display:grid;place-items:center;width:38px;height:44px;border:1px solid #dfba85;border-radius:5px;background:#fff8ec;color:#87591e;font-size:9px;font-weight:800}.document-row>span:last-child{min-width:0}.document-row strong,.document-row small,.document-row em{display:block;overflow-wrap:anywhere}.document-row strong{font-size:10px}.document-row small,.document-row em{font-size:9px;margin-top:2px}.document-row em{color:var(--muted);font-style:normal}.record-section{border-left-color:#536d65!important}.record-notes{font-size:9px;color:var(--muted);padding:var(--space-3) 12px 0;margin:0;border-top:1px solid var(--line)}.trace-note{font-size:8px;color:var(--muted);overflow-wrap:anywhere;margin:0;padding:0 3px}.empty-specs{font-size:10px;color:var(--muted);padding:12px;margin:0}.product-history{margin-top:var(--space-4);padding:var(--space-3) var(--space-4) 4px;border-left:3px solid #6d7b86}.product-history .table-scroll{padding:0}.product-history table{font-size:10px}.product-history th{font-size:8px}.product-history td{padding-top:8px;padding-bottom:8px}
@media(max-width:1050px){.product-hero{grid-template-columns:200px minmax(0,1fr);gap:var(--space-4)}.product-hero-media{height:210px}.product-hero-actions{grid-column:2;grid-template-columns:auto auto;justify-content:start}.technical-summary{grid-template-columns:repeat(3,1fr)}.technical-summary>div:nth-child(3){border-right:0}.technical-summary>div:nth-child(-n+3){border-bottom:1px solid var(--line)}.product-detail-layout{grid-template-columns:minmax(0,1fr) 285px}}
@media(max-width:850px){.topbar{display:flex;height:54px;padding:0 18px}.topbar>span{display:none}.user-menu{margin-left:auto}.user-menu-panel{right:0}.product-detail-layout{grid-template-columns:1fr}.product-supporting-info{grid-template-columns:repeat(2,minmax(0,1fr))}.trace-note{grid-column:1/-1}.spec-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.product-hero{grid-template-columns:1fr;padding:var(--space-3)}.product-hero-media{height:220px}.product-hero-actions{grid-column:1;grid-template-columns:1fr}.technical-summary{grid-template-columns:repeat(2,1fr)}.technical-summary>div,.technical-summary>div:nth-child(3){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.technical-summary>div:nth-child(2n){border-right:0}.technical-summary>div:last-child{border-right:0}.spec-group-grid,.product-supporting-info{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-direction:column}.product-history{padding-inline:var(--space-3)}}

.project-stages{display:flex;list-style:none;padding:0;gap:8px;flex-wrap:wrap;margin:20px 0}.project-stages li{flex:1;min-width:100px;border-top:2px solid var(--line);padding:10px 0;font-size:12px;color:var(--muted)}.project-stages span{display:inline-flex;border:1px solid var(--line);border-radius:50%;width:23px;height:23px;align-items:center;justify-content:center;margin-right:6px}.project-stages .current{border-color:var(--solar);color:var(--ink);font-weight:600}.project-stages .current span{background:var(--solar)}.project-stages .past{border-color:var(--ink)}.next-action{border-left:3px solid var(--solar);background:var(--soft);padding:14px 18px;margin:12px 0 24px}.next-action p{margin:5px 0}.next-action ul{margin:6px 0;padding-left:18px}

/* Reproducible preliminary sizing. */
.dimensioning-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-block:1px solid var(--line);padding:14px 0;margin:0 0 20px}.dimensioning-row>div{display:flex;align-items:center;gap:12px;min-width:0}.dimensioning-row strong,.dimensioning-row span{display:block}.dimensioning-row small{font-size:9px;letter-spacing:1px}.dimensioning-row span{font-size:11px;color:var(--muted)}.dimensioning-icon{font-size:25px!important;color:#a86416!important}
.sizing-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:28px;align-items:start}.sizing-zone{padding:15px 17px;margin-bottom:14px;border:1px solid var(--line);border-left:4px solid}.consumption-basis{background:#fff8e9;border-color:#eed9af;border-left-color:var(--solar)}.consumption-basis .zone-heading strong{font:600 18px var(--heading)}.consumption-basis p{font-size:11px;color:var(--muted);margin:8px 0 0}.equipment-zone{background:#f4f7f6;border-color:#d9e6e1;border-left-color:#487567}.equipment-zone .field-grid{margin-top:4px}.method-note{font-size:11px;color:var(--muted);padding:10px 0 0;border-top:1px solid var(--line)}.method-note p{margin:5px 0}.sizing-blockers{background:var(--danger-bg);border-left:4px solid var(--danger);padding:12px 16px;margin-bottom:18px;font-size:12px}.sizing-blockers ul{margin:5px 0 0;padding-left:18px}
.sizing-results{min-width:0}.result-zone{background:#f1f8f3;border-color:#d4e7d8;border-left-color:#357349}.sizing-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-block:1px solid #cee1d2}.sizing-strip>div{padding:10px;border-right:1px solid #cee1d2}.sizing-strip>div:first-child{padding-left:0}.sizing-strip>div:last-child{border-right:0}.sizing-strip dt,.sizing-strip dd,.sizing-facts dt,.sizing-facts dd{border:0;padding:0}.sizing-strip dt{font-size:10px;color:var(--muted)}.sizing-strip dd{font:600 18px var(--heading);margin-top:3px}.sizing-strip small{font:10px var(--body);margin-top:2px}.sizing-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:8px 0 0;font-size:11px}.sizing-facts>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #dce9df}.sizing-facts dt{color:var(--muted)}.sizing-facts dd{text-align:right;font-weight:600}
.production-zone{background:#f4f6f8;border-color:#dce2e8;border-left-color:#526779}.production-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px}.production-bars>div{display:grid;grid-template-columns:28px minmax(80px,1fr) 66px;align-items:center;gap:7px;font-size:10px}.production-bars strong{text-align:right;font-size:10px}.production-bars meter{width:100%;height:8px}.production-bars meter::-webkit-meter-bar{background:#e1e5e8;border:0;border-radius:8px}.production-bars meter::-webkit-meter-optimum-value{background:#526779;border-radius:8px}.sizing-method{font-size:11px;border-top:1px solid var(--line);padding-top:12px}.sizing-method summary{cursor:pointer;font-weight:600}.sizing-method code{font-size:9px;word-break:break-all}.sizing-empty{text-align:center;padding:60px 25px;border:1px dashed var(--line);color:var(--muted)}.sizing-empty>span{font-size:34px;color:var(--solar)}.sizing-empty h2{margin:8px 0}
@media(max-width:980px){.sizing-layout{grid-template-columns:1fr}.sizing-results{grid-row:1}.sizing-empty{padding:25px}.dimensioning-row{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.sizing-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.sizing-strip>div:nth-child(2){border-right:0}.sizing-strip>div:nth-child(-n+2){border-bottom:1px solid #cee1d2}.sizing-facts,.production-bars{grid-template-columns:1fr}.dimensioning-row>a{width:100%}}
.module-recommendation{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.module-recommendation>label{margin:0 0 6px}.module-power-input{display:grid;grid-template-columns:minmax(0,160px) auto;align-items:center;gap:8px}.module-power-input span{font-weight:600;color:var(--muted)}.module-recommendation-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.module-recommendation-results>div{padding:10px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.module-recommendation-results strong{display:block;font-size:15px;margin-top:2px}.solution-equipment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 16px}.solution-equipment-summary>div{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.solution-equipment-summary strong{display:block;margin-top:3px}.sizing-dialog{width:min(680px,calc(100% - 32px));border:1px solid var(--line);border-radius:var(--radius);padding:0;background:var(--paper);color:var(--text)}.sizing-dialog::backdrop{background:var(--overlay)}.sizing-dialog-form{padding:22px}.sizing-dialog-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.sizing-dialog-form>header small{letter-spacing:1.5px}.sizing-dialog-form>header h2{font-size:20px;margin-top:4px}.icon-button{width:36px;height:36px;border:0;border-radius:50%;background:var(--soft);font-size:22px;color:var(--muted)}
.sizing-dialog{width:min(820px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto}.solution-inverter-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1.2fr);gap:18px;align-items:end;margin-top:16px}.inverter-live-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.sizing-dialog .field{margin:0}.inverter-live-specs>div,.mppt-config-row{padding:11px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--canvas)}.inverter-live-specs dt,.mppt-config-row small{font-size:10px;color:var(--muted)}.inverter-live-specs dd{margin:4px 0 0;font-size:15px;font-weight:700}.mppt-configuration{margin-top:20px}.mppt-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.mppt-section-heading h3{margin-top:3px}.mppt-configuration>[data-mppt-rows]{display:grid;gap:9px}.mppt-config-row>header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.mppt-fields{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(170px,1fr) minmax(100px,.55fr);gap:10px;align-items:end}.mppt-fields label,.mppt-fields fieldset legend{font-size:11px;font-weight:700}.mppt-fields fieldset{margin:0;padding:0;border:0}.connection-options{display:grid;grid-template-columns:1fr 1fr;gap:5px}.connection-options label{display:flex;align-items:center;justify-content:center;gap:5px;min-height:38px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.connection-options input{width:auto;margin:0}.mppt-config-row>[data-mppt-panel-specs]{display:block;margin-top:8px}.sizing-advanced{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.sizing-advanced summary{cursor:pointer;font-size:12px;font-weight:700}.sizing-advanced .field-grid{margin-top:12px}.sizing-dialog-form>.form-actions{position:sticky;bottom:-22px;margin:20px -22px -22px;padding:14px 22px;background:var(--paper);border-top:1px solid var(--line)}
.solution-inverter-picker{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:10px}.inverter-live-specs{gap:6px}.inverter-live-specs>div{display:flex;min-height:48px;padding:6px 9px;flex-direction:column;justify-content:center}.inverter-live-specs dt,.inverter-live-specs dd{padding:0;border:0;line-height:1.2}.inverter-live-specs dt{font-size:9px}.inverter-live-specs dd{margin-top:3px;font-size:13px}.mppt-fields>label>select{height:38px}
.solution-system-cards{display:grid;gap:8px;margin:12px 0}.solution-system-cards>article{padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.solution-system-cards>article>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:7px;border-bottom:1px solid var(--line)}.solution-system-cards>article>header small{font-size:9px;letter-spacing:1px}.solution-system-cards>article>header strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--soft)}.solution-system-cards dl{display:block;margin:5px 0 0}.solution-system-cards dl>div{display:flex;justify-content:space-between;gap:10px}.solution-system-cards dt,.solution-system-cards dd{padding:4px 0;border:0;font-size:10px}.solution-system-cards dd{text-align:right;font-weight:600}.battery-configuration{margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--canvas)}.battery-toggle{display:flex;align-items:center;gap:8px;margin:0;font-size:11px}.battery-toggle input{width:16px;height:16px;margin:0;accent-color:var(--solar)}.battery-fields{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;margin-top:10px}.battery-configuration>[data-no-batteries]{margin:5px 0 0}.mppt-column-headings,.mppt-row-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px}.mppt-column-headings{padding:0 11px 5px;font-size:9px;font-weight:700;color:var(--muted);letter-spacing:.5px}.mppt-column-headings span:last-child{padding-left:12px;border-left:1px solid var(--line)}.mppt-protection-fields{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:8px;align-items:end;padding-left:12px;border-left:1px solid var(--line)}.mppt-protection-fields label{font-size:11px;font-weight:700}.mppt-protection-fields select,.mppt-protection-fields input{height:38px}.mppt-row-grid .mppt-fields{grid-template-columns:minmax(150px,1.4fr) minmax(105px,.8fr) 92px}
.solution-system-cards>article{padding:0;overflow:hidden}.solution-system-cards>article>button{display:block;width:100%;padding:10px 12px;border:0;background:var(--paper);text-align:left;color:var(--text)}.solution-system-cards>article>button:hover{background:var(--canvas)}.solution-system-card-heading,.solution-system-card-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.solution-system-card-heading{padding-bottom:7px;border-bottom:1px solid var(--line)}.solution-system-card-heading>small{font-size:9px;letter-spacing:1px}.solution-system-card-heading>strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--soft)}.solution-system-card-row{padding-top:7px}.solution-system-card-row>small{font-size:10px}.solution-system-card-row>strong{font-size:10px;text-align:right}
.mppt-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:9px 12px;align-items:stretch}.mppt-layout .mppt-config-row{height:100%}.mppt-protection-card{height:100%;padding:11px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}.mppt-protection-card>header{padding-bottom:8px;margin-bottom:9px;border-bottom:1px solid var(--line)}.mppt-protection-card>header strong{font-size:10px}.mppt-protection-card .mppt-protection-fields{padding:0;border:0}
@media(max-width:560px){.module-recommendation-results,.solution-equipment-summary{grid-template-columns:1fr}.sizing-dialog-form{padding:18px}}
@media(max-width:700px){.solution-inverter-picker,.inverter-live-specs,.mppt-fields{grid-template-columns:1fr}.mppt-config-row>header{align-items:flex-start;flex-direction:column}.sizing-dialog-form>.form-actions{bottom:-18px;margin:18px -18px -18px;padding:12px 18px}}
@media(max-width:700px){.battery-fields,.mppt-column-headings,.mppt-row-grid{grid-template-columns:1fr}.mppt-column-headings span:last-child{display:none}.mppt-protection-fields{padding:10px 0 0;border-left:0;border-top:1px solid var(--line)}.mppt-row-grid .mppt-fields{grid-template-columns:1fr}}
@media(max-width:700px){.mppt-layout{grid-template-columns:1fr}.mppt-protection-card{margin-top:-5px;background:var(--canvas)}.mppt-protection-card .mppt-protection-fields{border:0;padding:0}}

/* Editable quotation and frozen catalog snapshots. */
.quotation-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:14px 0;margin:-20px 0 20px}.quotation-row>div{display:flex;align-items:center;gap:12px;min-width:0}.quotation-row strong,.quotation-row span{display:block}.quotation-row small{font-size:9px;letter-spacing:1px}.quotation-row span{font-size:11px;color:var(--muted)}.quotation-icon{font-size:25px!important;color:#3f6e61!important}.quote-start{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px 0;border-block:1px solid var(--line);max-width:980px}.quote-start small,.quote-zone>small{font-size:9px;letter-spacing:1.2px;font-weight:700}.quote-start h2{font-size:21px;margin:7px 0}.quote-start p{color:var(--muted);max-width:700px;margin:0}.quote-warning{padding:11px 14px;background:#fff4dc;border-left:4px solid var(--solar);font-size:12px;margin-bottom:15px}
.quotation-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.quotation-editor{min-width:0}.quote-zone{border:1px solid var(--line);border-left:4px solid;padding:14px 16px;margin-bottom:14px;background:var(--paper)}.quote-settings{border-left-color:var(--solar);background:#fffaf0}.quote-settings .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-settings .field:last-child{grid-column:1/-1}.quote-items{border-left-color:#4b7067;background:#f6f9f8;padding-inline:0}.quote-items>.zone-heading,.quote-items>.errorlist,.quote-items>.quote-footnote{margin-inline:16px}.quote-table{font-size:11px;min-width:980px}.quote-table th{font-size:9px}.quote-table td{padding:8px 7px}.quote-table td:first-child{min-width:220px;padding-left:0}.quote-table input:not([type=checkbox]){height:34px;padding:6px 7px;font-size:11px;min-width:74px}.quote-table td:first-child input{min-width:205px}.quote-table .input-prefix{font-size:9px;color:var(--muted)}.quote-table output{white-space:nowrap}.quote-table .errorlist{margin:4px 0;padding:5px 8px 5px 20px}.remove-line{display:flex;align-items:center;gap:5px;color:var(--danger);font-size:10px;margin:0;white-space:nowrap}.remove-line input{width:15px;height:15px}.pending-delete{opacity:.38;text-decoration:line-through}.quote-footnote{font-size:10px;color:var(--muted);margin-bottom:0}.add-concept{border-left-color:#53687a;background:#f5f7f9}.add-concept-form{display:grid;grid-template-columns:minmax(250px,2fr) 110px 150px auto;gap:10px;align-items:end}.add-concept-form label{font-size:10px;margin:0 0 4px}.add-concept-form input,.add-concept-form select{height:36px;font-size:11px}.add-concept-form .field{margin:0}.add-concept-form small{font-size:9px}.add-concept-form button{min-height:36px}
.quote-summary{position:sticky;top:76px}.quote-total{border-left-color:#357349;background:#f1f8f3}.quote-total dl,.quote-basis dl{display:block;margin:8px 0 0}.quote-total dl>div,.quote-basis dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #d9e5dc}.quote-total dt,.quote-total dd,.quote-basis dt,.quote-basis dd{border:0;padding:8px 0;font-size:11px}.quote-total dd,.quote-basis dd{text-align:right;font-weight:600}.quote-total .grand-total{border:0;margin-top:5px;padding-top:4px}.quote-total .grand-total dt,.quote-total .grand-total dd{font:600 19px var(--heading);color:var(--ink)}.quote-total .grand-total small{font:9px var(--body)}.quote-total>p{font-size:9px;color:var(--muted);margin:8px 0 0}.quote-basis{border-left-color:#53687a;background:#f5f7f9}.quote-basis h2{font-size:16px;margin:7px 0}.quote-basis dd{max-width:170px}.quote-list{padding-top:10px}
@media(max-width:1050px){.quotation-layout{grid-template-columns:minmax(0,1fr)}.quote-summary{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-row:1}.quote-summary .quote-zone{margin:0}.add-concept-form{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(110px,1fr));}.add-concept-form button{grid-column:1/-1}}
@media(max-width:700px){.quotation-row,.quote-start{align-items:flex-start;flex-direction:column}.quotation-row>a,.quote-start form,.quote-start button{width:100%}.quote-summary{grid-template-columns:1fr}.quote-settings .field-grid,.add-concept-form{grid-template-columns:1fr}.quote-settings .field:last-child{grid-column:auto}}

/* Quotation alternatives, comparison and immutable issued revisions. */
.quote-heading-state{display:flex;align-items:center;gap:7px}.badge.solar{background:#fff0d1;color:#7a4a0a}.quote-switcher{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 14px;border-block:1px solid var(--line);padding:9px 0}.quote-tabs{display:flex;gap:5px;overflow-x:auto;min-width:0;padding-bottom:2px}.quote-tabs a{flex:0 0 auto;display:block;padding:7px 10px;border:1px solid transparent;color:var(--muted);min-width:130px}.quote-tabs a strong,.quote-tabs a small{display:block}.quote-tabs a strong{font-size:11px;color:var(--ink)}.quote-tabs a small{font-size:9px;margin-top:2px}.quote-tabs a.active{background:#fff7e8;border-color:#edc986;border-bottom:2px solid var(--solar)}.quote-switcher-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.quote-new-option{position:relative}.quote-new-option>summary{list-style:none;cursor:pointer}.quote-new-option>summary::-webkit-details-marker{display:none}.quote-new-option>form{position:absolute;right:0;top:42px;z-index:8;width:330px;padding:14px;background:var(--paper);border:1px solid var(--line);box-shadow:0 14px 35px rgba(20,28,24,.16)}.quote-new-option .field{margin-bottom:9px}.quote-new-option label{font-size:10px}.quote-new-option input,.quote-new-option textarea{font-size:11px}.quote-new-option button{width:100%}.quote-primary-action{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f3f6f7;border-left:4px solid #53687a;padding:9px 12px;margin-bottom:14px;font-size:11px}.quote-settings .field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-settings .field:last-child{grid-column:1/-1}
.quote-revisions{border-left-color:var(--solar);background:#fffaf0}.quote-revisions ol{list-style:none;padding:0;margin:8px 0 12px;border-top:1px solid #eadcc1}.quote-revisions li{border-bottom:1px solid #eadcc1}.quote-revisions li a{display:block;padding:7px 0;color:var(--ink)}.quote-revisions li strong,.quote-revisions li span,.quote-revisions li small{display:block}.quote-revisions li span{font-size:9px;color:var(--muted);margin-top:2px}.quote-revisions li small{font-size:9px;margin-top:3px}.quote-revisions form{padding-top:10px;border-top:1px solid #eadcc1}.quote-revisions textarea{font-size:10px;min-height:62px}.quote-revisions button{width:100%;min-height:36px}.revision-note{font-size:9px;color:var(--muted);margin:7px 0 0}
.quote-compare{border-block:1px solid var(--line);padding:10px 0}.quote-compare table{min-width:760px}.quote-compare th,.quote-compare td{vertical-align:top;min-width:155px}.quote-compare th:first-child{position:sticky;left:0;z-index:2;min-width:145px;background:var(--paper)}.quote-compare thead th{background:#f5f6f5}.quote-compare thead th.primary-option{background:#fff4dd;border-top:3px solid var(--solar)}.quote-compare th strong,.quote-compare th small,.quote-compare td small{display:block}.quote-compare th small,.quote-compare td small{font-size:9px;color:var(--muted);margin-top:3px}.quote-compare .badge{display:inline-block;margin-top:5px}.quote-compare td form{margin-top:6px}.compare-total th,.compare-total td{background:#eef6f1!important;font-weight:700}.comparison-note{font-size:10px;color:var(--muted)}
.revision-meta{display:grid;grid-template-columns:1fr 1fr 2fr .7fr;border-block:1px solid var(--line);margin-bottom:16px}.revision-meta>div{padding:10px 14px;border-right:1px solid var(--line)}.revision-meta>div:first-child{padding-left:0}.revision-meta>div:last-child{border:0}.revision-meta small,.revision-meta strong{display:block}.revision-meta small{font-size:9px;color:var(--muted);letter-spacing:.6px}.revision-meta strong{font-size:11px;margin-top:3px}.revision-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.revision-layout aside{position:sticky;top:76px}.revision-table{min-width:850px;font-size:10px}.revision-table th{font-size:9px}.revision-table td:first-child{min-width:210px}.revision-table small{display:block;color:var(--muted);margin-top:3px}.revision-notes{border-top:1px solid var(--line);padding:14px 0;font-size:11px}.revision-notes small{font-size:9px;letter-spacing:1px;font-weight:700}.revision-notes p{max-width:800px}
@media(max-width:1050px){.revision-layout{grid-template-columns:1fr}.revision-layout aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px}.revision-meta{grid-template-columns:repeat(2,1fr)}.revision-meta>div:nth-child(2){border-right:0}.revision-meta>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:700px){.quote-switcher{display:block}.quote-switcher-actions{margin-top:8px}.quote-switcher-actions>a{flex:1;text-align:center}.quote-new-option{flex:1}.quote-new-option>summary{text-align:center}.quote-new-option>form{position:fixed;inset:auto 12px 12px;width:auto;max-height:80vh;overflow:auto}.quote-primary-action{align-items:flex-start;flex-direction:column}.quote-primary-action button{width:100%}.quote-settings .field-grid{grid-template-columns:1fr}.revision-layout aside{grid-template-columns:1fr}.revision-meta{grid-template-columns:1fr}.revision-meta>div{padding-inline:0;border-right:0;border-bottom:1px solid var(--line)}}

/* Client proposal: one immutable source for authenticated PDF and revocable web view. */
.proposal-actions{display:flex;align-items:center;gap:8px}.proposal-share{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;margin:-3px 0 16px;background:#fff7e8;border-left:4px solid var(--solar)}.proposal-share>div:first-child small,.proposal-share>div:first-child strong,.proposal-share>div:first-child span{display:block}.proposal-share>div:first-child small{font-size:9px;letter-spacing:1px}.proposal-share>div:first-child strong{font-size:12px;margin:3px 0}.proposal-share>div:first-child span{font-size:10px;color:var(--muted)}.proposal-share>form{display:flex;align-items:end;gap:8px;min-width:300px}.proposal-share>form label{font-size:10px;margin:0 0 4px}.proposal-share>form select{height:36px}.share-link{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:1;min-width:0}.share-link input{height:36px!important;max-width:430px;font-size:10px}.share-link form{margin:0}.share-link .text-button{color:var(--danger);padding:8px}.copy-success{background:#edf4ee!important;color:#296443!important;border-color:#b9d7c4!important}
.proposal-page{background:#f1f1ee;min-height:100dvh;color:var(--text)}.proposal-header{height:72px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:5}.proposal-header img{display:block;width:145px;height:auto}.proposal-header>div{text-align:right}.proposal-header small,.proposal-header strong{display:block}.proposal-header small{font-size:8px;letter-spacing:1.4px}.proposal-header strong{font:600 15px var(--heading);margin-top:2px}.proposal-document{max-width:1120px;margin:0 auto;background:var(--paper);padding:34px 42px 28px;min-height:calc(100dvh - 118px)}.proposal-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding-bottom:24px;border-bottom:3px solid var(--solar)}.proposal-hero .eyebrow{color:#7f4a08;margin-bottom:10px}.proposal-hero h1{font-size:31px;margin:0 0 7px;max-width:760px}.proposal-hero p{margin:0;color:var(--muted)}.proposal-hero>a{flex:0 0 auto}.proposal-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}.proposal-meta>div{padding:13px 15px;border-right:1px solid var(--line)}.proposal-meta>div:first-child{padding-left:0}.proposal-meta>div:last-child{border:0}.proposal-meta small{font-size:8px;letter-spacing:1px}.proposal-meta strong{display:block;font-size:11px;margin-top:3px}.proposal-system{display:grid;grid-template-columns:260px 1fr;gap:25px;padding:24px 0;background:#f2f7f4;border-left:4px solid #315f4d;margin:24px 0}.proposal-system>div{padding-left:18px}.proposal-system .eyebrow{color:#315f4d;margin-bottom:8px}.proposal-system h2{font-size:25px}.proposal-system p{font-size:11px;color:var(--muted);margin:5px 0}.proposal-system dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.proposal-system dl>div{padding:4px 18px;border-left:1px solid #d4e2d9}.proposal-system dt,.proposal-system dd{border:0;padding:3px 0}.proposal-system dt{font-size:9px}.proposal-system dd{font-size:13px;font-weight:600}.proposal-commercial{padding:5px 0 20px}.proposal-commercial .section-heading{padding:0 0 10px}.proposal-commercial .section-heading .eyebrow{margin-bottom:5px}.proposal-commercial .table-scroll{padding:0}.proposal-commercial table{border-top:1px solid var(--line)}.proposal-commercial td:first-child{min-width:250px}.proposal-totals{display:flex;justify-content:flex-end;margin-top:12px}.proposal-totals dl{display:block;width:330px;margin:0}.proposal-totals dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.proposal-totals dt,.proposal-totals dd{border:0;padding:8px 5px}.proposal-totals dd{text-align:right;font-weight:600}.proposal-totals dl>div:last-child{background:#eef6f1;border-bottom:0;border-top:2px solid #315f4d}.proposal-totals dl>div:last-child dt,.proposal-totals dl>div:last-child dd{font:600 18px var(--heading);padding:12px 9px}.proposal-totals dd small{display:inline;font:8px var(--body)}.proposal-scope{padding:16px 18px;background:#fff7e8;border-left:4px solid var(--solar);margin-bottom:18px}.proposal-scope .eyebrow{margin-bottom:7px;color:#7f4a08}.proposal-scope p{margin:0;font-size:12px;line-height:1.7}.proposal-disclaimer{border-top:1px solid var(--line);padding:16px 0;font-size:10px;color:var(--muted)}.proposal-disclaimer p{margin:4px 0;max-width:850px}.proposal-footer{max-width:1120px;margin:0 auto;padding:14px 20px;display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}
@media(max-width:800px){.proposal-actions{width:100%;justify-content:space-between}.proposal-share{align-items:flex-start;flex-direction:column}.proposal-share>form,.share-link{width:100%;min-width:0}.share-link{flex-wrap:wrap;justify-content:flex-start}.share-link input{max-width:none;flex:1 1 100%}.proposal-header{padding:0 18px}.proposal-document{padding:26px 18px}.proposal-hero{align-items:flex-start;flex-direction:column}.proposal-hero h1{font-size:26px}.proposal-hero>a{width:100%}.proposal-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-meta>div:nth-child(2){border-right:0}.proposal-meta>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.proposal-system{grid-template-columns:1fr}.proposal-system dl{grid-template-columns:1fr 1fr}.proposal-commercial td:first-child{min-width:210px}}
@media(max-width:480px){.proposal-header{height:62px}.proposal-header img{width:120px}.proposal-header small{display:none}.proposal-document{padding:22px 14px}.proposal-hero h1{font-size:23px}.proposal-meta{grid-template-columns:1fr 1fr}.proposal-system dl{grid-template-columns:1fr}.proposal-totals dl{width:100%}.proposal-footer{display:block}.proposal-footer span{display:block;margin-bottom:4px}.proposal-share>form{display:grid;grid-template-columns:1fr}.proposal-share>form button{width:100%}}

/* Receipt review uses compact color zones to separate source, analysis and editable history. */
.service-zone{background:#f6f4ef;border-left:3px solid #6d716f;padding:12px 14px;margin:0 0 16px}
.zone-kicker,.zone-heading>div>small{display:block;font-size:9px;letter-spacing:1.2px;color:var(--muted);font-weight:700;margin-bottom:7px}
.service-zone>.inline-link{display:inline-block;margin-bottom:5px}
.consumption-zone{background:#fff8e9;border:1px solid #eed9af;border-left:4px solid var(--solar);padding:14px 16px;margin:16px 0}
.zone-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.zone-heading h2{font-size:16px;margin:0}
.quality-badge{font-size:10px;font-weight:700;border-radius:20px;padding:5px 9px;background:#fff;color:#72521e;white-space:nowrap}.quality-badge.complete{background:#e7f4e8;color:#266035}.quality-badge.danger{background:#f9e6e2;color:#8b3028}.quality-badge.warning{background:#fff0d3;color:#815516}
.consumption-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-block:1px solid #ead5ad}.consumption-strip>div{padding:11px 12px;border-right:1px solid #ead5ad}.consumption-strip>div:first-child{padding-left:0}.consumption-strip>div:last-child{border-right:0}.consumption-strip dt,.consumption-strip dd,.consumption-facts dt,.consumption-facts dd{border:0;padding:0}.consumption-strip dt{font-size:10px;color:var(--muted)}.consumption-strip dd{font:600 18px var(--heading);margin-top:4px}.consumption-strip dd small{display:block;font:10px var(--body);color:var(--muted);margin-top:2px}
.consumption-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:9px 0 0;font-size:11px}.consumption-facts>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #efe1c8}.consumption-facts dt{color:var(--muted)}.consumption-facts dd{text-align:right;font-weight:600}.consumption-facts dd small{display:block;font-weight:400;color:var(--muted)}
.calculation-note{font-size:10px;color:var(--muted);margin:10px 0 0}.consumption-warnings{font-size:11px;margin-top:11px;padding:9px 11px;background:#fff;border-left:3px solid #b5682c}.consumption-warnings ul{margin:5px 0 0;padding-left:17px}.consumption-warnings li{margin:3px 0}.trend-up{color:#9a421f}.trend-down{color:#24693c}.empty-consumption{color:var(--muted)}
.history-zone{background:#f2f7f5;border-left:4px solid #487567;padding:14px 16px;margin:16px 0}.history-zone summary{color:#274d43}.history-entry>div{position:relative}.history-entry>div.current-period{background:#e7f1ed;margin:0 -7px;padding:7px;border-top-color:#aac9bd}.current-label{position:absolute;right:8px;top:-8px;font-size:8px;letter-spacing:.8px;color:#275b4a;background:#d5e9e1;padding:2px 5px;border-radius:10px}
.receipt-viewer{border-top:4px solid #5a6573}.viewer-heading{background:#f4f6f8}
@media(max-width:800px){.consumption-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.consumption-strip>div:nth-child(2){border-right:0}.consumption-strip>div:nth-child(-n+2){border-bottom:1px solid #ead5ad}.consumption-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.consumption-zone,.history-zone{padding:12px}.zone-heading{align-items:flex-start}.consumption-strip{grid-template-columns:1fr 1fr}.consumption-strip dd{font-size:15px}.consumption-facts{grid-template-columns:1fr}.quality-badge{white-space:normal;text-align:right}}

/* Solar CAD keeps the drawing surface dominant and exposes only contextual properties. */
.cad-project-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:4px solid #526779;background:#f3f6f7;padding:12px 16px;margin:0 0 14px}.cad-project-row>div{display:flex;align-items:center;gap:13px;min-width:0}.cad-project-row strong,.cad-project-row span,.cad-project-row small{display:block}.cad-project-row strong{font-size:13px}.cad-project-row span{font-size:10px;color:var(--muted)}.cad-project-icon{font-size:25px!important;color:#526779!important}
body:has(.cad-page) .content{max-width:none;padding:18px 20px}.cad-heading{margin-bottom:11px}.cad-heading h1{margin-bottom:5px}.cad-heading-actions{display:flex;align-items:center;gap:7px}.cad-toolbar{min-height:43px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--paper);padding:5px 7px;margin-bottom:8px;position:sticky;top:58px;z-index:9}.cad-tool-group{display:flex;gap:3px}.cad-toolbar button{border:1px solid transparent;background:transparent;border-radius:5px;padding:6px 8px;min-height:31px;font-size:10px;color:var(--muted)}.cad-toolbar button:hover,.cad-toolbar button.active{background:#fff2db;border-color:#edc986;color:var(--ink)}.cad-toolbar button span{font-size:15px;line-height:0;vertical-align:-1px}.cad-toolbar-divider{width:1px;height:24px;background:var(--line)}.cad-toolbar-summary{margin-left:auto;display:flex;gap:18px;color:var(--muted);font-size:9px}.cad-toolbar-summary strong{display:block;font-size:10px}
.cad-layout{display:grid;grid-template-columns:minmax(520px,1fr) 330px;gap:8px;align-items:start}.cad-workspace{min-width:0;background:#e5e7e5;border:1px solid #d5d8d5;position:sticky;top:109px}.cad-workspace svg{display:block;width:100%;height:auto;min-height:500px;max-height:calc(100dvh - 145px);background:#f9faf8;touch-action:none;cursor:default}.cad-workspace svg[data-tool="surface"],.cad-workspace svg[data-tool="module"]{cursor:crosshair}.cad-workspace svg[data-tool="obstacle"]{cursor:cell}.cad-grid-minor{stroke:#e1e5e1;stroke-width:.025}.cad-grid-major{stroke:#cfd5cf;stroke-width:.045}.cad-surface{fill:#f7f4ec;stroke:#3f6659;stroke-width:.11;vector-effect:non-scaling-stroke}.cad-vertex{fill:#fff;stroke:#2b6c55;stroke-width:.08;vector-effect:non-scaling-stroke;cursor:grab}.cad-vertex.selected{fill:var(--solar);stroke:#8a5513}.cad-measure{font-size:.38px;text-anchor:middle;fill:#53625d;paint-order:stroke;stroke:#fff;stroke-width:.08;pointer-events:none}.cad-obstacle{fill:#efd9d4;stroke:#a64a3e;stroke-width:.08;stroke-dasharray:.25 .13;vector-effect:non-scaling-stroke}.cad-obstacle-label{font-size:.42px;text-anchor:middle;dominant-baseline:middle;fill:#7d2f27;pointer-events:none}.cad-module rect{fill:#2d4e64;stroke:#f2f7fa;stroke-width:.055;vector-effect:non-scaling-stroke}.cad-module line{stroke:#6f91a6;stroke-width:.035;vector-effect:non-scaling-stroke;pointer-events:none}.cad-module{cursor:grab}.cad-module.selected rect{stroke:var(--solar);stroke-width:.14}.cad-module.invalid rect{fill:#a94136;stroke:#ffb5a9}.cad-obstacle.selected rect{stroke:var(--solar);stroke-width:.14}.cad-drawing{fill:#e8962d20;stroke:var(--solar);stroke-width:.11;stroke-dasharray:.3 .15;vector-effect:non-scaling-stroke}.cad-obstacle-draft{fill:#e8962d22;stroke:var(--solar);stroke-width:.08;vector-effect:non-scaling-stroke}.cad-canvas-help{display:flex;justify-content:space-between;gap:10px;background:#fff;padding:7px 10px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
.cad-properties{background:var(--paper);border:1px solid var(--line);max-height:calc(100dvh - 109px);overflow:auto;position:sticky;top:109px}.cad-properties form{margin:0}.cad-property-section,.cad-selection{padding:12px 14px;border-bottom:1px solid var(--line)}.cad-property-section .zone-heading,.cad-selection .zone-heading{margin-bottom:9px}.cad-field{min-width:0}.cad-field label,.cad-selection label{font-size:9px;margin:0 0 4px;color:var(--muted)}.cad-field select,.cad-field input,.cad-selection input{width:100%;height:34px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:6px 8px;font-size:11px}.cad-field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.cad-field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.cad-field-row.three label{line-height:1.15;min-height:21px}.cad-dimensions{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;border-top:1px solid var(--line);margin-top:9px;padding-top:8px;font-size:10px}.cad-dimensions span{color:var(--muted)}.cad-dimensions strong{text-align:right}.cad-dimensions small{grid-column:1/-1;font-size:9px}.cad-clearance-section{background:#fffaf0;border-left:3px solid var(--solar)}.cad-selection{background:#f4f7f6;border-left:3px solid #487567}.cad-selection .zone-heading button{padding:2px;color:var(--danger);font-size:9px}.cad-selection [data-selection-fields]{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cad-selection [data-selection-fields]>button{grid-column:1/-1;min-height:32px}.cad-layout-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px 14px}.cad-layout-actions button{font-size:10px;min-height:34px;padding:7px}.cad-summary{display:grid;grid-template-columns:1fr 1fr;margin:0;border-block:1px solid var(--line);background:#edf4ee}.cad-summary>div{padding:9px 12px;border-right:1px solid #d2e0d5;border-bottom:1px solid #d2e0d5}.cad-summary>div:nth-child(2n){border-right:0}.cad-summary>div:nth-last-child(-n+2){border-bottom:0}.cad-summary dt,.cad-summary dd{border:0;padding:0}.cad-summary dt{font-size:9px;color:#53675a}.cad-summary dd{font:600 15px var(--heading);margin-top:2px}.cad-target{font-size:9px;color:var(--muted);padding:9px 14px;margin:0}.cad-target strong{font-size:9px}.cad-target span{display:block}.cad-target .complete{color:#296443}.cad-target .warning{color:#9a5d13}.cad-save{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px 5px}.cad-save button{min-height:36px;font-size:11px}.cad-save-note{margin:0;padding:2px 14px 12px;color:var(--muted);font-size:8px}.cad-properties .errorlist{font-size:9px;margin:4px 0;padding:5px 7px 5px 22px;background:var(--danger-bg);color:var(--danger)}
@media(max-width:1050px){.cad-layout{grid-template-columns:minmax(0,1fr)}.cad-workspace,.cad-properties{position:static;max-height:none}.cad-properties form{display:grid;grid-template-columns:1fr 1fr}.cad-property-section,.cad-selection{min-width:0}.cad-layout-actions,.cad-summary,.cad-target,.cad-save,.cad-save-note,.cad-properties form>.errorlist,.cad-properties form>input{grid-column:1/-1}.cad-workspace svg{min-height:420px;max-height:70dvh}.cad-toolbar{top:0}}
@media(max-width:700px){body:has(.cad-page) .content{padding:13px}.cad-heading{align-items:flex-start}.cad-heading-actions{width:100%;justify-content:space-between}.cad-toolbar{align-items:flex-start;flex-wrap:wrap}.cad-tool-group{overflow-x:auto;max-width:100%;width:100%}.cad-toolbar button{flex:1 0 auto}.cad-toolbar-divider{display:none}.cad-toolbar-summary{margin-left:0;width:100%;justify-content:space-between;padding:0 5px}.cad-layout{display:block}.cad-workspace svg{min-height:360px}.cad-properties form{display:block}.cad-field-row.three{grid-template-columns:1fr 1fr}.cad-field-row.three>div:last-child{grid-column:1/-1}.cad-canvas-help{align-items:flex-start;flex-direction:column}.cad-project-row{align-items:flex-start;flex-direction:column}.cad-project-row>a{width:100%}}
@media(max-width:430px){.cad-heading-actions{align-items:flex-start;flex-direction:column}.cad-heading-actions>a{width:100%}.cad-layout-actions{grid-template-columns:1fr}.cad-save{align-items:stretch;flex-direction:column-reverse}.cad-save>*{width:100%;text-align:center}.cad-workspace svg{min-height:300px}.cad-field-row{grid-template-columns:1fr}}

/* Electrical design keeps configuration, checks and drawing visible without dashboard cards. */
.electrical-project-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:4px solid var(--solar);background:#fff8eb;padding:12px 16px;margin:0 0 14px}.electrical-project-row>div{display:flex;align-items:center;gap:13px;min-width:0}.electrical-project-row strong,.electrical-project-row span,.electrical-project-row small{display:block}.electrical-project-row strong{font-size:13px}.electrical-project-row span{font-size:10px;color:var(--muted)}.electrical-project-icon{font-size:27px!important;color:#a86417!important}
body:has(.electrical-page) .content{max-width:none;padding:18px 20px}.electrical-heading{margin-bottom:12px}.electrical-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.electrical-page>form{margin:0}.electrical-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:10px;align-items:start}.electrical-main,.electrical-side{display:grid;gap:10px;min-width:0}.electrical-side{position:sticky;top:70px}.electrical-zone{border:1px solid var(--line);background:#fff;padding:13px 15px;min-width:0}.equipment-zone{border-left:4px solid #536a78;background:#f5f8f9}.string-zone{border-left:4px solid var(--solar);background:#fffaf1}.protection-zone{border-left:4px solid #3f7058;background:#f3f8f5}.unifilar-zone{border-top:4px solid #536a78}.validation-zone{border-top:4px solid var(--solar)}.review-zone{border-top:4px solid #3f7058}.electrical-equipment{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #dce3e6;margin:0 0 11px}.electrical-equipment>div{padding:9px 11px;border-right:1px solid #dce3e6}.electrical-equipment>div:last-child{border-right:0}.electrical-equipment small,.electrical-equipment strong,.electrical-equipment span{display:block}.electrical-equipment small{font-size:8px;letter-spacing:.8px;color:var(--muted)}.electrical-equipment strong{font-size:11px;margin:3px 0}.electrical-equipment span{font-size:9px;color:var(--muted)}
.electrical-fields{display:grid;gap:9px}.electrical-fields.four{grid-template-columns:repeat(4,minmax(0,1fr))}.electrical-fields>div{min-width:0}.electrical-fields label,.review-zone>label:not(.review-check){font-size:9px;color:var(--muted);min-height:22px;line-height:1.2;margin:0 0 4px}.electrical-fields input,.electrical-fields select,.review-zone textarea{width:100%;height:34px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:6px 8px;font-size:11px}.review-zone textarea{height:auto;resize:vertical}.electrical-fields small{display:block;font-size:8px;color:var(--muted);margin-top:4px;line-height:1.3}.electrical-fields .errorlist,.review-zone .errorlist{font-size:9px;color:var(--danger);margin:4px 0;padding-left:15px}.electrical-formula-note{font-size:9px;color:#42614f;border-top:1px solid #cfe0d5;margin-top:10px;padding-top:8px}
.string-balance{display:flex;align-items:center;gap:10px;border-block:1px solid #ead7b6;padding:8px 0;margin-bottom:8px;font-size:10px}.string-balance strong{font:600 14px var(--heading)}.string-balance>span:last-child{margin-left:auto;font-size:9px}.string-balance .complete{color:#276344}.string-balance .warning{color:#8a5818}.strings-table{font-size:10px}.strings-table th,.strings-table td{padding:6px 7px}.strings-table input{width:100%;min-width:64px;height:30px;border:1px solid var(--line);border-radius:4px;padding:4px 6px}.strings-table th:nth-child(1){width:58px}.strings-table th:nth-child(5){width:65px}.string-remove{color:var(--danger);font-size:9px;padding:3px}.string-add{margin-top:7px;font-size:10px}
.unifilar{display:grid;grid-template-columns:minmax(58px,1fr) 6px minmax(62px,.8fr) 6px minmax(66px,.72fr) 6px minmax(58px,.62fr);align-items:center;min-height:172px;max-width:100%;padding:8px;background:repeating-linear-gradient(0deg,#fafbf9,#fafbf9 19px,#eff1ee 20px);border:1px solid var(--line);overflow:auto}.unifilar>i{display:block;height:2px;background:#536a78;min-width:6px}.unifilar-strings{display:grid;gap:5px;min-width:0}.unifilar-strings span{display:block;border:1px solid #d4b47f;border-left:3px solid var(--solar);background:#fff9ed;padding:6px 5px;font-size:7px;white-space:nowrap}.unifilar-device{border:1px solid #819099;background:#fff;padding:11px 3px;text-align:center;min-width:0}.unifilar-device strong,.unifilar-device span,.unifilar-device small{display:block}.unifilar-device strong{font-size:7px}.unifilar-device span,.unifilar-device small{font-size:6px;color:var(--muted);margin-top:3px}.unifilar-device.protection{border-color:#b26b18;background:#fff7e9}.unifilar-device.grid{border-color:#3f7058;background:#f1f7f3}.unifilar-empty{grid-column:1/-1;color:var(--muted);text-align:center;font-size:10px}.unifilar-zone>p{font-size:8px;color:var(--muted);margin:7px 0 0;overflow-wrap:anywhere}
.electrical-results{list-style:none;margin:0;padding:0;display:grid;gap:1px}.electrical-results li{display:grid;grid-template-columns:22px 1fr;gap:7px;padding:7px 0;border-bottom:1px solid var(--line)}.electrical-results li:last-child{border-bottom:0}.electrical-results li>span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;font-weight:700;font-size:10px}.electrical-results li.ok>span{background:#e2f1e7;color:#246240}.electrical-results li.warning>span{background:#fff0d4;color:#875914}.electrical-results li.error>span{background:#f8e3df;color:#8f3027}.electrical-results strong{display:block;font-size:9px}.electrical-results p{font-size:8px;color:var(--muted);margin:2px 0;line-height:1.35}.electrical-results small{font-size:8px;color:#374f45}.review-check{display:flex!important;align-items:flex-start;gap:8px;margin:10px 0 0!important;font-size:10px!important;color:var(--ink)!important;min-height:0!important}.review-check input{width:16px;height:16px;margin:0;accent-color:#37765b}.review-stamp{font-size:9px;color:#286345;background:#e8f3ec;padding:7px 9px;margin:9px 0 0}.electrical-save{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;justify-content:flex-end;gap:14px;background:#fffffff2;border:1px solid var(--line);box-shadow:0 -8px 20px #0000000d;margin-top:10px;padding:9px 13px}.electrical-save>span{font-size:8px;color:var(--muted);margin-left:auto}.electrical-save button{min-height:36px}
.revision-zone{border-top:4px solid #777}.electrical-revisions{list-style:none;padding:0;margin:0}.electrical-revisions li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.electrical-revisions li:last-child{border-bottom:0}.electrical-revisions strong,.electrical-revisions span{display:block}.electrical-revisions strong{font-size:9px}.electrical-revisions span{font-size:8px;color:var(--muted);margin-top:2px}.electrical-revisions li>div:last-child{display:flex;gap:5px}.electrical-revisions a{font-size:8px;border:1px solid var(--line);padding:4px 6px;background:#fff}
@media(max-width:1100px){.electrical-layout{grid-template-columns:1fr}.electrical-side{position:static;grid-template-columns:1fr 1fr}.unifilar-zone{grid-column:1/-1}.electrical-fields.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){body:has(.electrical-page) .content{padding:13px}.electrical-heading{align-items:flex-start}.electrical-heading-actions{justify-content:flex-start;width:100%}.electrical-side{grid-template-columns:1fr}.unifilar-zone{grid-column:auto}.electrical-equipment{grid-template-columns:1fr}.electrical-equipment>div{border-right:0;border-bottom:1px solid #dce3e6}.electrical-equipment>div:last-child{border-bottom:0}.electrical-fields.four{grid-template-columns:1fr 1fr}.electrical-save{align-items:stretch;flex-direction:column-reverse}.electrical-save>span{margin:0}.electrical-save>*{width:100%;text-align:center}.electrical-project-row{align-items:flex-start;flex-direction:column}.electrical-project-row>a{width:100%}}
@media(max-width:440px){.electrical-fields.four{grid-template-columns:1fr}.string-zone .zone-heading{align-items:flex-start;flex-direction:column}.string-zone .zone-heading button{width:100%}.unifilar{min-width:620px}.unifilar-zone{overflow-x:auto}.electrical-heading-actions>a{flex:1}.string-balance{align-items:flex-start;flex-wrap:wrap}.string-balance>span:last-child{width:100%;margin-left:0}}

/* Expediente CFE */
.cfe-project-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:4px solid #3f6e61;background:#f1f7f3;padding:12px 16px;margin:0 0 14px}.cfe-project-row>div{display:flex;align-items:center;gap:13px;min-width:0}.cfe-project-row strong,.cfe-project-row span,.cfe-project-row small{display:block}.cfe-project-row strong{font-size:13px}.cfe-project-row span{font-size:10px;color:var(--muted)}.cfe-project-icon{font-size:25px!important;color:#315f4d!important}.cfe-prerequisite{display:flex;align-items:center;gap:12px;border-left:4px solid var(--solar);background:#fff8eb;padding:10px 14px;margin-bottom:14px;font-size:11px}.cfe-prerequisite span{color:var(--muted);flex:1}.cfe-prerequisite a{font-weight:700;color:#7d531d;white-space:nowrap}.cfe-start{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(460px,1.35fr);gap:26px;align-items:start;padding:20px}.cfe-start h2{font-size:20px;margin:6px 0}.cfe-case-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px}.cfe-case-fields .field{margin:0}.cfe-case-fields label{font-size:10px;margin:0 0 4px}.cfe-case-fields input,.cfe-case-fields select,.cfe-case-fields textarea{width:100%;min-width:0;height:36px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:7px 8px;font-size:11px}.cfe-case-fields textarea{height:58px;resize:vertical}.cfe-case-fields .field:last-child{grid-column:1/-1}.cfe-progress-zone{display:grid;grid-template-columns:1fr auto;gap:4px 20px;align-items:end;padding:14px 16px;background:#edf5ef;border-left:4px solid #315f4d;margin-bottom:12px}.cfe-progress-zone small,.cfe-progress-zone strong,.cfe-progress-zone span{display:block}.cfe-progress-zone small{font-size:9px;letter-spacing:1px;font-weight:700;color:#315f4d}.cfe-progress-zone strong{font-size:15px;margin-top:2px}.cfe-progress-zone span{font-size:10px;color:var(--muted)}.cfe-progress-number{font:600 25px var(--heading);color:#315f4d}.cfe-progress-bar{grid-column:1/-1;height:5px;background:#d6e5da;overflow:hidden}.cfe-progress-bar span{display:block;height:100%;background:#315f4d}.cfe-case-settings{padding:0;margin-bottom:12px}.cfe-case-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;cursor:pointer;list-style:none}.cfe-case-settings>summary::-webkit-details-marker{display:none}.cfe-case-settings>summary small,.cfe-case-settings>summary strong{display:block}.cfe-case-settings>summary small{font-size:9px;letter-spacing:1px;color:var(--muted)}.cfe-case-settings>summary>span:last-child{font-size:10px;color:#315f4d}.cfe-case-settings form{padding:14px 16px;border-top:1px solid var(--line)}.cfe-documents{padding:15px 0}.cfe-documents>.zone-heading{padding:0 16px}.cfe-documents table{min-width:1080px}.cfe-documents td{font-size:11px;padding-top:10px;padding-bottom:10px}.cfe-documents td:first-child{width:260px}.cfe-documents td:nth-child(3){width:230px}.cfe-documents td:nth-child(4){width:220px}.cfe-status{display:inline-block;border-radius:20px;padding:4px 8px;background:#eef0ef;color:#4f5d57;font-size:9px;font-weight:700;white-space:nowrap}.cfe-status.status-uploaded,.cfe-status.status-review{background:#e8f0f7;color:#315d7a}.cfe-status.status-observed{background:#fff0d3;color:#815516}.cfe-status.status-approved,.cfe-status.status-closed{background:#e7f4e8;color:#266035}.cfe-status.status-submitted{background:#e9eefb;color:#3c5287}.cfe-version-list{font-size:9px;margin-top:5px}.cfe-version-list summary{cursor:pointer;color:#315f4d}.cfe-version-list a{display:block;margin-top:4px;overflow-wrap:anywhere}.cfe-observation{border-left:3px solid var(--solar);padding-left:8px;margin-bottom:7px}.cfe-observation p{margin:0;font-size:10px}.cfe-observation .text-button{padding:3px 0;font-size:9px;color:#315f4d}.cfe-actions>summary{cursor:pointer;color:#315f4d;font-weight:700;font-size:10px}.cfe-actions>div{width:280px;padding-top:8px}.cfe-actions form{display:grid;gap:5px;padding:8px;background:#f7f8f7;border:1px solid var(--line);margin-bottom:7px}.cfe-actions label{font-size:9px;margin:0}.cfe-actions input,.cfe-actions select,.cfe-actions textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:4px;background:#fff;padding:6px;font-size:10px}.cfe-actions input,.cfe-actions select{height:32px}.cfe-actions input[type=file]{height:auto}.cfe-actions textarea{resize:vertical}.cfe-footnote{font-size:10px;color:var(--muted)}.cfe-mini-progress{width:110px;height:4px;background:#dde5e0;margin:2px 0 5px;overflow:hidden}.cfe-mini-progress span{display:block;height:100%;background:#315f4d}
@media(max-width:850px){.cfe-start{grid-template-columns:1fr}.cfe-case-fields{grid-template-columns:1fr 1fr}.cfe-project-row,.cfe-prerequisite{align-items:flex-start;flex-direction:column}.cfe-project-row>a,.cfe-prerequisite a{width:100%;text-align:center}.cfe-heading>a{width:100%}}
@media(max-width:520px){.cfe-case-fields{grid-template-columns:1fr}.cfe-case-fields .field:last-child{grid-column:auto}.cfe-progress-zone{grid-template-columns:1fr auto}.cfe-case-settings>summary{align-items:flex-start}.cfe-start{padding:15px}}

/* Datasheet-only catalog intake */
.datasheet-heading{margin-bottom:14px}.datasheet-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px;align-items:start}.datasheet-upload,.extraction-guide{border:1px solid var(--line);background:#fff}.upload-zone{display:flex;flex-direction:column;align-items:center;text-align:center;padding:38px 24px;border:1px dashed #8ba99c;margin:14px;background:#f3f8f5}.upload-mark{display:grid;place-items:center;width:48px;height:48px;background:#e2eee7;color:#286246;font-weight:800;border-radius:8px;margin-bottom:12px}.upload-zone h2{margin:0;font-size:18px}.upload-zone p{margin:5px 0 15px;color:var(--muted);font-size:11px}.upload-zone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-zone label{cursor:pointer;min-width:190px}.upload-filename{font-size:10px;font-weight:600;margin-top:10px;overflow-wrap:anywhere}.upload-zone>small{font-size:9px;color:var(--muted);margin-top:5px}.upload-zone .errorlist{order:9;width:100%;margin-top:10px}.datasheet-upload .form-actions{padding:0 14px 14px}.datasheet-progress{margin:0 14px 12px;background:#fff8eb;border-left:4px solid var(--solar);padding:10px 12px}.datasheet-progress span{display:block;width:100%;height:4px;background:linear-gradient(90deg,var(--solar) 0 36%,#f3d6a8 36% 52%,var(--solar) 52% 88%,#f3d6a8 88%);background-size:200% 100%;animation:datasheet-progress 1.1s linear infinite}.datasheet-progress p{font-size:9px;color:#74531f;margin:7px 0 0}.extraction-guide{border-top:4px solid var(--solar);padding:17px 18px}.extraction-guide h2{font-size:17px;margin:0 0 9px}.extraction-guide ul{list-style:none;margin:0;padding:0}.extraction-guide li{display:grid;grid-template-columns:22px 1fr;padding:9px 0;border-bottom:1px solid var(--line)}.extraction-guide li:before{content:'✓';display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#e2f1e7;color:#246240;font-size:9px;font-weight:800}.extraction-guide strong,.extraction-guide span{display:block;font-size:10px}.extraction-guide span{color:var(--muted);margin-top:2px}.extraction-note{font-size:9px;background:#fff5e4;border-left:3px solid var(--solar);padding:9px;margin:12px 0 0}.catalog-specs+ .subtle{margin-top:11px}@keyframes datasheet-progress{to{background-position:-200% 0}}
@media(max-width:850px){.datasheet-layout{grid-template-columns:1fr}.extraction-guide{order:-1}.upload-zone{padding:28px 16px}}
@media(max-width:480px){.upload-zone{margin:9px}.datasheet-upload .form-actions{padding:0 9px 9px;display:grid;grid-template-columns:1fr}.datasheet-upload .form-actions>*{width:100%}}

/* Neutral container language: hierarchy comes from type, spacing and grouping. */
.rule{display:none}
.metrics article:first-child,.user-menu-panel,.quote-compare thead th.primary-option,.proposal-totals dl>div:last-child{border-top-width:1px;border-top-color:var(--line)}
.proposal-hero{border-bottom-width:1px;border-bottom-color:var(--line)}
.notice,.history-summary>div,.next-action,.sizing-blockers,.quote-warning,.quote-primary-action,.proposal-share,.proposal-system,.proposal-scope,.service-zone,.consumption-zone,.consumption-warnings,.history-zone,.cad-project-row,.cad-clearance-section,.cad-selection,.electrical-project-row,.cfe-project-row,.cfe-prerequisite,.cfe-progress-zone,.cfe-observation,.datasheet-progress,.extraction-note{border-left:0}
.dashboard-zone,.product-hero,.product-supporting-info>section,.product-history,.sizing-zone,.quote-zone,.equipment-zone,.string-zone,.protection-zone,.unifilar-strings span,.cfe-observation{border-left-width:1px;border-left-color:var(--line)!important}
.dashboard-zone,.product-hero,.product-supporting-info>section,.product-history,.sizing-zone,.quote-zone{border:1px solid var(--line)}
.dashboard-attention,.dashboard-recent,.document-section,.record-section,.consumption-basis,.equipment-zone,.result-zone,.production-zone,.quote-settings,.quote-items,.add-concept,.quote-total,.quote-basis,.quote-revisions{border-left-color:var(--line)!important}
.receipt-viewer,.unifilar-zone,.validation-zone,.review-zone,.revision-zone,.extraction-guide{border-top-width:1px;border-top-color:var(--line)}
.toast{border-left:0}.toast-error{background:#4d2424}
.card,.project-card,.project-cover-hero{box-shadow:0 1px 2px rgba(26,30,27,.04)}

/* Compact project library inspired by document workspaces. */
.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;align-items:stretch}
.project-gallery-empty{grid-column:1/-1;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-height:160px;display:grid;place-items:center}
.project-card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color 140ms ease,box-shadow 140ms ease}
.project-card:hover{border-color:#c9c7c1;box-shadow:0 3px 10px rgba(26,30,27,.06)}
.project-card.is-deleted{opacity:.72}
.project-card-cover{height:112px;display:grid;place-items:center;background:#f0efeb;border-bottom:1px solid var(--line);overflow:hidden}
.project-card-cover img{display:block;width:100%;height:100%;object-fit:cover}
.project-card-cover>span{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--paper);border:1px solid var(--line);font:600 18px var(--heading);color:var(--muted)}
.project-card-body{padding:13px 14px 10px;min-width:0;flex:1}
.project-card-status{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.project-card-status small{font-size:9px;white-space:nowrap}
.project-card-title{display:block;font:600 14px/1.3 var(--heading);overflow-wrap:anywhere}.project-card-title:hover{text-decoration:underline;text-underline-offset:3px}
.project-card-body>p{font-size:10px;color:var(--muted);margin:3px 0 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-card dl{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0}.project-card dl>div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:8px;align-items:baseline}.project-card dt,.project-card dd{border:0;padding:0;font-size:9px}.project-card dd{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 14px;border-top:1px solid var(--line);background:#fbfbf9}.project-card-actions small{font-size:8px}.project-card-actions .row-actions{justify-content:flex-end}

.project-cover-hero{position:relative;height:210px;margin:-6px 0 20px;background:#efefeb;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.project-cover-hero>img{display:block;width:100%;height:100%;object-fit:cover}
.project-cover-empty>div:first-child{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted)}
.project-cover-empty>div:first-child>span{display:grid;place-items:center;width:50px;height:50px;border-radius:11px;background:var(--paper);border:1px solid var(--line);font:600 20px var(--heading)}
.project-cover-empty>div:first-child small{font-size:10px}
.project-cover-actions{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:6px}.project-cover-actions form{margin:0}.project-cover-actions label{margin:0;background:rgba(255,255,255,.96)}
.cover-remove{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.96);color:var(--muted);font-size:18px}.cover-remove:hover{color:var(--danger)}
.project-title-heading{margin-bottom:14px}.project-title-heading h1{font-size:32px;margin-bottom:7px}

@media(max-width:900px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cover-hero{height:180px}}
@media(max-width:600px){.project-gallery{grid-template-columns:1fr}.project-cover-hero{height:155px}.project-cover-empty>div:first-child small{max-width:220px;text-align:center}.project-title-heading h1{font-size:27px}}

/* Profile trigger and menu share one stable footprint and one opening motion. */
.user-menu{width:300px;max-width:calc(100vw - 36px)}
.user-menu-trigger{width:100%;min-width:0}
.user-menu-copy{min-width:0}.user-menu-copy strong,.user-menu-copy small{white-space:normal;overflow-wrap:anywhere}
.user-menu-panel{width:100%;min-width:0;right:0;animation:user-menu-open 160ms cubic-bezier(.2,.75,.25,1) both;transform-origin:top right;will-change:opacity,transform}
.user-menu-panel a>span,.user-menu-panel button>span{min-width:0}
.user-menu-heading strong,.user-menu-heading small{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
@keyframes user-menu-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.user-menu-copy{display:grid}.user-menu{width:300px;max-width:calc(100vw - 36px)}}
@media(prefers-reduced-motion:reduce){.user-menu-panel{animation:none}}

/* Inicio uses one editorial flow: spacing and neutral rules carry the hierarchy. */
.topbar-search{position:relative;display:flex;align-items:center;flex:1;width:auto;max-width:520px;min-width:120px}
.topbar-search svg{position:absolute;left:11px;width:17px;height:17px;fill:none;stroke:var(--muted);stroke-width:1.8;pointer-events:none}
.topbar-search input{height:36px;padding:7px 12px 7px 36px;background:#fbfbfa;border-color:var(--line);font-size:12px}
.topbar-actions{display:flex;align-items:center;gap:13px;margin-left:auto}
.topbar-notifications{display:grid;place-items:center;width:36px;height:36px;color:var(--muted);border-radius:6px}
.topbar-notifications:hover{color:var(--ink);background:var(--canvas)}
.topbar-notifications svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}
.workspace-editorial{width:100%;max-width:none;margin:0}
.workspace-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 0 25px}
.workspace-heading h1{font-size:32px;margin:0 0 5px;letter-spacing:-1.1px}
.workspace-heading p{margin:0;color:var(--muted);font-size:14px}
.workspace-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 0 20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.workspace-summary a{padding:3px 0}.workspace-summary a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.workspace-summary strong{font:600 16px var(--heading);margin-right:3px}
.workspace-summary>span{color:#aaa9a4}
.workspace-section{padding:27px 0;border-top:1px solid var(--line)}
.workspace-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:16px}
.workspace-section-heading h2{font-size:17px}.workspace-section-heading>span{font-size:10px;color:var(--muted)}
.continue-project{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px;padding:2px 0 4px}
.continue-project-kicker{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}
.continue-project h3{font:600 25px/1.2 var(--heading);letter-spacing:-.6px;margin:10px 0 2px}.continue-project h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.continue-client{margin:0 0 17px;color:var(--muted);font-size:13px}
.continue-project-meta{display:flex;align-items:flex-start;gap:18px 28px;flex-wrap:wrap;font-size:11px}
.continue-project-meta>span{max-width:330px}.continue-project-meta small{font-size:8px;letter-spacing:.7px;text-transform:uppercase;margin-bottom:2px}
.continue-project-action{align-self:center}.continue-project-action .secondary{white-space:nowrap}
.workspace-empty{padding:3px 0}.workspace-empty p,.workspace-empty-line{margin:0;color:var(--muted);font-size:12px}
.attention-list{border-top:1px solid var(--line)}
.attention-item{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:1px solid var(--line)}
.attention-item strong,.attention-item small{display:block}.attention-item strong{font-size:12px}.attention-item small{font-size:10px;margin-top:2px}.attention-item b{font-size:10px;color:var(--muted);white-space:nowrap}.attention-item em{font-style:normal;font-size:9px;font-weight:700;color:#8d332d;background:#f7e9e7;border-radius:20px;padding:4px 8px}.attention-item:hover strong{text-decoration:underline;text-underline-offset:3px}
.stage-counts{display:flex;align-items:center;gap:10px 24px;flex-wrap:wrap;color:var(--muted);font-size:11px}.stage-counts span{white-space:nowrap}.stage-counts strong{font:600 16px var(--heading);margin-right:4px}
.workspace-table-scroll{overflow-x:auto}
.workspace-projects-table{border-top:1px solid var(--line);font-size:11px;min-width:720px}
.workspace-projects-table th{padding:9px 12px;font-size:9px;letter-spacing:.5px;text-transform:uppercase}.workspace-projects-table td{padding:0;border-bottom:1px solid var(--line)}
.workspace-projects-table th:first-child{padding-left:0}.workspace-projects-table td>a{display:block;padding:12px;color:var(--text);min-height:43px}.workspace-projects-table td:first-child>a{padding-left:0}.workspace-projects-table tr:hover td{background:#fafaf8}.workspace-projects-table tr:hover td:first-child strong{text-decoration:underline;text-underline-offset:3px}.workspace-projects-table .status-badge{font-size:9px;padding:3px 7px}
.workspace-cell-label{display:none}
@media(max-width:1050px){.user-menu{width:230px}.topbar-search{max-width:none}.user-menu-copy strong{font-size:10px}}
@media(max-width:850px){.workspace-editorial{max-width:900px}.continue-project{gap:20px}.continue-project-meta{gap:14px 20px}}
@media(max-width:700px){.topbar{gap:8px;padding-inline:14px}.topbar-search{flex:0 0 36px;min-width:36px;max-width:36px}.topbar-search input{height:36px;padding:0;color:transparent;cursor:pointer}.topbar-search input::placeholder{color:transparent}.topbar-search:focus-within{position:absolute;z-index:30;left:14px;right:14px;max-width:none;width:auto}.topbar-search:focus-within input{padding:7px 12px 7px 36px;color:var(--text);cursor:text;font-size:16px}.topbar:has(.topbar-search:focus-within) .topbar-actions{visibility:hidden}.topbar-actions{flex:1;min-width:0;gap:5px}.topbar-notifications{width:32px;flex:0 0 32px}.user-menu{flex:1;width:auto;max-width:none}.user-menu-trigger{justify-content:flex-start}.user-menu-copy{display:grid}.user-menu-panel{width:100%;right:0}.workspace-heading{align-items:flex-start;flex-direction:column;padding-bottom:20px}.workspace-heading .primary{width:100%}.workspace-summary{gap:6px 8px}.workspace-summary a{font-size:11px}.workspace-summary strong{font-size:14px}.workspace-section{padding:23px 0}.continue-project{grid-template-columns:1fr}.continue-project-action .secondary{width:100%}.attention-item{align-items:flex-start;gap:12px}.stage-counts{gap:8px 16px}.workspace-table-scroll{margin:0;padding:0;overflow:visible}.workspace-projects-table{display:block;min-width:0;border-top:0}.workspace-projects-table thead{display:none}.workspace-projects-table tbody,.workspace-projects-table tr{display:block}.workspace-projects-table tr{padding:9px 0;border-top:1px solid var(--line)}.workspace-projects-table td{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;border:0}.workspace-projects-table td>a,.workspace-projects-table td:first-child>a{min-height:0;padding:4px 0}.workspace-cell-label{display:block;font-size:8px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}}
@media(max-width:470px){.workspace-section-heading{align-items:flex-start}.continue-project h3{font-size:22px}.continue-project-meta{display:grid;grid-template-columns:1fr 1fr}.continue-project-meta>span:last-child{grid-column:1/-1}.stage-counts{display:grid;grid-template-columns:1fr 1fr}.workspace-summary>span{display:none}.workspace-summary a{width:calc(50% - 5px)}}

/* Keep the expanded identity on the same grid as its closed profile trigger. */
.user-menu-panel{padding:5px}
.user-menu-heading{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:5px 0 10px}
.user-menu-heading .avatar{width:34px;height:34px}

/* Project detail follows one clear step at a time. */
.topbar{justify-content:flex-end}
.project-detail-page{max-width:1260px;margin:0 auto}
.project-detail-page>.back{margin-bottom:16px}
.project-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding-bottom:18px}
.project-detail-header>div:first-child{min-width:0;max-width:760px}
.project-detail-header .eyebrow{margin-bottom:8px}
.project-detail-header .badge{margin-bottom:8px}
.project-detail-header h1{font-size:34px;margin:0 0 5px}
.project-detail-header p:not(.eyebrow){margin:0;color:var(--muted);overflow-wrap:anywhere}
.project-heading-side{display:flex;align-items:flex-start;gap:12px;flex:0 0 auto}
.project-heading-side .button-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.project-cover-compact{position:relative;width:142px;height:76px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--paper);flex:0 0 auto}
.project-cover-compact img{width:100%;height:100%;display:block;object-fit:cover}
.project-cover-compact.is-empty>span{display:grid;place-items:center;width:100%;height:100%;font:600 21px var(--heading);color:var(--muted);background:#f3f3f0}
.project-cover-compact form{position:absolute;inset:auto 5px 5px;display:flex;justify-content:center}
.project-cover-compact label{display:inline-flex;margin:0;padding:3px 7px;border-radius:4px;background:rgba(255,255,255,.94);border:1px solid var(--line);font-size:8px;cursor:pointer}
.project-overview-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--paper);border-block:1px solid var(--line);margin-bottom:0}
.project-overview-strip>div{padding:12px 18px;border-right:1px solid var(--line);min-width:0}
.project-overview-strip>div:last-child{border-right:0}
.project-overview-strip small{font-size:8px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}
.project-overview-strip strong{display:block;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.project-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:thin;background:var(--canvas)}
.project-tabs button{position:relative;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:13px 12px 11px;border:0;background:transparent;color:var(--muted);font-size:10px;white-space:nowrap}
.project-tabs button span{display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;font-size:8px}
.project-tabs button[aria-selected=true]{color:var(--ink);font-weight:700}
.project-tabs button[aria-selected=true]:after{content:'';position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--solar)}
.project-tabs button[aria-selected=true] span{border-color:var(--solar);background:var(--solar);color:var(--ink)}
.project-tab-panels{background:var(--paper);min-height:370px}
.project-tab-panel{padding:24px 28px 30px;animation:project-panel-in 150ms ease both}
.project-tab-panel[hidden]{display:none}
@keyframes project-panel-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.project-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:4px}
.project-panel-heading small{font-size:8px;letter-spacing:1.3px;font-weight:700}
.project-panel-heading h2{font-size:18px;margin:2px 0}
.project-panel-heading p{font-size:10px;color:var(--muted);margin:0}
.project-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px;margin:0}
.project-data-grid>div{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid #ecece9}
.project-data-grid dt,.project-data-grid dd{padding:0;border:0;font-size:11px}
.project-data-grid dd{color:var(--text);font-weight:600;overflow-wrap:anywhere;min-width:0}
.project-data-primary dd{font-size:14px}
.project-inline-missing,.project-location-summary{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:13px 0;border-top:1px solid var(--line)}
.project-inline-missing p{margin:0;color:var(--muted);font-size:10px}
.project-empty-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 18px}
.project-empty-state>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;font-size:19px;color:var(--muted);margin-bottom:8px}
.project-empty-state h3{font:600 17px var(--heading);margin:5px 0}
.project-empty-state p{max-width:440px;margin:0 0 18px;color:var(--muted);font-size:11px}
.project-document-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.project-document-row>span:first-child{display:grid;place-items:center;width:34px;height:40px;border:1px solid var(--line);border-radius:5px;color:#a52e28;font-size:8px;font-weight:800}
.project-document-row strong,.project-document-row small{display:block;overflow-wrap:anywhere}.project-document-row strong{font-size:11px}.project-document-row small{font-size:9px;margin-top:2px}
.project-tab-panel .consumption-zone{margin:18px 0 0;border:0;border-top:1px solid var(--line);padding:18px 0 0;background:transparent}
.project-location-summary div{display:grid;gap:2px;min-width:0}.project-location-summary small{font-size:8px;letter-spacing:1px}.project-location-summary strong{font-size:11px;overflow-wrap:anywhere}.project-location-summary span{font-size:9px;color:var(--muted)}
.project-panel-action{display:flex;justify-content:flex-end;padding-top:20px}
.project-tracking-section{padding-top:18px}.project-tracking-section+.project-tracking-section{margin-top:15px;border-top:1px solid var(--line)}.project-tracking-section h3{margin:0 0 8px}.project-tracking-section .table-scroll{padding:0}
.project-card-body>p{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4}
.project-card dl>div{grid-template-columns:76px minmax(0,1fr);align-items:start}
.project-card dt,.project-card dd{line-height:1.4}
.project-card dd{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.project-card,.project-card *{writing-mode:horizontal-tb}
.project-card-title,.project-card-body>p,.project-card dt,.project-card dd{word-break:normal;overflow-wrap:break-word;hyphens:none}
.project-card dl>div{grid-template-columns:minmax(68px,30%) minmax(0,1fr)}
@media(max-width:980px){.project-detail-header{display:grid}.project-heading-side{justify-content:space-between}.project-overview-strip{grid-template-columns:repeat(3,1fr)}.project-overview-strip>div:nth-child(3){border-right:0}.project-overview-strip>div:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media(max-width:700px){.topbar{justify-content:flex-end}.topbar-actions{flex:0 1 auto}.project-detail-header h1{font-size:27px}.project-heading-side{display:grid;grid-template-columns:1fr auto}.project-heading-side .button-row{justify-content:flex-start}.project-cover-compact{width:108px;height:68px}.project-overview-strip{grid-template-columns:repeat(2,1fr)}.project-overview-strip>div,.project-overview-strip>div:nth-child(3){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.project-overview-strip>div:nth-child(2n){border-right:0}.project-overview-strip>div:last-child{border-bottom:0}.project-tab-panel{padding:20px 16px 25px}.project-panel-heading{align-items:flex-start}.project-data-grid{grid-template-columns:1fr}.project-data-grid>div{grid-template-columns:110px minmax(0,1fr);gap:10px}.project-location-summary{align-items:flex-start;flex-direction:column}.project-location-summary .secondary{width:100%}}
@media(max-width:470px){.project-heading-side{grid-template-columns:1fr}.project-heading-side .button-row{display:grid;grid-template-columns:1fr 1fr}.project-cover-compact{width:100%;height:100px}.project-overview-strip{grid-template-columns:1fr}.project-overview-strip>div,.project-overview-strip>div:nth-child(3){border-right:0}.project-panel-heading{display:grid}.project-panel-heading .secondary,.project-panel-heading .primary{width:100%}.project-data-grid>div{grid-template-columns:1fr;gap:3px}.project-data-grid dt{padding-bottom:0}.project-data-grid dd{padding-top:0}.project-inline-missing{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.project-tab-panel{animation:none}}

/* Reference composition: compact title, technical strip and flat project sections. */
.project-breadcrumb{display:flex;align-items:center;gap:10px;margin:0 0 15px;color:var(--muted);font-size:10px}.project-breadcrumb a:hover{text-decoration:underline}.project-breadcrumb strong{font-weight:500;color:var(--muted)}
.project-detail-header{align-items:center;padding-bottom:15px}.project-detail-header .eyebrow{font-size:8px;letter-spacing:1.7px;margin:0 0 5px}.project-detail-header h1{font-size:30px;letter-spacing:-1px;margin:0 0 2px}.project-detail-header p:not(.eyebrow){font-size:11px}
.project-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:520px}.project-heading-actions .primary,.project-heading-actions .secondary{min-height:36px;padding:7px 14px;font-size:11px}.project-edit-link{padding:8px 4px;color:var(--muted);font-size:10px}.project-edit-link:hover{text-decoration:underline}
.project-overview-strip{box-shadow:0 1px 2px rgba(26,30,27,.035)}.project-overview-strip>div{display:flex;align-items:center;gap:12px;padding:14px 18px}.project-overview-strip i{display:grid;place-items:center;width:30px;flex:0 0 30px;color:#66717a;font:normal 22px/1 var(--body)}.project-overview-strip>div:first-child i{color:var(--solar)}.project-overview-strip>div>span{min-width:0}.project-overview-strip strong{font-size:12px;line-height:1.2;word-break:normal;overflow-wrap:break-word}.project-overview-strip small{font-size:8px;margin-top:3px;text-transform:none;letter-spacing:0}
.project-tabs{padding:0 2px}.project-tabs button{padding:13px 15px 11px;font-size:10px}.project-tabs button[aria-selected=true]:after{left:10px;right:10px;height:3px}.project-tabs button span{display:none}
.project-tab-panels{min-height:350px}.project-tab-panel{padding:18px 8px 26px}.project-panel-heading{padding:0 0 11px;margin-bottom:1px}.project-panel-heading h2{font-size:15px}.project-panel-heading p{font-size:9px}
.project-client-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,42%);gap:24px;align-items:stretch}.project-client-layout>div{min-width:0}.project-client-data{gap:0 30px}.project-client-data>div{grid-template-columns:100px minmax(0,1fr);padding:10px 0}.project-client-data dt,.project-client-data dd{font-size:10px}.project-client-data .project-data-primary dd{font-size:12px}
.project-cover-reference{position:relative;display:block;min-height:215px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#f0efeb}.project-cover-reference img{display:block;width:100%;height:100%;min-height:215px;object-fit:cover}.project-cover-reference.is-empty>span{display:grid;place-items:center;min-height:215px;font:600 30px var(--heading);color:var(--muted)}.project-cover-reference form{position:absolute;right:9px;top:9px}.project-cover-reference label{display:inline-flex;margin:0;padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:rgba(255,255,255,.95);font-size:9px;font-weight:600;cursor:pointer}.project-cover-reference>b{position:absolute;right:9px;bottom:9px;max-width:calc(100% - 18px);padding:5px 8px;border-radius:4px;background:rgba(19,27,32,.86);color:#fff;font-size:8px;font-weight:600;overflow-wrap:break-word}
@media(max-width:980px){.project-detail-header{display:flex;align-items:flex-start}.project-client-layout{grid-template-columns:1fr}.project-cover-reference,.project-cover-reference img,.project-cover-reference.is-empty>span{min-height:190px}.project-overview-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.project-detail-header{display:grid}.project-heading-actions{justify-content:flex-start}.project-heading-actions .project-edit-link{width:100%}.project-overview-strip{display:flex;overflow-x:auto;scrollbar-width:thin}.project-overview-strip>div,.project-overview-strip>div:nth-child(3){flex:0 0 155px;border-right:1px solid var(--line);border-bottom:0}.project-tabs{margin-inline:-8px}.project-tab-panel{padding-inline:0}.project-client-data{grid-template-columns:1fr}.project-cover-reference,.project-cover-reference img,.project-cover-reference.is-empty>span{min-height:170px}}


/* Technical catalog reference: compact hierarchy, neutral surfaces and product-first imagery. */
body:has(.catalog-reference-page) .content,
body:has(.product-reference-page) .content,
body:has(.product-edit-reference-page) .content{max-width:none;padding:22px 26px 30px}
.catalog-reference-page,.product-reference-page,.product-edit-reference-page{max-width:1380px;margin:0 auto}
.catalog-reference-page,.catalog-reference-page *,.product-reference-page,.product-reference-page *,.product-edit-reference-page,.product-edit-reference-page *{writing-mode:horizontal-tb;word-break:normal;hyphens:none}
.catalog-reference-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:2px 0 18px}
.catalog-reference-heading>div{min-width:0}.catalog-reference-heading .eyebrow{font-size:8px;letter-spacing:1.8px;margin:0 0 4px}.catalog-reference-heading h1{font-size:31px;letter-spacing:-1px;margin:0 0 1px}.catalog-reference-heading p{margin:0;color:var(--muted);font-size:12px}
.catalog-reference-heading .primary{min-height:38px;padding:8px 15px;font-size:11px;white-space:nowrap}
.catalog-count-line{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:2px 0 17px;color:var(--muted);font-size:11px}.catalog-count-line strong{font-size:12px}.catalog-count-line a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.catalog-pills{display:flex;gap:7px;overflow-x:auto;padding:0 0 13px;border-bottom:1px solid var(--line);scrollbar-width:thin}.catalog-pills a{flex:0 0 auto;min-width:100px;padding:7px 16px;border:1px solid var(--line);border-radius:22px;background:var(--paper);text-align:center;font-size:10px;color:var(--muted)}.catalog-pills a.selected,.catalog-pills a:hover{background:var(--soft);border-color:#efdfc8;color:var(--ink)}
.catalog-home-layout{display:grid;grid-template-columns:380px minmax(0,1fr);background:var(--paper);min-height:475px}.catalog-category-panel{padding:17px 16px 18px;border-right:1px solid var(--line)}.catalog-category-panel>h2{font-size:14px;margin:0 0 6px}.catalog-category-list>a{display:grid;grid-template-columns:42px minmax(0,1fr) auto 12px;align-items:center;gap:10px;min-height:59px;padding:8px 8px;border-bottom:1px solid var(--line)}.catalog-category-list>a.selected{background:var(--soft);border-bottom-color:transparent;border-radius:6px}.catalog-category-list>a:hover{background:#faf9f7}.catalog-category-list>a.selected:hover{background:var(--soft)}.catalog-category-list>a>span:nth-child(2){min-width:0}.catalog-category-list strong,.catalog-category-list small{display:block;overflow-wrap:break-word}.catalog-category-list strong{font-size:11px}.catalog-category-list small{font-size:8px;margin-top:1px}.catalog-category-list b{font-size:10px;color:var(--muted)}.catalog-category-list i{font-style:normal;color:var(--muted);font-size:16px}.catalog-category-icon{display:grid;place-items:center;width:34px;height:34px;color:#68727a}.catalog-category-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5}.catalog-category-list>a.selected .catalog-category-icon{color:#9b611c}
.catalog-recent-panel{padding:17px 20px;min-width:0}.catalog-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:8px}.catalog-section-heading h2{font-size:14px}.catalog-section-heading p{font-size:9px;color:var(--muted);margin:2px 0 0}.catalog-section-heading>a{font-size:10px;color:#945b17;white-space:nowrap}
.catalog-reference-table{padding:0;overflow-x:auto}.catalog-reference-table table{font-size:10px;min-width:650px}.catalog-reference-table th{font-size:8px;padding:7px 9px}.catalog-reference-table td{padding:6px 9px;vertical-align:middle}.catalog-reference-table td:first-child{width:330px}.catalog-reference-table tr:hover td{background:#fbfaf8}.catalog-reference-table .catalog-product-cell{min-width:260px}
.catalog-product-cell{display:flex;align-items:center;gap:9px;min-width:220px}.catalog-product-cell>span:last-child{min-width:0}.catalog-product-cell strong,.catalog-product-cell small{display:block;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word}.catalog-product-cell strong{font-size:10px;line-height:1.3}.catalog-product-cell small{font-size:8px;margin-top:1px}.product-thumb{width:38px;height:38px;border-radius:5px;object-fit:contain;background:#f7f7f5}
.catalog-breadcrumb,.product-breadcrumb{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden}.catalog-breadcrumb strong,.product-breadcrumb strong{font-weight:500;overflow:hidden;text-overflow:ellipsis}.catalog-breadcrumb:hover{text-decoration:underline}
.catalog-list-heading{align-items:center;padding-bottom:16px}.catalog-filterbar{display:grid;grid-template-columns:minmax(270px,1.35fr) repeat(3,minmax(155px,.75fr)) auto;gap:8px;margin:0 0 13px}.catalog-filterbar input,.catalog-filterbar select{max-width:none!important;width:100%!important;height:36px;font-size:10px}.catalog-filterbar .result-count{grid-column:1/-1;margin:0;font-size:9px}.catalog-search{position:relative;margin:0;min-width:0}.catalog-search>span{position:absolute;left:11px;top:7px;color:var(--muted);font-size:16px}.catalog-search input{padding-left:31px}.catalog-filterbar.live-filter-ready>button{display:none}
.catalog-list-table{border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:0;overflow-x:auto}.catalog-list-table table{min-width:910px;font-size:10px}.catalog-list-table th{background:#f7f7f5;font-size:8px;padding:8px 10px}.catalog-list-table td{padding:6px 10px;vertical-align:middle;max-width:none}.catalog-list-table td:first-child{width:300px}.catalog-list-table tbody tr:hover td{background:#fbfaf8}.catalog-list-table .status-badge{font-size:8px;padding:3px 7px}.catalog-action-cell{width:42px;text-align:center}.catalog-action-cell form{margin:0}.catalog-action-cell .small-button{min-height:28px;padding:4px 7px;font-size:8px}
.icon-danger{display:inline-grid;place-items:center;width:30px;height:30px;color:#807d78;border-radius:5px}.icon-danger:hover{color:var(--danger);background:var(--danger-bg)}
.product-breadcrumb a:hover{text-decoration:underline;text-underline-offset:3px}
.product-reference-hero{display:grid;grid-template-columns:235px minmax(0,1fr) auto;gap:24px;align-items:center;padding:0 0 15px}.product-reference-media{display:grid;place-items:center;width:235px;height:196px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden}.product-reference-media img{display:block;width:100%;height:100%;object-fit:contain}.product-reference-media>span{color:var(--muted);font-size:10px}.product-reference-copy{min-width:0}.product-category-pill{display:inline-flex;padding:4px 10px;border-radius:18px;background:var(--soft);color:#875515;font-size:9px}.product-reference-copy h1{font-size:29px;letter-spacing:-1px;margin:8px 0 3px;overflow-wrap:break-word}.product-reference-identity{display:flex;align-items:center;gap:12px;margin:0;color:var(--muted);font-size:11px}.product-reference-identity>span:not(.missing-value){width:1px;height:21px;background:var(--line)}.product-reference-meta{display:flex;align-items:center;gap:16px;margin-top:12px}.product-reference-meta>.status-badge{min-width:70px;justify-content:center}.product-reference-source{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px}.product-reference-source svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.product-reference-actions{align-self:start;display:flex;gap:8px}.product-reference-actions .primary,.product-reference-actions .secondary{min-height:36px;padding:7px 12px;font-size:10px;white-space:nowrap}.product-reference-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.product-reference-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;background:var(--paper);margin:0 0 12px}.product-reference-summary>div{display:flex;align-items:center;justify-content:center;gap:11px;min-height:64px;padding:9px 15px;border-right:1px solid var(--line);min-width:0}.product-reference-summary>div:last-child{border-right:0}.product-reference-summary i{font:normal 25px/1 var(--body);color:#6f7780;flex:0 0 auto}.product-reference-summary>div:first-child i{color:var(--solar)}.product-reference-summary span{min-width:0}.product-reference-summary strong,.product-reference-summary small{display:block;overflow-wrap:break-word}.product-reference-summary strong{font:600 15px/1.2 var(--heading)}.product-reference-summary small{font-size:8px;margin-top:2px}
.product-reference-layout{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:10px;align-items:start}.product-reference-specifications{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px;padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.product-reference-spec-group{min-width:0;padding:0 0 14px}.product-reference-spec-group>header{padding:0 0 6px;border-bottom:1px solid var(--line);margin-bottom:2px}.product-reference-spec-group h2{font-size:12px}.product-reference-spec-group header p{font-size:8px;color:var(--muted);margin:2px 0 0}.product-reference-spec-group dl{display:block;margin:0}.product-reference-spec-group dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,.65fr);gap:12px;padding:4px 0}.product-reference-spec-group dt,.product-reference-spec-group dd{padding:0;border:0;font-size:9px}.product-reference-spec-group dd{text-align:right;font-weight:600;overflow-wrap:break-word}.product-reference-aside{display:grid;gap:10px}.product-reference-aside>section{padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.product-reference-aside h2{font-size:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.product-document-row{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.product-document-row>span:nth-child(2){min-width:0}.product-document-row strong,.product-document-row small{display:block;overflow-wrap:break-word}.product-document-row strong{font-size:9px}.product-document-row small{font-size:8px;margin-top:2px}.product-document-row>b{color:var(--muted);font-size:14px;text-align:center}.product-document-row:hover strong{text-decoration:underline;text-underline-offset:3px}.document-icon{width:31px;height:36px;border-color:#efc6c2;background:#fff;color:#c22d25;font-size:7px}.product-record-panel dl{display:block;margin:0}.product-record-panel dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.8fr);gap:10px;padding:6px 0;border-bottom:1px solid #ecece9}.product-record-panel dt,.product-record-panel dd{padding:0;border:0;font-size:9px}.product-record-panel dd{text-align:right;font-weight:600}.product-record-panel>p{font-size:8px;color:var(--muted);margin:10px 0 0}.product-reference-history{margin-top:10px;padding:14px 18px 5px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.product-reference-history .table-scroll{padding:0}.product-reference-history table{font-size:9px}.product-reference-history th{font-size:8px}.product-reference-history td{padding-top:7px;padding-bottom:7px}
.product-edit-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:14px}.product-edit-heading h1{font-size:29px;margin:0 0 2px}.product-edit-heading p{font-size:11px;color:var(--muted);margin:0}.product-edit-heading>div:last-child{display:flex;gap:8px}.product-edit-heading .primary,.product-edit-heading .secondary{min-height:36px;padding:7px 13px;font-size:10px}
.product-edit-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:12px;align-items:start}.product-edit-form{background:var(--paper);border:1px solid var(--line);border-radius:6px}.product-edit-section{padding:14px 16px;border-bottom:1px solid var(--line)}.product-edit-section:last-child{border-bottom:0}.product-edit-section>header{margin-bottom:10px}.product-edit-section>header h2{font-size:13px}.product-edit-section>header p{font-size:8px;color:var(--muted);margin:2px 0 0}.product-edit-section .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px}.product-edit-section .field label{font-size:9px;margin-bottom:3px}.product-edit-section .field input:not([type=checkbox]):not([type=radio]),.product-edit-section .field select{height:33px;padding:6px 8px;font-size:10px}.product-edit-section .field textarea{min-height:58px;font-size:10px}.product-edit-section .field small{font-size:7px;margin-top:2px}.product-edit-document{max-width:520px}.product-edit-preview{position:sticky;top:70px;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.product-edit-preview-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.product-edit-preview-title h2{font-size:13px}.product-edit-preview-title p{font-size:8px;color:var(--muted);margin:2px 0 0}.product-edit-preview-title .status-badge{font-size:8px;padding:3px 7px}.product-edit-preview-media{display:grid;place-items:center;height:235px;padding:14px;margin:12px 0;background:#f7f7f5;border-radius:5px;overflow:hidden}.product-edit-preview-media img{display:block;width:100%;height:100%;object-fit:contain}.product-edit-preview-media>span{font-size:10px;color:var(--muted)}.product-edit-preview>h3{font:600 14px/1.3 var(--heading);margin:0 0 2px;overflow-wrap:break-word}.product-edit-preview-identity{font-size:9px;color:var(--muted);margin:0 0 2px;overflow-wrap:break-word}.product-edit-preview-summary{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.product-edit-preview-summary>h3{font-size:11px;margin:0 0 4px}.product-edit-preview-summary>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(75px,.55fr);gap:10px;padding:4px 0;font-size:9px}.product-edit-preview-summary>div>span{color:var(--muted)}.product-edit-preview-summary>div>strong{text-align:right}
@media(max-width:1050px){.catalog-home-layout{grid-template-columns:320px minmax(0,1fr)}.catalog-filterbar{grid-template-columns:minmax(250px,1.2fr) repeat(3,minmax(140px,.7fr))}.product-reference-hero{grid-template-columns:200px minmax(0,1fr)}.product-reference-media{width:200px;height:175px}.product-reference-actions{grid-column:2}.product-reference-summary{grid-template-columns:repeat(3,1fr)}.product-reference-summary>div:nth-child(3){border-right:0}.product-reference-summary>div:nth-child(-n+3){border-bottom:1px solid var(--line)}.product-reference-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:850px){.catalog-home-layout{grid-template-columns:1fr}.catalog-category-panel{border-right:0;border-bottom:1px solid var(--line)}.catalog-category-list{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.catalog-filterbar{grid-template-columns:1fr 1fr}.catalog-search{grid-column:1/-1}.product-reference-layout{grid-template-columns:1fr}.product-reference-aside{grid-template-columns:1fr 1fr}.product-edit-layout{grid-template-columns:1fr}.product-edit-preview{position:static;display:grid;grid-template-columns:180px minmax(0,1fr);gap:0 16px}.product-edit-preview-title{grid-column:1/-1}.product-edit-preview-media{grid-row:2/6;height:180px}.product-edit-preview-summary{margin-top:8px}}
@media(max-width:650px){body:has(.catalog-reference-page) .content,body:has(.product-reference-page) .content,body:has(.product-edit-reference-page) .content{padding:16px}.catalog-reference-heading,.catalog-list-heading,.product-edit-heading{align-items:flex-start;flex-direction:column}.catalog-reference-heading .primary,.product-edit-heading>div:last-child{width:100%}.product-edit-heading>div:last-child>*{flex:1}.catalog-reference-heading h1,.product-edit-heading h1{font-size:25px}.catalog-count-line{font-size:9px}.catalog-pills{margin-inline:-16px;padding-inline:16px}.catalog-category-list{grid-template-columns:1fr}.catalog-recent-panel{padding-inline:12px}.catalog-filterbar{grid-template-columns:1fr}.catalog-search{grid-column:auto}.catalog-filterbar input,.catalog-filterbar select{font-size:16px}.product-reference-hero{grid-template-columns:1fr;padding-bottom:12px}.product-reference-media{width:100%;height:225px}.product-reference-copy h1{font-size:25px}.product-reference-actions{grid-column:1;width:100%}.product-reference-actions>*{flex:1}.product-reference-summary{display:flex;overflow-x:auto}.product-reference-summary>div,.product-reference-summary>div:nth-child(3){flex:0 0 155px;border-right:1px solid var(--line);border-bottom:0}.product-reference-specifications{grid-template-columns:1fr}.product-reference-aside{grid-template-columns:1fr}.product-edit-section .field-grid{grid-template-columns:1fr}.product-edit-preview{display:block}.product-edit-preview-media{height:210px}.product-edit-preview-summary{margin-top:12px}}

@media(max-width:1200px){
  .catalog-home-layout{grid-template-columns:330px minmax(0,1fr)}
  .catalog-reference-table table{min-width:0}
  .catalog-reference-table .catalog-product-cell{min-width:185px}
  .catalog-reference-table td:first-child{width:auto}
  .catalog-reference-table th:nth-child(4),.catalog-reference-table td:nth-child(4){display:none}
  .catalog-list-table table{min-width:0}
  .catalog-list-table th:nth-child(3),.catalog-list-table td:nth-child(3){display:none}
}
@media(max-width:980px){
  .catalog-reference-table th:nth-child(5),.catalog-reference-table td:nth-child(5){display:none}
  .catalog-list-table th:nth-last-child(2),.catalog-list-table td:nth-last-child(2){display:none}
}

/* Shared project workspace: the complete tool is the tab content. */
.project-workspace{min-width:0}
.project-workspace-heading{padding:0 0 16px}
.project-workspace-sticky{position:sticky;top:0;z-index:24;min-width:0;margin-inline:-12px;padding:8px 12px 7px;background:var(--paper);border-bottom:1px solid var(--line);border-radius:0 0 var(--radius-small) var(--radius-small);box-shadow:0 8px 18px rgba(22,25,23,.08)}
.project-workspace-sticky .project-workspace-heading{padding:0 2px 5px}
.project-workspace-sticky .project-breadcrumb,.project-workspace-sticky .project-workspace-title .eyebrow,.project-workspace-sticky .project-workspace-title p:not(.eyebrow){display:none}
.project-workspace-sticky .project-workspace-title{align-items:center}
.project-workspace-sticky .project-workspace-title h1{margin:0;font-size:17px;line-height:1.25;letter-spacing:-.3px}
.project-workspace-sticky .project-workspace-title .badge{margin:0}
.project-workspace-sticky .project-workspace-tabs{flex-wrap:nowrap;overflow-x:auto;margin:0;padding:0;gap:2px;border:0}
.project-workspace-sticky .project-workspace-tabs a{padding:7px 10px;font-size:10px}
.project-workspace-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.project-workspace-title h1{font:600 27px/1.2 var(--heading);margin:4px 0 6px;overflow-wrap:break-word}
.project-workspace-title p:not(.eyebrow){font-size:11px;color:var(--muted);margin:0;max-width:850px}
.project-workspace-title .badge{flex-shrink:0;margin-top:22px}
.project-workspace-tabs{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--line);margin:0 0 22px;padding:0 0 2px;scrollbar-width:thin}
.project-workspace-tabs a{display:block;flex:0 0 auto;font-size:11px;padding:11px 13px;color:var(--muted);border-radius:var(--radius);text-decoration:none}
.project-workspace-tabs a:hover{background:var(--canvas);color:var(--text)}
.project-workspace-tabs a[aria-current=page]{background:var(--soft);color:var(--text);font-weight:700}
.project-workspace-tabs a:focus-visible{outline:2px solid var(--solar);outline-offset:-2px}
.project-workspace-body{min-width:0}
.project-workspace-body h1{font-size:20px!important;letter-spacing:-.3px!important}
.project-workspace-body .page-heading{margin-bottom:16px}
.project-workspace-body .page-heading .eyebrow{display:none}
.project-workspace-body .page-heading .subtle{font-size:10px}
.project-client-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,30%);gap:28px;align-items:start}
.project-section-heading{margin:0 0 16px}
.project-section-heading h2{font-size:17px;margin:0 0 4px}
.project-section-heading p{color:var(--muted);font-size:11px;margin:0}
.project-record-form{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.project-cover-editor{min-width:0}
.project-cover-editor h2{font-size:14px}
.project-cover-editor img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);margin-bottom:15px}
.project-inline-editor{border-bottom:1px solid var(--line);padding:12px 0;margin:0 0 18px}
.project-inline-editor>summary{cursor:pointer;font-size:12px;font-weight:600;padding:3px 0}
.project-inline-editor>form{margin-top:14px}
.project-workspace-body .sizing-layout,.project-workspace-body .electrical-layout,.project-workspace-body .cad-layout{min-width:0}
@media(max-width:900px){.project-client-editor{grid-template-columns:minmax(0,1fr)}.project-cover-editor{max-width:460px}.project-workspace-title h1{font-size:23px}.project-workspace-tabs{gap:0}.project-workspace-tabs a{padding:10px}}
@media(max-width:540px){.project-workspace-title{display:block}.project-workspace-title .badge{margin-top:8px}.project-workspace-body .field-grid{grid-template-columns:minmax(0,1fr)}}

.project-workspace-body .page-heading h2{font-size:19px;margin:0}.project-workspace-tabs a{border-radius:var(--radius-small)}

body:has(.project-workspace) .content{padding:var(--space-4) var(--space-5);max-width:none}
@media(max-width:1200px){.project-workspace-body .sizing-layout{grid-template-columns:minmax(0,1fr)}.project-workspace-body .sizing-results{grid-row:auto}.project-workspace-body .cad-layout{grid-template-columns:minmax(0,1fr)}.project-workspace-body .cad-workspace,.project-workspace-body .cad-properties{position:static;max-height:none}}
@media(max-width:700px){body:has(.project-workspace) .content{padding:var(--space-3)}}
/* Project workspaces: one page flow, open working sections, responsive technical surfaces. */
.project-workspace-tabs{flex-wrap:wrap;overflow:visible;row-gap:6px}
.project-workspace-body .project-inline-editor h3{font:600 14px var(--heading);margin:0 0 var(--space-3)}
.project-workspace-body .receipt-upload-section{padding:var(--space-3) 0;margin-bottom:var(--space-4);border:0;border-bottom:1px solid var(--line)}
.receipt-upload-section .upload-card{padding:var(--space-3)}
.receipt-editor{min-width:0}
.receipt-editor .consumption-zone{background:var(--paper);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-small);margin-bottom:var(--space-4)}
.receipt-editor .consumption-strip{border-color:var(--line)}
.receipt-editor .consumption-strip>div,.receipt-editor .consumption-facts>div{border-color:var(--line)}
.history-visual{padding:var(--space-4) 0;border-bottom:1px solid var(--line);margin-bottom:var(--space-4)}
.history-chart-key{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.history-chart-key i{width:10px;height:10px;background:var(--muted);border-radius:2px;margin-left:8px}
.history-chart-key .current{background:var(--solar)}
.history-chart-key .mean{height:0;width:18px;background:none;border-top:1px dashed var(--ink)}
.consumption-chart{width:100%;min-width:0;min-height:270px}
.consumption-chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart-grid{stroke:var(--line);stroke-width:1}
.chart-label{fill:var(--muted);font:11px var(--body)}
.chart-bar{fill:var(--muted)}.chart-bar.current{fill:var(--solar)}
.chart-average{stroke:var(--ink);stroke-width:1;stroke-dasharray:5 4;pointer-events:none}
.chart-period:focus{outline:none}.chart-period:hover .chart-bar,.chart-period:focus .chart-bar{fill:var(--ink)}
.chart-period:focus .chart-bar{stroke:var(--solar);stroke-width:2}
.receipt-review-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.receipt-review-grid .flat-section{padding:var(--space-3) 0;margin:0;border:0}
.receipt-review-grid .receipt-viewer{position:static}
.receipt-review-grid .viewer-canvas{height:560px;max-height:none;scrollbar-gutter:auto}
.receipt-editor .history-periods{background:var(--paper);border:0;border-block:1px solid var(--line);padding:var(--space-4) 0;margin-top:var(--space-5)}
.receipt-editor .history-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-5);overflow:visible;max-height:none}
.receipt-editor .history-entry>.history-period{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);border-top:1px solid var(--line);padding:var(--space-3) 0;align-items:start;margin:0;background:transparent}
.history-period-label{grid-column:1/-1;font-size:11px;font-weight:600;color:var(--muted)}
.current-period .history-period-label{color:var(--ink)}
.receipt-editor .history-period label{font-size:11px;margin:0 0 5px;color:var(--muted)}
.receipt-editor .history-period input{font-size:12px;min-width:0}
.receipt-editor .history-period>div{min-width:0}
.project-workspace-body .electrical-layout{display:flex;flex-direction:column;gap:var(--space-4)}
.project-workspace-body .electrical-main{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.project-workspace-body .electrical-main .string-zone{grid-column:1/-1;grid-row:2}
.project-workspace-body .electrical-side{position:static;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.project-workspace-body .unifilar-zone{grid-column:1/-1;overflow:visible}
.project-workspace-body .unifilar{display:block;min-width:0;max-width:100%;min-height:0;padding:var(--space-3);overflow:visible;background:var(--paper);border:1px solid var(--line)}
.technical-schematic{width:100%;height:auto;display:block;stroke:var(--ink);stroke-width:1.5;fill:none;stroke-linecap:square}
.technical-schematic text{fill:var(--ink);stroke:none;font:12px var(--body)}
.technical-schematic .schematic-heading{font-size:11px;fill:var(--muted);letter-spacing:1px}
.technical-schematic .schematic-current{font-size:25px}
.technical-schematic .schematic-equipment{fill:var(--paper)}
.technical-schematic .schematic-pending{stroke-dasharray:4 4}
.technical-schematic .schematic-node{fill:var(--ink)}
.technical-schematic .schematic-bus{stroke-width:3}
.schematic-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:11px;padding-top:var(--space-3);color:var(--muted)}
.project-workspace-body .unifilar-zone>p{font-size:11px;line-height:1.6}
.project-workspace-body .electrical-fields.four{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-workspace-body .electrical-results{max-height:none;overflow:visible}
.project-workspace-body .cad-properties{max-height:none;overflow:visible;position:static}
.project-workspace-body .quotation-layout{grid-template-columns:minmax(0,1fr)}
.project-workspace-body .quote-summary{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.quote-heading-state{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.quote-export{order:2;white-space:nowrap}.quote-export svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6}
.quote-export-note{font-size:12px;color:var(--muted);margin:0 0 var(--space-3)}
.project-workspace-body .quote-table{min-width:0;table-layout:fixed;width:100%}
.project-workspace-body .quote-table th:first-child{width:28%}
.project-workspace-body .quote-table td:first-child,.project-workspace-body .quote-table td:first-child input{min-width:0}
.project-workspace-body .quote-table input:not([type=checkbox]){min-width:0;width:100%}
.project-workspace-body .table-scroll:has(.quote-table),.project-workspace-body .table-scroll:has(.strings-table){overflow:visible;padding:0}
.project-workspace-body .quote-table output{white-space:normal;overflow-wrap:normal;word-break:normal}
.project-workspace-body .sizing-method .zone-heading{font-size:13px;font-weight:600;margin-bottom:var(--space-3)}
@media(max-width:1200px){
 .project-workspace-body .quote-table,.project-workspace-body .quote-table tbody{display:block}
 .project-workspace-body .quote-table thead{display:none}
 .project-workspace-body .quote-table tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--line)}
 .project-workspace-body .quote-table td{display:block;padding:0;border:0;min-width:0}
 .project-workspace-body .quote-table td:first-of-type{grid-column:1/-1}
 .project-workspace-body .quote-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
 .project-workspace-body .quote-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-workspace-body .quote-revisions{grid-column:1/-1}
}
@media(max-width:900px){
 .receipt-review-grid{grid-template-columns:1fr}
 .receipt-review-grid .receipt-viewer{grid-row:auto}
 .receipt-review-grid .viewer-canvas{height:500px}
 .project-workspace-body .electrical-main,.project-workspace-body .electrical-side{grid-template-columns:1fr}
 .project-workspace-body .electrical-main .string-zone{grid-column:auto;grid-row:auto}
 .project-workspace-body .unifilar-zone{grid-column:1}
 .project-workspace-body .strings-table{min-width:0}
}
@media(max-width:600px){
 .history-visual .zone-heading{align-items:flex-start;flex-direction:column}
 .receipt-editor .history-entry{grid-template-columns:1fr}
 .receipt-review-grid .viewer-canvas{height:400px}
 .project-workspace-body .quote-summary{grid-template-columns:1fr}
 .project-workspace-body .quote-table tr{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-workspace-body .electrical-fields.four{grid-template-columns:1fr}
 .project-workspace-body .strings-table th,.project-workspace-body .strings-table td{padding:5px 3px;font-size:10px;white-space:normal}
 .project-workspace-body .strings-table input{padding:5px;font-size:12px}
 .project-workspace-body .strings-table .string-remove{font-size:10px}
 .quote-heading-state{width:100%}.quote-export{width:100%;order:-1}
}

.project-workspace-body .quote-table textarea{width:100%;min-width:0;min-height:52px;resize:vertical;border:1px solid var(--line);border-radius:var(--radius-small);font:12px/1.5 var(--body);padding:7px;color:var(--ink);background:var(--paper)}

.project-workspace-body .electrical-save{position:static;margin-top:var(--space-4);background:var(--paper)}
.project-workspace-body .sizing-zone,.project-workspace-body .quote-zone,.project-workspace-body .electrical-zone{background:var(--paper);border-color:var(--line);border-radius:var(--radius-small)}
.project-workspace-body .quote-zone dt,.project-workspace-body .quote-zone dd{border-color:var(--line)}
.project-workspace-body .cfe-case-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1350px){
 .project-workspace-body .table-scroll:has(.project-responsive-table){overflow:visible;padding:0}
 .project-workspace-body .project-responsive-table,.project-workspace-body .project-responsive-table tbody{display:block;min-width:0}
 .project-workspace-body .project-responsive-table thead{display:none}
 .project-workspace-body .project-responsive-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--line)}
 .project-workspace-body .project-responsive-table td{display:block;border:0;padding:0;min-width:0;width:auto;overflow-wrap:break-word}
 .project-workspace-body .project-responsive-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
 .project-workspace-body .project-responsive-table td:first-child,.project-workspace-body .project-responsive-table td[colspan]{grid-column:1/-1}
 .project-workspace-body .cfe-actions>div{width:100%}
 .project-workspace-body .cfe-documents .project-responsive-table td:last-child{grid-column:1/-1}
 .project-workspace-body .cfe-case-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){.project-workspace-body .cfe-case-fields{grid-template-columns:1fr}}

.project-workspace-body .project-responsive-table .inline-link{white-space:normal;overflow-wrap:anywhere;max-width:100%}

/* Account controls live alongside the page heading, without a separate top bar. */
.page-tools{float:right;position:relative;z-index:35;width:auto;max-width:100%;margin:0 0 var(--space-3) var(--space-4);font-size:12px;color:var(--muted)}
.page-tools .topbar-actions{margin:0;gap:var(--space-2)}
.page-tools .user-menu{width:240px;max-width:100%}
.content:after{content:"";display:table;clear:both}
.page-tools .user-menu-panel{background:var(--paper)}
.category-symbol{width:22px;height:22px;display:inline-block;flex:0 0 auto;vertical-align:middle}
.catalog-pills a{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.catalog-pills .category-symbol{width:17px;height:17px}
.catalog-category-icon .category-symbol{width:28px;height:28px}
.category-heading{display:flex;align-items:center;gap:var(--space-3)}
.category-heading .category-symbol{width:28px;height:28px}
.product-thumb-empty .category-symbol{width:24px;height:24px;color:var(--muted)}
.receipt-history-layout{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(0,1.05fr);gap:var(--space-5);margin-top:var(--space-5);align-items:start;clear:both}
.receipt-editor .receipt-history-layout .history-periods{margin:0;padding:var(--space-4) 0;border-top:1px solid var(--line)}
.receipt-history-layout .history-visual{margin:0;border-block:1px solid var(--line);padding:var(--space-4) 0}
.receipt-history-layout .zone-heading{align-items:flex-start;flex-wrap:wrap;gap:var(--space-2)}
.receipt-history-layout .history-chart-key{font-size:10px;gap:5px}
.receipt-editor .receipt-history-layout .history-entry{grid-template-columns:1fr;gap:0}
.receipt-editor .receipt-history-layout .history-period{grid-template-columns:46px minmax(112px,1fr) minmax(112px,1fr) minmax(78px,.8fr);gap:7px;padding:8px 0}
.receipt-history-layout .history-period-label{grid-column:auto;align-self:center;font-size:10px}
.receipt-editor .receipt-history-layout .history-period label{font-size:10px}
@media(max-width:1100px){.receipt-history-layout{grid-template-columns:1fr}.page-tools .user-menu{width:210px}}
@media(max-width:700px){
 .page-tools{margin-left:10px;margin-bottom:10px}
 .page-tools .user-menu{width:40px;max-width:none;margin:0}
 .page-tools .user-menu-trigger{padding:2px;justify-content:center}
 .page-tools .user-menu-copy{display:none}
 .page-tools .user-menu-panel{width:min(300px,calc(100vw - 28px));right:0}
 .page-tools .user-menu-heading strong,.page-tools .user-menu-heading small{white-space:normal;overflow-wrap:anywhere}
 .page-tools .topbar-actions{gap:3px}
 .receipt-editor .receipt-history-layout .history-period{grid-template-columns:repeat(3,minmax(0,1fr))}
 .receipt-history-layout .history-period-label{grid-column:1/-1}
}

/* Keep category navigation and tables within the available page width. */
.catalog-pills{flex-wrap:wrap;overflow:visible}
@media(max-width:850px){.catalog-home-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
 .catalog-pills{margin-inline:0;padding-inline:0}
 .catalog-pills a{min-width:0;padding:7px 10px}
 .catalog-list-table,.catalog-reference-table{max-width:100%;overflow-x:auto}
}

@media(max-width:650px){.catalog-reference-table .catalog-product-cell{min-width:140px}}

.catalog-list-table,.catalog-reference-table{position:relative}

/* Receipt history: one compact editable table aligned with its chart. */
.receipt-history-layout{align-items:stretch}
.receipt-history-layout .history-visual{display:flex;flex-direction:column;min-width:0}
.receipt-history-layout .consumption-chart{position:relative;flex:1;min-height:270px}
.receipt-history-layout .consumption-chart svg{position:absolute;inset:0;width:100%;height:100%}
.receipt-history-layout .history-visual>p{min-height:36px;margin-bottom:0}
.receipt-history-layout .history-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;margin-top:var(--space-3);font-size:12px}
.receipt-history-layout .history-table thead th{background:var(--canvas);color:var(--muted);font-size:11px;font-weight:500;white-space:normal}
.receipt-history-layout .history-table th,.receipt-history-layout .history-table td{position:relative;padding:6px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left}
.receipt-history-layout .history-table th:first-child{width:12%;padding-left:0}
.receipt-history-layout .history-table th:last-child{width:25%}
.receipt-history-layout .history-table tbody th{font-weight:500;color:var(--muted)}
.receipt-editor .receipt-history-layout .history-table .history-period{display:table-row;background:transparent}
.receipt-history-layout .history-table .current-period{background:var(--canvas)}
.receipt-history-layout .history-table .history-period-label{font-size:11px;white-space:nowrap}
.receipt-editor .receipt-history-layout .history-table input{width:100%;min-width:0;height:30px;padding:4px 6px;font-size:12px;border-color:transparent;background:transparent;border-radius:var(--radius-small)}
.receipt-editor .receipt-history-layout .history-table input:hover{border-color:var(--line);background:var(--paper)}
.receipt-editor .receipt-history-layout .history-table input:focus{border-color:var(--solar);background:var(--paper);outline:2px solid var(--solar);outline-offset:1px}
.receipt-history-layout .history-table .history-kwh,.receipt-history-layout .history-table .history-kwh input{text-align:right;font-variant-numeric:tabular-nums}
.receipt-history-layout .history-table .errorlist{font-size:10px;padding:4px;margin:4px 0;overflow-wrap:anywhere}
@media(max-width:1100px){.receipt-history-layout .consumption-chart{flex:none;height:310px}}
@media(max-width:600px){
 .receipt-history-layout .history-table th,.receipt-history-layout .history-table td{padding:5px 2px}
 .receipt-editor .receipt-history-layout .history-table input{padding:4px 1px;font-size:11px}
 .receipt-history-layout .history-table th:first-child{width:13%}
 .receipt-history-layout .history-table th:last-child{width:21%}
 .receipt-history-layout .history-table thead th,.receipt-history-layout .history-table .history-period-label{font-size:10px}
 .receipt-history-layout .history-table thead th span{display:block}
}

.receipt-service-fields .receipt-period-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.receipt-service-fields .receipt-period-row .field{min-width:0}
@media(max-width:600px){.receipt-service-fields .receipt-period-row{grid-template-columns:1fr;gap:0}}

/* Receipt review: compact metrics, shared cadence control and document actions. */
.receipt-editor .consumption-zone{
  margin:0 0 var(--space-4);padding:var(--space-3) 0;background:transparent;
  border:0;border-block:1px solid var(--line);border-radius:0;
}
.consumption-strip-compact{grid-template-columns:repeat(4,minmax(0,1fr));border-color:var(--line)}
.receipt-editor .consumption-strip-compact>div{padding:8px 12px;border-color:var(--line);min-width:0}
.receipt-editor .consumption-strip-compact>div:first-child{padding-left:0}
.consumption-strip-compact dt{display:flex;align-items:center;gap:5px;min-height:18px}
.consumption-strip-compact dd{font-size:16px;margin-top:2px;overflow-wrap:anywhere}
.consumption-strip-compact dd small{font-size:9px;line-height:1.35}
.consumption-brief{display:flex;align-items:center;gap:6px 22px;flex-wrap:wrap;padding-top:8px;color:var(--muted);font-size:10px}
.consumption-brief strong{color:var(--ink);font-weight:600}
.metric-help{
  position:relative;display:inline-grid;place-items:center;flex:0 0 auto;width:15px;height:15px;padding:0;
  border:1px solid #c8c8c4;border-radius:50%;background:var(--paper);color:var(--muted);
  font:700 9px/1 var(--body);cursor:help;
}
.metric-help:hover,.metric-help:focus-visible{border-color:var(--solar);color:var(--ink);outline:0}
.metric-help::after{
  content:attr(data-tooltip);position:absolute;z-index:60;left:50%;bottom:calc(100% + 8px);width:220px;
  padding:8px 9px;border:1px solid var(--line);border-radius:var(--radius-small);background:#20221f;color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.14);font:10px/1.45 var(--body);text-align:left;
  opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .15s ease,transform .15s ease;
}
.metric-help:hover::after,.metric-help:focus-visible::after{opacity:1;transform:translate(-50%,0)}
.period-view-switch{
  grid-column:1/-1;justify-self:end;display:inline-flex;align-items:center;gap:3px;padding:4px;
  border:1px solid rgba(198,198,193,.9);border-radius:999px;background:rgba(255,255,255,.72);
  box-shadow:0 5px 16px rgba(22,25,23,.08);backdrop-filter:blur(14px) saturate(1.08);
  -webkit-backdrop-filter:blur(14px) saturate(1.08);
}
.period-view-switch>span{padding:0 7px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px}
.period-view-switch button{min-height:28px;padding:5px 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:10px;font-weight:600}
.period-view-switch button[aria-pressed=true]{background:var(--solar);color:var(--ink);box-shadow:0 1px 4px rgba(55,40,18,.14)}
.period-view-switch[aria-busy=true]{pointer-events:none}
.receipt-history-layout .history-table tbody[data-derived-history] td,
.receipt-history-layout .history-table tbody[data-derived-history] th{height:42px}
.receipt-history-layout .history-table tbody[data-derived-history] time{font-variant-numeric:tabular-nums;color:var(--text)}
.receipt-history-layout .derived-period.current-period{background:var(--canvas)}
.viewer-footer{border-top:1px solid var(--line);padding:10px 12px;background:var(--paper)}
.viewer-file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.viewer-file-row>a{display:flex;min-width:0;align-items:center;gap:4px;font-size:10px}
.viewer-file-row>a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.viewer-document-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.viewer-replace{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 9px;font-size:10px;cursor:pointer;white-space:nowrap}
.viewer-replace svg,.icon-danger svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.viewer-replace.is-disabled{opacity:.55;cursor:wait;pointer-events:none}
.icon-danger{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper);color:var(--danger)}
.icon-danger:hover{background:var(--danger-bg);border-color:#e4b9b3}
.viewer-extraction-progress{padding-top:9px}
@media(max-width:800px){
  .consumption-strip-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .receipt-editor .consumption-strip-compact>div:nth-child(2){border-right:0}
  .receipt-editor .consumption-strip-compact>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:520px){
  .period-view-switch{justify-self:stretch;justify-content:center}
  .viewer-file-row{align-items:flex-start;flex-direction:column}
  .viewer-document-actions{width:100%}.viewer-replace{flex:1;justify-content:center}
  .metric-help::after{left:auto;right:-12px;transform:translateY(4px)}
  .metric-help:hover::after,.metric-help:focus-visible::after{transform:translateY(0)}
}
.consumption-quality{display:flex;align-items:center;gap:5px}
.receipt-editor .consumption-warnings{border:1px solid var(--line);background:var(--paper)}
.consumption-strip-compact>div:nth-child(n+3) .metric-help::after,
.consumption-quality .metric-help::after,
.consumption-brief>span:last-child .metric-help::after{left:auto;right:-8px;transform:translateY(4px)}
.consumption-strip-compact>div:nth-child(n+3) .metric-help:hover::after,
.consumption-strip-compact>div:nth-child(n+3) .metric-help:focus-visible::after,
.consumption-quality .metric-help:hover::after,
.consumption-quality .metric-help:focus-visible::after,
.consumption-brief>span:last-child .metric-help:hover::after,
.consumption-brief>span:last-child .metric-help:focus-visible::after{transform:translateY(0)}

/* Shared glass control tokens and stable receipt comparison surfaces. */
:root{
 --glass-surface:rgba(240,241,240,.72);
 --glass-lens:rgba(255,255,255,.86);
 --glass-edge:rgba(255,255,255,.95);
 --glass-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 2px 8px rgba(23,25,24,.07);
 --motion-liquid:cubic-bezier(.22,1,.36,1);
 --receipt-table-height:540px;
}
.period-view-switch{position:relative;isolation:isolate;display:grid;grid-template-columns:90px 90px;gap:0;padding:5px;background:var(--glass-surface);border:1px solid var(--line);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4)}
.period-view-switch>span{display:none}
.period-view-switch::before{content:'';position:absolute;z-index:-1;top:5px;bottom:5px;left:5px;width:90px;border-radius:999px;background:var(--glass-lens);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);transition:transform 480ms var(--motion-liquid)}
.period-view-switch[data-active=bimonth]::before{transform:translateX(90px)}
.period-view-switch button{min-height:34px;padding:6px 14px;font-size:12px;transition:color 260ms ease}
.period-view-switch button[aria-pressed=true]{background:transparent;box-shadow:none;color:var(--solar);font-weight:700}
.period-view-switch button:focus-visible{outline:2px solid var(--solar);outline-offset:-2px}
.receipt-history-layout .history-table{height:var(--receipt-table-height)}
.receipt-history-layout .history-table thead{height:36px}
.receipt-history-layout .history-table tbody tr{height:auto}
.receipt-history-layout .history-table tbody[data-derived-history] td,
.receipt-history-layout .history-table tbody[data-derived-history] th{height:auto}
.receipt-history-layout .history-table td,.receipt-history-layout .history-table th{transition:none}
.receipt-history-layout .history-period-label{white-space:normal}
.chart-bar{transform-box:fill-box;transform-origin:center bottom}
.receipt-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.receipt-review-grid .receipt-service{min-height:600px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}
.receipt-review-grid .receipt-viewer{display:flex;flex-direction:column;min-height:600px;border-radius:var(--radius-small)}
.receipt-review-grid .viewer-canvas{flex:1;height:0;min-height:320px}
.viewer-file-row{justify-content:center;flex-wrap:wrap;text-align:center;gap:var(--space-2)}
.viewer-file-row>a{justify-content:center;max-width:100%}
.viewer-file-row>a span{white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}
.viewer-document-actions{justify-content:center}
.viewer-footer .viewer-replace{margin:0;letter-spacing:normal;text-transform:none;font-weight:500}
@media(max-width:1100px){.receipt-history-layout .consumption-chart{height:var(--receipt-table-height)}}
@media(max-width:900px){
 .receipt-review-grid{grid-template-columns:minmax(0,1fr)}
 .receipt-review-grid .receipt-service{min-height:0}
 .receipt-review-grid .receipt-viewer{min-height:600px}
}
@media(max-width:520px){
 .period-view-switch{justify-self:center}
 .viewer-file-row{align-items:center;flex-direction:row}
 .viewer-document-actions{width:auto}
 .viewer-replace{flex:0 1 auto}
 .receipt-review-grid .receipt-service{padding:var(--space-3)}
}

/* Project workspace: persistent cover and field-level project summary. */
.project-workspace-layout{display:grid;width:100%;grid-template-columns:minmax(245px,300px) minmax(0,1fr);gap:var(--space-5);align-items:start}
.project-workspace-main{min-width:0}
.project-workspace-sidebar{position:sticky;top:78px;min-width:0}
.project-cover-sidebar{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper)}
.project-cover-sidebar>img{display:block;width:100%;height:100%;object-fit:cover}
.project-cover-sidebar form{margin:0}
.project-cover-hover-actions{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;gap:var(--space-1);padding:var(--space-2);background:transparent;opacity:0;pointer-events:none;transition:opacity 140ms ease}
.project-cover-sidebar:hover .project-cover-hover-actions,.project-cover-sidebar:focus-within .project-cover-hover-actions{opacity:1;pointer-events:auto}
.project-cover-hover-actions label,.project-cover-hover-actions button,.project-cover-select{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 9px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper);color:var(--text);font-size:10px;font-weight:600;cursor:pointer}
.project-cover-hover-actions button:hover{color:var(--danger)}
.project-cover-hover-actions svg,.project-cover-select svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}
.project-cover-sidebar.is-empty{min-height:178px;aspect-ratio:auto;background:var(--canvas)}
.project-cover-select{min-height:38px;padding:8px 12px;background:var(--paper)}
.project-quick-summary{margin-top:var(--space-3);border-top:1px solid var(--line)}
.project-quick-summary>header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) 2px var(--space-2)}
.project-quick-summary>header small{font-size:8px;letter-spacing:1.2px;font-weight:700}
.project-quick-summary>header span{color:var(--muted);font-size:8px;text-align:right}
.project-fact-editor,.project-fact-static{border-bottom:1px solid var(--line)}
.project-fact-editor>summary,.project-fact-static{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;gap:8px;align-items:center;min-height:48px;padding:7px 2px;list-style:none}
.project-fact-editor>summary::-webkit-details-marker{display:none}
.project-fact-editor>summary{cursor:pointer}
.project-fact-editor>summary:hover .project-fact-edit{color:var(--text)}
.project-fact-icon{display:grid;place-items:center;width:20px;height:20px;color:var(--muted)}
.project-fact-icon svg,.project-fact-edit svg,.project-fact-save svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.project-fact-copy{min-width:0}
.project-fact-copy small{font-size:8px;letter-spacing:.3px;margin-bottom:1px}
.project-fact-copy strong{display:block;font-size:10px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.project-fact-edit{display:grid;place-items:center;color:var(--muted)}
.project-fact-editor[open]>summary{background:var(--soft)}
.project-fact-editor[open] .project-fact-edit{color:var(--solar)}
.project-fact-form{padding:var(--space-2) 2px var(--space-3)}
.project-fact-form>input:not([type=hidden]),.project-fact-form>textarea{height:34px;padding:6px 8px;font-size:11px}
.project-fact-form>textarea{height:auto;min-height:64px}
.project-inline-choices{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0}
.project-inline-choices label{margin:0;cursor:pointer}
.project-inline-choices input{position:absolute;opacity:0;pointer-events:none}
.project-inline-choices span{display:inline-flex;align-items:center;min-height:29px;padding:5px 8px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--muted);font-size:9px}
.project-inline-choices input:checked+span{border-color:var(--solar);background:var(--soft);color:var(--ink);font-weight:700}
.project-inline-choices input:focus-visible+span{outline:2px solid var(--solar);outline-offset:2px}
.project-fact-save{display:inline-flex;align-items:center;gap:5px;min-height:30px;margin-top:8px;padding:5px 9px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--paper);font-size:9px;font-weight:700}
.project-fact-save:hover{border-color:var(--solar);background:var(--soft)}
.project-inline-errors{margin:7px 0;padding:8px 10px 8px 25px;border-radius:var(--radius-small);background:var(--danger-bg);color:var(--danger);font-size:9px}
.project-fact-static{grid-template-columns:22px minmax(0,1fr)}
.project-client-section{max-width:1040px}
.project-inline-record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-5);border-top:1px solid var(--line)}
.project-inline-record-list .project-fact-editor>summary{min-height:56px;padding-inline:5px}
.project-inline-record-list .project-fact-form{padding-inline:5px}
.project-client-link-editor{margin-top:var(--space-5)}
@media(hover:none){.project-cover-hover-actions{opacity:1;pointer-events:auto}}
@media(max-width:1050px){.project-workspace-layout{grid-template-columns:240px minmax(0,1fr);gap:var(--space-4)}.project-workspace-tabs a{padding-inline:9px;font-size:10px}}
@media(max-width:800px){.project-workspace-layout{grid-template-columns:minmax(0,1fr)}.project-workspace-sidebar{position:static;display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:var(--space-4);align-items:start}.project-quick-summary{margin-top:0}.project-workspace-main{grid-column:1}.project-cover-sidebar{aspect-ratio:4/3}.project-cover-sidebar.is-empty{min-height:170px}}
@media(max-width:580px){.project-workspace-sidebar{display:block}.project-cover-sidebar{max-height:230px}.project-quick-summary{margin-top:var(--space-3)}.project-inline-record-list{grid-template-columns:minmax(0,1fr)}.project-cover-hover-actions span{display:none}}
@media(max-width:580px){.project-workspace-sticky{margin-inline:-6px;padding-inline:8px}.project-workspace-sticky .project-workspace-title{display:flex}.project-workspace-sticky .project-workspace-title h1{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-workspace-sticky .project-workspace-title .badge{font-size:9px;padding:3px 7px}}

/* Floating application navigation. Its width defines the available workspace. */
.admin-layout,.admin-layout.sidebar-pinned{grid-template-columns:auto minmax(0,1fr);align-items:start;transition:none}
.sidebar{z-index:30;top:8px;width:48px;height:calc(100dvh - 16px);margin:8px 0 8px 8px;padding:12px 6px;overflow:hidden;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 18px rgba(22,25,23,.07);transition:width 180ms ease}
.admin-layout.sidebar-pinned .sidebar{width:216px}
.admin-layout:not(.sidebar-pinned):not(.sidebar-dismissed) .sidebar:is(:hover,:focus-within){width:216px}
.admin-layout .topbar,.admin-layout .content,.admin-layout .admin-footer{padding-inline:12px}
.sidebar-head{position:relative;display:flex;align-items:center;min-height:36px;margin-bottom:14px}
.sidebar .brand{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0;padding:5px;overflow:hidden;flex-shrink:0}
.sidebar .sidebar-brand-full{display:none;width:128px;height:auto}
.sidebar .sidebar-brand-compact{display:block;width:24px;height:24px}
.sidebar-pin{position:absolute;right:1px;display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--muted);opacity:0;pointer-events:none;transition:opacity 120ms ease,color 120ms ease,background 120ms ease}
.sidebar-pin svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sidebar-pin:hover{color:var(--ink);background:var(--soft)}
.sidebar-pinned .sidebar-pin{color:var(--solar);background:var(--soft);border-color:var(--solar)}
.sidebar:is(:hover,:focus-within) .sidebar-pin,.sidebar-pinned .sidebar-pin{opacity:1;pointer-events:auto}
.sidebar .eyebrow{height:11px;margin-bottom:10px;padding-left:6px;font-size:7px;letter-spacing:1.3px;white-space:nowrap;opacity:0;transition:opacity 120ms ease}
.sidebar nav a{justify-content:center;width:100%;min-height:30px;gap:8px;margin-bottom:1px;padding:5px 6px;border-radius:8px;font-size:11px;white-space:nowrap;overflow:hidden}
.sidebar nav .nav-icon{width:16px;height:16px}
.sidebar .nav-label{display:block;width:0;overflow:hidden;font-size:11px;opacity:0;transition:opacity 120ms ease}
.sidebar .nav-divider{width:24px;margin-inline:auto}
.sidebar:is(:hover,:focus-within) .brand,.sidebar-pinned .brand{width:148px;justify-content:flex-start}
.sidebar:is(:hover,:focus-within) .sidebar-brand-full,.sidebar-pinned .sidebar-brand-full{display:block}
.sidebar:is(:hover,:focus-within) .sidebar-brand-compact,.sidebar-pinned .sidebar-brand-compact{display:none}
.sidebar:is(:hover,:focus-within) .eyebrow,.sidebar-pinned .eyebrow{opacity:1}
.sidebar:is(:hover,:focus-within) nav a,.sidebar-pinned nav a{justify-content:flex-start}
.sidebar:is(:hover,:focus-within) .nav-label,.sidebar-pinned .nav-label{width:auto;opacity:1}
.sidebar:is(:hover,:focus-within) .nav-divider,.sidebar-pinned .nav-divider{width:auto;margin-inline:8px}

/* Direct, field-level editing in project and client summaries. */
.project-workspace-layout{grid-template-columns:minmax(270px,320px) minmax(0,1fr)}
.project-fact-editor,.project-fact-static{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:58px;padding:9px 2px;border-bottom:1px solid var(--line)}
.project-fact-static{grid-template-columns:28px minmax(0,1fr)}
.project-fact-icon{width:26px;height:26px}
.project-fact-icon svg{width:19px;height:19px;stroke-width:1.7}
.project-fact-copy small{font-size:10px;line-height:1.3;letter-spacing:.35px;margin-bottom:2px}
.project-fact-copy strong{font-size:13px;line-height:1.4}
.project-fact-value{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;cursor:text}
.project-fact-value:hover strong,.project-fact-value:focus-visible strong{text-decoration:underline;text-decoration-color:var(--solar);text-underline-offset:3px}
.project-fact-action{min-height:30px;padding:5px 8px;border:1px solid transparent;border-radius:var(--radius-small);background:transparent;color:var(--muted);font-size:10px;font-weight:700;opacity:0;pointer-events:none;transition:opacity 120ms ease,background 120ms ease,border-color 120ms ease}
.project-fact-editor:hover .project-fact-action,.project-fact-editor:focus-within .project-fact-action,.project-fact-editor.is-editing .project-fact-action{opacity:1;pointer-events:auto}
.project-fact-action:hover{border-color:var(--line);background:var(--paper);color:var(--ink)}
.project-fact-action.is-save,.project-fact-editor.is-editing .project-fact-action{border-color:var(--solar);background:var(--solar);color:var(--ink)}
.project-fact-action[hidden]{display:none}
.project-fact-editor.is-editing{align-items:start;background:var(--soft)}
.project-fact-editor.is-editing .project-fact-icon{margin-top:3px;color:var(--solar)}
.project-fact-editor.is-editing .project-fact-value{display:none}
.project-fact-form{padding:4px 0 2px}
.project-fact-form>input:not([type=hidden]),.project-fact-form>textarea{height:38px;padding:7px 9px;font-size:13px}
.project-fact-form>textarea{height:auto;min-height:72px}
.project-inline-choices{gap:7px}
.project-inline-choices span{min-height:32px;padding:6px 10px;font-size:11px}
.project-inline-errors{font-size:11px}
@media(hover:none){.project-fact-action{opacity:1;pointer-events:auto}}
@media(max-width:1050px){.project-workspace-layout{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:800px){.project-workspace-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){
 .admin-layout,.admin-layout.sidebar-pinned{display:block}
 .admin-layout .sidebar,.admin-layout.sidebar-pinned .sidebar,.admin-layout:not(.sidebar-pinned):not(.sidebar-dismissed) .sidebar:is(:hover,:focus-within){position:static;width:100%;height:auto;margin:0;padding:14px 16px;overflow:visible;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
 .sidebar-head{margin-bottom:0}
 .sidebar .brand,.sidebar:is(:hover,:focus-within) .brand,.sidebar-pinned .brand{width:150px}
 .sidebar .sidebar-brand-full{display:block;width:140px}
 .sidebar .sidebar-brand-compact,.sidebar-pin{display:none}
 .sidebar .nav-label{width:auto;opacity:1}
 .sidebar nav{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}
 .sidebar nav a{justify-content:flex-start;width:auto;padding:8px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.admin-layout,.sidebar,.sidebar .nav-label,.sidebar-pin{transition:none}}

/* Session controls belong to the navigation rail and expand with it. */
.sidebar-account{width:100%;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);overflow:hidden}
.sidebar-account-identity{display:flex;align-items:center;gap:9px;min-height:36px;padding:3px}
.sidebar-account-identity .avatar{width:28px;height:28px;flex:0 0 28px;background:var(--soft);color:#744a18;font-size:11px;font-weight:700}
.sidebar-account-copy{display:grid;width:0;min-width:0;overflow:hidden;line-height:1.25;opacity:0;transition:opacity 120ms ease}
.sidebar-account-copy strong,.sidebar-account-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-account-copy strong{font-size:11px}
.sidebar-account-copy small{font-size:8px}
.sidebar-account-actions{display:grid;gap:2px;margin-top:5px}
.sidebar-account-actions form{margin:0}
.sidebar-account-actions a,.sidebar-account-actions button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:30px;padding:5px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:10px;text-align:left;white-space:nowrap}
.sidebar-account-actions a:hover,.sidebar-account-actions button:hover{background:var(--soft);color:var(--ink)}
.sidebar-account-actions form button{color:#7b4540}
.sidebar-account-actions svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.6}
.sidebar-account-actions span{display:block;width:0;overflow:hidden;opacity:0;transition:opacity 120ms ease}
.sidebar:is(:hover,:focus-within) .sidebar-account-copy,.sidebar-pinned .sidebar-account-copy{width:auto;opacity:1}
.sidebar:is(:hover,:focus-within) .sidebar-account-actions a,.sidebar:is(:hover,:focus-within) .sidebar-account-actions button,.sidebar-pinned .sidebar-account-actions a,.sidebar-pinned .sidebar-account-actions button{justify-content:flex-start;padding-inline:8px}
.sidebar:is(:hover,:focus-within) .sidebar-account-actions span,.sidebar-pinned .sidebar-account-actions span{width:auto;opacity:1}
@media(max-width:700px){
 .sidebar-account{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;overflow:visible}
 .sidebar-account-copy{width:auto;opacity:1}
 .sidebar-account-actions{display:flex;margin:0 0 0 auto}
 .sidebar-account-actions a,.sidebar-account-actions button{justify-content:flex-start;width:auto;padding-inline:8px}
 .sidebar-account-actions span{width:auto;opacity:1}
}
