:root{color-scheme:light;--df-font:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;--df-text:#1e293b;--df-text-soft:#334155;--df-text-muted:#64748b;--df-text-light:#94a3b8;--df-bg:#f8fafc;--df-bg-white:#fff;--df-border:#e2e8f0;--df-border-light:#f1f5f9;--df-primary:#1e293b;--df-blue:#2563eb;--df-danger:#ef4444;--df-success:#059669;--df-warning:#f59e0b;--df-radius-sm:4px;--df-radius:5px;--df-radius-lg:6px;--df-font-xs:9px;--df-font-sm:10px;--df-font-base:11px;--df-font-md:12px;--df-font-lg:13px;--df-font-xl:15px;--df-space-xs:2px;--df-space-sm:4px;--df-space-md:6px;--df-space-lg:8px;--df-space-xl:10px;--df-btn-py:4px;--df-btn-px:10px;--df-btn-font:var(--df-font-base);--df-btn-radius:var(--df-radius);--df-input-py:5px;--df-input-px:8px;--df-input-font:var(--df-font-md);--df-input-radius:var(--df-radius);--df-tab-py:4px;--df-tab-px:10px;--df-tab-font:var(--df-font-base);--df-table-font:var(--df-font-md);--df-table-header-font:var(--df-font-sm);--df-table-cell-py:4px;--df-table-cell-px:8px;--df-kpi-py:6px;--df-kpi-px:4px;--df-kpi-value-font:15px;--df-kpi-label-font:8px;--df-page-title-font:var(--df-font-xl);--df-section-gap:10px;--df-card-pad:10px}body,html{height:100%;margin:0}body{font-family:var(--df-font);color:var(--df-text);font-size:var(--df-font-md)}.df-shell{min-height:100vh;display:flex;flex-direction:column}.df-topbar{height:44px;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--df-border);background:var(--df-bg-white);position:-webkit-sticky;position:sticky;top:0;z-index:10}.df-brand,.df-topbar{display:flex;align-items:center}.df-brand{gap:10px;min-width:0}.df-logo{height:24px;width:auto;display:block}.df-title{font-weight:700;font-size:var(--df-font-lg);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.df-actions{display:flex;gap:6px;align-items:center}.df-body{flex:1 1;display:flex;min-height:0}.df-sidenav{width:190px;border-right:1px solid var(--df-border);padding:8px;overflow:auto;background:var(--df-bg-white)}.df-sidenav-title{font-size:var(--df-font-sm);font-weight:600;color:var(--df-text-light);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.df-sidenav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1px}.df-sidenav-link{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--df-radius);text-decoration:none;color:var(--df-text-soft);font-size:var(--df-font-md);font-weight:500;transition:background .1s}.df-sidenav-link:hover{background:#f1f5f9}.df-me{margin-top:10px;font-size:var(--df-font-sm);color:var(--df-text-light)}.df-main{flex:1 1;padding:12px;overflow:auto;min-width:0;background:var(--df-bg)}.df-main table{width:100%!important;border-collapse:collapse!important;font-size:var(--df-table-font)!important}.df-main th,.df-main thead th{text-align:left;font-size:var(--df-table-header-font)!important;font-weight:700!important;color:var(--df-text-light)!important;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--df-border);background:var(--df-bg);white-space:nowrap}.df-main tbody td,.df-main td,.df-main th,.df-main thead th{padding:var(--df-table-cell-py) var(--df-table-cell-px)!important}.df-main tbody td,.df-main td{border-bottom:1px solid var(--df-border-light);font-size:var(--df-table-font)!important}.df-main tbody tr:hover td{background:var(--df-bg)}.df-main .df-input,.df-main input:not([type]),.df-main input[type=date],.df-main input[type=email],.df-main input[type=number],.df-main input[type=password],.df-main input[type=search],.df-main input[type=tel],.df-main input[type=text],.df-main input[type=time],.df-main input[type=url]{padding:var(--df-input-py) var(--df-input-px)!important;font-size:var(--df-input-font)!important;border:1px solid var(--df-border)!important;border-radius:var(--df-input-radius)!important;background:var(--df-bg-white);box-sizing:border-box;color:var(--df-text);font-family:inherit}.df-main input:focus{outline:none;border-color:var(--df-blue)!important;box-shadow:0 0 0 2px rgba(37,99,235,.1)}.df-main textarea{font-family:inherit;resize:vertical}.df-main select,.df-main textarea{padding:var(--df-input-py) var(--df-input-px)!important;font-size:var(--df-input-font)!important;border:1px solid var(--df-border)!important;border-radius:var(--df-input-radius)!important;background:var(--df-bg-white);box-sizing:border-box;color:var(--df-text)}.df-main button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out){font-size:var(--df-btn-font)!important;border-radius:var(--df-btn-radius)!important;padding:var(--df-btn-py) var(--df-btn-px)!important;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.df-main h1{font-size:18px!important;margin:0 0 8px}.df-main h1,.df-main h2{font-weight:800;color:var(--df-text)}.df-main h2{font-size:var(--df-page-title-font)!important;margin:0}.df-main h3{font-size:var(--df-font-lg)!important;font-weight:700;margin:0;color:var(--df-text-soft)}.df-card{background:var(--df-bg-white);border:1px solid var(--df-border-light);border-radius:var(--df-radius-lg);padding:var(--df-card-pad)}.df-kpi-grid{display:grid;grid-gap:6px;gap:6px;margin-bottom:8px}.df-kpi{background:var(--df-bg-white);border-radius:var(--df-radius-lg);padding:var(--df-kpi-py) var(--df-kpi-px);border:1px solid var(--df-border-light);display:flex;flex-direction:column;align-items:center;gap:0;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s}.df-kpi:hover{border-color:var(--df-blue)}.df-kpi-value{font-size:var(--df-kpi-value-font)!important;font-weight:900;line-height:1.2;color:var(--df-text)}.df-kpi-label{font-size:var(--df-kpi-label-font)!important;font-weight:600;color:var(--df-text-light);text-transform:uppercase;letter-spacing:.3px;text-align:center;line-height:1.2}.df-panel{background:var(--df-bg-white);border-radius:var(--df-radius-lg);padding:6px 8px;border:1px solid var(--df-border-light)}.df-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.df-panel-title{font-weight:700;font-size:var(--df-font-base);color:var(--df-text-soft)}.df-panel-link{font-size:var(--df-font-xs);color:var(--df-text-light);text-decoration:none}.df-badge{display:inline-block;padding:2px 8px;border-radius:var(--df-radius-sm);font-size:var(--df-font-sm)!important;font-weight:700;white-space:nowrap}.df-btn{padding:var(--df-btn-py) var(--df-btn-px)!important;border:1px solid var(--df-border)!important;border-radius:var(--df-btn-radius)!important;background:var(--df-bg-white)!important;font-size:var(--df-btn-font)!important;font-weight:600!important;color:var(--df-text-muted)!important}.df-btn:hover{background:var(--df-bg)!important;border-color:#cbd5e1!important}.df-btn-primary{padding:var(--df-btn-py) 12px!important;border-radius:var(--df-btn-radius)!important;font-weight:700!important;font-size:var(--df-btn-font)!important;background:var(--df-primary)!important;color:#fff!important;border:none!important}.df-btn-primary:hover{background:#334155!important}.df-btn-blue{padding:var(--df-btn-py) 12px!important;border-radius:var(--df-btn-radius)!important;font-weight:700!important;font-size:var(--df-btn-font)!important;background:var(--df-blue)!important;color:#fff!important;border:none!important}.df-btn-blue:hover{background:#1d4ed8!important}.df-btn-danger{padding:var(--df-btn-py) 12px!important;border-radius:var(--df-btn-radius)!important;font-weight:700!important;font-size:var(--df-btn-font)!important;background:var(--df-danger)!important;color:#fff!important;border:none!important}.df-btn-danger:hover{background:#dc2626!important}.df-btn-ghost{padding:var(--df-btn-py) var(--df-btn-px)!important;font-weight:600!important;font-size:var(--df-btn-font)!important;background:transparent!important;color:var(--df-text-muted)!important;border:1px solid transparent!important}.df-btn-ghost:hover{background:#f1f5f9!important}.df-btn-sm{padding:2px 8px!important;font-size:var(--df-font-sm)!important}.df-adminbtn{padding:var(--df-btn-py) var(--df-btn-px)!important;border-radius:var(--df-btn-radius)!important;font-weight:600!important;font-size:var(--df-btn-font)!important;background:var(--df-bg-white)!important;color:var(--df-text-soft)!important;border:1px solid var(--df-border)!important}.df-input,.df-select{padding:var(--df-input-py) var(--df-input-px)!important;font-size:var(--df-input-font)!important}.df-search{padding:var(--df-btn-py) var(--df-input-px)!important;font-size:var(--df-btn-font)!important;border:1px solid var(--df-border);border-radius:var(--df-input-radius);background:var(--df-bg-white);min-width:160px;color:var(--df-text)}.df-textarea{padding:var(--df-input-py) var(--df-input-px)!important;font-size:var(--df-input-font)!important}.df-label{font-size:var(--df-font-sm);font-weight:600;color:var(--df-text-muted);margin-bottom:2px;display:block}.df-filter-bar{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:6px 10px;background:var(--df-bg-white);border-radius:var(--df-radius-lg);border:1px solid var(--df-border-light);margin-bottom:8px}.df-filter-btn{padding:3px 10px!important;border-radius:var(--df-radius-sm)!important;font-size:var(--df-font-sm)!important;font-weight:500!important;border:1px solid var(--df-border)!important;background:var(--df-bg-white)!important;color:var(--df-text-muted)!important}.df-filter-btn:hover{background:var(--df-bg)!important}.df-filter-btn.active{background:var(--df-primary)!important;color:#fff!important;border-color:var(--df-primary)!important;font-weight:700!important}.df-tab-row{display:flex;gap:3px;margin-bottom:8px}.df-tab{padding:var(--df-tab-py) var(--df-tab-px)!important;border-radius:var(--df-btn-radius)!important;font-size:var(--df-tab-font)!important;font-weight:600!important;border:1px solid transparent!important;background:transparent!important;color:var(--df-text-muted)!important}.df-tab:hover{background:#f1f5f9!important}.df-tab.active{background:var(--df-primary)!important;color:#fff!important;border-color:var(--df-primary)!important}.df-error{color:var(--df-danger);border-radius:var(--df-radius)!important;background:#fef2f2;border:1px solid #fecaca!important}.df-error,.df-success{font-size:var(--df-font-base)!important;padding:6px 10px!important;margin-bottom:8px}.df-success{color:var(--df-success);border-radius:var(--df-radius)!important;background:#ecfdf5;border:1px solid #a7f3d0!important}.df-loading{padding:40px}.df-empty,.df-loading{text-align:center;color:var(--df-text-light);font-size:var(--df-font-md)}.df-empty{padding:30px}.df-muted{font-size:var(--df-font-sm);color:var(--df-text-light)}.df-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:6px}.df-page-title{margin:0;font-size:var(--df-page-title-font)!important;font-weight:800;color:var(--df-text)}.df-page-subtitle{font-size:var(--df-font-sm);color:var(--df-text-light)}.df-flex{display:flex;align-items:center}.df-gap-4{gap:4px}.df-gap-6{gap:6px}.df-gap-8{gap:8px}.df-gap-10{gap:10px}.df-gap-12{gap:12px}.df-wrap{flex-wrap:wrap}.df-mb-6{margin-bottom:6px}.df-mb-8{margin-bottom:8px}.df-mb-10{margin-bottom:10px}.df-mb-12{margin-bottom:12px}.df-grid{display:grid;grid-template-columns:2fr 1fr;grid-gap:10px;gap:10px}.df-pipeline-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--df-radius-sm);font-size:var(--df-font-sm)!important;font-weight:700;white-space:nowrap;background:#f1f5f9;color:var(--df-text-soft);border:1px solid var(--df-border)}.df-pipeline-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.df-pipeline-filter{padding:3px 10px!important;border-radius:var(--df-radius-sm)!important;font-size:var(--df-font-sm)!important;font-weight:600!important;border:1px solid var(--df-border)!important;background:var(--df-bg-white)!important;color:var(--df-text-muted)!important;cursor:pointer}.df-pipeline-filter:hover{background:var(--df-bg)!important}.df-pipeline-filter.active{background:var(--df-primary)!important;color:#fff!important;border-color:var(--df-primary)!important;font-weight:700!important}.df-pipeline-filter .df-count{font-weight:400;opacity:.7}.df-pipeline-filter.active .df-count{opacity:.9}.df-pipeline-filter.dimmed{opacity:.45}.df-doc-btn{padding:2px 7px!important;font-size:10px!important;font-weight:700!important;border-radius:var(--df-radius-sm)!important;background:#f1f5f9!important;color:var(--df-text-muted)!important;border:1px solid var(--df-border)!important;cursor:pointer}.df-doc-btn:hover{background:#e2e8f0!important}.df-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:var(--df-radius-sm);font-size:10px!important;font-weight:700;white-space:nowrap;background:#f1f5f9;color:var(--df-text-soft);border:1px solid var(--df-border)}.df-vdiv{width:1px;height:18px;background:var(--df-border);margin:0 2px;flex-shrink:0}.df-map{height:520px;border-radius:var(--df-radius-lg);background:#f1f5f9;overflow:hidden}.df-mapwrap{min-width:0}.df-resize{resize:both;min-height:340px;max-height:78vh}.df-order-split{display:grid;grid-template-columns:minmax(0,1fr) 520px;grid-gap:10px;gap:10px;align-items:start}.df-order-left,.df-order-right{min-width:0}@media (max-width:1100px){.df-order-split{grid-template-columns:1fr}.df-map{height:380px}.df-kpi-grid{grid-template-columns:repeat(4,1fr)!important}}@media (max-width:700px){.df-map{height:320px}.df-kpi-grid{grid-template-columns:repeat(2,1fr)!important}.df-sidenav{width:160px}.df-main{padding:8px}}.df-main::-webkit-scrollbar{width:5px}.df-main::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.df-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:50;display:flex;align-items:center;justify-content:center}.df-modal{background:var(--df-bg-white);border-radius:8px;padding:16px;max-width:600px;width:90%;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.15)}.df-modal-title{font-size:14px;font-weight:800;color:var(--df-text);margin:0 0 10px}.df-dropzone{border:2px dashed #cbd5e1;border-radius:10px;background:#f8fafc;transition:border-color .15s,background .15s;box-sizing:border-box}.df-dropzone:hover{border-color:#94a3b8}.df-dropzone.df-drop-active{border-color:var(--df-blue);background:#eff6ff}:root{--ui-fs-2xs:clamp(8px,0.62vw,10px);--ui-fs-xs:clamp(9px,0.69vw,11px);--ui-fs-sm:clamp(10px,0.76vw,12px);--ui-fs-md:clamp(11px,0.83vw,13px);--ui-fs-base:clamp(12px,0.90vw,14px);--ui-fs-lg:clamp(13px,1.04vw,16px);--ui-fs-xl:clamp(16px,1.25vw,20px);--ui-fs-2xl:clamp(20px,1.67vw,28px);--ui-gap:clamp(8px,0.70vw,14px);--ui-gap-sm:clamp(5px,0.45vw,8px);--ui-pad:clamp(12px,1.05vw,18px);--ui-pad-sm:clamp(8px,0.70vw,12px);--ui-radius:10px;--ui-radius-sm:6px;--ui-radius-xs:4px;--ui-radius-pill:999px;--ui-shadow:0 1px 2px rgba(0,0,0,.04);--ui-shadow-md:0 4px 14px rgba(15,23,42,.08);--ui-text:#1e293b;--ui-text-soft:#334155;--ui-text-muted:#64748b;--ui-text-light:#94a3b8;--ui-bg:#f8fafc;--ui-surface:#fff;--ui-border:#e2e8f0;--ui-border-light:#f1f5f9;--ui-ink:#1e293b;--ui-ink-dark:#0f172a;--ui-blue:#2563eb;--ui-blue-dark:#1d4ed8;--ui-blue-bg:#eff6ff;--ui-blue-border:#bfdbfe;--ui-emerald:#059669;--ui-emerald-bg:#ecfdf5;--ui-emerald-text:#065f46;--ui-emerald-border:#a7f3d0;--ui-amber:#b45309;--ui-amber-bg:#fef3c7;--ui-amber-border:#fde68a;--ui-red:#dc2626;--ui-red-bg:#fef2f2;--ui-red-text:#991b1b;--ui-red-border:#fecaca;--ui-indigo-bg:#e0e7ff;--ui-indigo-text:#3730a3;--ui-list-w:clamp(280px,24vw,360px)}.ui-page{flex-direction:column;padding:var(--ui-pad);min-width:0}.ui-page,.ui-pagehead{display:flex;gap:var(--ui-gap)}.ui-pagehead{align-items:center;justify-content:space-between;flex-wrap:wrap}.ui-pagehead-title{display:flex;align-items:center;gap:var(--ui-gap-sm);min-width:0}.ui-pagehead-title h1,.ui-pagehead-title h2{font-size:var(--ui-fs-xl);font-weight:800;letter-spacing:-.01em;color:var(--ui-text);margin:0}.ui-pagehead-sub{font-size:var(--ui-fs-sm);color:var(--ui-text-light);margin-top:2px}.ui-page-icon{display:inline-flex;align-items:center;justify-content:center;width:clamp(30px,2.4vw,40px);height:clamp(30px,2.4vw,40px);border-radius:var(--ui-radius-sm);background:var(--ui-ink);color:#fff;flex-shrink:0}.ui-page-icon svg{width:58%;height:58%}.ui-pagehead-actions,.ui-toolbar{display:flex;align-items:center;gap:var(--ui-gap-sm);flex-wrap:wrap}.ui-spacer{flex:1 1 auto}.ui-filters{display:flex;align-items:center;gap:var(--ui-gap-sm);flex-wrap:wrap}.ui-filter{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--ui-radius-pill);font-size:var(--ui-fs-sm);font-weight:600;cursor:pointer;border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-text-muted);transition:all .12s;white-space:nowrap}.ui-filter:hover{background:var(--ui-bg);color:var(--ui-text)}.ui-filter.active{background:var(--ui-ink);border-color:var(--ui-ink);color:#fff}.ui-filter-count{font-weight:700;opacity:.6}.ui-filter.active .ui-filter-count{opacity:.85}.ui-presence{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:600;line-height:1.2;margin-top:2px;max-width:100%}.ui-presence-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--ui-text-light)}.ui-presence-dot.is-online{background:var(--ui-emerald);box-shadow:0 0 0 2px rgba(5,150,105,.18)}.ui-presence-dot.is-idle{background:var(--ui-amber)}.ui-presence-dot.is-offline{background:var(--ui-red)}.ui-presence-dot.is-never{background:var(--ui-text-light)}.ui-presence-text{color:var(--ui-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-presence.is-online .ui-presence-text{color:var(--ui-emerald-text)}.ui-presence.is-offline .ui-presence-text{color:var(--ui-red-text)}.ui-split{display:grid;grid-template-columns:var(--ui-list-w) minmax(0,1fr);grid-gap:var(--ui-gap);gap:var(--ui-gap);align-items:start;min-width:0}.ui-listpane{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);overflow:hidden;min-width:0}.ui-listpane,.ui-listpane-head{display:flex;flex-direction:column}.ui-listpane-head{padding:var(--ui-pad-sm);border-bottom:1px solid var(--ui-border-light);gap:var(--ui-gap-sm)}.ui-listpane-body{overflow:auto;max-height:calc(100vh - 210px)}.ui-detailpane{display:flex;flex-direction:column;gap:var(--ui-gap);min-width:0}@media (max-width:900px){.ui-split{grid-template-columns:1fr}.ui-listpane-body{max-height:360px}}.ui-card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}.ui-card-pad{padding:var(--ui-pad)}.ui-card-head{justify-content:space-between;padding:var(--ui-pad-sm) var(--ui-pad);border-bottom:1px solid var(--ui-border-light)}.ui-card-head,.ui-card-title{display:flex;align-items:center}.ui-card-title{gap:var(--ui-gap-sm);font-size:var(--ui-fs-base);font-weight:700;color:var(--ui-text);margin:0}.ui-card-link{background:none!important;border:none!important;color:var(--ui-blue)!important;font-size:var(--ui-fs-sm)!important;font-weight:600!important;padding:0!important;cursor:pointer}.ui-card-link:hover{text-decoration:underline}.ui-section-title{display:flex;align-items:center;gap:var(--ui-gap-sm);font-size:var(--ui-fs-lg);font-weight:700;color:var(--ui-text);margin:0 0 var(--ui-gap-sm)}.ui-count{background:var(--ui-border-light);color:var(--ui-text-muted);font-size:var(--ui-fs-2xs);font-weight:700;padding:1px 6px;border-radius:var(--ui-radius-xs)}.ui-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--ui-gap);gap:var(--ui-gap)}.ui-kpi{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:var(--ui-pad);box-shadow:var(--ui-shadow);min-width:0}.ui-kpi-label{font-size:var(--ui-fs-xs);font-weight:700;color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.ui-kpi-value{font-size:var(--ui-fs-2xl);font-weight:900;line-height:1.1;letter-spacing:-.01em;color:var(--ui-text)}.ui-kpi-sub{font-size:var(--ui-fs-sm);color:var(--ui-text-light);margin-top:5px}.ui-kpi-row{display:flex;flex-wrap:wrap;gap:6px}.ui-kpi-chip{display:inline-flex;align-items:baseline;gap:7px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:4px 10px;box-shadow:var(--ui-shadow);min-width:0;text-decoration:none;color:inherit;transition:border-color .12s,background .12s}.ui-kpi-chip:hover{border-color:var(--ui-blue);background:var(--ui-blue-bg)}.ui-kpi-chip-v{font-size:var(--ui-fs-lg);font-weight:900;line-height:1.1;letter-spacing:-.01em;color:var(--ui-text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-kpi-chip-l{font-size:var(--ui-fs-2xs);font-weight:700;color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.ui-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-gap-sm);padding:var(--ui-pad-sm);cursor:pointer;border-bottom:1px solid var(--ui-border-light);border-left:2px solid transparent;transition:background .12s}.ui-list-item:hover{background:var(--ui-bg)}.ui-list-item.active{background:var(--ui-blue-bg);border-left-color:var(--ui-blue)}.ui-list-name{font-size:var(--ui-fs-base);font-weight:600;color:var(--ui-text-soft)}.ui-list-item.active .ui-list-name,.ui-list-item:hover .ui-list-name{color:var(--ui-text)}.ui-list-sub{font-size:var(--ui-fs-md);color:var(--ui-text-muted);display:flex;align-items:center;gap:5px;margin-top:2px}.ui-list-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.ui-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--ui-fs-sm);color:var(--ui-text-light);white-space:nowrap}.ui-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ui-dot.on{background:#10b981}.ui-dot.off{background:#cbd5e1}.ui-open-badge{background:var(--ui-blue-bg);color:var(--ui-blue);font-size:var(--ui-fs-2xs);font-weight:700;padding:1px 6px;border-radius:var(--ui-radius-xs);border:1px solid #dbeafe;white-space:nowrap}.ui-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-gap);flex-wrap:wrap}.ui-detail-name{font-size:var(--ui-fs-2xl)!important;font-weight:800;letter-spacing:-.01em;color:var(--ui-text);margin:0}.ui-pill-active{background:var(--ui-emerald-border);color:var(--ui-emerald-text);border:1px solid var(--ui-emerald-border);border-radius:var(--ui-radius-pill)}.ui-pill-active,.ui-pill-inactive{font-size:var(--ui-fs-sm);font-weight:700;padding:1px 8px;text-transform:uppercase;letter-spacing:.03em}.ui-pill-inactive{background:var(--ui-red-bg);color:var(--ui-red-text);border:1px solid var(--ui-red-border);border-radius:var(--ui-radius-pill)}.ui-chip{font-size:var(--ui-fs-md);font-weight:600;color:var(--ui-text-muted);background:var(--ui-border-light);padding:1px 8px;border-radius:var(--ui-radius-xs);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ui-detail-addr{font-size:var(--ui-fs-base);color:var(--ui-text-muted);display:flex;margin-top:4px}.ui-btn,.ui-detail-addr{align-items:center;gap:6px}.ui-btn{display:inline-flex!important;padding:7px 12px!important;border-radius:var(--ui-radius-sm)!important;font-size:var(--ui-fs-md)!important;font-weight:600!important;cursor:pointer;transition:all .15s;box-shadow:var(--ui-shadow)}.ui-btn-light{background:var(--ui-surface)!important;border:1px solid var(--ui-border)!important;color:var(--ui-text-soft)!important}.ui-btn-light:hover{background:var(--ui-bg)!important}.ui-btn-dark{background:var(--ui-ink)!important;border:1px solid var(--ui-ink)!important;color:#fff!important}.ui-btn-dark:hover{background:var(--ui-ink-dark)!important}.ui-btn-blue2{background:var(--ui-blue)!important;border:1px solid var(--ui-blue)!important;color:#fff!important}.ui-btn-blue2:hover{background:var(--ui-blue-dark)!important}.ui-btn.ui-danger{color:var(--ui-red)!important}.ui-btn.ui-success{color:var(--ui-emerald)!important}.ui-btn-sm{padding:4px 9px!important;font-size:var(--ui-fs-sm)!important}.ui-tabs{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--ui-border);flex-wrap:wrap}.ui-tab{padding:8px 14px!important;font-size:var(--ui-fs-base)!important;font-weight:600!important;cursor:pointer;border:1px solid transparent!important;border-bottom:none!important;border-radius:var(--ui-radius-sm) var(--ui-radius-sm) 0 0!important;background:transparent!important;color:var(--ui-text-muted)!important;position:relative;top:1px}.ui-tab:hover{background:var(--ui-border-light)!important}.ui-tab.active,.ui-tab:hover{color:var(--ui-text)!important}.ui-tab.active{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}.ui-table{width:100%;border-collapse:collapse;font-size:var(--ui-fs-md)}.ui-table th{text-align:left;font-size:var(--ui-fs-2xs);font-weight:700;color:var(--ui-text-light);text-transform:uppercase;letter-spacing:.4px;padding:8px 10px;border-bottom:1px solid var(--ui-border);white-space:nowrap}.ui-table td{padding:9px 10px;border-bottom:1px solid var(--ui-border-light);color:var(--ui-text-soft)}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr:hover td{background:var(--ui-bg)}.ui-contact{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:var(--ui-pad);box-shadow:var(--ui-shadow);display:flex;gap:var(--ui-gap);align-items:center}.ui-avatar{width:clamp(40px,3.3vw,52px);height:clamp(40px,3.3vw,52px);border-radius:50%;font-size:var(--ui-fs-lg);flex-shrink:0}.ui-avatar,.ui-phone-btn{background:var(--ui-blue-bg);color:var(--ui-blue);display:flex;align-items:center;justify-content:center;font-weight:800}.ui-phone-btn{gap:var(--ui-gap-sm);width:100%;box-sizing:border-box;border:1px solid var(--ui-blue-border);border-radius:8px;padding:10px 0;font-size:var(--ui-fs-base);text-decoration:none;transition:background .15s}.ui-phone-btn:hover{background:#dbeafe}.ui-status-pill{display:inline-block;font-size:var(--ui-fs-2xs);font-weight:700;padding:2px 8px;border-radius:var(--ui-radius-pill);white-space:nowrap}.ui-status-pill.ok{background:var(--ui-emerald-bg);color:var(--ui-emerald-text)}.ui-status-pill.warn{background:var(--ui-amber-bg);color:var(--ui-amber)}.ui-status-pill.danger{background:var(--ui-red-bg);color:var(--ui-red-text)}.ui-status-pill.info{background:var(--ui-blue-bg);color:var(--ui-blue)}.ui-status-pill.neutral{background:var(--ui-border-light);color:var(--ui-text-muted)}.ui-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--ui-gap-sm);gap:var(--ui-gap-sm)}.ui-doc{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:var(--ui-pad-sm);background:var(--ui-surface);display:flex;flex-direction:column;gap:4px}.ui-doc-label{font-size:var(--ui-fs-xs);font-weight:600;color:var(--ui-text-muted)}.ui-doc-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--ui-fs-sm);font-weight:700}.ui-doc-status.ok{color:var(--ui-emerald)}.ui-doc-status.warn{color:var(--ui-amber)}.ui-doc-status.missing{color:var(--ui-red)}.ui-doc-date{font-size:var(--ui-fs-2xs);color:var(--ui-text-light)}.ui-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--ui-gap);gap:var(--ui-gap)}.ui-stack{gap:var(--ui-gap)}.ui-stack,.ui-stack-sm{display:flex;flex-direction:column}.ui-row,.ui-stack-sm{gap:var(--ui-gap-sm)}.ui-row{display:flex;align-items:center;flex-wrap:wrap}.ui-search-wrap{position:relative;width:100%}.ui-search-wrap input.ui-search{width:100%;box-sizing:border-box;padding:8px 30px 8px 32px;font-size:var(--ui-fs-base);border:1px solid #cbd5e1;border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 9px;background-size:15px 15px;color:#0f172a;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.ui-search-wrap input.ui-search:focus{border-color:var(--ui-blue);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.ui-search-wrap input.ui-search::placeholder{color:var(--ui-text-light)}.ui-search-wrap .ui-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;padding:0;border:none;border-radius:999px;background:#e2e8f0;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;transition:background .12s,color .12s}.ui-search-wrap .ui-search-clear:hover{background:#cbd5e1;color:#1e293b}.ui-badge{display:inline-block;padding:2px 8px;border-radius:var(--ui-radius-xs);font-size:var(--ui-fs-2xs);font-weight:700;white-space:nowrap}.ui-badge.sm{padding:1px 6px;font-size:9px}.ui-badge-adr{background:var(--ui-amber-bg);color:var(--ui-amber)}.ui-badge-rented{background:var(--ui-indigo-bg);color:var(--ui-indigo-text)}.ui-badge-pw{background:var(--ui-amber-bg);color:#92400e}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);padding:clamp(48px,6vw,96px) var(--ui-pad);color:var(--ui-text-light);min-height:clamp(280px,40vh,520px)}.ui-empty-icon{color:var(--ui-border)}.ui-empty-title{font-size:var(--ui-fs-lg);font-weight:700;color:var(--ui-text-muted)}.ui-empty-sub{font-size:var(--ui-fs-base);color:var(--ui-text-light);max-width:360px}.ui-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--ui-pad)}.ui-modal{background:var(--ui-surface);border-radius:var(--ui-radius);width:min(560px,96vw);max-height:90vh;overflow:auto;box-shadow:var(--ui-shadow-md);padding:clamp(16px,1.6vw,24px)}.ui-modal-title{font-size:var(--ui-fs-xl);font-weight:800;color:var(--ui-ink-dark);margin:0 0 6px}.sh-root{display:flex;min-height:100vh;width:100%;background:var(--ui-bg);color:var(--ui-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.sh-aside,.sh-aside *,.sh-topbar,.sh-topbar *{box-sizing:border-box}.sh-aside{width:252px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;align-self:flex-start;height:100vh;overflow:hidden;background:var(--ui-surface);border-right:1px solid var(--ui-border);display:flex;flex-direction:column;transition:width .16s ease}.sh-aside.collapsed{width:68px}.sh-brand{gap:10px;padding:14px 16px;border-bottom:1px solid var(--ui-border-light);height:57px}.sh-brand,.sh-logo-mark{display:flex;align-items:center;flex-shrink:0}.sh-logo-mark{width:30px;height:30px;border-radius:8px;background:var(--ui-ink);color:#fff;justify-content:center;font-weight:900;font-size:13px;letter-spacing:.02em}.sh-brand-name{font-size:var(--ui-fs-lg);font-weight:900;letter-spacing:-.01em;line-height:1.1}.sh-brand-sub{font-size:var(--ui-fs-xs);color:var(--ui-text-light);font-weight:600}.sh-nav{flex:1 1 auto;overflow-y:auto;padding:10px 10px 4px}.sh-nav::-webkit-scrollbar{width:8px}.sh-nav::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:999px}.sh-group{margin-bottom:10px}.sh-grouplabel{font-size:var(--ui-fs-2xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-text-light);padding:6px 10px 4px}.sh-aside.collapsed .sh-group{margin-bottom:6px;border-top:1px solid var(--ui-border-light);padding-top:6px}.sh-aside.collapsed .sh-group:first-child{border-top:none}.sh-navitem{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:8px 10px;margin-bottom:1px;border:none;background:transparent;cursor:pointer;text-align:left;border-radius:var(--ui-radius-sm);font-size:var(--ui-fs-base);font-weight:600;color:var(--ui-text-soft);transition:background .12s,color .12s;text-decoration:none}.sh-navitem:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-navitem.active{background:var(--ui-blue-bg);color:var(--ui-blue-dark);font-weight:700}.sh-navitem.active .sh-ico{color:var(--ui-blue)}.sh-accent{position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--ui-blue);border-radius:999px}.sh-ico{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ui-text-muted);width:18px}.sh-navtext{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-navright{display:flex;align-items:center;gap:6px;flex-shrink:0;color:var(--ui-text-light)}.sh-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:6px;font-size:10px;font-weight:800;line-height:1}.sh-dotbadge{position:absolute;top:7px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--ui-red);border:1.5px solid var(--ui-surface)}.sh-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px;padding-left:8px}.sh-subgrouplabel{font-size:var(--ui-fs-2xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-text-light);padding:8px 10px 2px 14px;opacity:.8}.sh-subgrouplabel:first-child{padding-top:2px}.sh-subitem{display:flex;align-items:center;gap:9px;width:100%;padding:6px 10px;border:none;background:transparent;cursor:pointer;text-align:left;border-radius:var(--ui-radius-sm);font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-muted);transition:background .12s,color .12s;text-decoration:none}.sh-subitem:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-subitem.active{color:var(--ui-blue-dark);font-weight:700}.sh-subdot{width:4px;height:4px;border-radius:50%;background:var(--ui-border);flex-shrink:0;margin-left:12px}.sh-subitem:hover .sh-subdot{background:var(--ui-text-light)}.sh-subitem.active .sh-subdot{background:var(--ui-blue)}.sh-subtext{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-collapse{display:flex;align-items:center;gap:10px;flex-shrink:0;margin:6px 10px 12px;padding:8px 10px;border:1px solid var(--ui-border);background:var(--ui-surface);border-radius:var(--ui-radius-sm);cursor:pointer;font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-muted);transition:background .12s}.sh-collapse:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-aside.collapsed .sh-collapse{justify-content:center}.sh-aside.collapsed .sh-label{display:none}.sh-aside.collapsed .sh-navitem{justify-content:center;padding:9px 0}.sh-aside.collapsed .sh-brand{justify-content:center;padding:14px 0}.sh-col{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.sh-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:1100;height:57px;flex-shrink:0;gap:16px;padding:0 16px;background:var(--ui-surface);border-bottom:1px solid var(--ui-border)}.sh-search,.sh-topbar{display:flex;align-items:center}.sh-search{gap:8px;flex:0 1 420px;padding:0 10px;height:36px;border-radius:8px;background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text-light);transition:border-color .15s,box-shadow .15s}.sh-search:focus-within{border-color:var(--ui-blue);box-shadow:0 0 0 3px rgba(37,99,235,.12);background:var(--ui-surface)}.sh-search input{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font-size:var(--ui-fs-base);color:var(--ui-text);font-family:inherit}.sh-search input::placeholder{color:var(--ui-text-light)}.sh-kbd{font-size:10px;font-weight:700;color:var(--ui-text-muted);background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:5px;padding:2px 6px}.sh-topright{display:flex;align-items:center;gap:8px;margin-left:auto}.sh-clock{padding:5px 10px;border-radius:var(--ui-radius-sm);background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text-soft);font-size:var(--ui-fs-sm);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-clock,.sh-status{display:flex;align-items:center;gap:6px}.sh-status{padding:4px 8px 4px 10px;border-radius:var(--ui-radius-sm);background:var(--ui-emerald-bg);border:1px solid var(--ui-emerald-border);color:var(--ui-emerald-text);font-size:var(--ui-fs-sm);font-weight:700}.sh-status-main{margin-right:2px}.sh-status-sub{padding:1px 7px;border-radius:5px;background:hsla(0,0%,100%,.6);color:var(--ui-emerald-text);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-iconbtn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--ui-radius-sm);border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-text-soft);cursor:pointer;transition:background .12s}.sh-iconbtn:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-bell-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--ui-red);color:#fff;font-size:9px;font-weight:800;justify-content:center;border:1.5px solid var(--ui-surface)}.sh-bell-badge,.sh-user{display:flex;align-items:center}.sh-user{gap:7px;padding:0 4px 0 2px}.sh-user-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--ui-blue-bg);color:var(--ui-blue);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}.sh-user-name{white-space:nowrap}.sh-pillbtn,.sh-user-name{font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-soft)}.sh-pillbtn{display:flex;align-items:center;gap:6px;padding:7px 11px;border-radius:var(--ui-radius-sm);border:1px solid var(--ui-border);background:var(--ui-surface);cursor:pointer;transition:background .12s;text-decoration:none}.sh-pillbtn:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-main{flex:1 1 auto;padding:16px;min-width:0}.sh-inboxrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--ui-border-light);border-radius:var(--ui-radius-sm);background:var(--ui-surface)}.sh-inboxrow:hover{background:var(--ui-bg)}.sh-inbox-from{font-size:var(--ui-fs-base);font-weight:700;color:var(--ui-text)}.sh-inbox-note{font-size:var(--ui-fs-sm);color:var(--ui-text-muted);margin-top:1px}.sh-logo-mark-img{height:34px;width:auto;max-width:188px;object-fit:contain;object-position:left center;display:block}.sh-logo-hex{display:none;height:34px;width:34px;object-fit:contain}.sh-aside.collapsed .sh-logo-mark-img{display:none}.sh-aside.collapsed .sh-logo-hex{display:block}.sh-maprow{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,26vw,360px);grid-gap:var(--ui-gap);gap:var(--ui-gap);margin-bottom:var(--ui-gap);align-items:start}.sh-map,.sh-mapcard{overflow:hidden}.sh-map{position:relative;height:clamp(360px,60vh,660px)}.sh-osm-attr{position:absolute;right:6px;bottom:5px;font-size:9px;color:#52606d;background:hsla(0,0%,100%,.78);padding:1px 6px;border-radius:4px}.sh-map svg{width:100%;height:100%;display:block}.sh-map-legend{position:absolute;left:12px;bottom:12px;display:flex;gap:12px;padding:6px 10px;border-radius:var(--ui-radius-sm);background:hsla(0,0%,100%,.92);border:1px solid var(--ui-border);box-shadow:var(--ui-shadow-md);font-size:var(--ui-fs-xs);font-weight:600;color:var(--ui-text-soft)}.sh-map-legend span{display:inline-flex;align-items:center;gap:5px}.sh-map-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.sh-blick{display:flex;flex-direction:column;gap:1px}.sh-blick-row{display:flex;align-items:center;gap:10px;padding:7px 4px}.sh-blick-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.sh-blick-label{flex:1 1 auto;font-size:var(--ui-fs-base);font-weight:600;color:var(--ui-text-soft)}.sh-blick-val{font-size:var(--ui-fs-lg);font-weight:800;color:var(--ui-text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-blick-sep{height:1px;background:var(--ui-border-light);margin:8px 0}.sh-blick-gauge-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-soft)}.sh-blick-gauge-top span{display:inline-flex;align-items:center;gap:6px}.sh-blick-gauge-top strong{font-size:var(--ui-fs-base);color:var(--ui-text)}.sh-blick-gauge .sh-prog{width:100%;height:8px}.sh-prog{width:84px;height:6px;border-radius:999px;background:var(--ui-border-light);overflow:hidden}.sh-prog>span{display:block;height:100%;border-radius:999px}.sh-progwrap{display:flex;align-items:center;gap:8px}.sh-progtxt{font-size:var(--ui-fs-xs);font-weight:700;color:var(--ui-text-muted)}.sh-bigtable .sh-mono,.sh-progtxt{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-bigtable .sh-mono{color:var(--ui-text-soft)}.ui-status-pill.sh-pill-sm{padding:1px 8px;font-size:11px}.sh-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:6px;background:var(--ui-border-light);color:var(--ui-text-muted);font-size:11px;font-weight:800}.sh-head-actions{display:flex;align-items:center;gap:8px}.sh-tab{font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-muted);padding:3px 9px;border-radius:999px;cursor:pointer}.sh-tab:hover{background:var(--ui-bg);color:var(--ui-text)}.sh-tab.active{background:var(--ui-blue-bg);color:var(--ui-blue-dark)}.sh-seg{display:inline-flex;border:1px solid var(--ui-border);border-radius:var(--ui-radius-pill);overflow:hidden;background:var(--ui-bg)}.sh-seg button{border:none;background:transparent;padding:4px 11px;font-size:var(--ui-fs-xs);font-weight:700;color:var(--ui-text-muted);cursor:pointer;transition:background .12s,color .12s}.sh-seg button.active{background:var(--ui-blue);color:#fff}.sh-config{margin-bottom:var(--ui-gap)}.sh-config-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.sh-config-title{display:flex;align-items:center;gap:7px;font-size:var(--ui-fs-base);font-weight:700;color:var(--ui-text)}.sh-config-hint{font-size:var(--ui-fs-xs);color:var(--ui-text-light);margin-top:2px}.sh-ki-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--ui-gap-sm);gap:var(--ui-gap-sm)}.sh-ministat{text-align:center;padding:9px 6px;border-radius:var(--ui-radius-sm);border:1px solid transparent}.sh-ministat-v{font-size:var(--ui-fs-xl);font-weight:900;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sh-ministat-l{font-size:var(--ui-fs-2xs);font-weight:700;margin-top:3px}.sh-compact th{padding:6px 8px}.sh-compact td{padding:5px 8px;font-size:var(--ui-fs-sm)}.sh-compact .sh-mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:var(--ui-text-soft)}.sh-compact .sh-prog{width:54px}@media (max-width:1100px){.sh-search{flex-basis:240px}.sh-status-sub,.sh-user-name{display:none}.sh-maprow{grid-template-columns:1fr}}.ui-loading{padding:clamp(24px,4vw,48px);text-align:center;color:var(--ui-text-light);font-size:var(--ui-fs-base)}.ui-subnav{margin-bottom:var(--ui-gap);border-radius:var(--ui-radius);overflow:hidden;box-shadow:var(--ui-shadow-md)}.ui-subnav-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-gap-sm);flex-wrap:wrap;padding:var(--ui-pad-sm) var(--ui-pad);background:linear-gradient(180deg,var(--ui-ink) 0,var(--ui-text-soft) 100%);color:#fff}.ui-subnav-title{font-size:var(--ui-fs-lg);font-weight:900;letter-spacing:.3px}.ui-subnav-sub{font-size:var(--ui-fs-sm);color:#cbd5e1}.ui-subnav-tabs{display:flex;flex-wrap:wrap;background:var(--ui-surface);border-bottom:1px solid var(--ui-border)}.ui-subnav-tab{padding:var(--ui-pad-sm) var(--ui-pad);font-size:var(--ui-fs-base);font-weight:500;color:var(--ui-text-muted);border-bottom:3px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;cursor:pointer;transition:color .15s,border-color .15s}.ui-subnav-tab:hover{color:var(--ui-text)}.ui-subnav-tab.active{color:var(--ui-text);font-weight:700;border-bottom-color:var(--ui-blue)}.ui-subnav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:var(--ui-radius-pill);font-size:var(--ui-fs-2xs);font-weight:800;background:var(--ui-red);color:#fff}.ui-form-label{display:block;font-size:var(--ui-fs-sm);font-weight:600;color:var(--ui-text-muted);margin-bottom:4px}.ui-input,.ui-select,.ui-textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:var(--ui-fs-base);color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:7px 10px;outline:none;transition:border-color .15s,box-shadow .15s}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--ui-blue);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.ui-input:disabled,.ui-select:disabled,.ui-textarea:disabled{background:var(--ui-bg);color:var(--ui-text-light)}.ui-textarea{resize:vertical;min-height:64px}.ui-input-sm,.ui-select-sm{font-size:var(--ui-fs-sm);padding:5px 8px}.ui-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--ui-gap);gap:var(--ui-gap)}.ui-alert{display:flex;align-items:flex-start;gap:var(--ui-gap-sm);padding:var(--ui-pad-sm) var(--ui-pad);border-radius:var(--ui-radius-sm);font-size:var(--ui-fs-sm);border:1px solid transparent}.ui-alert-info{background:var(--ui-blue-bg);border-color:var(--ui-blue-border);color:var(--ui-blue-dark)}.ui-alert-warn{background:var(--ui-amber-bg);border-color:var(--ui-amber-border);color:var(--ui-amber)}.ui-alert-danger{background:var(--ui-red-bg);border-color:var(--ui-red-border);color:var(--ui-red-text)}.ui-alert-success{background:var(--ui-emerald-bg);border-color:var(--ui-emerald-border);color:var(--ui-emerald-text)}.ui-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface)}.ui-table-dense th{padding:6px 8px}.ui-table-dense td{padding:6px 8px;font-size:var(--ui-fs-sm)}.ui-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-col-tight{width:1%;white-space:nowrap}.ui-total-box{display:flex;flex-direction:column;gap:4px;margin-left:auto;width:min(340px,100%)}.ui-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ui-gap);font-size:var(--ui-fs-base);color:var(--ui-text-soft)}.ui-total-row.grand{font-size:var(--ui-fs-lg);font-weight:800;color:var(--ui-text);border-top:1px solid var(--ui-border);padding-top:6px;margin-top:2px}.ui-modal.ui-modal-wide{width:min(1000px,96vw)}.ui-modal.ui-modal-xl{width:min(1400px,98vw)}.ui-modal-head{align-items:center;justify-content:space-between;margin-bottom:var(--ui-gap)}.ui-modal-body,.ui-modal-head{display:flex;gap:var(--ui-gap)}.ui-modal-body{flex-direction:column}.ui-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-gap-sm);margin-top:var(--ui-gap);flex-wrap:wrap}.ui-split-aside{grid-template-columns:minmax(0,1fr) minmax(clamp(300px,30vw,520px),.8fr);grid-gap:var(--ui-gap)}.ui-dialog-split,.ui-split-aside{display:grid;gap:var(--ui-gap);align-items:start;min-width:0}.ui-dialog-split{grid-template-columns:minmax(0,1fr) minmax(clamp(320px,32vw,560px),.9fr);grid-gap:var(--ui-gap)}.ui-dialog-pane{min-width:0}@media (max-width:1100px){.ui-dialog-split,.ui-split-aside{grid-template-columns:1fr}}.ui-action-strip{align-items:center;flex-wrap:wrap}.ui-action-strip,.ui-formsec{display:flex;gap:var(--ui-gap-sm)}.ui-formsec{border-top:1px solid var(--ui-border-light);margin-top:var(--ui-gap);padding-top:var(--ui-gap);flex-direction:column}.ui-formsec-title{font-size:var(--ui-fs-sm);font-weight:700;color:var(--ui-text-soft)}.ui-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.2px}.ui-check{display:flex;align-items:flex-start;gap:var(--ui-gap-sm);cursor:pointer}.ui-check input{margin-top:2px;width:15px;height:15px;flex-shrink:0;accent-color:var(--ui-blue)}.ui-check-title{font-size:var(--ui-fs-md);font-weight:600;color:var(--ui-text-soft)}.ui-check-hint{font-size:var(--ui-fs-xs);color:var(--ui-text-light);margin-top:1px}.ui-list-grouphead{display:flex;align-items:center;gap:var(--ui-gap-sm);padding:6px var(--ui-pad-sm);background:var(--ui-bg);border-bottom:1px solid var(--ui-border-light);font-size:var(--ui-fs-xs);font-weight:700;color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.4px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.ui-chiprow{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end}.ui-linerow{display:flex;align-items:center;gap:var(--ui-gap-sm);padding:var(--ui-pad-sm);border:1px solid var(--ui-border-light);border-radius:var(--ui-radius-sm);background:var(--ui-surface)}.ui-linerow:hover{background:var(--ui-bg)}.ui-linerow-main{flex:1 1 auto;min-width:0}.ui-linerow-title{font-size:var(--ui-fs-md);font-weight:600;color:var(--ui-text);overflow:hidden;text-overflow:ellipsis}.ui-linerow-sub{font-size:var(--ui-fs-xs);color:var(--ui-text-muted);margin-top:1px}.ui-linerow-actions{display:flex;align-items:center;gap:var(--ui-gap-sm);flex-shrink:0}.ui-doc-group{flex-direction:column}.ui-doc-group,.ui-doc-group-head{display:flex;gap:var(--ui-gap-sm)}.ui-doc-group-head{align-items:center;padding:4px 2px;font-size:var(--ui-fs-sm);font-weight:700;color:var(--ui-text-soft)}.ui-dropzone{border:2px dashed var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-bg);padding:var(--ui-pad);text-align:center;font-size:var(--ui-fs-sm);color:var(--ui-text-muted);cursor:pointer;transition:border-color .15s,background .15s;box-sizing:border-box}.ui-dropzone:hover{border-color:var(--ui-text-light)}.ui-dropzone.drag{border-color:var(--ui-blue);background:var(--ui-blue-bg);color:var(--ui-blue-dark)}.ui-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:var(--ui-gap-sm);gap:var(--ui-gap-sm)}.ui-photo{position:relative;border-radius:var(--ui-radius-sm);overflow:hidden;border:1px solid var(--ui-border);aspect-ratio:4/3;background:var(--ui-bg)}.ui-photo.primary{border:2px solid var(--ui-blue)}.ui-photo img{width:100%;height:100%;object-fit:cover;display:block}.ui-photo-badge{position:absolute;top:3px;left:3px;background:var(--ui-blue);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:var(--ui-radius-xs)}.ui-photo-actions{position:absolute;bottom:0;left:0;right:0;display:flex;gap:2px;padding:3px;background:rgba(15,23,42,.55)}.ui-photo-actions button{flex:1 1;background:none;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer}.ui-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ui-subtext{font-size:var(--ui-fs-2xs)}.ui-doc-icon,.ui-subtext{color:var(--ui-text-light)}.ui-doc-icon{display:inline-flex;align-items:center;flex-shrink:0}.ui-clickable{cursor:pointer}.ui-empty-sm{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:var(--ui-pad);color:var(--ui-text-light);font-size:var(--ui-fs-sm)}.auth-wrap{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--ui-surface)}.auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,3.5vw,56px);color:#e2e8f0;background:radial-gradient(120% 80% at 12% 8%,rgba(37,99,235,.3),transparent 55%),linear-gradient(155deg,#0b1220,#0f172a 50%,#111c33)}.auth-brand>*{position:relative;z-index:1}.auth-brand-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;pointer-events:none}.auth-logo-row{display:flex;align-items:center;gap:11px}.auth-wordmark{font-size:19px;font-weight:800;letter-spacing:-.01em;color:#fff;line-height:1}.auth-company{font-size:10.5px;color:#94a3b8;letter-spacing:.06em;margin-top:4px;text-transform:uppercase}.auth-headline{font-size:clamp(26px,2.4vw,38px);font-weight:800;line-height:1.12;letter-spacing:-.02em;color:#fff;margin:0 0 14px;max-width:15ch}.auth-tagline{font-size:clamp(13px,1vw,15px);color:#94a3b8;line-height:1.6;max-width:42ch;margin:0 0 30px}.auth-features{display:flex;flex-direction:column;gap:14px}.auth-feature{gap:12px}.auth-feature,.auth-feature-ic{display:flex;align-items:center}.auth-feature-ic{width:38px;height:38px;border-radius:10px;flex-shrink:0;justify-content:center;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);color:#93c5fd}.auth-feature-tx{font-size:13px;color:#94a3b8;line-height:1.35}.auth-feature-tx b{display:block;color:#fff;font-weight:700;font-size:13.5px}.auth-foot{font-size:11.5px;color:#64748b}.auth-pane{display:flex;align-items:center;justify-content:center;padding:clamp(24px,4vw,48px);background:var(--ui-surface)}.auth-card{width:100%;max-width:420px}.auth-card-logo{display:none;margin-bottom:26px}.auth-title{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--ui-text);margin:0 0 6px}.auth-sub{font-size:14px;color:var(--ui-text-muted);margin:0 0 22px;line-height:1.5}.auth-field{margin-bottom:14px}.auth-label{display:block;font-size:13px;font-weight:600;color:var(--ui-text-soft);margin-bottom:6px}.auth-input-wrap{position:relative}.auth-input{width:100%;box-sizing:border-box;padding:12px 14px;font-size:15px;color:var(--ui-text);background:#fff;font-family:inherit;border:1px solid var(--ui-border);border-radius:10px;transition:border-color .15s,box-shadow .15s}.auth-input::placeholder{color:var(--ui-text-light)}.auth-input:focus{outline:none;border-color:var(--ui-blue);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.auth-input.has-toggle{padding-right:46px}.auth-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--ui-text-light);cursor:pointer;border-radius:8px;transition:color .12s,background .12s}.auth-eye:hover{color:var(--ui-text-soft);background:var(--ui-border-light)}.auth-btn{width:100%;box-sizing:border-box;margin-top:4px;padding:13px 16px;font-size:15px;font-weight:700;color:#fff;font-family:inherit;border:none;border-radius:10px;cursor:pointer;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 1px 2px rgba(37,99,235,.25);transition:transform .05s,box-shadow .15s,filter .15s}.auth-btn:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 8px 22px rgba(37,99,235,.3)}.auth-btn:active:not(:disabled){transform:translateY(1px)}.auth-btn:disabled{background:#cbd5e1;color:#eef2f6;cursor:not-allowed;box-shadow:none}.auth-rules{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:10px;padding:12px 14px;margin:2px 0 18px}.auth-rules-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-muted);margin-bottom:8px}.auth-rule{gap:8px;font-size:13px;padding:2px 0;color:var(--ui-text-muted)}.auth-rule,.auth-rule-dot{display:flex;align-items:center}.auth-rule-dot{width:18px;height:18px;border-radius:50%;flex-shrink:0;justify-content:center;font-size:11px;font-weight:800;background:#fff;color:#cbd5e1;border:1px solid var(--ui-border);transition:all .15s}.auth-rule.ok{color:var(--ui-emerald-text);font-weight:600}.auth-rule.ok .auth-rule-dot{background:var(--ui-emerald-bg);color:var(--ui-emerald);border-color:var(--ui-emerald-border)}.auth-note{background:var(--ui-blue-bg);border:1px solid var(--ui-blue-border);border-radius:10px;padding:11px 13px;margin:0 0 18px;font-size:12.5px;color:#1e40af;line-height:1.5}.auth-note strong{display:block;margin-bottom:3px}.auth-error{margin:4px 0 16px;background:var(--ui-red-bg);border:1px solid var(--ui-red-border);border-radius:10px;padding:11px 13px}.auth-error-row{display:flex;gap:8px;align-items:flex-start}.auth-error-icon{color:var(--ui-red);flex-shrink:0;margin-top:1px;display:flex}.auth-error-msg{font-size:13.5px;line-height:1.45}.auth-error-msg,.auth-error-toggle{color:var(--ui-red-text);font-weight:600}.auth-error-toggle{margin-top:8px;display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;font-family:inherit;font-size:12px;opacity:.8;cursor:pointer}.auth-error-toggle:hover{opacity:1}.auth-error-chev{transition:transform .15s}.auth-error-toggle.open .auth-error-chev{transform:rotate(90deg)}.auth-error-raw{margin:8px 0 0;padding:9px 11px;background:#fff;border:1px solid var(--ui-red-border);border-radius:8px;font-size:11.5px;line-height:1.5;color:#7f1d1d;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@keyframes authDash{to{stroke-dashoffset:-220}}@keyframes authPulse{0%,to{opacity:.35}50%{opacity:1}}.auth-node{animation:authPulse 3s ease-in-out infinite}.auth-node.n2{animation-delay:1s}.auth-node.n3{animation-delay:2s}.auth-route-live{stroke-dasharray:6 10;animation:authDash 4s linear infinite}@media (prefers-reduced-motion:reduce){.auth-node,.auth-route-live{animation:none}}@media (max-width:880px){.auth-wrap{grid-template-columns:1fr}.auth-brand{display:none}.auth-pane{background:var(--ui-bg);align-items:flex-start;padding-top:clamp(32px,8vh,80px)}.auth-card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:14px;padding:24px 20px;box-shadow:var(--ui-shadow-md)}.auth-card-logo{display:flex;align-items:center;gap:10px}.auth-card-logo .auth-wordmark{color:var(--ui-text)}.auth-card-logo .auth-company{color:var(--ui-text-muted)}}.df-pillrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.df-pill-grouplabel{gap:6px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#94a3b8;margin-bottom:6px}.df-pill,.df-pill-grouplabel{display:inline-flex;align-items:center}.df-pill{gap:8px;border-radius:9999px;border:1px solid transparent;padding:6px 12px;font-size:12px;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.df-pill--sm{padding:4px 12px}.df-pill:hover{box-shadow:0 1px 3px rgba(15,23,42,.1)}.df-pill:focus-visible{outline:2px solid #2563eb;outline-offset:1px}.df-pill__count,.df-pill__icon{display:inline-flex;align-items:center}.df-pill__count{justify-content:center;min-width:18px;border-radius:9999px;padding:2px 6px;font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.df-grid-item{min-width:0;display:flex;flex-direction:column;overflow:hidden}.df-grid-item>.ui-card{flex:1 1;min-height:0;display:flex;flex-direction:column;isolation:isolate}.df-grid-item .ui-card-head{flex-shrink:0}.df-panel-body{padding:var(--ui-pad-sm)}.df-grid-fill,.df-panel-body{flex:1 1;min-height:0;overflow-y:auto}.df-grid-overlay{position:absolute;inset:0;z-index:5;cursor:-webkit-grab;cursor:grab;background:transparent}.df-grid-edit{outline:1.5px dashed var(--ui-blue);outline-offset:2px;border-radius:var(--ui-radius)}.dashboard-grid .react-grid-item.react-grid-placeholder{background:var(--ui-blue);opacity:.12;border-radius:var(--ui-radius)}.dashboard-grid .react-resizable-handle{z-index:10}.dashboard-grid .react-grid-item.react-draggable-dragging{z-index:20;cursor:-webkit-grabbing;cursor:grabbing}.dashboard-grid .react-grid-item.react-draggable-dragging .df-grid-overlay{cursor:-webkit-grabbing;cursor:grabbing}