@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(/assets/inter-400-C38fXH4l.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(/assets/inter-500-Cerq10X2.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(/assets/inter-600-LgqL8muc.woff2) format("woff2")}@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(/assets/inter-700-Yt3aPRUw.woff2) format("woff2")}:root{--navy-950: #071029;--navy-900: #0a1430;--navy-800: #0e2361;--navy-700: #142a5c;--brand: #2563eb;--brand-600: #1d4ed8;--brand-50: #eff5ff;--accent: #0fb5c8;--accent-bright: #34e1f2;--bg: #f5f7fb;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #eef2f7;--border: #e3e8f0;--border-strong: #cfd7e3;--text: #0f172a;--text-2: #475569;--text-3: #5b6b81;--focus: 0 0 0 3px rgba(37, 99, 235, .25);--ok: #16a34a;--ok-bg: #e8f7ee;--ok-text: #166534;--warn: #d97706;--warn-bg: #fff6e5;--warn-text: #92400e;--danger: #dc2626;--danger-bg: #fdecec;--danger-text: #991b1b;--info: #0284c7;--info-bg: #e6f4fb;--info-text: #075985;--violet: #7c3aed;--violet-bg: #f1eafe;--violet-text: #5b21b6;--gray-bg: #eef1f5;--gray-text: #475569;--sidebar-bg: linear-gradient(180deg, #0a1430 0%, #0e2361 100%);--sidebar-text: #c7d3ea;--sidebar-muted: #7f92b8;--sidebar-active: rgba(52, 225, 242, .12);--radius: 10px;--radius-sm: 7px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 20px 50px rgba(15, 23, 42, .18);color-scheme:light}:root[data-theme=dark]{--bg: #0a1226;--surface: #111c38;--surface-2: #0f1932;--surface-3: #18264a;--border: #22335c;--border-strong: #2e4374;--text: #eef3fb;--text-2: #b5c3dd;--text-3: #8b9cc0;--brand-50: #15264f;--ok-bg: #0f2e22;--ok-text: #6ee7a0;--warn-bg: #33250b;--warn-text: #fcd34d;--danger-bg: #3a1418;--danger-text: #fca5a5;--info-bg: #0c2a3d;--info-text: #7dd3fc;--violet-bg: #251a47;--violet-text: #c4b5fd;--gray-bg: #1b2948;--gray-text: #b5c3dd;--shadow: 0 1px 3px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:600}h1{font-size:24px;letter-spacing:-.01em}h2{font-size:17px}h3{font-size:15px}p{margin:0}button{font:inherit}svg{flex:none}::selection{background:#2563eb33}.app{display:grid;grid-template-columns:248px 1fr;min-height:100%}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto;z-index:30}.sidebar .brand{padding:18px 18px 10px;display:flex;align-items:center;gap:10px}.sidebar .brand img{height:34px;width:auto}.sidebar .company{margin:6px 12px 10px;padding:10px 12px;border-radius:9px;background:#ffffff0d;display:flex;align-items:center;gap:10px}.sidebar .company b{color:#fff;font-size:13px;display:block}.sidebar .company small{color:var(--sidebar-muted);font-size:11.5px}.nav-group{padding:8px 10px 4px}.nav-group>span{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-muted);padding:6px 10px 4px;font-weight:600}.nav-link{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:8px;color:var(--sidebar-text);font-weight:500;font-size:13.5px}.nav-link:hover{background:#ffffff0f;text-decoration:none;color:#fff}.nav-link.active{background:var(--sidebar-active);color:var(--accent-bright)}.nav-link .count{margin-left:auto;background:#f59e0b;color:#1f1300;border-radius:99px;font-size:11px;font-weight:700;padding:0 7px;line-height:18px}.sidebar .foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.07)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:60px;display:flex;align-items:center;gap:12px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .search{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:9px;color:var(--text-3);background:var(--surface-2);cursor:pointer}.topbar .search kbd{margin-left:auto}.topbar .spacer{flex:1}.btn.menu-btn{display:none}.page{padding:26px 28px 60px;max-width:1360px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head .sub{color:var(--text-3);margin-top:4px}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.crumbs{display:flex;gap:6px;align-items:center;color:var(--text-3);font-size:13px;margin-bottom:8px}.crumbs a{color:var(--text-3)}.crumbs a:hover{color:var(--brand)}kbd{font-family:inherit;font-size:11px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:0 5px;color:var(--text-3);background:var(--surface)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.card-head .sub{color:var(--text-3);font-size:13px;font-weight:400;margin-top:2px}.card-body{padding:20px}.card-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:500;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s;text-decoration:none!important}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-600)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.93)}.btn-success{background:var(--ok);color:#fff}.btn-success:hover:not(:disabled){filter:brightness(.93)}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-lg{height:44px;padding:0 20px;font-size:15px}.btn-icon{width:34px;padding:0}.btn-sm.btn-icon{width:30px}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:99px;font-size:12px;font-weight:500;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.badge.plain:before{display:none}.b-ok{background:var(--ok-bg);color:var(--ok-text)}.b-warn{background:var(--warn-bg);color:var(--warn-text)}.b-danger{background:var(--danger-bg);color:var(--danger-text)}.b-info{background:var(--info-bg);color:var(--info-text)}.b-violet{background:var(--violet-bg);color:var(--violet-text)}.b-gray{background:var(--gray-bg);color:var(--gray-text)}.b-brand{background:var(--brand-50);color:var(--brand)}.avatar{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;font-size:11.5px;font-weight:600;color:#fff;flex:none}.avatar.lg{width:44px;height:44px;font-size:15px}.avatar-stack{display:flex}.avatar-stack .avatar{border:2px solid var(--surface);margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:13px;font-weight:500;color:var(--text)}.field>label .opt{color:var(--text-3);font-weight:400}.field .hint{font-size:12px;color:var(--text-3)}.field .err{font-size:12px;color:var(--danger)}.input,.select,.textarea{width:100%;height:38px;padding:0 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;transition:border-color .12s,box-shadow .12s}.textarea{height:auto;min-height:84px;padding:9px 11px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus)}.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--danger)}.input:read-only{background:var(--surface-2)}.input-group{position:relative;display:flex;align-items:center}.input-group .pre,.input-group .post{position:absolute;color:var(--text-3);font-size:13px;pointer-events:none}.input-group .pre{left:11px}.input-group .post{right:11px}.input-group .input.has-pre{padding-left:26px}.input-group .input.has-icon{padding-left:34px}.input-group .input.has-post{padding-right:40px}.input-sm{height:32px;font-size:13px}.check{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{width:16px;height:16px;accent-color:var(--brand);margin:0}.radio-cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.radio-card{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;display:flex;gap:10px;align-items:flex-start;background:var(--surface)}.radio-card.on{border-color:var(--brand);box-shadow:var(--focus);background:var(--brand-50)}.radio-card input{margin-top:3px;accent-color:var(--brand)}.seg{display:inline-flex;background:var(--surface-3);border-radius:8px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:5px 12px;border-radius:6px;cursor:pointer;color:var(--text-2);font-weight:500;font-size:13px}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.span2{grid-column:span 2}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.ml-auto{margin-left:auto}.show-sm{display:none}.small{font-size:12.5px}.strong{font-weight:600}.mono{font-variant-numeric:tabular-nums}.right{text-align:right}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.divider{height:1px;background:var(--border);margin:16px 0}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-weight:500;color:var(--text-3);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table th.num{text-align:right}.table tfoot td{font-weight:600;background:var(--surface-2);border-top:1px solid var(--border)}.table .sel{width:36px}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--text)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border)}.toolbar .input-group{flex:1;min-width:200px;max-width:360px}.stat{padding:16px 18px}.stat .label{color:var(--text-3);font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:6px}.stat .value{font-size:24px;font-weight:600;margin-top:6px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat .delta{font-size:12.5px;color:var(--text-3);margin-top:2px}.progress{height:6px;background:var(--surface-3);border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .4s}.progress.ok>i{background:var(--ok)}.progress.lg{height:10px}.row>.progress{flex:1;min-width:40px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto}.tabs button{border:0;background:none;padding:10px 14px;cursor:pointer;color:var(--text-3);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:6px;align-items:center}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.tabs .n{background:var(--surface-3);color:var(--text-2);border-radius:99px;padding:0 7px;font-size:11.5px}.empty{text-align:center;padding:48px 20px;color:var(--text-3)}.empty .ic{width:52px;height:52px;border-radius:14px;background:var(--brand-50);color:var(--brand);display:grid;place-items:center;margin:0 auto 14px}.empty h3{color:var(--text);margin-bottom:6px}.empty p{max-width:380px;margin:0 auto 16px}.alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);font-size:13.5px;align-items:flex-start}.alert.info{background:var(--info-bg);color:var(--info-text)}.alert.ok{background:var(--ok-bg);color:var(--ok-text)}.alert.warn{background:var(--warn-bg);color:var(--warn-text)}.alert.danger{background:var(--danger-bg);color:var(--danger-text)}.alert b{display:block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#07102980;z-index:100;display:grid;place-items:center;padding:20px;animation:fade .12s}.modal{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;animation:pop .15s}.modal.wide{max-width:820px}.modal.narrow{max-width:420px}.modal-head{padding:18px 22px 0;display:flex;align-items:flex-start;gap:12px}.modal-head .sub{color:var(--text-3);margin-top:4px;font-size:13.5px}.modal-body{padding:18px 22px;overflow-y:auto}.modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.98)}}.toasts{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--navy-900);color:#fff;padding:11px 14px;border-radius:9px;box-shadow:var(--shadow-lg);display:flex;gap:10px;align-items:center;min-width:260px;max-width:420px;animation:pop .15s;font-size:13.5px}.toast.error{background:#7f1d1d}.toast svg{color:var(--accent-bright)}.toast.error svg{color:#fca5a5}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);min-width:200px;padding:5px;z-index:50}.menu button,.menu a{display:flex;width:100%;align-items:center;gap:9px;padding:8px 10px;border:0;background:none;border-radius:6px;cursor:pointer;color:var(--text);text-align:left;font-size:13.5px}.menu button:hover,.menu a:hover{background:var(--surface-3);text-decoration:none}.menu .danger{color:var(--danger)}.menu .sep{height:1px;background:var(--border);margin:4px 0}.palette{max-width:600px;padding:0;overflow:hidden;align-self:start;margin-top:10vh}.palette input{border:0;border-bottom:1px solid var(--border);height:52px;font-size:15px;padding:0 18px;width:100%;background:transparent;color:var(--text);outline:none}.palette .res{max-height:420px;overflow-y:auto;padding:6px}.palette .res button{display:flex;gap:12px;width:100%;padding:9px 12px;border:0;background:none;border-radius:8px;cursor:pointer;text-align:left;align-items:center;color:var(--text)}.palette .res button.on{background:var(--brand-50)}.palette .res .kind{margin-left:auto;color:var(--text-3);font-size:12px}.palette .grp{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:8px 12px 4px;font-weight:600}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px 20px}.kv>div small{display:block;color:var(--text-3);font-size:12px;margin-bottom:2px}.kv>div b{font-weight:500}.kv.cols1{grid-template-columns:1fr;gap:12px}.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.timeline{position:relative}.timeline .item{display:flex;gap:12px;padding-bottom:14px;position:relative}.timeline .item:before{content:"";position:absolute;left:4px;top:14px;bottom:0;width:1px;background:var(--border)}.timeline .item:last-child:before{display:none}.timeline .dot{width:9px;height:9px;border-radius:50%;background:var(--brand);margin-top:6px;flex:none}.timeline .meta{color:var(--text-3);font-size:12px}.stepper{display:flex;gap:0;align-items:center}.stepper .s{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:13px;font-weight:500;white-space:nowrap}.stepper .s i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;border:1.5px solid var(--border-strong);background:var(--surface)}.stepper .s.on{color:var(--text)}.stepper .s.on i{border-color:var(--brand);color:var(--brand)}.stepper .s.done i{background:var(--brand);color:#fff;border-color:var(--brand)}.stepper .ln{flex:1;height:1.5px;background:var(--border-strong);margin:0 10px;min-width:16px}.stepper .ln.done{background:var(--brand)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal .dow{padding:8px 10px;font-size:12px;color:var(--text-3);font-weight:500;border-bottom:1px solid var(--border)}.cal .day{min-height:112px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;display:flex;flex-direction:column;gap:3px}.cal .day:nth-child(7n){border-right:0}.cal .day.out{background:var(--surface-2)}.cal .day.out .dn{color:var(--text-3);opacity:.6}.cal .dn{font-size:12.5px;font-weight:500;width:24px;height:24px;display:grid;place-items:center;border-radius:50%}.cal .day.today .dn{background:var(--brand);color:#fff}.cal .ev{font-size:12px;padding:2px 7px;border-radius:5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid}.cal .ev:hover{filter:brightness(.96)}.cal .more{font-size:11.5px;color:var(--text-3);padding-left:4px}.gantt{overflow-x:auto}.gantt-grid{display:grid;min-width:900px}.gantt .lbl{padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px;position:sticky;left:0;background:var(--surface);z-index:1}.gantt .track{position:relative;border-bottom:1px solid var(--border);height:40px}.gantt .bar{position:absolute;top:8px;height:24px;border-radius:6px;font-size:12px;color:#fff;padding:0 8px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;cursor:pointer}.gantt .hdr{display:flex;border-bottom:1px solid var(--border);position:relative;height:34px}.gantt .hdr span{flex:1;font-size:11.5px;color:var(--text-3);text-align:center;padding-top:8px;border-left:1px solid var(--border)}.gantt .today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);opacity:.6;z-index:0}.board{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:16px;align-items:start}.col{background:var(--surface-3);border-radius:var(--radius);padding:10px;min-height:200px}.col.drop{outline:2px dashed var(--brand);outline-offset:-2px}.col-head{display:flex;align-items:center;gap:8px;padding:4px 6px 10px;font-weight:600;font-size:13.5px}.tcard{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:12px;margin-bottom:8px;cursor:grab;box-shadow:var(--shadow-sm)}.tcard:hover{border-color:var(--border-strong)}.tcard .t{font-weight:500;margin-bottom:6px}.bars{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:10px}.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bars .b i{width:100%;max-width:34px;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px;display:block;position:relative}.bars .b i.ot{background:var(--warn);border-radius:0}.bars .b small{color:var(--text-3);font-size:11.5px}.legend{display:flex;gap:14px;font-size:12px;color:var(--text-3)}.legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--c);margin-right:6px}.auth-shell{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--surface)}.auth-hero{background:var(--sidebar-bg);color:#e6edf9;padding:48px;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-hero img.logo{height:56px;width:auto;align-self:flex-start}.auth-hero h1{font-size:34px;color:#fff;margin-top:auto;max-width:460px;letter-spacing:-.02em}.auth-hero p{color:#a9b8d6;margin-top:12px;max-width:440px;font-size:15px}.auth-hero ul{list-style:none;padding:0;margin:28px 0 auto;display:grid;gap:12px}.auth-hero li{display:flex;gap:10px;align-items:center;color:#d6e0f2}.auth-hero li svg{color:var(--accent-bright)}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px 24px;overflow-y:auto}.auth-form .box{width:100%;max-width:420px}.auth-form h2{font-size:24px;margin-bottom:6px}.demo-box{border:1px dashed var(--border-strong);border-radius:10px;padding:14px;background:var(--surface-2)}.onb{min-height:100%;background:var(--bg)}.onb-top{height:64px;display:flex;align-items:center;padding:0 28px;background:var(--navy-900);gap:20px}.onb-top img{height:34px}.onb-wrap{max-width:980px;margin:0 auto;padding:30px 20px 60px}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.plan{border:1.5px solid var(--border);border-radius:12px;padding:22px;background:var(--surface);cursor:pointer;position:relative;display:flex;flex-direction:column}.plan.on{border-color:var(--brand);box-shadow:var(--focus)}.plan .price{font-size:34px;font-weight:700;margin:10px 0 2px;letter-spacing:-.02em}.plan .price small{font-size:14px;font-weight:400;color:var(--text-3)}.plan ul{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px;font-size:13.5px}.plan li{display:flex;gap:8px;align-items:center}.plan li svg{color:var(--ok)}.plan .tag{position:absolute;top:-11px;left:20px;background:var(--brand);color:#fff;font-size:11.5px;font-weight:600;padding:2px 10px;border-radius:99px}.checkout-banner{background:repeating-linear-gradient(45deg,#fff6e5,#fff6e5 10px,#fdefd2 10px,#fdefd2 20px);color:#92400e;border:1px solid #f5d39a;padding:10px 14px;border-radius:8px;font-weight:600;font-size:13px;display:flex;gap:8px;align-items:center}.sheet{position:relative;aspect-ratio:1.414;background:#fbfcfe;border:1px solid var(--border);border-radius:8px;overflow:hidden;background-image:linear-gradient(#e8eef7 1px,transparent 1px),linear-gradient(90deg,#e8eef7 1px,transparent 1px);background-size:24px 24px}:root[data-theme=dark] .sheet{background-color:#0d1730;background-image:linear-gradient(#1a2850 1px,transparent 1px),linear-gradient(90deg,#1a2850 1px,transparent 1px)}.sheet .room{position:absolute;border:2px solid #64748b}.sheet .mark{position:absolute;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 0 0 1px #0003}.sheet .mark.dim{opacity:.15}.sheet .scan{position:absolute;left:0;right:0;height:40px;background:linear-gradient(180deg,transparent,rgba(52,225,242,.35),transparent);animation:scan 1.6s linear infinite}@keyframes scan{0%{top:-40px}to{top:100%}}.dropzone{border:2px dashed var(--border-strong);border-radius:12px;padding:36px;text-align:center;cursor:pointer;transition:border-color .12s,background .12s}.dropzone:hover,.dropzone.over{border-color:var(--brand);background:var(--brand-50)}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.phone{width:380px;max-width:100%;border-radius:40px;background:#0b1020;padding:12px;box-shadow:var(--shadow-lg);flex:none}.phone-screen{border-radius:30px;overflow:hidden;background:#f3f5f9;height:740px;display:flex;flex-direction:column;color:#0f172a;position:relative}.phone-status{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:12.5px;font-weight:600;background:#0a1430;color:#fff;flex:none}.phone-head{background:#0a1430;color:#fff;padding:6px 18px 16px;flex:none}.phone-body{flex:1;overflow-y:auto;padding:14px}.phone-tabs{display:flex;border-top:1px solid #e3e8f0;background:#fff;flex:none}.phone-tabs button{flex:1;border:0;background:none;padding:9px 0 13px;font-size:11px;color:#64748b;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.pcard{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 1px 2px #0f172a0f;border:1px solid #e8edf4}.map{height:150px;border-radius:12px;position:relative;overflow:hidden;background:#dfe9d8;background-image:linear-gradient(90deg,transparent 46%,#fff 46%,#fff 54%,transparent 54%),linear-gradient(0deg,transparent 46%,#fff 46%,#fff 54%,transparent 54%),linear-gradient(90deg,transparent 80%,#f4f1e4 80%)}.map .fence{position:absolute;width:96px;height:96px;border-radius:50%;border:2px solid var(--brand);background:#2563eb1f;left:50%;top:50%;transform:translate(-50%,-50%)}.map .me{position:absolute;width:14px;height:14px;border-radius:50%;background:#2563eb;border:3px solid #fff;box-shadow:0 0 0 6px #2563eb33;transform:translate(-50%,-50%);transition:left 1.2s,top 1.2s}.offline-bar{background:#f59e0b;color:#1f1300;font-size:12px;font-weight:600;padding:6px 14px;text-align:center;flex:none}.print-only{display:none}:root{--plan-paper: #fdfdfb;--plan-ink: #334155;--plan-ink-2: #94a3b8;--plan-grid: #cbd5e1;--plan-room: #f4f6f9;--plan-canvas: #e9edf3}:root[data-theme=dark]{--plan-paper: #0e1832;--plan-ink: #cbd5e1;--plan-ink-2: #64748b;--plan-grid: #2b3a5e;--plan-room: #121e3c;--plan-canvas: #08112a}.grow{flex:1;min-width:0}.viewer{display:flex;flex-direction:column;height:calc(100dvh - 60px);min-height:520px}.viewer-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.viewer-title{display:flex;flex-direction:column;min-width:0;flex:1}.viewer-title b{font-size:14.5px}.viewer-sheets .select{min-width:220px}.viewer-layers-btn{display:none}.viewer-body{flex:1;min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr) 330px;position:relative}.viewer-layers,.viewer-detail{overflow-y:auto;background:var(--surface)}.viewer-layers{border-right:1px solid var(--border);padding:6px 0 20px}.viewer-detail{border-left:1px solid var(--border)}.vl-sec{padding:10px 14px;border-bottom:1px solid var(--border)}.vl-sec:last-child{border-bottom:0}.vl-h{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:600;margin-bottom:6px}.vl-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}.vl-sheet,.vl-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:6px 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:7px;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.vl-sheet:hover,.vl-item:hover{background:var(--surface-2)}.vl-sheet.on,.vl-item.on{background:var(--brand-50);color:var(--brand)}.vl-sheet .truncate{flex:1}.vl-sheet .mono{width:40px;color:var(--text-3)}.vl-item .dot{width:8px;height:8px;border-radius:50%;background:var(--warn);flex:none}.viewer-canvas{position:relative;min-width:0;min-height:0;display:grid;background:var(--plan-canvas)}.viewer-canvas.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--border)}.vc-pane{position:relative;min-width:0;min-height:0;background:var(--plan-canvas);overflow:hidden}.plan2d{position:absolute;top:0;right:0;bottom:0;left:0}.plan2d svg{width:100%;height:100%;display:block;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.plan2d.measuring svg{cursor:crosshair}.plan2d.mini{position:relative;inset:auto;aspect-ratio:172 / 114;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--plan-canvas)}.plan2d.mini svg{cursor:default}.p-paper{fill:var(--plan-paper)}.p-border{fill:none;stroke:var(--plan-ink);stroke-width:.35}.p-tb line{stroke:var(--plan-ink);stroke-width:.25}.p-tb text{fill:var(--plan-ink);font-family:Inter,system-ui,sans-serif}.p-tb-h{font-size:2.1px;font-weight:700}.p-tb-s{font-size:1.35px}.p-tb-l{font-size:1.5px;font-weight:700;letter-spacing:.08em}.p-tb-no{font-size:5px;font-weight:800}.p-grid line{stroke:var(--plan-grid);stroke-width:.14;stroke-dasharray:4 1 .6 1}.p-grid circle{fill:var(--plan-paper);stroke:var(--plan-ink-2);stroke-width:.18}.p-grid text{fill:var(--plan-ink);font-size:1.9px;font-weight:600;font-family:Inter,system-ui,sans-serif}.p-dim line{stroke:var(--plan-ink-2);stroke-width:.12}.p-dim text{fill:var(--plan-ink);font-size:1.5px;font-family:Inter,system-ui,sans-serif}.p-room{fill:var(--plan-room);stroke:none}.p-room.corr{fill:var(--plan-paper)}.p-wall{stroke:var(--plan-ink);stroke-width:.45;stroke-linecap:square}.p-wall.ext{stroke-width:.85}.p-door{fill:none;stroke:var(--plan-ink-2);stroke-width:.12}.p-roomtag text{fill:var(--plan-ink);font-family:Inter,system-ui,sans-serif}.p-roomtag .nm{font-size:1.6px;font-weight:600;letter-spacing:.04em}.p-roomtag .no{font-size:1.5px}.p-roomtag rect{fill:var(--plan-paper);stroke:var(--plan-ink-2);stroke-width:.12}.p-scale rect.w{fill:var(--plan-paper);stroke:var(--plan-ink);stroke-width:.12}.p-scale rect.b{fill:var(--plan-ink)}.p-scale text,.p-north text{fill:var(--plan-ink);font-size:1.4px;font-family:Inter,system-ui,sans-serif}.p-north circle{fill:none;stroke:var(--plan-ink);stroke-width:.15}.p-north path{fill:var(--plan-ink)}.p-measure line{stroke:var(--brand);stroke-width:.25;stroke-dasharray:.8 .4}.p-measure circle{fill:var(--brand)}.p-measure rect{fill:var(--brand)}.p-measure text{fill:#fff;font-size:1.5px;font-weight:700;font-family:Inter,system-ui,sans-serif}.p-scan{fill:#34e1f240;animation:pscan 1.8s linear infinite}@keyframes pscan{0%{transform:translateY(0)}to{transform:translateY(100px)}}.plan-tools{position:absolute;top:12px;left:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm);max-width:calc(100% - 24px)}.plan-tools-sep{width:1px;height:22px;background:var(--border)}.plan-hint{position:absolute;left:12px;bottom:12px;font-size:12px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 10px;max-width:calc(100% - 24px)}.plan-tip{position:fixed;z-index:60;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow-lg);padding:8px 11px;max-width:300px;display:flex;flex-direction:column;gap:2px;font-size:13px}.plan3d{position:absolute;top:0;right:0;bottom:0;left:0}.plan3d>canvas{display:block;touch-action:none}.pdfsheet{position:absolute;top:0;right:0;bottom:0;left:0}.pdfsheet-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;background:#5b6474;cursor:grab;touch-action:none;overscroll-behavior:contain}.pdfsheet-scroll:active{cursor:grabbing}.pdfsheet-page{background:#fff;box-shadow:0 4px 20px #00000059}.pdfsheet-page canvas,.pdfsheet-page svg{position:absolute;left:0;top:0}.pdfsheet-page svg{overflow:visible}.pdfsheet-hit{cursor:pointer}.pdfsheet-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#e2e8f0;font-size:13px;pointer-events:none}.pdfsheet-zoom{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:2px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm)}.pdfsheet-zoom span{min-width:46px;text-align:center}.pdfsheet.mini{position:relative;inset:auto;height:380px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.pdfsheet.mini .pdfsheet-scroll{cursor:default;overflow:hidden}.pdfsheet.mini .pdfsheet-page{box-shadow:0 2px 10px #0000004d}.pdfsheet-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,transparent 0,rgba(15,181,200,0) 40%,rgba(15,181,200,.28) 50%,rgba(15,181,200,0) 60%,transparent 100%);background-size:100% 220%;animation:pdfscan 2.4s linear infinite}@keyframes pdfscan{0%{background-position:0 120%}to{background-position:0 -120%}}@media (prefers-reduced-motion: reduce){.pdfsheet-scan{animation:none;background:#0fb5c814}}.plan3d.center{display:grid;place-items:center}.plan3d-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.plan3d-canvas canvas{display:block;touch-action:none}.vd{padding:16px 18px 28px;display:flex;flex-direction:column;gap:6px}.vd-k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:600}.vd-h{font-size:16.5px;line-height:1.3;margin:0;text-wrap:balance}.vd-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.vd-stats>div{background:var(--surface-2);border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:3px;min-width:0}.vd-stats span{font-size:11.5px;color:var(--text-3)}.vd-stats b{font-size:17px}.conf-bar{height:4px;border-radius:4px;background:var(--surface-3);overflow:hidden}.conf-bar i{display:block;height:100%}.vd-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.vd-actions .btn-success,.vd-actions .btn-secondary{flex:1}.vd-sec{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.vd-kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:3px 0}.vd-kv span{color:var(--text-3)}.vd-kv b{font-weight:500;text-align:right}.vd-keys div{font-size:12.5px;color:var(--text-2);padding:2px 0}.panel-sched{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;padding:18px;background:var(--plan-paper)}.ps-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.ps-title{font-weight:800;font-size:18px;letter-spacing:.04em}.ps-specs{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--text-2)}.ps-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:640px}.ps-table th,.ps-table td{border:1px solid var(--border);padding:5px 8px}.ps-table th{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);text-align:left}.ps-ckt,.ps-ph{text-align:center;width:38px;font-weight:600}.ps-ph{background:var(--surface-2);color:var(--text-2)}.ps-brk{width:64px;white-space:nowrap}.ps-va{width:64px}.ps-desc.R{text-align:left}.ps-on{cursor:pointer}.ps-on:hover{background:var(--surface-2)}.ps-sel{background:var(--brand-50)!important;color:var(--brand)}.ps-foot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.ps-foot>div{display:flex;flex-direction:column;background:var(--surface-2);border-radius:9px;padding:9px 12px}.drawing-actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 1200px){.viewer-body{grid-template-columns:minmax(0,1fr) 320px}.viewer-layers{position:absolute;left:0;top:0;bottom:0;width:270px;z-index:15;transform:translate(-105%);transition:transform .2s;box-shadow:var(--shadow-lg)}.viewer-layers.open{transform:none}.viewer-layers-btn{display:inline-flex}.viewer-layers-btn.on{background:var(--brand-50);color:var(--brand)}}@media (max-width: 900px){.viewer{height:auto;min-height:0}.viewer-body{grid-template-columns:minmax(0,1fr)}.viewer-canvas{height:56vh;min-height:340px}.vd-keys{display:none}.viewer-canvas.split{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr 1fr;height:90vh}.viewer-detail{border-left:0;border-top:1px solid var(--border)}.viewer-sheets{order:5;width:100%}.viewer-sheets .select{width:100%}.ps-foot{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-hint{display:none}}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 4px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;cursor:pointer}.chip:not(:has(.avatar)){padding:0 12px}.chip .avatar{width:24px;height:24px;font-size:10px}.chip.on{border-color:var(--brand);background:var(--brand-50);color:var(--brand)}.pa-form{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:600}.pa-meta{display:grid;gap:4px;font-size:13px;min-width:240px}.pa-meta div{display:flex;justify-content:space-between;gap:16px}.pa-meta span{color:var(--text-3)}.g702{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.g702-row{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);font-size:13.5px;align-items:baseline}.g702-row:last-child{border-bottom:0}.g702-row .n{color:var(--text-3);font-variant-numeric:tabular-nums}.g702-row.due{background:var(--brand-50);font-size:15px}.g702-row.due b{color:var(--brand)}.pa-sign{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--text-3);padding-top:6px;margin-top:18px;font-size:12.5px;color:var(--text-2)}.g703 td,.g703 th{padding:8px 10px;font-size:13px}.row-error td{background:var(--danger-bg)}.cc-bar{position:relative;height:8px;border-radius:4px;background:var(--surface-2);border:1px solid var(--border)}.cc-bar span{position:absolute;inset:0 auto 0 0;background:var(--brand);border-radius:4px}.cc-bar i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--warn)}.photos{display:flex;flex-wrap:wrap;gap:8px}.photo{position:relative;width:96px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--surface-2);padding:0;margin:0;cursor:pointer}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;color:var(--text-3);border-style:dashed}.photo-x{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:0;background:#0009;color:#fff;display:grid;place-items:center;cursor:pointer}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#050a19db;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;cursor:zoom-out;padding:24px}.lightbox img{max-width:min(92vw,1100px);max-height:80vh;border-radius:8px}.sigpad{position:relative;height:160px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:#fff;touch-action:none}.sigpad canvas{width:100%;height:100%;display:block;cursor:crosshair}.sig-hint{position:absolute;left:16px;bottom:30px;color:#94a3b8;pointer-events:none;font-size:13px}.sig-clear{position:absolute;top:6px;right:6px}.sig-line{position:absolute;left:16px;right:16px;bottom:26px;border-top:1px solid #cbd5e1;pointer-events:none}.sig-img{height:70px;background:#fff;border-radius:6px;border:1px solid var(--border);padding:4px}.daily{padding:14px 0;border-bottom:1px solid var(--border)}.daily:first-child{padding-top:0}.daily:last-child{border-bottom:0;padding-bottom:0}.inspections{display:flex;flex-direction:column;border-top:1px solid var(--border)}.insp{display:flex;align-items:center;gap:10px;padding:10px 16px;border:0;border-bottom:1px solid var(--border);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.insp:hover:not(:disabled){background:var(--surface-2)}.insp:disabled{cursor:default}.insp>span:nth-child(2){display:flex;flex-direction:column;flex:1;min-width:0}.insp-dot{width:10px;height:10px;border-radius:50%;background:var(--border-strong);flex:none}.insp-passed .insp-dot{background:var(--ok)}.insp-failed .insp-dot{background:var(--danger)}.insp-scheduled .insp-dot{background:var(--info)}.bidboard{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;overflow-x:auto}.bidcol{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:200px}.bidcol h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);display:flex;justify-content:space-between;margin:2px 4px 10px}.bidcard{display:block;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;color:inherit;box-shadow:var(--shadow-sm)}.bidcard:hover{border-color:var(--brand);text-decoration:none}.due-soon{color:var(--warn-text);font-weight:600}.due-past{color:var(--danger);font-weight:600}.proposal{padding:48px;max-width:860px;margin:0 auto}.proposal h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:24px 0 8px}.proposal ul{margin:0;padding-left:20px}.proposal li{margin:4px 0}.list-edit{display:flex;flex-direction:column;gap:6px}.list-edit .row input{flex:1}.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}.access{display:grid;gap:6px}.access-row{display:flex;gap:8px;align-items:flex-start;font-size:13px}.access-row svg{flex:none;margin-top:2px}.access-row .yes{color:var(--ok)}.access-row.off{color:var(--text-3)}.access-row.off span:first-of-type{text-decoration:line-through;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}.role-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--violet-bg);color:var(--violet-text);font-size:13px;flex-wrap:wrap}.trial-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--brand-50);color:var(--brand);font-size:13px;flex-wrap:wrap}.measure{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.measure-main{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.measure-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border)}.measure-bar .seg button{padding:0 10px;display:inline-flex;align-items:center}.measure-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--info-bg);color:var(--info-text);font-size:13px}.measure-hint.warn{background:var(--warn-bg);color:var(--warn-text)}.measure-canvas{height:calc(100vh - 250px);min-height:420px;overflow:auto;background:#5b6474;padding:12px}.measure-sheet{position:relative;margin:0 auto;box-shadow:0 4px 20px #00000059;background:#fff}.measure-sheet canvas,.measure-sheet svg{position:absolute;top:0;right:0;bottom:0;left:0}.tool-mark svg,.tool-calibrate svg{cursor:crosshair}.tool-pan svg{cursor:grab;pointer-events:none}.tool-erase .mk{cursor:pointer}.tool-erase .mk:hover{opacity:.5}.measure-side{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto}.measure-side h3{font-size:15px}.mitem{border:1px solid var(--border);border-radius:10px;padding:10px;margin-top:10px;cursor:pointer}.mitem.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50)}.swatch{width:12px;height:12px;border-radius:3px;flex:none}@media (max-width: 900px){.measure{grid-template-columns:1fr}.measure-side{position:static;max-height:none}}@media (max-width: 1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-grid{grid-template-columns:1fr}}@media (max-width: 900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:264px;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#07102973;z-index:25}.btn.menu-btn{display:inline-flex}.topbar{padding:0 16px}.topbar .search span.lbl,.topbar .search kbd{display:none}.page{padding:18px 16px 50px}.g2,.g3{grid-template-columns:1fr}.grid[style*=grid-template-columns]{grid-template-columns:minmax(0,1fr)!important}.grid>[style*="position: sticky"]{position:static!important}.span2{grid-column:auto}.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.board{grid-template-columns:1fr}.cal .day{min-height:74px}.cal .ev{font-size:10.5px;padding:1px 4px}.stepper .s span{display:none}.hide-sm{display:none!important}.show-sm{display:block}}@media (max-width: 560px){.g4{grid-template-columns:1fr 1fr}.stat .value{font-size:19px}h1{font-size:21px}.phone{border-radius:0;padding:0;width:100%}.phone-screen{border-radius:0;height:calc(100vh - 140px)}}@media print{.sidebar,.topbar,.no-print,.toasts,.page-head .actions,.role-banner,.trial-banner{display:none!important}.app{display:block}.page{padding:0}.card{box-shadow:none;border-color:#ccc}.print-only{display:block}body{background:#fff}}.flow-steps{display:flex;align-items:center;gap:0;margin:0 0 18px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.flow-steps .fs{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:13px;font-weight:500;white-space:nowrap}.flow-steps .fs i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11.5px;font-weight:600;border:1.5px solid var(--border-strong);background:var(--surface)}.flow-steps .fs.done{color:var(--text-2)}.flow-steps .fs.done i{background:var(--ok);border-color:var(--ok);color:#fff}.flow-steps .fs.on{color:var(--text);font-weight:600}.flow-steps .fs.on i{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-50)}.flow-steps .ln{flex:1;height:1.5px;background:var(--border);margin:0 12px;min-width:14px}.flow-steps .ln.done{background:var(--ok)}.review-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 28px;align-items:center;padding:18px 20px}.review-bar .big{font-size:26px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.review-bar .figs{display:flex;gap:28px;flex-wrap:wrap;margin-top:12px}.review-bar .figs div{font-size:12.5px;color:var(--text-3)}.review-bar .figs b{display:block;font-size:16px;color:var(--text);font-variant-numeric:tabular-nums}.review-bar .cta{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:250px}.seg-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--surface-3);margin-top:10px}.seg-bar>i{display:block;height:100%;transition:width .3s}.seg-bar .a{background:var(--ok)}.seg-bar .r{background:var(--danger);opacity:.75}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}.review-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:16px;align-items:start}.review-split>.sticky{position:sticky;top:76px}.det-row.rej{opacity:.55}.det-row .match{margin-top:6px;max-width:320px}.next-cell{display:flex;justify-content:flex-end}.mini-progress{display:flex;align-items:center;gap:8px;min-width:150px}.mini-progress .progress{flex:1}.up-step{display:flex;gap:12px}.up-step>.n{width:24px;height:24px;border-radius:50%;background:var(--brand-50);color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;margin-top:1px}.up-step>.n.done{background:var(--ok);color:#fff}.up-step>div{flex:1;min-width:0}.up-step h4{margin:0 0 8px;font-size:14px;font-weight:600}.up-next{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--text-2)}@media (max-width: 900px){.flow-steps .fs:not(.on) span{display:none}.review-bar{grid-template-columns:1fr}.review-bar .cta{min-width:0}.review-split{grid-template-columns:minmax(0,1fr)}.review-split>.sticky{position:static}}@font-face{font-family:Bricolage;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-var-DLoelf7F.woff2) format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jbmono-500-BWZEU5yA.woff2) format("woff2")}:root{--font-display: "Bricolage", Inter, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--navy-950: #040a1a;--navy-900: #071230;--brand: #2f5bff;--brand-600: #1f43e0;--brand-50: #ebf0ff;--accent: #12b8d8;--accent-bright: #3ee6ff;--brand-grad: linear-gradient(135deg, #4a74ff 0%, #2f5bff 45%, #1d3fd6 100%);--live-grad: linear-gradient(90deg, #2f5bff 0%, #12b8d8 100%);--bg: #eef2f9;--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #e9eef7;--border: #dfe5f0;--border-strong: #c9d3e3;--text: #0a1530;--text-2: #43506a;--text-3: #5a6782;--grid-line: rgba(47, 91, 255, .055);--glow-a: rgba(47, 91, 255, .14);--glow-b: rgba(18, 184, 216, .12);--focus: 0 0 0 3px rgba(47, 91, 255, .28);--radius: 16px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(10, 21, 48, .05);--shadow: 0 1px 2px rgba(10, 21, 48, .04), 0 8px 24px -12px rgba(10, 21, 48, .12);--shadow-lg: 0 30px 80px -20px rgba(7, 18, 48, .35), 0 2px 6px rgba(7, 18, 48, .08);--card-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 1px 2px rgba(10, 21, 48, .04), 0 12px 32px -18px rgba(10, 21, 48, .18);--sidebar-bg: linear-gradient(180deg, #050c20 0%, #071535 60%, #0a1d47 100%);--sidebar-text: #b9c6e2;--sidebar-muted: #6f81a8;--sidebar-active: linear-gradient(90deg, rgba(62, 230, 255, .16), rgba(62, 230, 255, .02));--bp-bg: #061230;--bp-ink: #eaf1ff;--bp-ink-2: #a7b7d9;--bp-line: rgba(126, 170, 255, .11);--bp-line-strong: rgba(126, 170, 255, .22)}:root[data-theme=dark]{--brand: #5b82ff;--brand-600: #4a6ff0;--brand-50: #14234f;--bg: #050b1c;--surface: #0c1734;--surface-2: #0a1430;--surface-3: #13224a;--border: #1c2c58;--border-strong: #2a3f74;--text: #edf2ff;--text-2: #b3c1df;--text-3: #8f9fc4;--grid-line: rgba(126, 170, 255, .05);--glow-a: rgba(47, 91, 255, .22);--glow-b: rgba(18, 184, 216, .14);--card-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 16px 40px -20px rgba(0, 0, 0, .7);--shadow-lg: 0 30px 80px -20px rgba(0, 0, 0, .75)}body{background:var(--bg)}.main{position:relative;isolation:isolate}.main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 420px at 85% -80px,var(--glow-b),transparent 70%),radial-gradient(800px 380px at 20% -120px,var(--glow-a),transparent 70%),linear-gradient(var(--grid-line) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(90deg,var(--grid-line) 1px,transparent 1px) 0 0 / 28px 28px;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 520px,rgba(0,0,0,.35) 900px);mask-image:linear-gradient(180deg,#000 0,#000 520px,#00000059 900px)}h1,h2,.display{font-family:var(--font-display);font-optical-sizing:auto}h1{font-size:31px;font-weight:650;letter-spacing:-.025em;line-height:1.1;text-wrap:balance}h2{font-size:17px;font-weight:620;letter-spacing:-.01em}.page{padding-top:30px}.page-head{margin-bottom:24px}.page-head .sub{font-size:14.5px;margin-top:6px}.crumbs{font-size:12.5px}.mono,.num,.stat .value{font-feature-settings:"tnum" 1,"ss01" 1}::selection{background:#2f5bff38}.sidebar{border-right:1px solid rgba(126,170,255,.08)}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(126,170,255,.05) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(90deg,rgba(126,170,255,.05) 1px,transparent 1px) 0 0 / 22px 22px,radial-gradient(260px 200px at 0% 100%,rgba(62,230,255,.12),transparent 70%)}.sidebar>*{position:relative}.sidebar .brand{padding:22px 20px 14px}.sidebar .company{background:#ffffff0a;border:1px solid rgba(126,170,255,.12);border-radius:12px}.sidebar .company .avatar{background:var(--brand-grad)!important;box-shadow:0 0 0 2px #3ee6ff40}.nav-group>span{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;font-weight:500}.nav-link{position:relative;border-radius:10px;transition:background .15s,color .15s}.nav-link svg{color:var(--sidebar-muted);transition:color .15s}.nav-link:hover svg{color:#dfe8ff}.nav-link.active{background:var(--sidebar-active);color:#fff}.nav-link.active svg{color:var(--accent-bright);filter:drop-shadow(0 0 6px rgba(62,230,255,.6))}.nav-link.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-bright);box-shadow:0 0 12px #3ee6ffcc}.nav-link .count{background:linear-gradient(135deg,#ffcf5a,#f59e0b);color:#2a1700;box-shadow:0 0 10px #f59e0b59}.sidebar .foot{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;border-top-color:#7eaaff1a}.topbar{background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom-color:color-mix(in srgb,var(--border) 80%,transparent)}.topbar .search{border-radius:12px;background:color-mix(in srgb,var(--surface-2) 80%,transparent);transition:border-color .15s,box-shadow .15s}.topbar .search:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.card{border-radius:var(--radius);box-shadow:var(--card-shadow);border-color:var(--border)}.card-head{padding:18px 22px;border-bottom-color:var(--border)}.card-body{padding:22px}.stat{padding:18px 20px;position:relative;overflow:hidden}.stat .label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em}.stat .value{font-family:var(--font-display);font-size:30px;font-weight:650;letter-spacing:-.02em;margin-top:8px}.stat .delta{font-size:12.5px;margin-top:4px}.stat:after{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--glow-a),transparent 70%);pointer-events:none}.btn{border-radius:10px;font-weight:550;transition:background .15s,border-color .15s,box-shadow .15s,transform .12s,filter .15s}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--brand-grad);color:#fff;box-shadow:inset 0 1px #ffffff40,0 1px 2px #0a153033,0 6px 18px -6px #2f5bff99}.btn-primary:hover:not(:disabled){background:var(--brand-grad);filter:brightness(1.08);box-shadow:inset 0 1px #ffffff4d,0 1px 2px #0a153033,0 10px 26px -8px #2f5bffbf}.btn-secondary{background:var(--surface);box-shadow:0 1px 2px #0a15300d}.btn-success{background:linear-gradient(135deg,#22c55e,#15803d);box-shadow:inset 0 1px #ffffff40,0 6px 16px -8px #16a34ab3}.btn-lg{height:48px;font-size:15px;border-radius:12px}.input,.select,.textarea{border-radius:10px;background-color:var(--surface)}.input:hover,.select:hover,.textarea:hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--border-strong))}.badge{font-weight:550;height:23px;padding:0 9px}.progress{height:7px;background:var(--surface-3)}.progress>i{background:var(--live-grad);box-shadow:0 0 10px #12b8d873}.progress.ok>i{background:linear-gradient(90deg,#16a34a,#22c55e);box-shadow:none}.tabs{border-bottom-color:var(--border)}.tabs button{font-weight:550}.tabs button.on{color:var(--text);border-bottom-color:var(--brand)}.tabs button.on .n{background:var(--brand);color:#fff}.seg{border-radius:11px;padding:4px}.seg button{border-radius:8px}.alert{border-radius:12px}.empty .ic{width:60px;height:60px;border-radius:18px;background:var(--brand-grad);color:#fff;box-shadow:0 12px 30px -10px #2f5bffb3}.empty h3{font-family:var(--font-display);font-size:19px}.dropzone{border-radius:16px;border-color:color-mix(in srgb,var(--brand) 30%,var(--border-strong));background:color-mix(in srgb,var(--brand-50) 45%,transparent)}.radio-card{border-radius:12px;transition:border-color .15s,background .15s,box-shadow .15s}.table th{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;font-weight:500;background:transparent}.table td{border-bottom-color:color-mix(in srgb,var(--border) 75%,transparent)}.table tr.click{transition:background .12s}.table tr.click:hover td{background:color-mix(in srgb,var(--brand-50) 55%,transparent)}.modal-wrap,.modal-backdrop,.overlay{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal{border-radius:20px;border:1px solid var(--border)}.modal-head h2{font-size:20px}.menu{border-radius:14px;padding:6px}.menu button,.menu a{border-radius:8px}.toast{border-radius:12px;background:#0a1736;border:1px solid rgba(126,170,255,.18)}.blueprint{position:relative;overflow:hidden;isolation:isolate;color:var(--bp-ink);border-radius:22px;background:radial-gradient(700px 300px at 100% 0%,rgba(62,230,255,.16),transparent 65%),radial-gradient(600px 320px at 0% 100%,rgba(47,91,255,.3),transparent 65%),linear-gradient(160deg,#081a44 0%,var(--bp-bg) 55%,#040b1f 100%);border:1px solid rgba(126,170,255,.16);box-shadow:0 30px 70px -34px #071230a6,inset 0 1px #ffffff0f}.blueprint:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(var(--bp-line-strong) 1px,transparent 1px) 0 0 / 120px 120px,linear-gradient(90deg,var(--bp-line-strong) 1px,transparent 1px) 0 0 / 120px 120px,linear-gradient(var(--bp-line) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(90deg,var(--bp-line) 1px,transparent 1px) 0 0 / 24px 24px;-webkit-mask-image:radial-gradient(120% 120% at 70% 0%,#000 30%,transparent 85%);mask-image:radial-gradient(120% 120% at 70% 0%,#000 30%,transparent 85%)}.blueprint h1,.blueprint h2,.blueprint b,.blueprint strong{color:#fff}.blueprint .muted,.blueprint p{color:var(--bp-ink-2)}.blueprint .eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-bright);display:inline-flex;align-items:center;gap:8px}.blueprint .eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 0 4px #3ee6ff26,0 0 12px #3ee6ffe6;animation:live 2s ease-in-out infinite}.blueprint .btn-secondary{background:#ffffff0f;color:#fff;border-color:#7eaaff47;box-shadow:none}.blueprint .btn-secondary:hover:not(:disabled){background:#ffffff1f}.blueprint .btn-ghost{color:var(--bp-ink-2)}.blueprint .btn-ghost:hover:not(:disabled){background:#ffffff14;color:#fff}.blueprint .progress{background:#ffffff1a}.blueprint a:not(.btn){color:var(--accent-bright)}.bp-corner{position:absolute;width:18px;height:18px;border:1.5px solid rgba(62,230,255,.55);pointer-events:none}.bp-corner.tl{left:14px;top:14px;border-right:0;border-bottom:0}.bp-corner.tr{right:14px;top:14px;border-left:0;border-bottom:0}.bp-corner.bl{left:14px;bottom:14px;border-right:0;border-top:0}.bp-corner.br{right:14px;bottom:14px;border-left:0;border-top:0}@keyframes live{0%,to{opacity:1}50%{opacity:.45}}.to-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:32px;padding:34px 36px;margin-bottom:22px;align-items:center}.to-hero h1{font-size:clamp(30px,3.4vw,44px);color:#fff;margin:14px 0 12px;max-width:14ch}.to-hero h1 em{font-style:normal;background:linear-gradient(90deg,#8fb0ff,var(--accent-bright));-webkit-background-clip:text;background-clip:text;color:transparent}.to-hero p{font-size:15px;max-width:46ch;line-height:1.6}.to-hero .facts{display:flex;gap:28px;margin-top:26px;flex-wrap:wrap}.to-hero .facts div{font-size:12px;color:var(--bp-ink-2)}.to-hero .facts b{display:block;font-family:var(--font-display);font-size:26px;font-weight:650;letter-spacing:-.02em;color:#fff;line-height:1.1}.hero-drop{position:relative;border-radius:18px;padding:34px 24px;text-align:center;cursor:pointer;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(180deg,#ffffff0f,#ffffff05);border:1.5px dashed rgba(126,170,255,.45);transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}.hero-drop:hover,.hero-drop.over,.hero-drop:focus-visible{border-color:var(--accent-bright);background:#3ee6ff12;box-shadow:0 0 0 6px #3ee6ff0f,0 20px 50px -20px #3ee6ff73;outline:none}.hero-drop.over{transform:scale(1.01)}.hero-drop .ic{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--brand-grad);color:#fff;box-shadow:0 16px 40px -12px #2f5bffe6,inset 0 1px #ffffff4d;margin-bottom:6px}.hero-drop .t{font-family:var(--font-display);font-size:19px;font-weight:620;color:#fff}.hero-drop .s{font-size:13px;color:var(--bp-ink-2)}.hero-drop .kbd{font-family:var(--font-mono);font-size:11px;color:var(--bp-ink-2);padding:3px 8px;border:1px solid rgba(126,170,255,.25);border-radius:6px;margin-top:8px}.hero-drop .scanline{position:absolute;left:10%;right:10%;height:1px;top:30%;background:linear-gradient(90deg,transparent,var(--accent-bright),transparent);opacity:.7;animation:sweep 4.5s ease-in-out infinite}@keyframes sweep{0%,to{top:18%;opacity:0}15%{opacity:.8}50%{top:82%;opacity:.8}65%{opacity:0}}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 2px 14px}.section-title h2{font-size:19px}.section-title .muted{font-size:13px}.to-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.to-card{display:flex;flex-direction:column;text-decoration:none!important;color:inherit;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s}.to-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:0 24px 50px -24px #2f5bff73,var(--card-shadow)}.to-thumb{position:relative;height:150px;background:#071535;overflow:hidden;border-bottom:1px solid var(--border)}.to-thumb svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.to-thumb .chip-s{position:absolute;left:12px;top:12px}.to-thumb .pages{position:absolute;right:12px;bottom:10px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:#eaf1ffbf;text-transform:uppercase}.to-thumb.scan:after{content:"";position:absolute;left:0;right:0;height:40px;background:linear-gradient(180deg,transparent,rgba(62,230,255,.28),transparent);animation:thumbscan 2.4s linear infinite}@keyframes thumbscan{0%{top:-40px}to{top:150px}}.to-body{padding:16px 18px 18px;display:grid;gap:12px;flex:1}.to-body .name{font-weight:620;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.to-body .proj{font-size:12.5px;color:var(--text-3);margin-top:2px}.to-meter{display:grid;gap:6px}.to-meter .row{font-size:12px;color:var(--text-3);justify-content:space-between}.to-meter .row b{font-family:var(--font-mono);font-weight:500;color:var(--text);font-size:12px}.to-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;border-top:1px dashed var(--border)}.to-foot .when{font-size:12px;color:var(--text-3)}.to-new{border:1.5px dashed var(--border-strong);background:color-mix(in srgb,var(--surface) 50%,transparent);box-shadow:none;align-items:center;justify-content:center;gap:10px;min-height:300px;cursor:pointer;color:var(--text-2);font:inherit}.to-new:hover{background:color-mix(in srgb,var(--brand-50) 60%,transparent);color:var(--brand)}.to-new .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand)}.flow-steps{border-radius:14px;padding:12px 18px;box-shadow:var(--card-shadow)}.flow-steps .fs{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}.flow-steps .fs.on i{background:var(--brand-grad);box-shadow:0 0 0 4px var(--brand-50),0 6px 14px -4px #2f5bffb3}.flow-steps .ln.done{background:linear-gradient(90deg,var(--ok),color-mix(in srgb,var(--ok) 60%,transparent))}.scan-stage{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0;padding:0}.scan-view{position:relative;padding:26px;border-right:1px solid rgba(126,170,255,.14);min-height:420px;display:grid;place-items:center}.scan-view .sheet{position:relative;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 30px 60px -30px #000c,0 0 0 1px #7eaaff33}.scan-view .beam{position:absolute;left:0;right:0;height:3px;background:var(--accent-bright);box-shadow:0 0 18px 4px #3ee6ffb3,0 0 60px 20px #3ee6ff40;animation:beam 3.2s ease-in-out infinite alternate;z-index:2;pointer-events:none}@keyframes beam{0%{top:2%}to{top:96%}}.scan-side{padding:30px 30px 28px;display:flex;flex-direction:column;gap:22px}.ring{position:relative;width:156px;height:156px}.ring svg{transform:rotate(-90deg)}.ring .val{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.ring .val b{font-family:var(--font-display);font-size:40px;font-weight:650;letter-spacing:-.03em;color:#fff;line-height:1}.ring .val span{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;color:var(--bp-ink-2);text-transform:uppercase;margin-top:4px}.stages{display:grid;gap:4px}.stages .st{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;font-size:13.5px;color:#a7b7d999}.stages .st i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid rgba(126,170,255,.25);flex:none}.stages .st.done{color:var(--bp-ink-2)}.stages .st.done i{background:#22c55e29;border-color:#22c55e99;color:#4ade80}.stages .st.on{color:#fff;background:#3ee6ff14;box-shadow:inset 0 0 0 1px #3ee6ff40}.stages .st.on i{border-color:var(--accent-bright);color:var(--accent-bright);box-shadow:0 0 12px #3ee6ff80}.stages .st.on i svg{animation:spin 2.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.review-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:30px;align-items:center;padding:26px 30px;margin-bottom:16px}.review-band .ring{width:124px;height:124px}.review-band .ring .val b{font-size:30px}.review-band h2{font-size:24px;color:#fff;font-weight:650;letter-spacing:-.02em}.review-band .legend-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--bp-ink-2)}.review-band .figs{display:flex;gap:32px;flex-wrap:wrap;margin-top:18px}.review-band .figs div{font-size:12px;color:var(--bp-ink-2)}.review-band .figs b{display:block;font-family:var(--font-display);font-size:22px;font-weight:650;color:#fff;letter-spacing:-.01em}.review-band .figs b.warn{color:#fcd34d}.review-band .cta{display:flex;flex-direction:column;gap:10px;min-width:270px}.review-band .cta .hint{font-size:12px;color:var(--bp-ink-2);text-align:center}.review-band .cta .done{font-size:12.5px;color:#4ade80;text-align:center}.review-band .btn-primary{height:50px;font-size:15px}.det-row.low td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.det-row td{transition:background .12s}.det-row:hover td{background:color-mix(in srgb,var(--brand-50) 45%,transparent)}.conf{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px}.conf i{width:34px;height:5px;border-radius:99px;background:var(--surface-3);position:relative;overflow:hidden}.conf i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:var(--w);border-radius:inherit;background:var(--c)}.dash-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;padding:30px 32px;margin-bottom:18px}.dash-hero h1{font-size:clamp(28px,3vw,40px);color:#fff;margin:12px 0 8px}.dash-hero .kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dash-hero .kpi{padding:16px 18px;border-radius:14px;background:#ffffff0b;border:1px solid rgba(126,170,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dash-hero .kpi .l{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bp-ink-2);display:flex;align-items:center;gap:6px}.dash-hero .kpi .v{font-family:var(--font-display);font-size:26px;font-weight:650;color:#fff;letter-spacing:-.02em;margin-top:6px}.dash-hero .kpi .d{font-size:12px;color:var(--bp-ink-2);margin-top:2px}.dash-hero .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.auth-shell{background:var(--bg)}.auth-hero{background:none;padding:0}.auth-hero .blueprint{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:26px;padding:48px;display:flex;flex-direction:column}.auth-hero h1{font-size:clamp(34px,3.6vw,52px);max-width:13ch;line-height:1.04}.auth-hero h1 em{font-style:normal;background:linear-gradient(90deg,#8fb0ff,var(--accent-bright));-webkit-background-clip:text;background-clip:text;color:transparent}.auth-hero p{font-size:16px}.auth-hero li{font-size:14.5px}.auth-hero li svg{padding:3px;border-radius:50%;background:#3ee6ff24;box-shadow:0 0 0 1px #3ee6ff4d}.auth-hero .wires{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.9;pointer-events:none}.auth-hero .wires path{fill:none;stroke:#3ee6ff59;stroke-width:1.2;stroke-dasharray:6 10;animation:flow 6s linear infinite}.auth-hero .wires path.b{stroke:#5b82ff66;animation-duration:9s}.auth-hero .wires circle{fill:var(--accent-bright);filter:drop-shadow(0 0 6px rgba(62,230,255,.9))}@keyframes flow{to{stroke-dashoffset:-160}}.auth-form .box{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:36px 34px;box-shadow:var(--card-shadow)}.auth-form h2{font-size:30px;font-weight:650;letter-spacing:-.02em}.demo-box{border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand-50) 80%,transparent),transparent);border:1px solid color-mix(in srgb,var(--brand) 20%,var(--border));padding:16px}@media (max-width: 1100px){.to-hero,.dash-hero{grid-template-columns:minmax(0,1fr)}.review-band{grid-template-columns:auto minmax(0,1fr)}.review-band .cta{grid-column:1 / -1;min-width:0}}@media (max-width: 900px){h1{font-size:25px}.scan-stage{grid-template-columns:minmax(0,1fr)}.scan-view{border-right:0;border-bottom:1px solid rgba(126,170,255,.14);min-height:0;padding:16px}.to-hero{padding:24px 20px;gap:22px}.hero-drop{min-height:180px}.dash-hero{padding:24px 20px}.blueprint{border-radius:18px}}@media (max-width: 560px){.auth-form{padding:24px 14px}.auth-form .box{padding:26px 18px;border-radius:18px}.review-band{grid-template-columns:minmax(0,1fr);padding:22px 20px;justify-items:start}.dash-hero .kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stat .value{font-size:22px}}@media (prefers-reduced-motion: reduce){.hero-drop .scanline,.scan-view .beam,.to-thumb.scan:after,.auth-hero .wires path,.blueprint .eyebrow:before,.stages .st.on i svg{animation:none}}.viewer-bar{background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.viewer-title b{font-family:var(--font-display);font-size:16px;font-weight:620}.review-meter{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:99px;background:var(--surface-2);border:1px solid var(--border);font-size:12.5px}.review-meter .mono{font-family:var(--font-mono);color:var(--text-3)}.review-meter .mono b{color:var(--text);font-weight:500}.rm-bar{width:120px;height:6px;border-radius:99px;background:var(--surface-3);display:flex;overflow:hidden}.rm-bar i{display:block;height:100%;transition:width .35s ease}.rm-bar .a{background:linear-gradient(90deg,#16a34a,#22c55e)}.rm-bar .r{background:#f87171}.review-meter-done{animation:glowpulse 2.2s ease-in-out infinite}@keyframes glowpulse{0%,to{box-shadow:inset 0 1px #ffffff40,0 6px 18px -6px #2f5bff99}50%{box-shadow:inset 0 1px #ffffff40,0 0 0 6px #2f5bff1f,0 10px 30px -6px #2f5bffcc}}.viewer-canvas{background-image:linear-gradient(rgba(47,91,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(47,91,255,.06) 1px,transparent 1px);background-size:24px 24px}.plan-tools{border-radius:14px;background:#061230e0;border-color:#7eaaff33;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 40px -16px #0009}.plan-tools .btn-ghost,.plan-tools .btn-secondary{color:#dbe6ff;background:transparent;border-color:transparent;box-shadow:none}.plan-tools .btn-ghost:hover,.plan-tools .btn-secondary:hover{background:#ffffff1a!important;color:#fff}.plan-tools .on,.plan-tools [aria-pressed=true]{background:var(--brand-grad)!important;color:#fff!important}.plan-tools-sep{background:#7eaaff40}.viewer-detail{background:color-mix(in srgb,var(--surface) 94%,transparent)}.vd-h{font-family:var(--font-display);font-size:20px;font-weight:650;letter-spacing:-.01em}.vd-k{font-family:var(--font-mono);font-weight:500;letter-spacing:.12em;font-size:10.5px}.vd-stats>div{border-radius:12px;border:1px solid var(--border)}.vd-stats b{font-family:var(--font-display);font-size:20px}.vd-actions .btn{height:42px}.btn kbd.k{margin-left:4px;font-family:var(--font-mono);font-size:10.5px;line-height:16px;padding:0 5px;border-radius:5px;border:1px solid currentColor;opacity:.55;background:transparent;color:inherit;border-bottom-width:1px}.viewer-layers{background:color-mix(in srgb,var(--surface) 94%,transparent)}.kpi-band{padding:14px;gap:12px}.kpi-band .stat{background:#ffffff0b;border:1px solid rgba(126,170,255,.14);box-shadow:none}.kpi-band .stat:after{background:radial-gradient(circle,rgba(62,230,255,.16),transparent 70%)}.kpi-band .stat .label{color:var(--bp-ink-2)!important}.kpi-band .stat .value{color:#fff}.kpi-band .stat .delta{color:var(--bp-ink-2)}@media (max-width: 560px){.kpi-band{grid-template-columns:1fr 1fr}}.page{animation:page-in .35s cubic-bezier(.2,.7,.2,1) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.skeleton{display:grid;gap:14px;padding:6px 0}.sk{display:block;border-radius:12px;background:linear-gradient(90deg,var(--surface-3) 0%,color-mix(in srgb,var(--surface-3) 40%,var(--surface)) 50%,var(--surface-3) 100%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}.sk.h{height:30px;width:280px;max-width:70%}.sk.s{height:14px;width:420px;max-width:90%;margin-bottom:10px}.sk-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.sk.t{height:96px;border-radius:16px}.sk.b{height:320px;border-radius:16px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.page,.sk,.review-meter-done{animation:none}}.bidcol,.col{border-radius:18px;background:color-mix(in srgb,var(--surface-2) 70%,transparent);border:1px solid var(--border);padding:12px;position:relative;overflow:hidden}.bidcol:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--lane, var(--border-strong))}.bidcol:nth-child(1){--lane: #94a3b8}.bidcol:nth-child(2){--lane: linear-gradient(90deg, #f59e0b, #fbbf24)}.bidcol:nth-child(3){--lane: linear-gradient(90deg, #16a34a, #4ade80)}.bidcol:nth-child(4){--lane: linear-gradient(90deg, #dc2626, #f87171)}.bidcol h3{font-family:var(--font-mono);font-weight:500;font-size:10.5px;letter-spacing:.12em;margin:4px 4px 12px}.bidcard,.tcard{border-radius:12px;padding:12px 14px;transition:transform .15s,box-shadow .15s,border-color .15s;box-shadow:var(--card-shadow)}.bidcard:hover,.tcard:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 45%,var(--border));box-shadow:0 16px 36px -20px #2f5bff80}.bidcard .mono{font-family:var(--font-mono);font-weight:500}.menu button:focus-visible,.menu a:focus-visible{background:var(--surface-3);outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand) 45%,transparent)}.modal:focus{outline:none}.phone-screen{--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #e9eef7;--border: #dfe5f0;--border-strong: #c9d3e3;--text: #0a1530;--text-2: #43506a;--text-3: #5a6782;--brand: #2f5bff;--brand-50: #ebf0ff;--ok-bg: #e8f7ee;--ok-text: #166534;--warn-bg: #fff6e5;--warn-text: #92400e;--danger-bg: #fdecec;--danger-text: #991b1b;--info-bg: #e6f4fb;--info-text: #075985;--violet-bg: #f1eafe;--violet-text: #5b21b6;--gray-bg: #eef1f5;--gray-text: #475569;color-scheme:light}.phone{background:linear-gradient(160deg,#0b1a44,#040a1a);border:1px solid rgba(126,170,255,.2)}.phone-status,.phone-head{background:linear-gradient(160deg,#081a44,#061230)}.phone-tabs button{font-size:12.5px;min-height:60px;font-weight:550}.phone-tabs button.on{color:var(--brand)}.phone-body .btn{min-height:44px}.phone.bare{width:100%;max-width:640px;padding:0;background:none;border:0;box-shadow:none}.phone.bare .phone-screen{height:calc(100dvh - 200px);min-height:560px;border-radius:22px;border:1px solid var(--border);box-shadow:var(--card-shadow)}.phone.bare .phone-status{display:none}.proposal{padding:0 0 40px;overflow:hidden;border-radius:20px}.proposal>*:not(.prop-band):not(.prop-total){margin-left:48px;margin-right:48px}.proposal>table.table{width:calc(100% - 96px)}.prop-band{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:36px 48px 30px;color:#dbe6ff;position:relative;background:radial-gradient(500px 200px at 100% 0%,rgba(62,230,255,.18),transparent 70%),linear-gradient(160deg,#081a44,#061230 60%,#040b1f);-webkit-print-color-adjust:exact;print-color-adjust:exact}.prop-band:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--live-grad)}.prop-band h2{color:#fff;font-size:24px;margin-bottom:6px}.prop-word{font-family:var(--font-display);font-size:30px;font-weight:650;color:#fff;letter-spacing:-.01em}.prop-total{display:flex;gap:36px;align-items:center;flex-wrap:wrap;padding:26px 48px;border-bottom:1px solid var(--border);background:var(--surface-2);margin-bottom:8px}.prop-total>div:first-child span{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.prop-total>div:first-child b{font-family:var(--font-display);font-size:36px;font-weight:650;letter-spacing:-.02em}.proposal h3{font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.14em;color:var(--brand);display:flex;align-items:center;gap:10px;margin-top:28px}.proposal h3:after{content:"";flex:1;height:1px;background:var(--border)}@media (max-width: 700px){.proposal>*:not(.prop-band):not(.prop-total){margin-left:20px;margin-right:20px}.proposal>table.table{width:calc(100% - 40px)}.prop-band,.prop-total{padding-left:20px;padding-right:20px}}@media print{.main:before,.page{animation:none}.main:before{display:none}.proposal{box-shadow:none;border:0}}:root{--text-3: #4b586f;--text-2: #3a4660;--grid-line: rgba(47, 91, 255, .035);--bp-ink-2: #c3cfea;--bp-line: rgba(126,170,255,.06);--bp-line-strong: rgba(126,170,255,.12);--sidebar-muted: #93a4c8;--sidebar-text: #d3ddf2}:root[data-theme=dark]{--text-3: #a3b1d2;--text-2: #c4d0ea;--grid-line: rgba(126, 170, 255, .035)}body{font-size:14.5px}.small{font-size:13px}.muted{color:var(--text-3)}.stat .label,.table th,.nav-group>span,.vd-k,.bidcol h3,.flow-steps .fs,.prop-total>div:first-child span,.dash-hero .kpi .l,.ring .val span,.review-meter .mono{letter-spacing:.06em}.stat .label,.table th{font-size:11.5px;color:var(--text-2)}.nav-group>span{font-size:11px}.nav-link{font-size:14px}.blueprint .eyebrow{font-size:12px;letter-spacing:.1em}.dash-hero .kpi .l{font-size:11.5px;color:var(--bp-ink-2)}.dash-hero .kpi .d,.review-band .figs div,.to-hero .facts div,.review-band .cta .hint{font-size:13px;color:var(--bp-ink-2)}.dash-hero .kpi,.kpi-band .stat{background:#ffffff13}.kpi-band .stat .label{font-size:11.5px}.kpi-band .stat .delta{font-size:13px}.ring .val span{font-size:11.5px}.flow-steps .fs{font-size:12.5px}.flow-steps .fs:not(.on):not(.done){color:var(--text-3)}.bidcol h3{font-size:11.5px;color:var(--text-2)}.vd-k{font-size:11.5px}.prop-total>div:first-child span{font-size:11.5px}.proposal h3{font-size:12px;letter-spacing:.1em}.crumbs{font-size:13px}.sidebar .foot{font-size:11.5px;letter-spacing:0;color:var(--sidebar-muted)!important}.to-thumb .pages{background:#040a1ad1;padding:3px 8px;border-radius:6px;font-size:11.5px;letter-spacing:.06em;color:#e6eeff}.to-thumb .badge{box-shadow:0 2px 8px #00000059}.to-body .proj,.to-meter .row,.to-foot .when{font-size:13px;color:var(--text-3)}.to-meter .row b{font-size:13px}.blueprint:before{-webkit-mask-image:radial-gradient(120% 120% at 85% 0%,rgba(0,0,0,.8) 20%,transparent 75%);mask-image:radial-gradient(120% 120% at 85% 0%,rgba(0,0,0,.8) 20%,transparent 75%)}.auth-hero .wires{opacity:.55}.table td{font-size:14px}.badge{font-size:12.5px}.tabs button{font-size:14px}.input::placeholder,.textarea::placeholder{color:color-mix(in srgb,var(--text-3) 85%,transparent)}.stat .label,.table th,.nav-group>span,.vd-k,.bidcol h3,.dash-hero .kpi .l,.kpi-band .stat .label,.prop-total>div:first-child span,.ring .val span{font-family:Inter,system-ui,sans-serif;font-weight:600;letter-spacing:.04em}.stat .label,.table th,.kpi-band .stat .label,.dash-hero .kpi .l,.bidcol h3{font-size:12px}.flow-steps .fs{font-family:Inter,system-ui,sans-serif;text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:550}.flow-steps .fs.on{font-weight:650}.to-thumb .pages{font-family:Inter,system-ui,sans-serif;font-weight:600;text-transform:none;letter-spacing:0;font-size:12px}.to-foot .small[style*=violet],.to-foot span[style*=--violet]{color:var(--violet-text)!important}.vl-sheet .mono{width:auto;min-width:46px;flex:none;white-space:nowrap;font-size:12px}.vl-sheet .truncate{min-width:0}.vl-sheet>.muted{flex:none}.blueprint .eyebrow{font-family:Inter,system-ui,sans-serif;font-weight:650;font-size:12.5px;letter-spacing:.08em}.hero-drop .t,.hero-drop .s,.hero-drop .kbd,.hero-drop .ic{position:relative;z-index:1}.hero-drop .scanline{opacity:.35;z-index:0}.hero-drop .kbd{font-family:Inter,system-ui,sans-serif;font-size:12.5px}
