*{box-sizing:border-box;margin:0;padding:0}:root{--font-ui: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--font-title: "Newsreader", Georgia, serif;--t-page-title: 28px;--t-kpi: 30px;--t-record-title: 28px;--t-panel-title: 13.5px;--t-body: 13px;--t-table: 12.5px;--t-button: 12.5px;--t-meta: 11.5px;--t-row-sub: 10.5px;--t-label: 10px;--t-colhead: 10px;--bg: #eef1f4;--surface: #ffffff;--surface-sunk: #f6f8fa;--border: #dfe3e8;--border-strong: #d5dae0;--rule: #e9edf1;--rule-row: #f0f3f6;--text: #1c2026;--muted: #6f7883;--muted-2: #79828d;--faint: #98a1ab;--faint-2: #c2cad3;--navy: #1b3a6b;--navy-hover: #16305a;--navy-soft: #e7edf6;--navy-soft-b: #ccd8e8;--red: #b0242b;--red-fill: #c22e33;--red-soft: #fdf5f5;--red-soft-b: #eccfd0;--rail: #3f464e;--rail-scrim: rgba(86, 92, 99, .78);--rail-divider: #565e68;--rail-active: #59626c;--rail-text: #e2e5e8;--rail-label: #a9b1ba;--rail-name: #f5f6f7;--rail-avatar: #5f6872;--st-ok: #3f8f5b;--st-warn: #c08a3e;--st-bad: #b0242b;--st-idle: #8a949a;--viz-1: #1b3a6b;--viz-2: #7d93b5;--viz-3: #c3ccd8;--viz-projected: #e7ebf1;--viz-track: #eaeef3;--viz-ramp-1: #dbe3ee;--viz-ramp-2: #b9c6db;--viz-ramp-3: #7d93b5;--viz-ramp-4: #3f5f92;--viz-ramp-5: #1b3a6b;--r-badge: 4px;--r-chip: 6px;--r-control: 8px;--r-panel: 10px;--r-feature: 14px;--shadow-panel: 0 1px 2px rgba(28, 32, 38, .04), 0 10px 26px -18px rgba(28, 32, 38, .16);--shadow-modal: 0 1px 2px rgba(28, 32, 38, .04), 0 18px 40px -24px rgba(28, 32, 38, .22);--sp-1: 4px;--sp-2: 6px;--sp-3: 8px;--sp-4: 10px;--sp-5: 12px;--sp-6: 14px;--sp-7: 16px;--sp-8: 18px;--sp-9: 20px;--sp-10: 22px;--sp-11: 26px;--sp-12: 28px;--rail-w: 248px;--rail-head-h: 126px;--topbar-h: 60px;--content-max: 1280px;--page-pad-y: 26px;--page-pad-x: 28px;--panel-gap: 16px;--ref-col-w: 300px;--table-col-gap: 14px;--table-name-min: 280px;--m-statusbar-h: 42px;--m-appbar-h: 62px;--m-tabbar-h: 50px;--m-safe-bottom: 20px;--m-target-min: 44px;--m-target-primary: 48px;--card: var(--surface);--blue: var(--navy);--green: var(--st-ok);--orange: var(--st-warn);--highlight: var(--navy-soft);--purple: var(--navy);--teal: var(--st-ok);--amber: var(--st-warn)}[data-theme=dark]{--bg: #101315;--surface: #181c1f;--surface-sunk: #14181b;--border: #262c31;--border-strong: #2a3035;--rule: #22282c;--rule-row: #1c2226;--text: #e8eaea;--muted: #c5ccd0;--muted-2: #8a949a;--faint: #7b858b;--faint-2: #6b757b;--navy: #2f5fa8;--navy-hover: #376ab8;--navy-soft: #1b2740;--navy-soft-b: #2a3a58;--accent-link: #8fb0e0;--red: #d9555c;--red-fill: #d9555c;--rail: #0b0e10;--rail-scrim: rgba(9, 12, 14, .88);--rail-divider: #1e2429;--rail-active: #1b2226;--rail-text: #b8c0c5;--rail-label: #6b757b;--rail-name: #e8eaea;--rail-avatar: #26344d;--viz-1: #6f9fdc;--viz-2: #3c5f96;--viz-3: #aab6c6;--viz-projected: #232a2e;--viz-track: #1e2428;--viz-ramp-1: #27385a;--viz-ramp-2: #33497a;--viz-ramp-3: #41639e;--viz-ramp-4: #6f9fdc;--viz-ramp-5: #8fb0e0;--shadow-panel: none;--shadow-modal: none}body{min-height:100vh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;font-size:14px}.sidebar{width:220px;background:#0f172a;color:#fff;padding:0;flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand h2{font-size:16px;font-weight:700;letter-spacing:-.5px}.sidebar-brand h2 .sym{color:#60a5fa}.sidebar-brand .ver{font-size:9px;color:#fff6;margin-top:2px}.sidebar-user{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px}.sidebar-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.sidebar-user-info .name{font-size:12px;font-weight:600}.sidebar-user-info .role-label{font-size:9px;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-section{padding:0 16px;margin-bottom:4px}.nav-section-label{font-size:8px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:1px;padding:8px 0 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;color:#fff9;font-size:12px;font-weight:500;cursor:pointer;border-radius:6px;margin:1px 8px;transition:all .12s}.nav-item.active{background:#2563eb4d;color:#fff;font-weight:600}.nav-item .icon{font-size:14px;width:20px;text-align:center}.nav-item .badge-count{margin-left:auto;background:var(--red);color:#fff;font-size:9px;padding:1px 6px;border-radius:10px;font-weight:700}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-footer select{width:100%;padding:6px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:10px;font-weight:600}.sidebar-footer select option{background:#1e293b;color:#fff}.main{margin-left:220px;flex:1;padding:24px 28px 40px;min-height:100vh}.page-header{margin-bottom:24px}.page-header .greeting{font-size:24px;font-weight:700;color:#0f172a}.page-header .greeting .wave{display:inline-block;animation:wave 2s ease-in-out infinite;transform-origin:70% 70%}@keyframes wave{0%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0)}}.page-header .subtext{font-size:12px;color:var(--muted);margin-top:2px}.page-title{font-size:22px;font-weight:700;color:#0f172a;margin-bottom:4px}.page-sub{font-size:12px;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:0 2px 8px #0000000a;margin-bottom:16px}.panel-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(37,99,235,.12)}.panel.accent{border-left:4px solid var(--blue)}.panel.teal-accent{border-left:4px solid var(--teal)}.panel.red-accent{border-left:4px solid var(--red)}.panel.green-accent{border-left:4px solid var(--green)}.panel.purple-accent{border-left:4px solid var(--purple)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000a}.stat-card .num{font-size:28px;font-weight:800;line-height:1}.stat-card .lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.stat-card.blue .num{color:var(--blue)}.stat-card.green .num{color:var(--green)}.stat-card.orange .num{color:var(--orange)}.stat-card.red .num{color:var(--red)}.stat-card.purple .num{color:var(--purple)}.stat-card.teal .num{color:var(--teal)}.btn{padding:8px 16px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.btn-primary{background:linear-gradient(135deg,var(--blue),#4f46e5);color:#fff;box-shadow:0 2px 4px #2563eb4d}.btn-secondary{background:#f1f5f9;border:2px solid rgba(30,60,100,.2);color:#334155}.btn-success{background:#15803d26;border:2px solid rgba(21,128,61,.3);color:var(--green)}.btn-danger{background:#b91c1c1a;border:2px solid rgba(185,28,28,.25);color:var(--red)}.btn-teal{background:#0d948826;border:2px solid rgba(13,148,136,.3);color:var(--teal)}.btn-sm{padding:5px 10px;font-size:11px}.btn-lg{padding:12px 28px;font-size:14px;border-radius:10px}.btn:hover{opacity:.88;transform:translateY(-1px)}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}select,input[type=text],input[type=number],input[type=password],input[type=date],input[type=email],input[type=tel],textarea{width:100%;padding:9px 11px;background:var(--surface);border:2px solid rgba(37,99,235,.25);border-radius:7px;color:var(--text);font-family:system-ui;font-size:13px;outline:none}select:focus,input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}textarea{resize:vertical;min-height:80px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:10px 8px;background:#e6ebf0f7;color:#1e293b;font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.5px;border-bottom:2px solid var(--border)}.data-table td{padding:10px 8px;border-bottom:1px solid rgba(30,60,100,.1);color:#334155;vertical-align:middle}.data-table tr:hover{background:#f0f3f7cc}.mono{font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-size:11px}.info-item .info-val.muted{color:var(--muted);font-weight:400}.status.in-progress{background:#d977061f;color:var(--amber)}.status.negotiation{background:#d977061f;color:var(--amber)}.status.won{background:#15803d1f;color:var(--green)}.status.pending_build{background:#2563eb1f;color:var(--blue)}.status.ready_to_ship{background:#0d94881f;color:var(--teal)}.status.in_production,.status.pending_po{background:#d977061f;color:var(--amber)}.po-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:12px;transition:all .15s}.po-card:hover{box-shadow:0 4px 16px #00000014}.po-card.urgent{border-left:4px solid var(--orange)}.po-card.new-install{border-left:4px solid var(--blue)}.po-card.mid-cycle{border-left:4px solid var(--amber)}.po-card.renewal{border-left:4px solid var(--teal)}.po-card.replacement{border-left:4px solid var(--purple)}.po-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.po-card-title{font-size:14px;font-weight:700;color:var(--text)}.po-card-meta{font-size:11px;color:var(--muted);margin-top:3px}.po-type-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:20px;white-space:nowrap}.po-type-badge.new-install{background:#2563eb1f;color:var(--blue)}.po-type-badge.mid-cycle{background:#d977061f;color:var(--amber)}.po-type-badge.renewal{background:#0d94881f;color:var(--teal)}.po-type-badge.replacement{background:#7c3aed1f;color:var(--purple)}.po-line-items{background:#f8fafc;border-radius:8px;padding:10px 12px;margin:10px 0;font-size:11px}.po-line-item{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.04)}.po-line-item:last-child{border-bottom:none}.po-line-serial{font-family:monospace;font-weight:600;color:var(--text);flex:0 0 auto}.po-line-product{color:var(--muted);flex:1}.po-line-type{flex:0 0 auto}.po-actions{display:flex;gap:8px;align-items:center;margin-top:12px}.po-modal-section{margin-bottom:20px}.po-modal-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.device-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:start;padding:10px;background:#f8fafc;border-radius:8px;margin-bottom:8px}.device-row-label{font-size:10px;font-weight:600;color:var(--muted);margin-bottom:3px}.device-row-val{font-size:12px;font-weight:600;font-family:monospace}.device-type-toggle{display:flex;gap:4px;margin-top:4px}.device-type-toggle label{display:flex;align-items:center;gap:4px;font-size:11px;cursor:pointer;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:#fff}.device-type-toggle input[type=radio]{accent-color:var(--blue)}.device-type-toggle label:has(input:checked){background:#2563eb14;border-color:var(--blue);color:var(--blue);font-weight:600}.activation-summary{background:#15803d0f;border:1px solid rgba(21,128,61,.2);border-radius:8px;padding:12px;font-size:12px}.activation-summary-row{display:flex;justify-content:space-between;padding:3px 0;color:var(--muted)}.activation-summary-row strong{color:var(--text)}.toggle-wrap{display:flex;align-items:center;gap:10px}.toggle{position:relative;width:44px;height:24px;cursor:pointer}.toggle input{opacity:0;width:0;height:0}.toggle .slider{position:absolute;top:0;left:0;right:0;bottom:0;background:#cbd5e1;border-radius:24px;transition:.2s}.toggle .slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #0003}.toggle input:checked+.slider{background:var(--green)}.toggle input:checked+.slider:before{transform:translate(20px)}.toggle-label{font-size:12px;font-weight:600;color:var(--muted)}.card-capture-zone{border:2.5px dashed rgba(37,99,235,.4);border-radius:12px;padding:32px 20px;text-align:center;background:#2563eb08;cursor:pointer;transition:all .2s;margin-bottom:16px;position:relative;overflow:hidden}.card-capture-zone:hover{border-color:var(--blue);background:#2563eb0f}.card-capture-zone.has-image{border-style:solid;border-color:var(--blue)}.card-capture-zone img{max-width:100%;max-height:180px;border-radius:6px;object-fit:contain}.card-preview-img{max-width:100%;max-height:160px;border-radius:8px;object-fit:contain;margin-bottom:12px;border:1px solid var(--border)}.scan-result-field{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}.scan-result-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.scan-result-field input{padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-weight:500;transition:border-color .15s}.scan-result-field input:focus{outline:none;border-color:var(--blue)}.scan-result-field input.prefilled{border-color:#2563eb66;background:#2563eb08}.match-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:12px;font-weight:600}.match-banner.found{background:#15803d14;border:1px solid rgba(21,128,61,.25);color:var(--green)}.match-banner.company-only{background:#d9770614;border:1px solid rgba(217,119,6,.25);color:var(--amber)}.match-banner.new-all{background:#2563eb14;border:1px solid rgba(37,99,235,.2);color:var(--blue)}.match-banner.flagged{background:#b91c1c0f;border:1px solid rgba(185,28,28,.2);color:var(--red)}.card-section-divider{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:14px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--border)}.ai-scanning-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffeb;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;gap:8px}.ai-pulse{width:36px;height:36px;border-radius:50%;background:#2563eb26;display:flex;align-items:center;justify-content:center;font-size:18px;animation:aiPulse 1.2s ease-in-out infinite}@keyframes aiPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.7}}.stars{display:inline-flex;gap:2px;cursor:pointer}.stars .star{font-size:20px;color:#d1d5db;transition:color .15s}.stars .star.filled{color:#f59e0b}.sensor-row{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px}.sensor-row-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sensor-row-type{font-weight:700;color:var(--blue);font-size:13px}.sensor-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.sensor-fields .form-group{margin-bottom:0}.cta-box{text-align:center;padding:24px;background:linear-gradient(135deg,#2563eb0f,#6366f10a);border:2px solid rgba(37,99,235,.2);border-radius:14px;margin-bottom:16px}.modal-bg{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s}.modal-bg.active{opacity:1;visibility:visible}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:10px 24px;border-radius:8px;font-size:13px;font-weight:600;z-index:99999;opacity:0;transition:opacity .3s;pointer-events:none;box-shadow:0 4px 12px #0000004d}.toast.show{opacity:1}.toast.success{background:var(--green);color:#fff}.toast.error{background:var(--red);color:#fff}.toast.info{background:var(--blue);color:#fff}.config-embed{border:none;width:100%;height:calc(100vh - 80px);border-radius:14px;background:var(--card);box-shadow:0 2px 8px #0000000a}.config-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.config-toolbar .link-deal{font-size:11px;color:var(--muted)}.cfg-root *{box-sizing:border-box;margin:0;padding:0}.cfg-root #costTable{table-layout:fixed;border-collapse:collapse}.cfg-root #costTable th,.cfg-root #costTable td{padding:6px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid rgba(0,0,0,.08)}.cfg-root #costTable thead{position:sticky;top:0;z-index:10}.cfg-root #costTable thead th{background:#e6ebf0f7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cfg-root #costTable th.resizable{position:relative;cursor:default}.cfg-root #costTable th.resizable:after{content:"";position:absolute;right:0;top:25%;height:50%;width:4px;cursor:col-resize;background:transparent}.cfg-root #costTable th.resizable:hover:after{background:var(--blue)}.cfg-root #costTable input[type=text],.cfg-root #costTable input[type=number]{width:100%;box-sizing:border-box;font-size:11px;padding:4px 6px}.cfg-root #costTable input[type=checkbox]{cursor:pointer}.cfg-root .resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:5px;cursor:col-resize;background:transparent;z-index:10}.cfg-root .resize-handle:hover,.cfg-root .resize-handle.dragging{background:var(--blue)}.cfg-root .verb-btn{padding:4px 8px;background:#fff;border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:12px;min-width:28px;color:var(--text)}.cfg-root .verb-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.cfg-root .verb-btn:active{transform:scale(.95)}.cfg-root #verbiageRichEditor:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.cfg-root #verbiageRichEditor ul,.cfg-root #verbiageRichEditor ol{margin-left:20px;padding-left:10px}.cfg-root #verbiageRichEditor li{margin:4px 0}.cfg-root .header{margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.cfg-root h1{font-size:28px;font-weight:700;color:#0f172a}.cfg-root .subtitle{color:var(--muted);font-size:12px}.cfg-root .badge{padding:6px 12px;background:var(--card);border:1px solid var(--border);border-radius:20px;font-size:11px;color:var(--muted);font-weight:600}.cfg-root .badge.admin{border-color:#f9731680;color:var(--orange);background:#f973161a}.cfg-root .tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--card);padding:6px;border-radius:12px;border:1px solid var(--border);flex-wrap:wrap;box-shadow:0 2px 8px #0000000f}.cfg-root .tab{padding:10px 20px;background:transparent;border:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;border-radius:8px}.cfg-root .tab:hover{color:var(--text);background:#2563eb14}.cfg-root .tab.active{background:var(--blue);color:#fff}.cfg-root .tab-content{display:none}.tab-content.active{display:block}.cfg-root .grid{display:grid;grid-template-columns:.7fr 448px 380px;gap:20px}@media (max-width:1400px){.cfg-root .grid{grid-template-columns:.7fr 364px 340px}}@media (max-width:1100px){.grid{grid-template-columns:1fr}}.cfg-root .col{display:flex;flex-direction:column;gap:16px}.cfg-root .panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:0 2px 8px #0000000a}.cfg-root .panel-title{font-size:13px;font-weight:700;color:#1e293b;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(37,99,235,.15)}.cfg-root .panel.channel{border-color:#7c3aed66;background:linear-gradient(135deg,#7c3aed14,#6366f10d)}.cfg-root .form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.cfg-root .label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.cfg-root select,.cfg-root input[type=text],.cfg-root input[type=number],.cfg-root input[type=password]{width:100%;padding:9px 11px;background:#fff;border:2px solid rgba(37,99,235,.25);border-radius:7px;color:var(--text);font-family:monospace;font-size:12px;outline:none}.cfg-root select:focus,.cfg-root input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb26}.cfg-root select option{background:#fff;color:var(--text)}.cfg-root .row{display:grid;grid-template-columns:1fr 180px;gap:12px;align-items:center;padding:10px;background:#f1f5f9;border:1px solid rgba(30,60,100,.15);border-radius:8px;margin-bottom:8px}.cfg-root .row.with-qty{grid-template-columns:1fr 140px 70px}.cfg-root .row-label{font-size:12px;color:#334155;font-weight:500}.cfg-root .row select,.cfg-root .row input{font-size:11px;padding:7px}.cfg-root .warning{background:#b91c1c1a;border:1px solid rgba(185,28,28,.3);border-radius:8px;padding:10px;margin-top:8px;font-size:11px;color:var(--red);font-weight:500;display:none}.cfg-root .warning.show{display:block}.cfg-root .sensor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (max-width:600px){.sensor-grid{grid-template-columns:repeat(2,1fr)}}.cfg-root .sensor-slot{padding:8px;background:#f1f5f9;border:1px solid rgba(45,212,191,.2);border-radius:6px}.cfg-root .sensor-slot-label{font-family:monospace;font-size:9px;color:#334155;margin-bottom:4px;font-weight:600}.cfg-root .sensor-slot select{font-size:10px;padding:6px}.cfg-root .config-box{background:#2563eb14;border:2px solid rgba(37,99,235,.25);border-radius:10px;padding:14px;margin-bottom:12px}.cfg-root .config-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.cfg-root .config-value{font-family:monospace;font-size:15px;font-weight:700;color:var(--blue);word-break:break-all}.cfg-root .config-value.svc{color:var(--purple);font-size:14px}.cfg-root .toast-notification{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#ef4444;color:#fff;padding:10px 24px;border-radius:8px;font-size:13px;font-weight:600;z-index:99999;opacity:0;transition:opacity .3s ease;pointer-events:none;box-shadow:0 4px 12px #0000004d}.cfg-root .toast-notification.show{opacity:1}.cfg-root .qr-wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.cfg-root .qr-box{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}.cfg-root .qr-title{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.cfg-root .qr-code{display:inline-block;padding:6px;background:#fff;border-radius:6px;min-height:112px;min-width:112px}.cfg-root .summary-item{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(30,60,100,.12);font-size:12px}.cfg-root .summary-label{color:var(--muted);font-weight:500}.cfg-root .summary-value{color:#1e293b;font-family:monospace;font-weight:600}.cfg-root .summary-value.price{color:var(--green);font-weight:700}.cfg-root .summary-value.cost{color:var(--orange)}.cfg-root .summary-value.margin{color:var(--purple)}.cfg-root .summary-value.discount{color:var(--blue)}.cfg-root .btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.cfg-root .btn{padding:8px 16px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none}.cfg-root .btn-primary{background:linear-gradient(135deg,var(--blue),#4f46e5);color:#fff;box-shadow:0 2px 4px #2563eb4d}.cfg-root .btn-secondary{background:#f1f5f9;border:2px solid rgba(30,60,100,.2);color:#334155}.cfg-root .btn-success{background:#15803d26;border:2px solid rgba(21,128,61,.3);color:var(--green)}.cfg-root .btn-danger{background:#b91c1c1a;border:2px solid rgba(185,28,28,.25);color:var(--red)}.cfg-root .btn-sm{padding:6px 12px;font-size:11px}.cfg-root .btn:hover{opacity:.9;transform:translateY(-1px)}.cfg-root .callout{background:#2563eb14;border:2px solid rgba(37,99,235,.2);border-radius:8px;padding:10px;margin-bottom:12px;font-size:11px;color:#334155}.cfg-root .callout strong{color:var(--blue)}.cfg-root .auto-inc{background:#15803d1a;border:2px solid rgba(21,128,61,.25);border-radius:8px;padding:12px;margin-top:12px;font-size:11px}.cfg-root .auto-inc-title{font-weight:700;color:var(--green);margin-bottom:6px}.cfg-root .auto-inc-list{color:#334155}.cfg-root .hidden{display:none!important}.cfg-root .drag-over{background:#2563eb26!important;border-top:2px solid var(--blue)!important}.cfg-root #costBody tr{transition:background .15s}.cfg-root #costBody tr:hover{background:#f0f3f7cc}.cfg-root .quote-out{background:#fff;border:2px solid var(--border);border-radius:10px;padding:16px;font-family:monospace;font-size:11px;color:#334155;white-space:pre-wrap;max-height:500px;overflow-y:auto}.cfg-root .price-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:12px}.cfg-root .price-table th{text-align:left;padding:8px;background:#e2e8f0;color:#1e293b;font-weight:700;text-transform:uppercase;font-size:10px;border-bottom:2px solid var(--border)}.cfg-root .price-table td{padding:8px;border-bottom:1px solid rgba(30,60,100,.1);color:#334155}.cfg-root .price-table .price{font-family:monospace;color:var(--green);text-align:right;font-weight:600}.cfg-root .price-table .cost{font-family:monospace;color:var(--orange);text-align:right;font-weight:600}.cfg-root .price-table .margin{font-family:monospace;color:var(--purple);text-align:right;font-weight:600}.cfg-root .price-table .total-row td{font-weight:700;color:var(--text);border-top:2px solid var(--border);background:#2563eb14}.cfg-root .saved-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.cfg-root .saved-item{display:flex;align-items:center;justify-content:space-between;padding:10px;background:#f8fafc;border:2px solid var(--border);border-radius:8px;cursor:pointer}.cfg-root .saved-item:hover{border-color:var(--blue);background:#2563eb0d}.cfg-root .saved-item-name{font-weight:600;font-size:12px;color:#1e293b}.cfg-root .saved-item-id{font-family:monospace;font-size:10px;color:var(--muted)}.cfg-root .modal-bg{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s}.cfg-root .modal-bg.active{opacity:1;visibility:visible}.cfg-root .modal{background:#fff;border:2px solid var(--border);border-radius:16px;padding:32px;max-width:400px;width:90%;box-shadow:0 20px 40px #0003}.cfg-root .modal-title{font-size:20px;font-weight:700;margin-bottom:8px;color:#0f172a}.cfg-root .modal-sub{color:var(--muted);font-size:12px;margin-bottom:24px}.cfg-root .modal-btns{display:flex;gap:12px;margin-top:24px}.cfg-root .modal-btns .btn{flex:1}.cfg-root .channel-disc{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:#7c3aed26;border:2px solid rgba(124,58,237,.3);border-radius:8px;margin-top:8px}.cfg-root .channel-disc input{width:60px;text-align:center;background:#fff;border:2px solid rgba(124,58,237,.3);border-radius:4px;color:var(--text);padding:6px}.cfg-root .margin-box{background:linear-gradient(135deg,#7c3aed1f,#6366f114);border:2px solid rgba(124,58,237,.3);border-radius:10px;padding:14px;margin-bottom:12px}.cfg-root .margin-box .config-label{color:var(--purple)}.cfg-root .margin-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.cfg-root .margin-item{text-align:center;padding:8px;background:#fff;border-radius:6px;border:1px solid var(--border)}.cfg-root .margin-item-label{font-size:9px;color:var(--muted);margin-bottom:4px;font-weight:600}.cfg-root .margin-item-value{font-family:monospace;font-size:14px;font-weight:700}.cfg-root .margin-item-value.green{color:var(--green)}.cfg-root .margin-item-value.purple{color:var(--purple)}.cfg-root .margin-item-value.blue{color:var(--blue)}.cfg-root .margin-item-value.orange{color:var(--orange)}.cfg-root .cost-row-active{background:#2563eb1f!important;border-left:4px solid var(--blue)!important}.cfg-root .cost-row-active td{color:#0f172a!important;font-weight:600}.cfg-root .quote-build-block{border:2px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.cfg-root .quote-build-header{background:linear-gradient(135deg,#3b82f6,#72959a);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.cfg-root .quote-build-header.expansion{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.cfg-root .quote-build-title{font-size:14px;font-weight:700}.cfg-root .quote-build-id{font-size:10px;opacity:.8;font-family:monospace}.cfg-root .quote-build-content{display:grid;grid-template-columns:1fr 1fr;gap:0}.cfg-root .quote-block{padding:16px;border-right:1px solid var(--border)}.cfg-root .quote-block:last-child{border-right:none}.cfg-root .quote-block-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--border);display:flex;align-items:center;gap:8px}.cfg-root .quote-block-title .icon{font-size:14px}.cfg-root .quote-section{margin-bottom:16px}.cfg-root .quote-section:last-child{margin-bottom:0}.cfg-root .quote-section-title{font-size:11px;font-weight:600;color:var(--text);margin-bottom:6px}.cfg-root .quote-item{font-size:11px;color:#475569;line-height:1.5;padding-left:16px;position:relative}.cfg-root .quote-item:before{content:"•";position:absolute;left:4px;color:var(--blue)}.cfg-root .quote-item.sub{padding-left:32px;font-size:10px;color:var(--muted)}.cfg-root .quote-item.sub:before{content:"◦";left:20px}.cfg-root .quote-no-service{color:var(--muted);font-style:italic;font-size:11px;padding:20px;text-align:center}.cfg-root .quote-service-list{display:flex;flex-direction:column;gap:8px}.cfg-root .quote-service-item{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:6px;padding:10px 12px}.cfg-root .quote-service-item-title{font-size:11px;font-weight:600;color:var(--green)}.cfg-root .quote-service-item-sensors{font-size:10px;color:#475569;margin-top:4px}.map-container{border:2px solid var(--border);border-radius:10px;overflow:hidden;height:200px;position:relative}.map-container .leaflet-container{height:100%;width:100%}.timeline-dot.system{background:var(--muted)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.detail-header-left .detail-title{font-size:26px;font-weight:800;color:#0f172a;line-height:1.1}.detail-header-left .detail-meta{font-size:12px;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-back{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;margin-bottom:12px;padding:4px 0}.detail-back:hover{color:var(--blue)}.stage-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 14px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;transition:all .15s}.stage-pill:hover{opacity:.8;transform:translateY(-1px)}.kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;margin-bottom:20px}.kanban-col{flex:1;min-width:160px;background:#f1f5f9;border-radius:10px;padding:10px}.kanban-col-header{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.kanban-col-header .kc-count{font-size:12px;font-weight:800;color:var(--text)}.kanban-card{background:#fff;border:1.5px solid var(--border);border-radius:8px;padding:10px;margin-bottom:6px;cursor:pointer;transition:all .12s;font-size:12px}.kanban-card:hover{border-color:var(--blue);box-shadow:0 3px 10px #2563eb1f;transform:translateY(-1px)}.kanban-card.dragging{opacity:.5;transform:scale(.97)}.kanban-col.drag-over{background:#2563eb14;border:2px dashed var(--blue)}.kanban-card .kc-name{font-weight:700;color:#0f172a;margin-bottom:3px;font-size:12px}.kanban-card .kc-co{font-size:10px;color:var(--muted)}.kanban-card .kc-val{font-size:11px;font-weight:700;color:var(--green);margin-top:4px}.search-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.search-input-wrap{position:relative;flex:1;min-width:200px}.search-input-wrap input{padding-left:34px}.search-input-wrap .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none}.filter-chip{padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;border:2px solid var(--border);background:#fff;color:var(--muted);transition:all .12s}.filter-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.activity-input-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.activity-type-btn{padding:6px 12px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;border:2px solid var(--border);background:#fff;transition:all .12s}.activity-type-btn.active.note{background:#2563eb1f;border-color:var(--blue);color:var(--blue)}.activity-type-btn.active.call{background:#15803d1f;border-color:var(--green);color:var(--green)}.activity-type-btn.active.email{background:#7c3aed1f;border-color:var(--purple);color:var(--purple)}.timeline-item .ti-body{flex:1;font-size:12px;line-height:1.5}.company-avatar{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--blue),#4f46e5);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;flex-shrink:0}.contact-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border:1.5px solid var(--border);border-radius:10px;margin-bottom:8px;cursor:pointer;transition:all .12s}.contact-chip:hover{border-color:var(--blue);background:#fff}.contact-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;background:var(--teal);flex-shrink:0}.stage-selector{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.stage-opt{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:700;cursor:pointer;border:2px solid transparent;opacity:.5;transition:all .12s}.stage-opt:hover{opacity:.8}.stage-opt.selected{opacity:1;border-color:currentColor}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state .es-icon{font-size:40px;margin-bottom:12px}.empty-state .es-title{font-size:14px;font-weight:700;margin-bottom:6px;color:var(--text)}.empty-state .es-sub{font-size:12px}@media (max-width:768px){:root{--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}.sidebar{display:none}.mobile-topbar{display:flex!important;align-items:center;justify-content:space-between;padding:0 12px;height:calc(var(--safe-top) + 56px);padding-top:var(--safe-top);background:#0f172a;position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.1)}.mobile-topbar-title{font-size:15px;font-weight:700;color:#fff;letter-spacing:-.3px}.mobile-topbar-title span{color:#60a5fa}.mobile-topbar-role{font-size:10px;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;margin-top:1px}.mobile-topbar-avatar{width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.mobile-tabs{display:flex!important;position:fixed;bottom:0;left:0;right:0;background:#0f172a;border-top:1px solid rgba(255,255,255,.1);padding-bottom:var(--safe-bottom);z-index:100}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;background:none;border:none;color:#ffffff80;font-size:9px;font-weight:600;cursor:pointer;min-height:56px;gap:3px;transition:color .12s;-webkit-tap-highlight-color:transparent}.mobile-tab.active{color:#60a5fa}.tab-icon{font-size:20px;line-height:1}.main{margin-left:0;padding:12px 12px 80px;padding-top:calc(var(--safe-top) + 64px)}.stat-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.stat-card{padding:12px;border-radius:10px}.stat-card .num{font-size:22px}.stat-card .label{font-size:11px}.grid-2,.grid-3,.grid-sidebar{grid-template-columns:1fr!important;gap:10px}.panel{padding:14px;border-radius:12px;margin-bottom:10px}.btn-row{gap:6px;flex-wrap:wrap}.btn{min-height:44px;font-size:13px}.btn-sm{min-height:38px;padding:8px 14px;font-size:12px}.btn-xs{min-height:34px;padding:6px 10px;font-size:11px}.page-header{margin-bottom:12px}.page-title{font-size:20px}.page-sub{font-size:12px}.greeting{font-size:20px}.detail-header{flex-direction:column;gap:10px}.detail-header .btn-row{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}.detail-header-left .detail-title{font-size:20px}.detail-back{font-size:13px;padding:8px 0;min-height:44px;display:inline-flex;align-items:center}#view-prospects .page-header{flex-direction:column;gap:10px;align-items:stretch}#view-prospects .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}#view-prospects .btn-row .btn{width:100%;justify-content:center}#ap-state-chips{gap:6px}#ap-state-chips .btn{min-height:38px;padding:6px 10px;font-size:12px;flex-shrink:0}#view-prospects .panel>div[style*="display:flex;gap:8px"]{flex-direction:column!important;gap:10px!important}#view-prospects .panel>button{min-height:48px;font-size:14px;font-weight:600}.search-bar{margin-bottom:10px}.search-input-wrap input{font-size:16px!important;padding:11px 14px!important;min-height:48px}#ap-stats{gap:6px;margin-bottom:10px}#ap-stats .stat-pill{font-size:11px;padding:5px 10px}#ap-map{height:calc(100vh - 260px)!important;min-height:300px}#ap-list-view .panel{padding:12px;margin-bottom:8px}#ap-list-view .panel h3{font-size:14px;line-height:1.3}#ap-route-panel .btn-row{flex-wrap:nowrap}#ap-route-panel .btn{min-height:40px}.ap-pagination{display:flex;gap:8px;margin-top:10px}.ap-pagination .btn{flex:1;min-height:44px;font-size:13px}.modal-bg{align-items:flex-end}.modal{border-radius:20px 20px 0 0;border:none;border-top:2px solid var(--border);max-width:100%;width:100%;max-height:90vh;padding:20px 16px;padding-bottom:calc(16px + var(--safe-bottom));animation:slideUp .3s ease;overflow-y:auto}.kanban{display:flex!important;flex-direction:row!important;overflow-x:auto!important;gap:10px!important;padding-bottom:10px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.kanban-col{min-width:260px!important;flex-shrink:0!important;scroll-snap-align:start}.pipeline{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.pipeline-stage{min-width:80px;flex-shrink:0}.cfg-root .grid{grid-template-columns:1fr!important;gap:12px}#cfgDiagramCol{display:none!important}.cfg-root .row{flex-direction:column;gap:6px}.cfg-root .row select{width:100%;min-height:44px;font-size:16px}.cfg-root .sensor-grid{grid-template-columns:1fr!important}.cfg-root .panel{padding:14px}.cfg-root .col:last-child .panel{position:static!important}.cfg-root .btn{min-height:44px}.data-table .hide-mobile{display:none}.data-table td,.data-table th{padding:9px 6px;font-size:11px}select,input[type=text],input[type=number],input[type=date],input[type=email],input[type=tel],textarea{font-size:16px!important}select{min-height:44px}input[type=text],input[type=email],input[type=tel],textarea{min-height:44px;padding:10px 12px!important}.stage-selector{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;display:flex;gap:6px;flex-wrap:nowrap}.stage-opt{white-space:nowrap;flex-shrink:0;min-height:38px}.info-grid{grid-template-columns:1fr 1fr!important}.activity-input-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:4px}.activity-type-btn{white-space:nowrap;flex-shrink:0;min-height:40px;padding:6px 14px}a.tap-call,a.tap-email{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;margin-top:6px;min-height:44px}a.tap-call{background:#15803d1a;color:var(--green);border:1.5px solid rgba(21,128,61,.3)}a.tap-email{background:#2563eb1a;color:var(--blue);border:1.5px solid rgba(37,99,235,.3)}.toast{top:calc(var(--safe-top) + 62px)}.search-input-wrap input{font-size:16px!important}.page-header{margin-bottom:14px}#ap-map{height:calc(100vh - 160px)!important;min-height:320px}#ap-state-chips .btn{min-height:44px;padding:10px 14px;font-size:13px;font-weight:700}#ap-state-chips{gap:8px}#ap-filter-row{flex-direction:column!important;gap:10px!important}#ap-filter-row>div{min-width:100%!important}#ap-filter-row .btn{min-height:44px;font-size:13px;flex:1}#ap-list-view .panel{padding:16px 14px;margin-bottom:8px}#ap-list-view .panel>div>span:last-child{font-size:26px!important}.search-bar{position:sticky;top:calc(var(--safe-top) + 58px);z-index:10;background:var(--bg);padding:6px 0;margin:-4px 0 6px}#ap-pag .btn{min-height:48px;padding:12px 20px;font-size:14px}#ap-pag{gap:12px;margin-top:16px}.ap-admin-only{display:none}#ap-stats>div{flex:1;min-width:calc(50% - 6px)}.ap-view-btn{min-height:44px!important;padding:10px 18px!important;font-size:14px!important}#ap-route-panel .btn{min-height:44px}#ap-list-view [style*="font-weight:700;font-size:14px"]{font-size:16px!important}}@media (min-width:769px){.mobile-topbar,.mobile-tabs,.mobile-drawer,.mobile-drawer-overlay{display:none!important}}.mobile-drawer-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;opacity:0;transition:opacity .25s}.mobile-drawer-overlay.open{display:block;opacity:1}.mobile-drawer{position:fixed;top:0;left:-280px;width:280px;height:100%;background:#0f172a;z-index:201;transition:left .25s ease;display:flex;flex-direction:column;overflow-y:auto}.mobile-drawer.open{left:0}.mobile-drawer-header{padding:20px 16px 14px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.mobile-drawer-header h2{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.5px}.mobile-drawer-header h2 span{color:#60a5fa}.mobile-drawer-close{background:none;border:none;color:#ffffff80;font-size:22px;cursor:pointer;padding:4px 8px;line-height:1}.mobile-drawer-user{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px}.mobile-drawer-nav{flex:1;padding:12px 0}.mobile-drawer-nav .nav-item{display:flex;align-items:center;gap:10px;padding:11px 16px;color:#fff9;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;margin:1px 8px;transition:all .12s}.mobile-drawer-nav .nav-item:hover,.mobile-drawer-nav .nav-item.active{background:#2563eb4d;color:#fff}.mobile-drawer-nav .nav-section-label{font-size:8px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:1px;padding:8px 16px 4px}.mobile-drawer-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}.mobile-drawer-footer select{width:100%;padding:8px 10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:13px;font-weight:600}.mobile-drawer-footer select option{background:#1e293b;color:#fff}.mobile-hamburger{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;padding:4px 8px;line-height:1;display:flex;align-items:center;justify-content:center}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.hidden{display:none!important}.vi-header{background:linear-gradient(135deg,#0f172a,#1e3a5f);color:#fff;padding:20px 24px;border-radius:12px 12px 0 0;margin:-28px -28px 20px}.vi-header .vi-company{font-size:20px;font-weight:800;letter-spacing:-.3px}.vi-header .vi-meta{font-size:11px;color:#ffffff8c;margin-top:4px}.vi-header .vi-badge-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.vi-badge{padding:4px 10px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.vi-badge.blue{background:#2563eb59;color:#93c5fd}.vi-badge.red{background:#b91c1c73;color:#fca5a5}.vi-badge.green{background:#15803d59;color:#86efac}.vi-badge.orange{background:#d9770659;color:#fcd34d}.vi-tabs{display:flex;gap:2px;background:#f1f5f9;border-radius:8px;padding:3px;margin-bottom:18px}.vi-tab{flex:1;padding:7px 10px;text-align:center;font-size:11px;font-weight:600;border-radius:6px;cursor:pointer;color:var(--muted);transition:all .15s}.vi-tab.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #0000001a}.vi-section{margin-bottom:18px}.vi-section-title{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.vi-section-title:after{content:"";flex:1;height:1px;background:#1e3c641a}.vi-alert{padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.5;margin-bottom:8px;display:flex;gap:10px;align-items:flex-start}.vi-alert.warn{background:#d9770614;border:1px solid rgba(217,119,6,.25);color:#92400e}.vi-alert.info{background:#2563eb0f;border:1px solid rgba(37,99,235,.18);color:#1e3a8a}.vi-alert.success{background:#15803d12;border:1px solid rgba(21,128,61,.18);color:#14532d}.vi-alert .vi-icon{font-size:15px;flex-shrink:0;margin-top:1px}.vi-asset-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;background:#f8fafc;border-radius:6px;margin-bottom:4px;font-size:12px}.vi-asset-tag{font-weight:700;color:var(--blue);font-family:SF Mono,monospace;font-size:11px}.vi-chip{padding:3px 8px;border-radius:10px;font-size:10px;font-weight:700}.vi-chip.ok{background:#15803d1f;color:var(--green)}.vi-chip.warn{background:#b91c1c1a;color:var(--red)}.vi-chip.muted{background:#64748b1a;color:var(--muted)}.vi-contact-row{display:flex;align-items:center;gap:12px;padding:10px;background:#f8fafc;border-radius:8px;margin-bottom:6px}.vi-contact-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#4f46e5);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.vi-contact-info .name{font-size:13px;font-weight:700}.vi-contact-info .role{font-size:11px;color:var(--muted)}.vi-tl-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(30,60,100,.07);font-size:11px}.vi-tl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:3px}.vi-deal-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f8fafc;border-radius:8px;margin-bottom:6px;cursor:pointer}.vi-deal-row:hover{background:#f1f5f9}.vi-contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f8fafc;border-radius:8px;padding:14px;font-size:12px}.vi-contract-grid .lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;margin-bottom:2px}.sa-card{background:#fff;border-radius:12px;border:1px solid rgba(30,60,100,.1);margin-bottom:12px;overflow:hidden;box-shadow:0 1px 4px #0000000d}.sa-card.urgent{border-left:4px solid var(--red)}.sa-card.warn{border-left:4px solid var(--orange)}.sa-card.healthy{border-left:4px solid var(--green)}.sa-card.expired{border-left:4px solid #94a3b8;opacity:.85}.sa-header{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 16px;cursor:pointer;gap:12px}.sa-header:hover{background:#1e3c6405}.sa-title{font-size:15px;font-weight:700;color:var(--text)}.sa-meta{font-size:11px;color:var(--muted);margin-top:3px}.sa-rate{font-size:20px;font-weight:800;color:var(--green);font-family:var(--font-mono,"monospace")}.sa-rate-lbl{font-size:9px;color:var(--muted);font-weight:600;text-transform:uppercase}.sa-toggle{font-size:10px;color:var(--blue);font-weight:600;text-align:right}.sa-body{border-top:1px solid rgba(30,60,100,.08);background:#fafbfd}.sa-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid rgba(30,60,100,.07);background:#f8fafc}.sa-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px}.sa-badge.active{background:#22c55e1f;color:#15803d}.sa-badge.expired{background:#94a3b826;color:#64748b}.sa-badge.flagged{background:#d977061f;color:#92400e}.mid-cycle-alert{background:#d9770612;border-bottom:1px solid rgba(217,119,6,.2);padding:10px 16px;font-size:12px;color:#92400e}.ds-table{width:100%;border-collapse:collapse;font-size:12px}.ds-table th{padding:7px 8px;text-align:left;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(30,60,100,.1);white-space:nowrap}.ds-table td{padding:8px;border-bottom:1px solid rgba(30,60,100,.05);vertical-align:middle}.ds-table tr:last-child td{border-bottom:none}.ds-table tbody tr:hover{background:#1e3c6406}.ds-type-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:8px;white-space:nowrap}.ds-type-badge.kuntze{background:#0d94881a;color:var(--teal)}.ds-type-badge.cloud{background:#2563eb1a;color:var(--blue)}.ds-type-badge.third{background:#7c3aed1a;color:var(--purple)}.ds-type-badge.flagged{background:#d977061f;color:#92400e}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a;display:flex;align-items:center;justify-content:center;z-index:1000}.login-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:40px 32px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:0;box-shadow:0 25px 50px #00000080}.login-logo{width:56px;height:56px;background:linear-gradient(135deg,var(--blue),#4f46e5);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:#fff;margin-bottom:16px}.login-title{font-size:22px;font-weight:800;color:#fff;margin-bottom:4px}.login-subtitle{font-size:13px;color:#ffffff80;margin-bottom:28px}.login-input{width:100%;padding:12px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff12;color:#fff;font-size:14px;margin-bottom:12px;outline:none;box-sizing:border-box}.login-input::placeholder{color:#ffffff59}.login-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb40}.login-btn{width:100%;padding:12px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--blue),#4f46e5);color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-message{margin-top:16px;font-size:13px;text-align:center;color:#fff9}.app{display:flex;min-height:100vh}.main{flex:1;margin-left:220px;padding:24px;max-width:1400px}@media (max-width:768px){.main{margin-left:0!important;padding:12px!important;padding-top:calc(68px + env(safe-area-inset-top,0px))!important}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:220px;background:#1e293b;display:flex;flex-direction:column;z-index:100;overflow-y:auto;transition:transform .25s}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.sidebar-brand{padding:20px 16px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand h2{font-size:17px;font-weight:800;color:#fff;margin:0}.sidebar-brand .sym{color:var(--blue)}.sidebar-brand .ver{font-size:10px;color:#ffffff4d;margin-top:2px}.sidebar-user{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.sidebar-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.sidebar-user-info .name{font-size:13px;font-weight:600;color:#fff}.sidebar-user-info .role-label{font-size:10px;color:#fff6}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.nav-section{margin-bottom:4px}.nav-section-label{padding:8px 16px 4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#ffffff4d}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;color:#ffffff8c;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;margin:1px 8px;text-decoration:none;transition:all .12s}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#2563eb40;color:#fff;font-weight:600}.nav-item .icon{font-size:15px;width:20px;text-align:center}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08)}.role-pills{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.role-pill{padding:3px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#ffffff80;font-size:10px;cursor:pointer}.role-pill.active{background:var(--blue);border-color:var(--blue);color:#fff}.signout-btn{width:100%;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#ffffff80;font-size:12px;cursor:pointer}.signout-btn:hover{background:#ffffff14;color:#fff}.topbar{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:#1e293b;z-index:99;align-items:center;padding:0 16px;gap:12px}@media (max-width:768px){.topbar{display:flex}}.topbar-hamburger{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;padding:4px}.topbar-title{flex:1;font-size:16px;font-weight:700;color:#fff}.topbar-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}.spinner{display:inline-block;border:2px solid rgba(37,99,235,.2);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.facility-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:box-shadow .15s,border-color .15s}.facility-card:hover{box-shadow:0 4px 16px #00000014;border-color:#2563eb4d}.facility-card.selected{border-color:var(--blue);box-shadow:0 0 0 2px #2563eb26}.fc-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:6px}.fc-name{font-weight:700;font-size:14px;color:var(--text)}.fc-location{font-size:12px;color:var(--muted);margin-top:2px}.detail-panel{position:fixed;right:0;top:0;bottom:0;width:420px;background:var(--card);border-left:1px solid var(--border);box-shadow:-8px 0 32px #0000001f;z-index:500;overflow-y:auto;padding:24px;transform:translate(100%);transition:transform .25s}.detail-panel.open{transform:translate(0)}.detail-panel-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted)}@media (max-width:768px){.detail-panel{width:100%!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;height:90vh!important;border-radius:16px 16px 0 0!important;border-left:none!important;border-top:1px solid var(--border)!important;overflow-y:auto!important;transform:translateY(100%)!important;transition:transform .3s ease!important;padding:20px 16px!important;z-index:500!important}.detail-panel.open{transform:translateY(0)!important}.ap-map-container{height:65vh!important;min-height:300px!important}}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.info-item{background:var(--bg);border-radius:8px;padding:8px 12px}.info-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:2px}.info-val{font-size:13px;font-weight:600;color:var(--text)}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 0}.pagination button{padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-size:13px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.page-info{font-size:12px;color:var(--muted)}.status.drinking-water{background:#2563eb1a;color:var(--blue)}.status.wastewater{background:#c2410c1a;color:var(--orange)}.view-tabs{display:flex;gap:6px}.view-tab{padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;font-size:12px;font-weight:600}.view-tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.btn-teal{background:var(--teal)!important;color:#fff!important}.btn-xs{padding:2px 8px!important;font-size:11px!important}.status{display:inline-block;padding:3px 10px;border-radius:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.status.new{background:#2563eb1f;color:var(--blue)}.status.to_be_quoted{background:#7c3aed1f;color:var(--purple)}.status.quoted{background:#2563eb1f;color:var(--blue)}.status.solution_design{background:#0d94881f;color:var(--teal)}.status.expected_po{background:#d977061f;color:var(--amber)}.status.won,.status.won_service_processing{background:#15803d1f;color:var(--green)}.status.lost{background:#b91c1c1f;color:var(--red)}.status.scheduled{background:#2563eb1f;color:var(--blue)}.status.in-progress,.status.in_progress{background:#d977061f;color:var(--amber)}.status.completed{background:#15803d1f;color:var(--green)}.status.overdue{background:#b91c1c1f;color:var(--red)}.status.active{background:#0d94881f;color:var(--teal)}.status.inactive{background:#64748b1f;color:#64748b}.status.prospect{background:#7c3aed1f;color:var(--purple)}.status.pending_po{background:#d977061f;color:var(--amber)}.status.po_received{background:#0d94881f;color:var(--teal)}.status.activated{background:#15803d1f;color:var(--green)}.status.building{background:#7c3aed1f;color:var(--purple)}.status.shipped{background:#0d94881f;color:var(--teal)}.status.installed{background:#15803d1f;color:var(--green)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(37,99,235,.2);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}.action-card{background:var(--card);border:2px solid var(--border);border-radius:12px;padding:16px;margin-bottom:10px;transition:all .15s;cursor:pointer}.action-card:hover{border-color:var(--blue);box-shadow:0 4px 12px #2563eb1a}.action-card .ac-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.action-card .ac-title{font-size:14px;font-weight:700;color:#0f172a}.action-card .ac-meta{font-size:11px;color:var(--muted);margin-top:2px}.action-card.urgent{border-left:4px solid var(--red)}.action-card.warn{border-left:4px solid var(--orange)}.action-card.info{border-left:4px solid var(--blue)}.action-card.good{border-left:4px solid var(--green)}.pipeline{display:flex;gap:2px;margin-bottom:16px;overflow-x:auto}.pipeline-stage{flex:1;min-width:80px;text-align:center;padding:8px 6px;background:#f1f5f9;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;position:relative}.pipeline-stage:first-child{border-radius:8px 0 0 8px}.pipeline-stage:last-child{border-radius:0 8px 8px 0}.pipeline-stage .count{font-size:18px;font-weight:800;display:block;margin-bottom:2px}.pipeline-stage.blue{background:#2563eb1f;color:var(--blue)}.pipeline-stage.orange{background:#d977061f;color:var(--amber)}.pipeline-stage.purple{background:#7c3aed1f;color:var(--purple)}.pipeline-stage.teal{background:#0d94881f;color:var(--teal)}.pipeline-stage.amber{background:#d977061f;color:var(--amber)}.pipeline-stage.green{background:#15803d1f;color:var(--green)}.pipeline-stage.red{background:#b91c1c1f;color:var(--red)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.grid-sidebar{display:grid;grid-template-columns:1fr 340px;gap:20px}@media (max-width:1100px){.grid-2,.grid-3,.grid-sidebar{grid-template-columns:1fr}}.timeline-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(30,60,100,.08);font-size:11px}.timeline-item:last-child{border-bottom:none}.timeline-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;flex-shrink:0}.timeline-dot.note{background:var(--blue)}.timeline-dot.call{background:var(--green)}.timeline-dot.email{background:var(--purple)}.timeline-dot.system{background:#cbd5e1}.timeline-dot.visit{background:var(--teal)}.timeline-item .ti-time{font-size:9px;color:var(--muted);white-space:nowrap}.context-card{background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:10px;font-size:11px;color:var(--muted);line-height:1.6}.context-card strong{color:var(--text)}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:4px}.info-item .info-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.info-item .info-val{font-size:13px;font-weight:600;color:var(--text)}.modal-bg{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border:2px solid var(--border);border-radius:16px;padding:28px;max-width:700px;width:95%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-title{font-size:20px;font-weight:700;margin-bottom:6px}.modal-sub{color:var(--muted);font-size:12px;margin-bottom:20px}.card-scan-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;background:linear-gradient(135deg,#2563eb14,#6366f10f);border:1.5px solid rgba(37,99,235,.3);border-radius:8px;font-size:12px;font-weight:700;color:var(--blue);cursor:pointer;transition:all .15s;white-space:nowrap}.card-scan-btn:hover{background:#2563eb1f;border-color:var(--blue);box-shadow:0 2px 8px #2563eb26}.followup-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700}.followup-badge.overdue{background:#b91c1c1a;color:var(--red)}.followup-badge.soon{background:#d977061a;color:var(--amber)}.followup-badge.ok{background:#15803d1a;color:var(--green)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border:2px solid var(--border);border-radius:16px;padding:28px;max-width:700px;width:95%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--t-body);-webkit-font-smoothing:antialiased}a{color:var(--navy);text-decoration:none}a:hover{color:var(--navy-hover)}.rail{width:var(--rail-w);flex:none;display:flex;flex-direction:column;background-color:var(--rail);background-image:linear-gradient(var(--rail-scrim),var(--rail-scrim)),url(../brand/aijs-plate.png);background-size:auto,200px 200px;background-repeat:repeat,repeat;color:var(--rail-text)}.rail__head{height:var(--rail-head-h);flex:none;display:flex;flex-direction:column;justify-content:center;gap:9px;padding:0 var(--sp-8);border-bottom:1px solid var(--rail-divider)}.rail__head img{width:156px;height:auto;display:block}.rail__poweredby{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#c3c9cf}.rail__group{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--rail-label);padding:15px var(--sp-4) 5px}.rail__item{display:flex;align-items:center;gap:var(--sp-4);padding:7px var(--sp-4);border-radius:var(--r-chip);font-size:var(--t-body);color:var(--rail-text)}.rail__item:hover{background:#ffffff0f}.rail__item[aria-current=page]{background:var(--rail-active)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);overflow:hidden}.panel__head{display:flex;align-items:center;gap:9px;padding:13px var(--sp-8);border-bottom:1px solid var(--rule);font-size:var(--t-panel-title);font-weight:600}.panel__head .icon{font-size:18px;color:var(--navy)}.panel__head .aux{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2)}.tbl__head,.tbl__row{display:grid;column-gap:var(--table-col-gap);align-items:center;padding:8px var(--sp-8)}.tbl__head{background:var(--surface-sunk);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--t-colhead);letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2)}.tbl__row{border-bottom:1px solid var(--rule-row);font-size:var(--t-table)}.tbl__name{color:var(--navy);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbl__sub{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2)}.tbl__num{text-align:right;font-family:var(--font-mono);font-size:var(--t-meta);font-variant-numeric:tabular-nums}.sw-status{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--t-meta);color:var(--muted)}.sw-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--st-idle);flex:none}.sw-status--ok:before{background:var(--st-ok)}.sw-status--warn:before{background:var(--st-warn)}.sw-status--bad:before{background:var(--st-bad)}.btn{border-radius:var(--r-control);padding:8px var(--sp-6);font-size:var(--t-button);font-weight:500;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer}.btn:hover{background:var(--surface-sunk)}.btn--primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn--primary:hover{background:var(--navy-hover);border-color:var(--navy-hover)}.field{display:flex;flex-direction:column;gap:7px}.field__label{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.field__input{border:1px solid var(--border);border-radius:7px;padding:9px var(--sp-5);font-size:var(--t-body);background:var(--surface-sunk);color:var(--text)}.field__input:focus{outline:2px solid var(--navy);outline-offset:-2px;background:var(--surface)}.field--error .field__label{color:var(--red)}.field--error .field__input{border-color:var(--red);background:var(--red-soft)}.tabs{display:flex;gap:24px;font-size:var(--t-body)}.tabs>*{padding-bottom:11px;color:var(--muted)}.tabs>[aria-selected=true]{border-bottom:2px solid var(--navy);font-weight:600;color:var(--text)}@media (max-width: 768px){.rail{display:none}.m-appbar{height:var(--m-appbar-h);padding-top:env(safe-area-inset-top);background-color:var(--rail);background-image:linear-gradient(var(--rail-scrim),var(--rail-scrim)),url(../brand/aijs-plate.png);background-size:auto,200px 200px}.m-tabbar{height:calc(var(--m-tabbar-h) + var(--m-safe-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr)}.m-tabbar>*{min-height:var(--m-target-min)}.btn--primary{min-height:var(--m-target-primary)}}.ic{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:18px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"opsz" 20,"wght" 400,"FILL" 0,"GRAD" 0;-webkit-user-select:none;user-select:none;flex:none}.ic--17{font-size:17px}.ic--20{font-size:20px}.ic--23{font-size:23px}.sidebar{width:var(--rail-w);background:var(--rail);color:var(--rail-text);border-right:1px solid var(--rail-divider)}.main{margin-left:var(--rail-w);padding:var(--page-pad-y) var(--page-pad-x) 56px}.main>*{max-width:var(--content-max);margin-left:auto;margin-right:auto}.sidebar-nav{padding:10px 0 16px}.nav-section{margin-bottom:2px}.nav-section>div[style]{font-family:var(--font-mono)!important;font-size:10px!important;font-weight:400!important;letter-spacing:.08em!important;color:var(--rail-label)!important;padding:14px 14px 6px!important}.nav-item{gap:10px;padding:7px 10px;margin:1px 10px;border-radius:var(--r-chip);color:var(--rail-text);font-family:var(--font-ui);font-size:12.5px;font-weight:400;transition:background .12s ease,color .12s ease}.nav-item:hover{background:#ffffff0f;color:var(--rail-name)}.nav-item.active{background:var(--rail-active);color:var(--rail-name);font-weight:500}.nav-item .icon{font-size:18px;width:20px;text-align:center}.sidebar-user{padding:12px 14px;border-bottom:1px solid var(--rail-divider);border-top:1px solid var(--rail-divider);gap:9px}.sidebar-avatar{width:28px!important;height:28px!important;border-radius:var(--r-badge)!important;background:var(--rail-avatar)!important;color:var(--rail-name)!important;font-family:var(--font-mono);font-size:11px!important;font-weight:500!important}.sidebar-user-info .name{color:var(--rail-name);font-size:12.5px;font-weight:500;letter-spacing:0}.sidebar-user-info .role-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--rail-label)}.sidebar-footer{padding:10px;border-top:1px solid var(--rail-divider)}.signout-btn{border:1px solid var(--rail-divider);color:var(--rail-label);border-radius:var(--r-control);font-family:var(--font-ui);font-size:12px;transition:color .12s ease,border-color .12s ease}.signout-btn:hover{color:var(--rail-name);border-color:var(--rail-active)}.pg{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.pg__title{font-family:var(--font-title);font-size:var(--t-page-title);font-weight:500;letter-spacing:-.015em;color:var(--text);margin:0;line-height:1.15}.pg__meta{font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);letter-spacing:.04em;margin-top:5px}.pg__actions{display:flex;gap:8px;flex-wrap:wrap}.archb{display:grid;grid-template-columns:var(--ref-col-w) 1fr;gap:var(--panel-gap);align-items:start}@media (max-width:1100px){.archb{grid-template-columns:1fr}}.side{display:flex;flex-direction:column;gap:var(--panel-gap)}.side__head{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);padding:12px 14px 8px}.view{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 14px 7px 11px;border-left:3px solid transparent;cursor:pointer;font-size:var(--t-body);color:var(--text);transition:background .12s ease}.view:hover{background:var(--surface-sunk)}.view.is-active{border-left-color:var(--navy);background:var(--surface-sunk);font-weight:500}.view__n{font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);font-variant-numeric:tabular-nums}.filters{padding:4px 14px 14px;display:flex;flex-direction:column;gap:12px}.filters__label{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px}.chipset{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:5px 10px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-chip);font-size:12px;color:var(--muted);cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.chip:hover{border-color:var(--navy);color:var(--text)}.chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:500}.tblwrap{overflow-x:auto}.tbl{min-width:760px}.tbl__r{display:grid;grid-template-columns:30px minmax(var(--table-name-min),2fr) 60px 100px 100px 100px;column-gap:var(--table-col-gap);align-items:center}.tbl__head{background:var(--surface-sunk);border-bottom:1px solid var(--border);padding:9px 18px;font-family:var(--font-mono);font-size:var(--t-colhead);letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2)}.tbl__row{padding:8px 18px;border-bottom:1px solid var(--rule-row);cursor:pointer;transition:background .12s ease;text-decoration:none;color:inherit}.tbl__row:hover{background:var(--surface-sunk)}.tbl__row:last-child{border-bottom:none}.tbl__name{font-size:var(--t-table);font-weight:500;color:var(--navy);line-height:1.35}.tbl__sub{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);letter-spacing:.02em;margin-top:2px}.tbl__num{font-family:var(--font-mono);font-size:var(--t-table);text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.tbl__cell{font-size:var(--t-table);color:var(--muted)}.tbl__toolbar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tbl__range{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);font-variant-numeric:tabular-nums;white-space:nowrap}.tbl__foot{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--surface-sunk);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2)}.srch{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;max-width:400px;background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-control);padding:0 10px;transition:background .12s,border-color .12s}.srch:focus-within{background:var(--surface);border-color:var(--navy)}.srch input{flex:1;border:none;background:none;outline:none;padding:8px 0;font-family:var(--font-ui);font-size:var(--t-body);color:var(--text)}.srch input::placeholder{color:var(--faint)}.srch .ic{color:var(--muted-2)}.dot{width:6px;height:6px;border-radius:50%;flex:none;display:inline-block}.dot--ok{background:var(--st-ok)}.dot--warn{background:var(--st-warn)}.dot--bad{background:var(--st-bad)}.dot--idle{background:var(--st-idle)}.stat{display:inline-flex;align-items:center;gap:7px;font-size:var(--t-table);color:var(--muted);white-space:nowrap}.empty{padding:44px 18px;text-align:center}.empty__t{font-size:14px;color:var(--text);font-weight:500;margin-bottom:4px}.empty__s{font-size:var(--t-body);color:var(--muted-2)}.rec{background:var(--surface);border-bottom:1px solid var(--border);padding:18px 28px;margin:calc(var(--page-pad-y) * -1) calc(var(--page-pad-x) * -1) 0;max-width:none!important}.rec__inner{max-width:var(--content-max);margin:0 auto}.rec__crumb{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:12px}.rec__crumb:hover{color:var(--navy)}.rec__top{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}.rec__mono{width:46px;height:46px;flex:none;border-radius:var(--r-panel);background:var(--navy-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-size:19px;font-weight:500}.rec__title{font-family:var(--font-title);font-size:var(--t-record-title);font-weight:500;letter-spacing:-.015em;margin:0;line-height:1.15}.rec__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);letter-spacing:.04em}.rec__badge{padding:2px 7px;border-radius:var(--r-badge);background:var(--navy-soft);border:1px solid var(--navy-soft-b);color:var(--navy);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.rec__actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:22px;margin-top:16px;border-bottom:1px solid var(--border);margin-bottom:-19px;overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:7px;padding:0 0 10px;cursor:pointer;font-size:var(--t-body);color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;background:none;border-top:0;border-left:0;border-right:0;transition:color .12s ease,border-color .18s ease}.tab:hover{color:var(--text)}.tab.is-active{color:var(--navy);font-weight:500;border-bottom-color:var(--navy)}.tab__n{font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);font-variant-numeric:tabular-nums}.recbody{display:grid;grid-template-columns:var(--ref-col-w) 1fr;gap:var(--panel-gap);align-items:start;padding-top:var(--page-pad-y)}@media (max-width:1100px){.recbody{grid-template-columns:1fr}}.ph{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid var(--rule)}.ph__t{font-size:var(--t-panel-title);font-weight:600;color:var(--text)}.ph .ic{color:var(--navy)}.ph__r{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase}.dl__row{padding:10px 16px;border-bottom:1px solid var(--rule-row)}.dl__row:last-child{border-bottom:none}.dl__k{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:3px}.dl__v{font-size:var(--t-body);color:var(--text)}.dl__v--mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.agr{background:var(--navy);color:#fff;border-radius:var(--r-panel);padding:16px}.agr__k{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:#b9c9e2}.agr__fig{font-family:var(--font-title);font-size:30px;font-weight:500;margin:6px 0 12px;font-variant-numeric:tabular-nums}.agr__track{height:6px;border-radius:3px;background:#35558a;overflow:hidden}.agr__fill{height:100%;background:var(--red-fill);border-radius:3px}.agr__foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-family:var(--font-mono);font-size:var(--t-meta);color:#b9c9e2;letter-spacing:.05em;text-transform:uppercase}.person{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--rule-row)}.person:last-child{border-bottom:none}.person__av{width:28px;height:28px;flex:none;border-radius:var(--r-badge);background:var(--navy-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:500}.person__n{font-size:var(--t-body);color:var(--text);font-weight:500}.person__r{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2)}.person__acts{margin-left:auto;display:flex;gap:6px;color:var(--muted-2)}.act{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:11px 16px;border-bottom:1px solid var(--rule-row)}.act:last-child{border-bottom:none}.act__d{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);letter-spacing:.02em;padding-top:1px}.act__t{font-size:var(--t-body);color:var(--text)}.act__m{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);margin-top:2px}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}@media (max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width:700px){.kpis{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);padding:14px 16px;box-shadow:var(--shadow-panel)}.kpi__k{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.kpi__v{font-family:var(--font-title);font-size:var(--t-kpi);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:6px 0 5px;line-height:1.05;color:var(--text)}.kpi__s{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2)}.dash{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--panel-gap);align-items:start}@media (max-width:1100px){.dash{grid-template-columns:1fr}}.bar{display:grid;grid-template-columns:96px 1fr 58px;gap:12px;align-items:center;padding:7px 0}.bar__l{font-size:var(--t-table);color:var(--muted)}.bar__t{height:8px;border-radius:4px;background:var(--viz-track);overflow:hidden}.bar__f{height:100%;border-radius:4px}.bar__v{font-family:var(--font-mono);font-size:var(--t-table);text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.att{display:flex;gap:10px;padding:11px 16px;border-bottom:1px solid var(--rule-row)}.att:last-child{border-bottom:none}.att__t{font-size:var(--t-body);color:var(--text)}.att__m{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);margin-top:2px}.att .dot{margin-top:6px}.disp{display:grid;grid-template-columns:52px 1fr 92px;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--rule-row)}.disp:last-child{border-bottom:none}.disp__t{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);font-variant-numeric:tabular-nums}.disp__w{font-size:var(--t-body);color:var(--text)}.disp__s{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--muted-2);margin-top:2px}.jump__row{display:flex;align-items:center;gap:9px;padding:9px 14px 9px 11px;border-left:3px solid transparent;cursor:pointer;font-size:var(--t-body);color:var(--text);transition:background .12s ease}.jump__row:hover{background:var(--surface-sunk)}.jump__row.is-active{border-left-color:var(--navy);background:var(--surface-sunk);font-weight:500}.jump__n{margin-left:auto;font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2);font-variant-numeric:tabular-nums;white-space:nowrap}.jump__row .ic{font-size:17px}.jump__row .ic.ok{color:var(--navy)}.jump__row .ic.bad{color:var(--red)}.jump__row .ic.idle{color:var(--faint-2)}.sum{padding:16px}.sum__v{font-family:var(--font-title);font-size:32px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.sum__r{display:flex;justify-content:space-between;gap:10px;margin-top:7px;font-family:var(--font-mono);font-size:var(--t-meta);color:var(--muted-2)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;padding:16px}@media (max-width:700px){.fields{grid-template-columns:1fr}}.fld{display:flex;flex-direction:column;gap:5px}.fld--wide{grid-column:span 2}@media (max-width:700px){.fld--wide{grid-column:span 1}}.fld__l{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.fld__i{width:100%;background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-control);padding:8px 10px;font-family:var(--font-ui);font-size:var(--t-body);color:var(--text);outline:none;transition:background .12s ease,border-color .12s ease}.fld__i:focus{background:var(--surface);outline:2px solid var(--navy);outline-offset:-2px}.fld__i::placeholder{color:var(--faint)}textarea.fld__i{min-height:78px;resize:vertical}.fld--error .fld__l{color:var(--red)}.fld--error .fld__i{border-color:var(--red);background:var(--red-soft)}.fld__err{font-family:var(--font-mono);font-size:var(--t-row-sub);color:var(--red)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--border);border-radius:var(--r-control);overflow:hidden}.seg__c{padding:8px 6px;text-align:center;font-size:var(--t-button);color:var(--muted);cursor:pointer;background:var(--surface-sunk);border-right:1px solid var(--border);transition:background .12s ease,color .12s ease}.seg__c:last-child{border-right:none}.seg__c:hover{color:var(--text)}.seg__c.is-on{background:var(--navy);color:#fff;font-weight:500}.tgl{width:34px;height:20px;border-radius:10px;background:var(--faint-2);flex:none;position:relative;cursor:pointer;transition:background .12s ease}.tgl.is-on{background:var(--navy)}.tgl:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .12s ease}.tgl.is-on:after{transform:translate(14px)}.tglrow{display:flex;align-items:flex-start;gap:11px;padding:12px 16px;border-bottom:1px solid var(--rule-row)}.tglrow:last-child{border-bottom:none}.tglrow__d{font-size:var(--t-row-sub);color:var(--muted-2);margin-top:3px}.btn-primary,.btn--primary{background:var(--navy);border:1px solid var(--navy);color:#fff;box-shadow:none;font-weight:500}.btn-primary:hover,.btn--primary:hover{background:var(--navy-hover);border-color:var(--navy-hover);color:#fff}.btn-secondary{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);box-shadow:none;font-weight:500}.btn-secondary:hover{border-color:var(--navy);color:var(--navy)}.btn-danger{background:var(--red-soft);border:1px solid var(--red-soft-b);color:var(--red);box-shadow:none;font-weight:500}.btn-danger:hover{background:var(--red);border-color:var(--red);color:#fff}.btn:disabled,.btn[disabled]{opacity:.5;cursor:default;box-shadow:none}
