:root{--htb-primary:#0f6e8c;--htb-primary-hover:#0c5a73;--htb-primary-soft:#e6f4f8;--htb-primary-muted:#3d8fa8;--htb-sidebar:#0b2c3d;--htb-sidebar-deep:#071f2c;--htb-accent:#14b8a6;--htb-text:#0f172a;--htb-text-secondary:#475569;--htb-text-muted:#64748b;--htb-border:#e2e8f0;--htb-border-strong:#cbd5e1;--htb-surface:#fff;--htb-surface-muted:#f8fafc;--htb-surface-page:#f1f5f9;--htb-surface-hover:#f0f9fb;--htb-success:#15803d;--htb-success-bg:#dcfce7;--htb-warning:#b45309;--htb-warning-bg:#fef3c7;--htb-danger:#b91c1c;--htb-danger-bg:#fee2e2;--htb-info:#1d4ed8;--htb-info-bg:#dbeafe;--htb-radius-sm:8px;--htb-radius:12px;--htb-radius-lg:16px;--htb-radius-xl:20px;--htb-shadow-sm:0 1px 2px #0f172a0d;--htb-shadow:0 8px 24px #0f172a0f;--htb-shadow-lg:0 20px 48px #0f172a1a;--htb-space-1:4px;--htb-space-2:8px;--htb-space-3:12px;--htb-space-4:16px;--htb-space-5:20px;--htb-space-6:24px;--htb-space-8:32px;--htb-font:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--htb-text-xs:12px;--htb-text-sm:13px;--htb-text-md:14px;--htb-text-lg:16px;--htb-text-xl:20px;--htb-text-2xl:24px;--htb-text-3xl:28px;font-family:var(--htb-font);color:var(--htb-text);background:var(--htb-surface-page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--htb-text);background:var(--htb-surface-page);margin:0;line-height:1.5}h1,h2,h3{color:var(--htb-text);letter-spacing:-.02em;line-height:1.25}h1{font-size:var(--htb-text-3xl);margin:0;font-weight:750}h2{font-size:var(--htb-text-2xl);font-weight:700}h3{font-size:var(--htb-text-xl);font-weight:700}p{line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button{border-radius:var(--htb-radius-sm);background:var(--htb-primary);color:#fff;font-size:var(--htb-text-md);cursor:pointer;border:1px solid #0000;margin:0;padding:11px 16px;font-weight:650;line-height:1.2;transition:background .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s,opacity .14s}button:hover:not(:disabled){background:var(--htb-primary-hover)}button:focus-visible{outline:2px solid var(--htb-primary);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}.secondary-button,button.secondary-button{border-color:var(--htb-border-strong);background:var(--htb-surface);color:var(--htb-primary)}.secondary-button:hover:not(:disabled),button.secondary-button:hover:not(:disabled){background:var(--htb-primary-soft);border-color:var(--htb-primary-muted);color:var(--htb-primary-hover)}.danger-button,button.danger-button{background:var(--htb-danger);color:#fff}.danger-button:hover:not(:disabled),button.danger-button:hover:not(:disabled){background:#991b1b}.ghost-button,button.ghost-button{color:var(--htb-text-secondary);background:0 0;border-color:#0000}.ghost-button:hover:not(:disabled),button.ghost-button:hover:not(:disabled){background:var(--htb-surface-muted);color:var(--htb-text)}form{gap:var(--htb-space-3);display:grid}label{margin-top:var(--htb-space-2);font-size:var(--htb-text-sm);color:var(--htb-text-secondary);font-weight:650}input,select,textarea{border:1px solid var(--htb-border-strong);border-radius:var(--htb-radius-sm);background:var(--htb-surface);width:100%;color:var(--htb-text);outline:none;padding:12px 14px;transition:border-color .14s,box-shadow .14s}textarea{resize:vertical;min-height:96px}input::placeholder,textarea::placeholder{color:#94a3b8}input:focus,select:focus,textarea:focus{border-color:var(--htb-primary);box-shadow:0 0 0 3px #0f6e8c24}.form-message{min-height:22px;color:var(--htb-danger);font-size:var(--htb-text-sm);margin:4px 0 0;line-height:1.5}.form-message.success{color:var(--htb-success)}.form-message.error{color:var(--htb-danger)}.form-card{border:1px solid var(--htb-border);border-radius:var(--htb-radius-lg);background:var(--htb-surface);box-shadow:var(--htb-shadow);padding:var(--htb-space-6)}.form-grid{gap:var(--htb-space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-field{gap:var(--htb-space-2);display:grid}.form-field label{margin:0}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--htb-border-strong);border-radius:var(--htb-radius-sm);background:var(--htb-surface);width:100%;min-height:44px;color:var(--htb-text);font:inherit;outline:none;padding:11px 13px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--htb-primary);box-shadow:0 0 0 3px #0f6e8c24}.form-field-full{grid-column:1/-1}.form-actions{justify-content:flex-end;gap:var(--htb-space-3);margin-top:var(--htb-space-2);flex-wrap:wrap;display:flex}.form-actions button{min-width:140px}.brand{align-items:center;gap:var(--htb-space-4);display:flex}.brand-mark{background:linear-gradient(145deg, var(--htb-primary) 0%, #0a556c 100%);color:#fff;letter-spacing:.02em;border-radius:14px;place-items:center;width:56px;height:56px;font-size:15px;font-weight:800;display:grid;box-shadow:0 8px 20px #0f6e8c47}.eyebrow{color:var(--htb-primary);letter-spacing:.14em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:800}.intro{margin:var(--htb-space-5) 0;color:var(--htb-text-secondary);line-height:1.6;font-size:var(--htb-text-md)}.login-page{min-height:100vh;padding:var(--htb-space-6);background:radial-gradient(circle at 12% 18%,#14b8a61f,#0000 36%),radial-gradient(circle at 88% 8%,#0f6e8c29,#0000 34%),linear-gradient(160deg,#f8fbfd 0%,#eef5f8 48%,#e8eef3 100%);place-items:center;display:grid}.login-card{border-radius:var(--htb-radius-xl);width:min(100%,420px);box-shadow:var(--htb-shadow-lg);background:#fffffffa;border:1px solid #0f6e8c1a;padding:36px 34px 32px}.login-card .brand{margin-bottom:4px}.login-card form{gap:6px}.login-card label{margin-top:10px}.login-card button[type=submit]{width:100%;min-height:46px;margin-top:14px;font-weight:700}.login-footer{text-align:center;color:var(--htb-text-muted);font-size:var(--htb-text-xs);margin:18px 0 0}.loading-page{min-height:100vh;padding:var(--htb-space-6);background:var(--htb-surface-page);place-items:center;display:grid}.loading-card{justify-items:center;gap:var(--htb-space-4);padding:var(--htb-space-8);color:var(--htb-text-muted);border:1px solid var(--htb-border);border-radius:var(--htb-radius-lg);background:var(--htb-surface);box-shadow:var(--htb-shadow-sm);display:grid}.dashboard-page{background:var(--htb-surface-page);min-height:100vh}.app-shell{background:var(--htb-surface-page);min-height:100vh;display:flex}.app-sidebar{background:linear-gradient(180deg, var(--htb-sidebar) 0%, var(--htb-sidebar-deep) 100%);color:#e8eef7;z-index:30;border-right:1px solid #ffffff0a;flex-direction:column;flex-shrink:0;gap:6px;width:252px;height:100vh;padding:16px 12px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;margin-bottom:10px;padding:8px 10px 16px;display:flex}.brand-mark-sm{width:40px;height:40px;box-shadow:none;border-radius:11px;font-size:12px}.sidebar-brand .eyebrow{color:#7eb8cb;font-size:10px}.sidebar-product{color:#fff;font-size:14px;font-weight:700;display:block}.sidebar-nav{gap:14px;display:grid}.nav-group-label{color:#7f9aab;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;padding:0 10px;font-size:10px;font-weight:800}.nav-group-items{gap:1px;display:grid}.nav-item{color:#c5d7e2;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;margin:0;padding:9px 12px;font-size:13.5px;font-weight:600}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.is-active{color:#fff;box-shadow:inset 3px 0 0 var(--htb-accent);background:#14b8a62e}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{border-bottom:1px solid var(--htb-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#fffffff5;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px clamp(16px,3vw,32px);display:flex;position:sticky;top:0}.topbar-left,.topbar-right{align-items:center;gap:12px;min-width:0;display:flex}.topbar-title-block h1{margin:0;font-size:20px;font-weight:700;line-height:1.2}.topbar-eyebrow{display:none}.topbar-user{justify-items:end;gap:1px;max-width:180px;display:grid}.topbar-user-name{color:var(--htb-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:700;overflow:hidden}.topbar-user small{color:var(--htb-text-muted);font-size:11px}.sidebar-toggle,.sidebar-backdrop{display:none}.dashboard-header{border-bottom:1px solid var(--htb-border);background:var(--htb-surface);justify-content:space-between;align-items:center;gap:24px;min-height:80px;padding:16px clamp(20px,4vw,48px);display:flex}.dashboard-brand{align-items:center;gap:14px;display:flex}.dashboard-header h1{font-size:22px}.dashboard-content{width:min(1180px,100% - 40px);margin:0 auto;padding:28px 0 56px}.welcome-card,.module-card,.info-card,.table-card,.error-card,.form-card,.detail-card{border:1px solid var(--htb-border);background:var(--htb-surface);box-shadow:var(--htb-shadow-sm)}.welcome-card{padding:var(--htb-space-6);border-radius:var(--htb-radius-lg)}.welcome-label{color:var(--htb-primary);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:800}.welcome-card h2{margin:0 0 8px;font-size:26px}.welcome-card p{color:var(--htb-text-secondary)}.welcome-card p:last-child{margin:0}.dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.info-card{border-radius:var(--htb-radius);align-content:start;gap:6px;min-height:92px;padding:16px 18px;display:grid}.info-card span{color:var(--htb-text-muted);letter-spacing:.02em;font-size:12px;font-weight:650}.info-card strong{overflow-wrap:anywhere;color:var(--htb-text);letter-spacing:-.02em;font-size:18px;font-weight:750}button.info-card{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:var(--htb-surface);border:1px solid var(--htb-border);box-shadow:var(--htb-shadow-sm);transition:border-color .14s,box-shadow .14s,transform .14s,background .14s}button.info-card:hover{background:var(--htb-surface-hover);box-shadow:var(--htb-shadow);border-color:#0f6e8c59;transform:translateY(-1px)}button.info-card:focus-visible{outline:2px solid var(--htb-primary);outline-offset:2px}.info-card small{color:var(--htb-text-muted);font-size:11px;font-weight:500}.info-card select,.info-card input,.info-card textarea{box-sizing:border-box;width:100%;min-width:0}.info-card textarea{resize:vertical}.info-card ul{margin:0;padding-left:18px}.info-card li{overflow-wrap:anywhere}.module-card{border-radius:var(--htb-radius-lg);margin-top:18px;padding:22px 24px}.module-card h2{margin:0 0 12px;font-size:18px;font-weight:700}.module-card>p{color:var(--htb-text-muted);font-size:var(--htb-text-sm);margin:0 0 14px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.module-grid button{background:var(--htb-primary-soft);min-height:72px;color:var(--htb-primary-hover);cursor:not-allowed;border:1px solid #0f6e8c1f;margin:0;font-weight:700}.module-grid button:not(:disabled){background:var(--htb-primary);color:#fff;cursor:pointer;border-color:#0000}.module-grid button:not(:disabled):hover{background:var(--htb-primary-hover)}.transaction-history-card{grid-column:1/-1}.transaction-history-list{gap:10px;max-height:520px;display:grid;overflow-y:auto}.transaction-history-item{border:1px solid var(--htb-border);border-radius:var(--htb-radius);background:var(--htb-surface-muted);padding:14px}.transaction-history-item p{margin:4px 0}.transaction-history-item small{color:var(--htb-text-muted)}.page-toolbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;display:flex}.page-toolbar h2{margin:2px 0 6px;font-size:24px}.page-toolbar p:last-child{color:var(--htb-text-muted);font-size:var(--htb-text-sm);margin:0}.page-toolbar .welcome-label,.page-toolbar .eyebrow{margin-bottom:2px}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-actions button{white-space:nowrap;margin:0}.table-card,.error-card{border-radius:var(--htb-radius-lg);overflow:hidden}.table-card{padding:0}.table-card>h2{margin:0;padding:16px 18px 0;font-size:16px}.table-card .filters-bar{padding:16px 18px 0}.employee-table-wrapper{overflow-x:auto}.employee-table{border-collapse:collapse;width:100%;min-width:760px}.employee-table th,.employee-table td{border-bottom:1px solid var(--htb-border);text-align:left;vertical-align:middle;font-size:var(--htb-text-md);padding:12px 16px}.employee-table th{background:var(--htb-surface-muted);color:var(--htb-text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:750}.employee-table td{color:var(--htb-text);background:var(--htb-surface)}.employee-table td small{color:var(--htb-text-muted);margin-top:2px;font-size:12px;display:block}.employee-table tbody tr:last-child td{border-bottom:0}.employee-table tbody tr:hover td{background:var(--htb-surface-hover)}.employee-table tbody tr.customer-row{cursor:pointer}.status-badge{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:750;line-height:1.3;display:inline-flex}.status-active,.status-paid,.status-resolved,.status-completed,.status-accepted{background:var(--htb-success-bg);color:var(--htb-success);border-color:#15803d1f}.status-inactive,.status-draft,.status-closed,.status-cancelled,.status-internal,.status-pending,.status-open{color:#475569;background:#f1f5f9;border-color:#4755691a}.status-open{background:var(--htb-info-bg);color:var(--htb-info);border-color:#1d4ed81f}.status-pending,.status-suspended,.status-partially_paid,.status-in_progress,.status-assigned,.status-on_site{background:var(--htb-warning-bg);color:var(--htb-warning);border-color:#b453091f}.status-waiting_customer,.status-waiting_vendor{color:#c2410c;background:#ffedd5;border-color:#c2410c1f}.status-terminated,.status-overdue,.status-blocked,.status-failed{background:var(--htb-danger-bg);color:var(--htb-danger);border-color:#b91c1c1f}.status-issued,.status-public,.status-reserved{background:var(--htb-info-bg);color:var(--htb-info);border-color:#1d4ed81f}.status-void,.status-disabled{color:#7e22ce;background:#f3e8ff;border-color:#7e22ce1f}.priority-low{color:#475569;background:#f1f5f9;border-color:#4755691a}.priority-medium,.priority-normal{background:var(--htb-info-bg);color:var(--htb-info);border-color:#1d4ed81f}.priority-high{background:var(--htb-warning-bg);color:var(--htb-warning);border-color:#b453091f}.priority-urgent{background:var(--htb-danger-bg);color:var(--htb-danger);border-color:#b91c1c1f}.filters-bar{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:14px;display:flex}.filters-bar .form-field{min-width:150px;margin:0}.filters-bar .form-field label{color:var(--htb-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.filters-bar input,.filters-bar select{width:100%;min-height:40px}.modal-backdrop,.modal{z-index:50;background:#0f172a7a;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{z-index:1000;place-items:center;display:grid}.modal-card{background:var(--htb-surface);border:1px solid var(--htb-border);border-radius:var(--htb-radius-lg);width:min(520px,100%);max-height:90vh;box-shadow:var(--htb-shadow-lg);padding:22px;overflow:auto}.modal-card h2,.modal-card h3{margin-top:0;margin-bottom:12px}.line-items-editor{gap:12px;display:grid}.line-item-row{grid-template-columns:2fr .8fr 1fr auto;align-items:end;gap:10px;display:grid}.empty-table-message{font-size:var(--htb-text-sm);color:var(--htb-text-muted)!important;text-align:center!important;padding:36px!important}.error-card{border-radius:var(--htb-radius-lg);padding:28px}.error-card h2{margin-top:0}.error-card p{color:var(--htb-text-muted)}.detail-card{border-radius:var(--htb-radius-lg);padding:22px}.employee-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.employee-detail-header h3{margin:0 0 8px;font-size:22px}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.detail-item{border-radius:var(--htb-radius);background:var(--htb-surface-muted);border:1px solid #0000;gap:5px;min-width:0;padding:14px 16px;display:grid}.detail-item span{color:var(--htb-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.detail-item strong{overflow-wrap:anywhere;color:var(--htb-text);font-size:14px;font-weight:650}.detail-item small{color:var(--htb-text-muted);font-size:12px}.hidden{display:none}.inventory-page .inventory-list-card{margin-bottom:16px}.inventory-item-row{cursor:pointer}.inventory-item-row.is-selected td{background:var(--htb-primary-soft)!important}.inventory-item-row.is-low-stock .text-danger,.text-danger{color:var(--htb-danger);font-weight:700}.inventory-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.inventory-detail-header h2{margin:0 0 6px;font-size:20px}.inventory-detail-card h3{text-transform:uppercase;letter-spacing:.04em;color:var(--htb-text-muted);margin:18px 0 10px;font-size:14px}.inventory-total-stock{min-width:120px}.inventory-compact-table{min-width:0!important}.inventory-meta-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.inventory-chip-list{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.inventory-chip-list li{font-size:14px}.inventory-chip{background:var(--htb-primary-soft);color:var(--htb-primary-hover);border-radius:999px;margin-right:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.inventory-modal-card{width:min(560px,100%)}.inventory-modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.inventory-modal-header h2{margin:0}.status-in{background:var(--htb-success-bg);color:var(--htb-success)}.status-out{background:var(--htb-danger-bg);color:var(--htb-danger)}.status-adjustment{background:var(--htb-warning-bg);color:var(--htb-warning)}@media (width<=720px){.inventory-meta-grid,.inventory-detail-header{flex-direction:column;grid-template-columns:1fr}}@media (width<=960px){.app-sidebar{transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:12px 0 40px #08142859}.app-sidebar.is-open{transform:translate(0)}.sidebar-toggle{display:inline-flex}.sidebar-backdrop.is-open{z-index:25;background:#0a122073;display:block;position:fixed;inset:0}.topbar-user{display:none}.dashboard-grid,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.dashboard-grid,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.form-grid,.line-item-row{grid-template-columns:1fr}.form-field-full{grid-column:auto}.form-card{padding:18px}.page-toolbar{flex-direction:column;align-items:stretch}.toolbar-actions{flex-direction:column-reverse;align-items:stretch}.toolbar-actions button{width:100%}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.app-topbar{padding:10px 12px}.topbar-title-block h1{font-size:17px}.dashboard-content{width:calc(100% - 24px);padding-top:18px;padding-bottom:40px}.login-card{border-radius:var(--htb-radius-lg);padding:26px 20px}h1{font-size:24px}}@media (width<=520px){.dashboard-header{align-items:flex-start;padding:14px}.dashboard-brand .brand-mark{width:44px;height:44px}.dashboard-grid,.module-grid,.detail-grid{grid-template-columns:1fr}.welcome-card,.module-card,.detail-card{padding:18px}.employee-detail-header{flex-direction:column;align-items:flex-start}}.route-waypoints-section{border-top:1px solid var(--htb-border);margin-top:8px;padding-top:12px}.route-waypoints-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.route-waypoints-header h3{margin:0 0 4px;font-size:1rem}.waypoint-table input{width:100%;min-width:0}.waypoint-actions{white-space:nowrap}.waypoint-seq{color:var(--htb-text-muted);font-weight:700}.route-path-map-wrap{margin-top:12px}.route-path-map-shell{background:var(--htb-surface);border-radius:var(--htb-radius);border:1px solid var(--htb-border);flex-direction:column;gap:8px;padding:10px;display:flex;position:relative}.route-path-map-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.route-path-geo-status{color:var(--htb-text-secondary);margin:0;font-size:13px}.route-path-geo-status.is-error{color:var(--htb-danger)}.route-path-map{border-radius:var(--htb-radius-sm);border:1px solid var(--htb-border);background:var(--htb-surface-muted);z-index:0;flex:1;height:280px;min-height:240px}:-webkit-any(.route-path-map-shell:fullscreen,.route-path-map-shell:-webkit-full-screen,.route-path-map-shell.is-css-fullscreen){z-index:10000;box-sizing:border-box;background:var(--htb-surface-page);border-radius:0;width:100%;height:100%;max-height:100dvh;margin:0;padding:12px;position:fixed;inset:0}:is(.route-path-map-shell:fullscreen,.route-path-map-shell:fullscreen,.route-path-map-shell.is-css-fullscreen){z-index:10000;box-sizing:border-box;background:var(--htb-surface-page);border-radius:0;width:100%;height:100%;max-height:100dvh;margin:0;padding:12px;position:fixed;inset:0}:-webkit-any(.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell:-webkit-full-screen .route-path-map,.route-path-map-shell.is-css-fullscreen .route-path-map){height:calc(100% - 56px);min-height:0}:is(.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell.is-css-fullscreen .route-path-map){height:calc(100% - 56px);min-height:0}@media (width<=960px){.route-path-map-toolbar .secondary-button{flex:auto;min-height:40px}:-webkit-any(.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell:-webkit-full-screen .route-path-map,.route-path-map-shell.is-css-fullscreen .route-path-map){height:calc(100% - 96px)}:is(.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell:fullscreen .route-path-map,.route-path-map-shell.is-css-fullscreen .route-path-map){height:calc(100% - 96px)}}.route-quick-path{background:var(--htb-primary-soft);border:1px solid #c5e4ee;margin:0 0 14px;padding:14px 16px}.route-quick-path-grid{margin-top:8px}.route-quick-path-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.route-quick-path .form-message{margin:8px 0 0}.route-quick-path .form-message.error{color:var(--htb-danger)}.network-map-legend{border-top:1px solid var(--htb-border);margin-top:auto;padding-top:12px}.network-map-legend ul{color:var(--htb-text-secondary);flex-direction:column;gap:6px;margin:6px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.network-map-swatch{vertical-align:middle;border-radius:2px;width:18px;height:4px;margin-right:8px;display:inline-block}.network-map-page{flex-direction:column;gap:16px;display:flex}.network-map-shell{background:var(--htb-surface-page);border-radius:var(--htb-radius);flex-direction:column;gap:8px;display:flex;position:relative}.network-map-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.network-map-geo-status{color:var(--htb-text-secondary);margin:0;font-size:13px}.network-map-geo-status.is-error{color:var(--htb-danger)}.network-map-layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:stretch;gap:16px;min-height:0;display:grid}.network-map-canvas{border-radius:var(--htb-radius);border:1px solid var(--htb-border);background:var(--htb-surface-muted);z-index:0;height:min(70vh,720px);min-height:520px;overflow:hidden}:-webkit-any(.network-map-shell:fullscreen,.network-map-shell:-webkit-full-screen,.network-map-shell.is-css-fullscreen){z-index:10000;background:var(--htb-surface-page);box-sizing:border-box;border-radius:0;width:100%;height:100%;max-height:100dvh;margin:0;padding:12px;position:fixed;inset:0}:is(.network-map-shell:fullscreen,.network-map-shell:fullscreen,.network-map-shell.is-css-fullscreen){z-index:10000;background:var(--htb-surface-page);box-sizing:border-box;border-radius:0;width:100%;height:100%;max-height:100dvh;margin:0;padding:12px;position:fixed;inset:0}:-webkit-any(.network-map-shell:fullscreen .network-map-layout,.network-map-shell:-webkit-full-screen .network-map-layout,.network-map-shell.is-css-fullscreen .network-map-layout){flex:1;height:calc(100% - 52px);min-height:0}:is(.network-map-shell:fullscreen .network-map-layout,.network-map-shell:fullscreen .network-map-layout,.network-map-shell.is-css-fullscreen .network-map-layout){flex:1;height:calc(100% - 52px);min-height:0}:-webkit-any(.network-map-shell:fullscreen .network-map-canvas,.network-map-shell:-webkit-full-screen .network-map-canvas,.network-map-shell.is-css-fullscreen .network-map-canvas){border-radius:var(--htb-radius-sm);height:100%;min-height:0}:is(.network-map-shell:fullscreen .network-map-canvas,.network-map-shell:fullscreen .network-map-canvas,.network-map-shell.is-css-fullscreen .network-map-canvas){border-radius:var(--htb-radius-sm);height:100%;min-height:0}:-webkit-any(.network-map-shell:fullscreen .network-map-panel,.network-map-shell:-webkit-full-screen .network-map-panel,.network-map-shell.is-css-fullscreen .network-map-panel){max-height:100%}:is(.network-map-shell:fullscreen .network-map-panel,.network-map-shell:fullscreen .network-map-panel,.network-map-shell.is-css-fullscreen .network-map-panel){max-height:100%}body.network-map-no-scroll{overflow:hidden}.network-map-user-marker{background:0 0;border:none}.network-map-user-dot{background:#2563eb;border:3px solid #fff;border-radius:999px;width:18px;height:18px;display:block;box-shadow:0 0 0 2px #2563eb59,0 2px 8px #0f172a4d}.network-map-user-swatch{vertical-align:middle;background:#2563eb;border:2px solid #fff;border-radius:999px;width:12px;height:12px;margin-right:8px;display:inline-block;box-shadow:0 0 0 1px #2563eb}.network-map-panel{flex-direction:column;gap:8px;max-height:min(70vh,720px);display:flex;overflow:auto}.network-map-panel h2{margin:0}.network-map-panel-empty{color:var(--htb-text-muted);margin:0}.network-map-panel-grid{margin-top:8px}.network-map-info{max-width:220px;color:var(--htb-text);font-family:system-ui,sans-serif;font-size:13px;line-height:1.45}.network-map-info strong{color:var(--htb-primary);font-size:14px}.network-map-popup-link{border-radius:var(--htb-radius-sm);background:var(--htb-primary);color:#fff;cursor:pointer;border:none;align-items:center;margin-top:8px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.network-map-popup-link:hover{background:var(--htb-primary-hover)}.leaflet-div-icon.network-map-marker{background:0 0;border:none}.network-map-marker-label{color:#fff;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;line-height:1;display:flex;box-shadow:0 2px 10px #0f172a47}.network-map-marker.is-ok .network-map-marker-label{background:var(--htb-primary)}.network-map-marker.is-low .network-map-marker-label{background:var(--htb-warning)}.network-map-marker.is-empty .network-map-marker-label{background:var(--htb-danger)}.network-map-leaflet-popup .leaflet-popup-content-wrapper{border-radius:var(--htb-radius);border:1px solid var(--htb-border);padding:2px 4px;box-shadow:0 8px 24px #0f172a1f}.network-map-leaflet-popup .leaflet-popup-content{margin:10px 12px}.network-map-leaflet-popup .leaflet-popup-tip{box-shadow:none}.leaflet-container{font-family:inherit;font-size:13px}@media (width<=960px){.network-map-layout{grid-template-columns:1fr}.network-map-canvas{height:420px;min-height:360px}.network-map-panel{max-height:none}:-webkit-any(.network-map-shell:fullscreen .network-map-layout,.network-map-shell:-webkit-full-screen .network-map-layout,.network-map-shell.is-css-fullscreen .network-map-layout){grid-template-columns:1fr;overflow:auto}:is(.network-map-shell:fullscreen .network-map-layout,.network-map-shell:fullscreen .network-map-layout,.network-map-shell.is-css-fullscreen .network-map-layout){grid-template-columns:1fr;overflow:auto}:-webkit-any(.network-map-shell:fullscreen .network-map-canvas,.network-map-shell:-webkit-full-screen .network-map-canvas,.network-map-shell.is-css-fullscreen .network-map-canvas){height:min(55dvh,480px);min-height:280px}:is(.network-map-shell:fullscreen .network-map-canvas,.network-map-shell:fullscreen .network-map-canvas,.network-map-shell.is-css-fullscreen .network-map-canvas){height:min(55dvh,480px);min-height:280px}.network-map-toolbar .secondary-button{flex:auto;min-height:40px}}
