:root{--accent:#1463df;--nav:#112435;--ink:#152d43;--muted:#6b7d8e;--line:#dfe7ee;--bg:#f4f7fa;--green:#147359;--radius:15px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible{outline:3px solid #76b2ff;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #83b4ff;outline-offset:1px;border-color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-1px;line-height:1.25}h2{font-size:19px;letter-spacing:-.35px}h3{font-size:15px}small,.muted{color:var(--muted)}small{font-size:12px}.caps{font-size:10px;font-weight:750;letter-spacing:1.2px;text-transform:uppercase}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.icon{width:19px;height:19px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}
button,.button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 15px;border-radius:9px;font-weight:650;font-size:13px;display:inline-flex;gap:8px;align-items:center;justify-content:center;line-height:1.3;min-height:40px}button:hover,.button:hover{background:#f4f7fc;text-decoration:none;border-color:#b6cadd}button.primary,.button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 6px #1463df15}button.primary:hover{filter:brightness(.96)}button.ghost{background:transparent;border-color:transparent}button.danger{color:#a83c42;background:#fff6f6;border-color:#f1cdce}button.small,.button.small{padding:7px 10px;font-size:12px;min-height:34px}.button-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.push{margin-left:auto}.w-full{width:100%}.nowrap{white-space:nowrap}
.shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{position:fixed;width:232px;inset:0 auto 0 0;background:var(--nav);color:#d3dfea;display:flex;flex-direction:column;padding:28px 16px 18px;z-index:30}.brand{display:flex;gap:11px;align-items:center;padding:0 12px 28px}.brand-icon{display:grid;place-items:center;width:37px;height:39px;background:var(--accent);color:white;border-radius:10px;font-weight:800;font-size:26px;line-height:1}.brand-name{font-weight:730;font-size:20px;letter-spacing:-.5px;color:#fff;max-width:145px;overflow:hidden;text-overflow:ellipsis}.brand .caps{color:#7f9bb2;font-size:8px;letter-spacing:1.9px}.nav-label{color:#5f7f97;padding:6px 14px 10px;font-size:9px;text-transform:uppercase;font-weight:700;letter-spacing:1.6px}.nav-group{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;min-height:43px;border-radius:9px;padding:10px 13px;color:#9bb0c3;font-size:12px;font-weight:550}.nav-link:hover{color:#fff;background:#ffffff08;text-decoration:none}.nav-link.active{background:#ffffff0e;color:#fff;box-shadow:inset 3px 0 var(--accent)}.nav-link.active .icon{color:#7bb2ff}.nav-spacer{height:22px}.side-bottom{margin-top:auto;border-top:1px solid #ffffff0c;padding:17px 10px 0}.side-bottom p{font-size:11px;color:#8aa2b5;margin-top:6px}.version-tag{border:1px solid #486075;color:#b4c9d9;border-radius:5px;padding:3px 6px;font-size:9px;letter-spacing:.5px}.main{grid-column:2;min-width:0}.topbar{height:76px;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:18px;align-items:center;position:sticky;top:0;z-index:20}.breadcrumbs{display:flex;gap:10px;color:var(--muted);font-size:11px;font-weight:550}.breadcrumbs strong{color:var(--ink)}.search{display:flex;align-items:center;gap:8px;margin-left:auto;color:#97a8b7}.search input{border:0;background:#f4f7fa;width:225px;padding:9px 13px;border-radius:8px;font-size:12px}.user-pill{display:flex;gap:9px;align-items:center;border-left:1px solid var(--line);padding-left:18px}.avatar{background:#edf3fb;border:1px solid #e0eaf4;color:#547aa5;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}.user-info{font-size:11px;font-weight:650}.user-info small{display:block;font-size:9px;font-weight:500}.mobile-toggle{display:none}.test-strip{background:#edf3fb;color:#4f6e8f;padding:7px 34px;display:flex;gap:7px;align-items:center;font-size:10px;border-bottom:1px solid #dfe8f3}.test-strip strong{font-size:9px;letter-spacing:.4px}.content{padding:30px 34px 45px;max-width:1640px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head .eyebrow{margin-bottom:7px;color:var(--muted)}.page-head p{font-size:12px;color:var(--muted);margin-top:9px;max-width:660px}.page-head .button-row{padding-top:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.section-head h2{font-size:16px}.section-head p{font-size:11px;color:var(--muted);margin-top:4px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 2px 4px #0e2c4503}.card.flush{padding:0;overflow:hidden}.card-top{padding:21px 22px 13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metric{display:flex;flex-direction:column;gap:16px}.metric-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);font-weight:650}.metric .icon-box{display:grid;place-items:center;background:#edf4fd;color:var(--accent);width:30px;height:30px;border-radius:8px}.metric-value{font-size:30px;font-weight:720;letter-spacing:-.8px;line-height:1.05}.metric-foot{font-size:10px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;margin-bottom:20px}.grid-equal{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stack{display:grid;gap:18px}.hero{position:relative;background:linear-gradient(120deg,#17374e,#143048);color:white;overflow:hidden;padding:28px}.hero h2{font-size:22px;color:#fff;font-weight:650;line-height:1.35;max-width:360px;margin:10px 0}.hero p{color:#9eb8cc;max-width:390px;font-size:12px;line-height:1.8}.hero .caps{color:#7b9aae}.hero .button-row{margin-top:25px}.hero .button{background:#fff;color:#18384f;border:0}.hero .hero-grid{position:absolute;right:-10px;top:10px;width:210px;height:240px;opacity:.18;background-image:linear-gradient(#81a7c3 1px,transparent 1px),linear-gradient(90deg,#81a7c3 1px,transparent 1px);background-size:25px 25px;transform:rotate(-12deg);pointer-events:none}.hero-content{position:relative;z-index:1}.divider{height:1px;background:var(--line);margin:17px 0}.activity{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #eef2f5}.activity:last-child{border-bottom:0}.activity .dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.activity p{font-size:12px;font-weight:550}.activity small{font-size:10px;display:block;margin-top:4px}.step-number{background:#edf3fa;color:#547995;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}
.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{padding:12px 16px;background:#f8fafc;border-top:1px solid #eaf0f5;border-bottom:1px solid #eaf0f5;color:#8294a4;font-size:9px;letter-spacing:.7px;text-transform:uppercase;font-weight:650}td{padding:15px 16px;border-bottom:1px solid #edf2f6;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdff}td strong{font-size:12px;font-weight:650;display:block}td small{display:block;font-size:10px;margin-top:3px}.right{text-align:right}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:700;background:#eff3f7;color:#718599;white-space:nowrap}.badge.blue{background:#eaf2ff;color:#377bd4}.badge.green{background:#e7f5ed;color:#318462}.badge.amber{background:#fff4dd;color:#a57b28}.badge.red{background:#fcebec;color:#bb5e66}.empty{padding:35px 20px;text-align:center;color:var(--muted);border:1px dashed #cfdce7;border-radius:12px;background:#fafcfe}.empty h3{color:#476478;margin:8px 0}.empty p{font-size:12px;margin-bottom:16px}.notice{padding:13px 15px;border-radius:9px;background:#eef5fe;border:1px solid #d8e8fb;color:#547493;font-size:12px;line-height:1.65}.notice.warning{background:#fff8e9;border-color:#efdfb8;color:#9d7737}.notice.error{background:#fff1f1;border-color:#f0cdcf;color:#a54149}.notice.success{background:#edf8f0;border-color:#cde6d6;color:#397b58}.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.subnav a{font-size:12px;padding:8px 12px;border-radius:7px;background:#fff;border:1px solid var(--line)}.kv{display:grid;grid-template-columns:120px 1fr;gap:10px 16px;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.amount-large{font-size:36px;letter-spacing:-1px;font-weight:730}.totals{margin-left:auto;width:min(100%,360px);padding:20px 0}.total-line{display:flex;justify-content:space-between;gap:20px;padding:7px 0;font-size:12px}.total-line.final{border-top:1px solid var(--line);margin-top:9px;padding-top:14px;font-weight:750;font-size:18px}.doc-room-header{padding:18px 17px 10px;font-weight:700;background:#fff}.doc-actions{position:sticky;bottom:16px;z-index:10;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:0 8px 30px #163c5514;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}.evidence-panel{margin-top:20px}.calculation{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:#54708a;padding:12px;background:#f5f8fb;border-radius:8px;margin:7px 0}.layout-grid{display:grid;grid-template-columns:255px minmax(0,1fr);gap:18px}.room-list{display:grid;gap:9px;align-content:start}.room-item{display:block;text-align:left;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%}.room-item strong{display:block;font-size:12px;margin-bottom:6px}.room-item small{display:block;font-size:10px}.layout-board{background-color:#fff;background-image:linear-gradient(#edf2f7 1px,transparent 1px),linear-gradient(90deg,#edf2f7 1px,transparent 1px);background-size:22px 22px;border:1px solid var(--line);border-radius:12px;padding:16px;min-height:370px;display:flex;flex-direction:column}.layout-board svg{width:100%;min-height:300px;flex:1}.room-polygon{fill:#eaf2ff;stroke:#7a9bbe;stroke-width:.15;cursor:pointer}.room-polygon:hover{fill:#d8e8fe;stroke:var(--accent)}.room-polygon.unverified{fill:#fff3dd;stroke:#cba25b}.room-label{font-size:1.35px;fill:#314d69;font-weight:600;pointer-events:none}.room-measure{font-size:.95px;fill:#668099;pointer-events:none}.layout-caption{display:flex;justify-content:space-between;gap:14px;font-size:10px;color:var(--muted);padding-top:14px}.room-mini{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);gap:10px}.room-mini:last-child{border-bottom:0}.room-mini strong{font-size:12px}.room-mini small{display:block}.scope-line{padding:15px;border:1px solid var(--line);border-radius:11px;margin-bottom:12px;background:#fbfcfe}.scope-line .scope-grid{display:grid;grid-template-columns:1.1fr 1.3fr 40px;gap:12px;align-items:end}.scope-params{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap;align-items:end}.scope-params label{max-width:200px}.walls{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.wall-chip{border:1px solid #d7e3ee;background:#fff;padding:7px 9px;border-radius:7px;font-size:10px!important;display:flex!important;align-items:center;gap:6px}.wall-chip:has(input:checked){background:#eaf3ff;border-color:#97bdf1;color:#276bca}.wall-chip input{width:auto!important}.selected-row{background:#f1f7ff}.room-editor-wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:20px}.outline-editor{border:1px solid #d6e3ef;border-radius:10px;background:#f8fbff}.outline-editor svg{width:100%;height:280px;display:block;touch-action:manipulation;cursor:crosshair}.outline-hint{padding:10px 12px;font-size:10px;color:#6e88a0;border-top:1px solid #e1eaf2}.code-area{font-family:ui-monospace,Consolas,monospace!important;font-size:11px!important}.messages-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px}.conversation-list{display:grid;gap:8px;align-content:start}.conversation-list button{text-align:left;display:block;padding:15px}.conversation-list button.active{border-color:#97bce9;background:#edf5ff}.conversation-list strong{display:block;font-size:12px}.conversation-list small{font-weight:400;font-size:10px}.thread{display:grid;gap:13px;max-height:55vh;min-height:200px;overflow:auto;padding:2px 5px 20px}.message{border:1px solid #e0e9f1;border-radius:11px;padding:13px 15px;max-width:92%;background:#fff}.message.mine{margin-left:auto;background:#edf5ff;border-color:#d8e7fb}.message.internal{background:#fff8eb;border-color:#eeddb9}.message-header{font-size:10px;color:#66829a;display:flex;justify-content:space-between;gap:18px;margin-bottom:6px}.message p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.composer{border-top:1px solid var(--line);padding-top:17px;margin-top:4px}.attachment-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf2f7;font-size:12px}.attachment-row span{min-width:0;overflow-wrap:anywhere}.attachment-row .button-row{margin-left:auto}.template-cover{border:1px solid #d8e3ed;background:#fff;box-shadow:0 5px 18px #223c5010;aspect-ratio:8.5/11;width:min(100%,325px);padding:28px;display:flex;flex-direction:column;margin:8px auto}.template-cover h2{font-size:25px;font-weight:750}.template-brand{padding-bottom:16px;border-bottom:3px solid var(--accent);margin-bottom:25px;color:var(--accent);font-size:14px;font-weight:650}.template-line{height:6px;margin:8px 0;background:#eaf0f6;border-radius:2px}.template-line.short{width:60%}.template-table{margin-top:24px;display:grid;grid-template-columns:3fr 1fr;gap:13px}.template-footer{margin-top:auto;font-size:8px;color:#91a1b0;border-top:1px solid #e2e9ef;padding-top:9px}.connections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.connection{padding:18px;border:1px solid var(--line);border-radius:11px;background:#fff}.connection h3{margin:10px 0 6px}.connection p{font-size:11px;color:var(--muted);margin-top:8px}.dashboard-edit-row{display:flex;gap:9px;align-items:center;margin-bottom:10px;border:1px solid var(--line);border-radius:9px;padding:10px}.dashboard-edit-row label{display:flex;align-items:center;gap:9px;margin-right:auto}.dashboard-edit-row input{width:auto}.ai-intro{background:#edf4fd;border:1px solid #d9e7f8;border-radius:11px;padding:16px;margin-bottom:18px}.ai-intro p{font-size:12px;color:#557692;margin-top:5px}.ai-result{margin:18px 0;padding:17px;border:1px solid #d4e4f4;border-radius:10px;background:#f7fbff}.ai-result p{font-size:12px}.ai-result ul{font-size:12px;color:#806b3b;padding-left:18px}.recording{color:#b63945!important;border-color:#ecbbc0!important;background:#fff1f3!important}
label{display:block;color:#557086;font-size:11px;font-weight:650}label>span{display:block;margin-bottom:6px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cfdae5;border-radius:8px;color:var(--ink);background:#fff;font-size:13px;min-height:40px}textarea{min-height:95px;resize:vertical}input[type=checkbox]{min-height:auto;width:16px;height:16px;accent-color:var(--accent)}input[type=color]{padding:4px;width:100%;height:42px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.check-label{display:flex;align-items:flex-start;gap:9px;line-height:1.6;font-weight:500;margin:12px 0}.check-label span{margin:0}.form-section{margin:20px 0 11px;font-weight:700;font-size:13px}.form-footer{padding-top:20px;margin-top:20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;align-items:center;flex-wrap:wrap}.field-hint{font-size:10px;color:var(--muted);margin-top:5px;font-weight:400}.form-error{background:#fff0f1;color:#a74049;border:1px solid #f0d0d2;padding:12px;border-radius:8px;font-size:12px;margin:14px 0}.form-error:empty{display:none}dialog{border:1px solid #cfdde9;border-radius:17px;padding:0;box-shadow:0 25px 90px #112d4540;width:min(620px,calc(100vw - 28px));max-height:90dvh;color:var(--ink)}dialog.wide{width:min(1060px,calc(100vw - 28px))}dialog::backdrop{background:#10263a77;backdrop-filter:blur(3px)}.modal-head{padding:22px 25px 15px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:sticky;top:0;background:white;z-index:2}.modal-head h2{font-size:20px}.modal-head p{font-size:11px;color:var(--muted);margin-top:5px}.modal-body{padding:22px 25px 25px}.modal-head .close{min-width:32px;padding:5px;font-weight:400;font-size:21px}.toasts{position:fixed;right:24px;bottom:24px;z-index:100;display:grid;gap:8px;max-width:calc(100vw - 40px)}.toast{background:#18384f;color:#fff;padding:14px 19px;font-size:12px;border-radius:11px;box-shadow:0 8px 30px #17324930;max-width:430px}.toast.error{background:#9e424c}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-brand{padding:8vw;background:#112d43;color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand h1{font-size:46px;letter-spacing:-1.7px;max-width:470px;line-height:1.15;margin:35px 0 24px}.login-brand p{font-size:14px;color:#9cb4c6;line-height:1.9;max-width:410px}.login-brand .brand{padding:0}.login-brand .caps{color:#7e9cb3}.login-foot{margin-top:60px;font-size:10px;color:#7191aa}.login-form-wrap{padding:45px;display:grid;place-items:center}.login-form{width:100%;max-width:370px}.login-form h2{font-size:27px;letter-spacing:-.8px}.login-form p{font-size:12px;color:var(--muted);margin:9px 0 26px}.login-form label{margin-bottom:17px}.login-form .notice{font-size:10px;margin-top:22px}.login-role-tag{display:inline-block;padding:5px 8px;border:1px solid #d6e4f2;border-radius:5px;color:#69839a;font-size:9px;letter-spacing:1px;margin-bottom:19px}.hidden{display:none!important}.skeleton{background:#e7eef5;border-radius:6px;height:15px;margin:9px 0}
@media(min-width:1600px){.content{padding-left:44px;padding-right:44px}.grid-2{grid-template-columns:1.7fr 1fr}.metric-value{font-size:34px}}
@media(max-width:1200px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{width:205px}.topbar{padding:0 23px}.content{padding:26px 23px}.test-strip{padding-left:23px;padding-right:23px}.cards{gap:11px}.metric{padding:17px}.metric-value{font-size:26px}.search input{width:180px}.user-info{display:none}.grid-2{grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr)}.connections{grid-template-columns:1fr}.brand-name{font-size:18px}}
@media(max-width:960px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-equal{grid-template-columns:1fr}.layout-grid{grid-template-columns:1fr}.room-list{grid-template-columns:repeat(2,minmax(0,1fr))}.messages-layout{grid-template-columns:1fr}.conversation-list{grid-template-columns:repeat(2,minmax(0,1fr))}.room-editor-wrap{grid-template-columns:1fr}.hero-grid{opacity:.09!important}.page-head{flex-wrap:wrap}.search input{width:140px}.breadcrumbs{font-size:10px}.login-brand{padding:6vw}.login-brand h1{font-size:36px}}
@media(max-width:700px){.shell{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:245px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #0b243977}.main{width:100%;min-width:0}.topbar{padding:0 16px;height:64px;gap:10px}.mobile-toggle{display:inline-flex;min-width:35px;padding:7px;background:transparent;border:0}.search{display:none}.user-pill{margin-left:auto;padding-left:10px}.test-strip{padding:7px 17px;font-size:9px;line-height:1.6}.content{padding:23px 16px 35px}.breadcrumbs{font-size:10px}.page-head{gap:13px;margin-bottom:21px}h1{font-size:25px}.page-head p{font-size:11px}.page-head .button-row{padding-top:0;width:100%}.page-head .button-row button,.page-head .button-row a{flex:1}.cards{gap:11px;margin-bottom:19px}.metric{padding:16px 13px;gap:13px}.metric-value{font-size:25px}.metric-head{font-size:9px}.metric-foot{font-size:9px}.card{padding:18px}.card.flush{padding:0}.hero{padding:24px}.hero h2{font-size:21px}.hero p{font-size:11px}.section-head h2{font-size:15px}.grid-2,.grid-equal{gap:16px}.table-wrap th,.table-wrap td{padding:12px 11px}.hide-mobile{display:none}.table-wrap .button.small{padding:6px 8px;font-size:10px}.table-wrap td strong{font-size:11px}.table-wrap td small{font-size:9px}.table-wrap table{font-size:11px}.doc-table{min-width:530px}.form-grid{grid-template-columns:1fr}.scope-line .scope-grid{grid-template-columns:1fr 40px}.scope-line .scope-grid label:first-child{grid-column:1/-1}.scope-params{gap:10px}.scope-params label{max-width:100%;width:100%}.wall-chip{width:auto!important}.modal-body{padding:18px}.modal-head{padding:18px}.modal-head h2{font-size:18px}.form-footer button{flex:1}.room-list{grid-template-columns:1fr 1fr;gap:8px}.room-item{padding:12px}.room-item strong{font-size:11px}.layout-board{padding:9px;min-height:290px}.layout-board svg{min-height:245px}.room-label{font-size:1.55px}.layout-caption{flex-wrap:wrap;font-size:9px}.conversation-list{grid-template-columns:1fr}.thread{max-height:55vh}.message{max-width:100%}.attachment-row{flex-wrap:wrap}.attachment-row .button-row{margin-left:0}.login-shell{grid-template-columns:1fr}.login-brand{padding:32px 28px}.login-brand h1{font-size:27px;margin:22px 0 10px;max-width:100%}.login-brand p{font-size:11px;max-width:100%}.login-foot{display:none}.login-form-wrap{padding:30px 27px}.login-form h2{font-size:24px}.login-role-tag{margin-bottom:14px}.doc-actions{bottom:8px;padding:11px}.doc-actions button,.doc-actions a{flex:1;font-size:11px}.kv{grid-template-columns:92px 1fr;font-size:11px}.amount-large{font-size:31px}.connections{gap:11px}.template-cover{width:100%;max-width:300px}.toasts{right:15px;bottom:16px}.button-row .icon{width:16px;height:16px}input,select,textarea{font-size:16px}.field-hint,.form-grid small{font-size:10px}.form-section{margin-top:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar,.test-strip,.doc-actions,.page-head .button-row{display:none}.shell{display:block}.main{width:100%}.content{padding:0}.card{box-shadow:none}.notice{break-inside:avoid}}

/* v0.2 navigation and account interaction layer */
[hidden]{display:none!important}
.mobile-toggle{display:inline-flex;min-width:42px;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;padding:8px;flex-shrink:0}
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.brand-name{overflow-wrap:anywhere}.nav-link{flex-shrink:0}
body.navigation-collapsed .shell{grid-template-columns:0 minmax(0,1fr)}
body.navigation-collapsed .sidebar{display:none}
.nav-close{display:none}
.nav-backdrop{position:fixed;inset:0;z-index:25;border:0;border-radius:0;background:#10283b99;touch-action:none}
.profile-toggle{display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:9px;padding:5px;min-height:44px;cursor:pointer;color:var(--ink);text-align:left}
.user-pill{position:relative;flex-shrink:0;margin-left:auto}
.profile-menu{position:absolute;top:calc(100% + 12px);right:0;width:min(290px,calc(100vw - 32px));padding:7px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #16324f30;z-index:50}
.profile-summary{display:grid;gap:5px;padding:12px 11px 14px;border-bottom:1px solid var(--line);margin-bottom:6px;font-size:12px;overflow-wrap:anywhere}
.profile-summary span,.profile-summary small{font-size:11px;color:var(--muted)}
.profile-menu [role=menuitem]{display:flex;align-items:center;gap:10px;min-height:42px;width:100%;padding:10px 12px;border:0;border-radius:7px;background:transparent;font-size:12px;color:var(--ink);text-decoration:none;justify-content:flex-start;font-weight:500;cursor:pointer}
.profile-menu [role=menuitem]:hover,.profile-menu [role=menuitem]:focus-visible{background:#edf4fc}
.skip-link{position:fixed;left:10px;top:-100px;z-index:100;background:#fff;padding:12px;border:2px solid var(--accent)}
.skip-link:focus{top:10px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.profile-form{margin-top:20px}.profile-form .form-grid{gap:16px}.profile-form input[readonly]{background:#f4f7fa;color:#5b6f82}
.session-row,.account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;border-bottom:1px solid var(--line);font-size:12px}
.session-row>div,.account-row>div{min-width:0}.session-row p,.account-row p{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin:5px 0}.session-row small,.account-row small{font-size:10px;color:var(--muted)}
.account-row>.button-row{flex-shrink:0;flex-wrap:wrap}.check-detail{padding:15px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}
.connection-strip{padding:10px 20px;background:#fff1dc;color:#724c15;font-size:12px;text-align:center}.boot-error{max-width:700px;margin:10vh auto;padding:25px}
@media(max-width:700px){
 body.navigation-open{overflow:hidden}
 body.navigation-open .sidebar{transform:translateX(0);box-shadow:8px 0 30px #10283b55}
 .sidebar{z-index:40;width:min(290px,calc(100vw - 48px));padding-top:55px;height:100dvh}
 .nav-close{position:absolute;right:12px;top:8px;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;color:#fff;font-size:26px}
 .profile-toggle{padding:4px;min-width:52px}.user-pill{border:0;padding-left:0}.topbar{gap:9px}.breadcrumbs{min-width:0;flex:1;flex-wrap:wrap}.breadcrumbs strong{overflow-wrap:anywhere}.mobile-toggle{min-width:40px;min-height:40px}
 .session-row,.account-row{align-items:flex-start;flex-wrap:wrap}.session-row>div:first-child,.account-row>div:first-child{flex-basis:100%}
 .account-row .button-row{flex-basis:100%}.session-row button,.account-row button{min-height:42px}
 .content>.grid-equal{min-width:0}.card{min-width:0}.kv dd{overflow-wrap:anywhere}
}
@media print{.skip-link,.profile-menu,.nav-backdrop,.connection-strip{display:none!important}}

/* Private local AI model manager */
.local-ai-state{margin-bottom:20px}.ai-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.ai-facts>div{padding:14px;background:var(--bg,#f4f7fa);border-radius:9px;min-width:0}.ai-facts span{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}.ai-facts strong{font-size:13px;overflow-wrap:anywhere}.ai-progress{margin:20px 0}.ai-progress progress{width:100%;height:14px;accent-color:var(--accent)}.ai-progress span{display:block;font-size:11px;color:var(--muted);margin-top:8px}#local-ai-content code{overflow-wrap:anywhere}#local-ai-content .notice p{margin-top:8px}.local-ai-state h2{margin-top:8px}@media(max-width:900px){.ai-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.ai-facts{grid-template-columns:1fr}.local-ai-state .section-head{align-items:flex-start;gap:10px}#local-ai-settings .button-row>button{width:100%}}
/* Job media uses the same navy, blue and white surfaces as the workspace. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.media-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:26px}.media-summary>div{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px}.media-summary-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#edf4fd;color:var(--accent)}.media-summary strong{display:block;font-size:27px;line-height:1.1;letter-spacing:-.6px}.media-summary div>span:not(.media-summary-icon){display:block;color:var(--muted);font-size:12px;margin-top:7px}
.media-toolbar,.media-subtoolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.media-search{display:flex;align-items:center;gap:12px;max-width:650px;width:100%;background:#fff;border:1px solid var(--line);border-radius:11px;padding:7px 8px 7px 15px}.media-search>.icon{flex-shrink:0;color:var(--muted)}.media-search input{border:0;background:none;box-shadow:none;min-width:0;padding:8px 0}.media-search button{flex-shrink:0}.media-view{display:flex;border:1px solid var(--line);background:#fff;border-radius:9px;padding:4px;gap:3px}.media-view button{padding:8px;border:0;background:transparent;color:var(--muted)}.media-view button[aria-pressed=true]{background:#eaf2ff;color:var(--accent)}.media-filters{display:flex;gap:7px;flex-wrap:wrap}.media-filters button{font-size:12px;border-radius:20px;background:white;padding:9px 15px}.media-filters button[aria-pressed=true]{background:#173b59;border-color:#173b59;color:white}.media-subtoolbar p{font-size:11px}
.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.media-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:box-shadow .18s,transform .18s}.media-card:hover{box-shadow:0 10px 24px #153b5912;transform:translateY(-2px)}.media-card-link{display:block;color:inherit;text-decoration:none}.media-card-link:hover{text-decoration:none}.media-cover{position:relative;aspect-ratio:16/10;background:#eaf1f8;overflow:hidden}.media-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .25s}.media-card:hover img{transform:scale(1.035)}.media-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:linear-gradient(135deg,#eaf1f8,#dce8f3);color:#748ea4}.media-placeholder>.icon{width:35px;height:35px}.media-placeholder span{font-size:12px}.media-cover-label{position:absolute;left:13px;bottom:12px;border:1px solid #ffffff70;background:#ffffffed;color:#25435a;padding:5px 9px;border-radius:6px;font-size:10px;font-weight:600;box-shadow:0 2px 8px #0000000a}.media-card-body{padding:19px 19px 16px}.media-card-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px;letter-spacing:.5px;margin-bottom:10px}.media-card h2{font-size:15px;line-height:1.4;overflow-wrap:anywhere;letter-spacing:-.15px}.media-address{font-size:12px;color:var(--muted);line-height:1.5;margin-top:8px;min-height:36px;overflow-wrap:anywhere}.media-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:15px;margin-top:14px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.media-open{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600}.media-open .icon{width:14px;height:14px}.media-pagination{display:flex;justify-content:center;padding:27px 0 8px}.media-empty{grid-column:1/-1;text-align:center;border:1px dashed #c9d9e6;border-radius:14px;padding:60px 24px;background:#fff}.media-empty>.icon{width:30px;height:30px;color:var(--muted);margin-bottom:15px}.media-empty p{color:var(--muted);font-size:13px;margin-top:10px}.media-skeleton>div{aspect-ratio:16/10;background:#e4ecf3}.media-skeleton>span{display:block;margin:18px;background:#edf2f7;height:12px;border-radius:4px}.media-skeleton>span:last-child{width:55%}.media-list{grid-template-columns:1fr}.media-list .media-card-link{display:grid;grid-template-columns:190px minmax(0,1fr)}.media-list .media-cover{height:100%;min-height:168px;aspect-ratio:auto}.media-list .media-address{min-height:0}.media-list .media-card-body{padding:16px 20px}
@media(max-width:1150px){.media-grid:not(.media-list){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.media-summary{gap:9px;margin-bottom:21px}.media-summary>div{padding:15px 11px;gap:7px;align-items:flex-start;flex-direction:column}.media-summary-icon{width:31px;height:31px;border-radius:8px}.media-summary-icon>.icon{width:17px;height:17px}.media-summary strong{font-size:24px}.media-summary div>span:not(.media-summary-icon){font-size:10px}.media-toolbar{gap:9px}.media-search{gap:7px;padding-left:9px}.media-search button{padding:9px 10px}.media-view{display:none}.media-subtoolbar{align-items:flex-start;flex-direction:column;gap:13px}.media-filters button{padding:9px 13px}.media-grid:not(.media-list){grid-template-columns:1fr}.media-list .media-card-link{grid-template-columns:1fr}.media-list .media-cover{aspect-ratio:16/10}.media-card h2{font-size:17px}.media-address{min-height:0}.media-card-footer{font-size:11px}.media-cover{aspect-ratio:16/9}}
@media(prefers-reduced-motion:reduce){.media-card,.media-cover img{transition:none}.media-card:hover,.media-card:hover img{transform:none}}
.connection-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px}.connection-heading{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.connection-heading>div{flex:1}.connection-heading p{font-size:11px;color:var(--muted);margin-top:4px}.provider-logo{display:grid;place-items:center;width:45px;height:45px;flex-shrink:0;border-radius:11px;font-size:30px;font-weight:700}.square-logo{background:#172c3c;color:#fff}.erp-logo{background:#eaf2ff;color:#2467c8;font-size:22px}.connection-intro{font-size:12px;color:var(--muted);line-height:1.8;margin:22px 0}.connection-detail .notice{margin:18px 0}.connection-detail form>label{margin-top:20px}.connection-detail .button-row{margin-top:17px;flex-wrap:wrap}.connection-webhook{background:#f4f7fb;border:1px solid var(--line);border-radius:9px;padding:14px;font-size:11px;margin-top:18px}.connection-webhook strong{display:block;margin-bottom:9px}.connection-webhook code{display:block;overflow-wrap:anywhere;user-select:all;font-size:11px;color:var(--accent)}.connection-webhook p{color:var(--muted);line-height:1.6;margin-top:10px}.connection-help{font-size:12px;margin-top:18px;line-height:1.8}.connection-help summary{cursor:pointer;color:var(--accent);font-weight:600}.connection-help p{color:var(--muted);margin-top:10px}.connection-result{font-size:12px;line-height:1.8;margin-top:16px;overflow-wrap:anywhere}.connection-result ul{padding-left:18px}.connection-result:empty{display:none}.connection-footnote{font-size:11px;color:var(--muted);text-align:center;line-height:1.7;margin-top:24px}@media(max-width:1100px){.connection-forms{grid-template-columns:1fr}.connection-detail{max-width:760px;width:100%}}@media(max-width:480px){.connection-heading .badge{margin-left:58px}.connection-detail .button-row>button{width:100%}}
/* Communications console: fluid cards instead of wide fixed tables. */
/* Estimate creation keeps customer context, editable rows and totals together. */
dialog.estimate-dialog{width:min(940px,calc(100vw - 28px));max-height:94dvh;border-radius:12px;overflow:hidden}
.estimate-dialog .modal-head{padding:20px 26px 17px;position:relative}
.estimate-dialog .modal-head h2{font-size:20px}.estimate-dialog .modal-body{padding:0;max-height:calc(94dvh - 88px);overflow-y:auto;overscroll-behavior:contain}
.estimate-dialog #modal-form{padding:0 26px}.estimate-editor-intro{display:flex;align-items:center;gap:10px;padding:17px 0 10px;color:var(--muted);font-size:11px}
.estimate-section{border-bottom:1px solid var(--line);padding:0}.estimate-section>summary{display:flex;align-items:center;gap:13px;cursor:pointer;padding:16px 2px;font-size:12px;list-style:none}
.estimate-section>summary:before{content:'›';font-size:18px;color:var(--accent);width:9px}.estimate-section[open]>summary:before{transform:rotate(90deg)}
.estimate-section>summary>span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.estimate-section-body{padding:0 2px 18px}.estimate-section-body p{font-size:12px;line-height:1.75;overflow-wrap:anywhere}
.estimate-section-body label+label{margin-top:14px}.estimate-section-body .form-grid label{margin-top:0}.estimate-details-grid{padding:15px;background:#f5f7fa;border-radius:8px;margin-bottom:15px;gap:13px}
.estimate-dialog input[readonly]{background:#f5f7fa;color:#63758a}.estimate-dialog textarea{min-height:62px}.estimate-dialog label>span,.item-field-label{font-size:11px;font-weight:600;display:block;margin-bottom:6px}
.estimate-items{margin-top:22px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.estimate-items-title{display:flex;align-items:center;justify-content:space-between;padding:15px 16px}.estimate-items-title h3{margin:0!important;font-size:14px}.estimate-items-title>span{color:var(--muted);font-size:11px}
.estimate-table-head,.estimate-item-grid{display:grid;grid-template-columns:minmax(0,1fr) 112px 98px 133px;gap:14px}.estimate-table-head{background:#f6f8fa;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 16px;font-size:11px;font-weight:650}.estimate-table-head>span:last-child{text-align:right}
.estimate-item{padding:17px 16px;border-bottom:1px solid var(--line)}.estimate-item-grid>div{min-width:0}.estimate-item-name>label+label{margin-top:10px}.estimate-item-name textarea{font-size:12px;min-height:58px;line-height:1.5}.estimate-item select{font-weight:600;font-size:12px}.estimate-line-total{text-align:right;overflow-wrap:anywhere}.estimate-line-total>output,.estimate-quantity>output{display:block;font-size:14px;font-weight:650;min-height:40px;padding-top:10px}.estimate-quantity .field-hint{display:block}
.item-row-actions{display:flex;gap:1px;justify-content:flex-end;flex-wrap:wrap;margin-top:9px}.item-row-actions .small{padding:5px 6px;min-height:28px;font-size:10px}.item-row-actions .icon{width:12px;height:12px}.item-section-label{display:block;font-size:11px;color:var(--accent);margin-top:7px;font-weight:650}.item-section-label:empty{display:none}
.item-measurements{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}.item-measurements>summary{font-size:11px;color:var(--ink);cursor:pointer}.item-measurements>summary span{color:var(--muted);margin-left:8px;overflow-wrap:anywhere}.item-measurements-body{padding:14px 0 0}.wall-picker{margin-top:14px;font-size:11px}.wall-picker .button-row{gap:6px 15px}.wall-picker .check-label{font-size:11px}.item-measurements-body>.field-hint{margin-top:12px;line-height:1.7}
.estimate-add-item{display:flex;gap:12px;align-items:end;padding:16px}.estimate-add-item>label{flex:1;min-width:0}.estimate-add-item>button{flex-shrink:0;min-height:40px}.estimate-section-hint{margin:0 16px 15px;line-height:1.65}.estimate-no-items{padding:25px 16px;color:var(--muted);font-size:12px}
.estimate-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:34px;padding:24px 2px 15px}.estimate-summary-settings{display:grid;grid-template-columns:1fr 1fr;gap:13px;align-content:start}.estimate-summary-settings>p{grid-column:1/-1;line-height:1.65}.estimate-total-lines>div{display:flex;justify-content:space-between;gap:15px;font-size:12px;padding:9px 0}.estimate-total-lines output{white-space:nowrap;font-weight:600}.estimate-total-lines .grand-total{border-top:2px solid var(--accent);margin-top:6px;padding-top:15px;font-size:16px}.estimate-total-lines .deposit-total{color:var(--accent);font-size:12px;margin-top:7px}
.estimate-calculation-message{padding:10px 12px;margin:0 0 12px;border-radius:7px;background:#f0f6fc;font-size:11px;line-height:1.65;color:#416582}.estimate-calculation-message.warning{background:#fff6e7;color:#8b6021}
.estimate-dialog .form-footer{position:sticky;bottom:0;background:white;padding:14px 0;margin:20px 0 0;z-index:3;border-top:1px solid var(--line);box-shadow:0 -8px 14px #ffffffdd}.estimate-footer-total{margin-right:auto;display:flex;flex-direction:column;gap:3px}.estimate-footer-total small{font-size:10px;color:var(--muted)}.estimate-footer-total strong{font-size:18px}.estimate-dialog .attachment-row{font-size:12px}.estimate-dialog .attachment-row small{display:block;color:var(--muted);font-size:10px}
@media(max-width:700px){dialog.estimate-dialog{width:calc(100vw - 12px);max-height:96dvh}.estimate-dialog .modal-head{padding:16px}.estimate-dialog .modal-body{max-height:calc(96dvh - 84px)}.estimate-dialog #modal-form{padding:0 14px}.estimate-table-head{display:none}.estimate-item-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.estimate-item-name{grid-column:1/-1}.estimate-line-total{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px}.estimate-line-total>.item-field-label{margin:0}.estimate-line-total>output{padding:0;min-height:auto;margin-right:auto}.item-row-actions{margin:0}.estimate-item{padding:15px 12px}.estimate-item select,.estimate-item-name textarea{font-size:16px}.estimate-summary{grid-template-columns:1fr;gap:12px}.estimate-summary-settings{grid-template-columns:1fr 1fr}.estimate-add-item{padding:14px 12px;gap:8px}.estimate-add-item button{padding:9px;font-size:12px}.estimate-dialog .form-footer{flex-wrap:nowrap;gap:7px}.estimate-dialog .form-footer button{flex:initial;padding:10px 12px;font-size:12px}.estimate-footer-total strong{font-size:16px}.item-measurements>summary span{display:block;margin:5px 0 0 14px}.estimate-section>summary{align-items:flex-start;flex-wrap:wrap;gap:8px}.estimate-section>summary>span{margin-left:17px}.estimate-details-grid{padding:12px}}
.comm-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 0 12px;margin:0 0 18px;max-width:100%;white-space:nowrap}
.comm-tabs a{display:block;padding:10px 15px;border:1px solid var(--border,#dde4ef);border-radius:9px;color:var(--muted,#52647c);text-decoration:none;background:white;font-weight:600;font-size:13px}
.comm-tabs a.active{background:var(--accent);border-color:var(--accent);color:white}
.comm-metrics,.comm-rule-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.comm-metrics small,.comm-rule-facts small{display:block;color:var(--muted,#52647c);font-size:12px;margin-bottom:6px}
.comm-metrics h2{font-size:27px}.comm-rule-facts strong{font-size:13px;display:block;overflow-wrap:anywhere}
.comm-choices{display:flex;flex-wrap:wrap;gap:9px 18px;margin:12px 0 20px}.comm-choices .check-label{max-width:100%;overflow-wrap:anywhere}
.comm-preview{background:#f5f7fb;border:1px solid #e0e6ee;padding:15px;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:13px;line-height:1.65;max-height:400px;overflow-y:auto;margin:12px 0}
.comm-notification.unread{border-left:4px solid var(--accent)}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}
.notification-link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;color:inherit;flex-shrink:0;padding:8px;border-radius:8px}
#notification-count:not(:empty){background:var(--accent);color:white;border-radius:20px;padding:1px 5px;font-size:11px}
#communications-content h2,#communications-content p,#communications-content small,#communications-content dd{overflow-wrap:anywhere}
#modal h3{margin-top:18px;margin-bottom:9px}
@media(max-width:1100px){.comm-metrics,.comm-rule-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.comm-metrics,.comm-rule-facts{grid-template-columns:minmax(0,1fr)}.comm-tabs a{padding:8px 11px}.comm-metrics .card{padding:16px}.comm-metrics h2{font-size:22px}.notification-link{padding:4px}.comm-notification .section-head{align-items:flex-start}}
