@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{--ink:#e8eee8;--muted:#a7b5ad;--faint:#718078;--paper:#090d0c;--panel:#121918;--line:#26302d;--green:#6bc795;--green-soft:#183025;--lime:#d7ee65;--orange:#f39b68;--orange-soft:#4a3026;--shadow-sm:0 1px 2px #0003;--shadow-md:0 8px 24px -12px #00000080;--shadow-lg:0 24px 48px -20px #0009;--radius:18px;--radius-sm:12px}[data-theme=light]{--ink:#17211f;--muted:#66736e;--faint:#97a199;--paper:#eef1e8;--panel:#fff;--line:#e2e6db;--green:#1f7a5a;--green-soft:#e5f4db;--orange:#ef8d56;--orange-soft:#fdead9;--shadow-sm:0 1px 2px #17211f0d;--shadow-md:0 8px 24px -12px #17211f2e;--shadow-lg:0 24px 48px -20px #17211f38}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(1100px 480px at 85% -10%, #183b2c55, transparent), radial-gradient(900px 420px at -10% 10%, #102d2850, transparent), var(--paper);margin:0;font-family:Manrope,sans-serif}[data-theme=light] body{background:radial-gradient(1100px 480px at 85% -10%, #ddeecb66, transparent), radial-gradient(900px 420px at -10% 10%, #cfe6e066, transparent), var(--paper)}button{font:inherit}.shell{max-width:1440px;margin:auto;padding:0 42px 64px}.topbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb, var(--paper) 82%, transparent);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:84px;display:flex;position:sticky;top:0}.topbar-actions{align-items:center;gap:10px;display:flex}.topbar-left{align-items:center;gap:28px;display:flex}.nav-tabs{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;gap:4px;padding:4px;display:flex}.nav-tab{color:var(--muted);border-radius:999px;padding:7px 14px;font:12px DM Mono,monospace;text-decoration:none;transition:background .15s,color .15s}.nav-tab:hover{color:var(--ink)}.nav-tab.active{background:var(--green-soft);color:var(--green)}.theme-toggle{cursor:pointer;width:38px;height:38px;color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;font-size:18px;transition:transform .15s,background .15s,border-color .15s;display:grid}.theme-toggle:hover{background:var(--green-soft);border-color:var(--green);transform:translateY(-1px)}.brand{letter-spacing:-.04em;align-items:center;gap:12px;font-size:19px;font-weight:800;display:flex}.brand-mark{color:#eefbe6;background:linear-gradient(145deg, var(--green), #14503c);letter-spacing:0;width:36px;height:36px;box-shadow:var(--shadow-sm);border-radius:11px;place-items:center;font:600 11px DM Mono,monospace;display:grid}.connection{color:var(--muted);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font:12px DM Mono,monospace;display:flex}.status-dot{background:#5dcc83;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #245138}[data-theme=light] .status-dot{background:#3fae63;box-shadow:0 0 0 4px #e1efd1}.separator{background:var(--line);width:1px;height:14px;margin:0 5px}.intro{justify-content:space-between;align-items:end;gap:24px;padding:60px 0 40px;display:flex}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font:11px DM Mono,monospace}.intro h1{letter-spacing:-.055em;max-width:720px;margin:0;font-size:clamp(34px,4.6vw,62px);line-height:1}.lede{color:var(--muted);max-width:520px;margin:20px 0 0;font-size:15px;line-height:1.65}.button{cursor:pointer;background:linear-gradient(180deg, #e2f57d, var(--lime));color:var(--ink);box-shadow:var(--shadow-sm);border:0;border-radius:12px;padding:14px 20px;font-weight:800;transition:transform .15s,box-shadow .15s}.button:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.overview-row{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:22px;display:grid}.stats-box,.vehicle-box{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.stats-box{background:var(--line);grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:1px;display:grid;overflow:hidden}.stats-box>div{background:var(--panel);flex-direction:column;justify-content:center;gap:6px;padding:14px 18px;display:flex}.stats-box span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font:10px DM Mono,monospace}.stats-box strong{letter-spacing:-.04em;font-size:22px;line-height:1}.stats-box strong.active{color:var(--green)}.vehicle-details span{color:var(--muted);font:11px DM Mono,monospace;display:block}.vehicle-box{flex-direction:column;gap:14px;padding:18px 20px;display:flex}.vehicle-box-head{justify-content:space-between;align-items:start;display:flex}.vehicle-box-head .eyebrow{margin-bottom:6px}.vehicle-box-head h2{letter-spacing:-.04em;margin:0;font-size:18px}.vehicle-box-empty{color:var(--muted);font:11px DM Mono,monospace}.workspace{grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);gap:22px;display:grid}.workspace-main{flex-direction:column;gap:22px;min-width:0;display:flex}.map-panel,.routes-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.panel-head{justify-content:space-between;align-items:start;padding:22px 24px 16px;display:flex}.panel-head .eyebrow{margin-bottom:6px}.panel-head h2{letter-spacing:-.04em;margin:0;font-size:18px}.panel-actions{align-items:center;gap:10px;display:flex}.live-pill{background:var(--green-soft);color:var(--green);border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font:10px DM Mono,monospace;display:inline-flex}.live-pill:before{content:"";background:var(--green);border-radius:50%;width:6px;height:6px;animation:1.8s infinite pulse-dot}.live-pill.parked{color:var(--muted);background:#7f7f7f1a}.live-pill.parked:before{background:var(--faint);animation:none}.reset-button{cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:7px 13px;font:10px DM Mono,monospace;transition:background .15s,border-color .15s}.reset-button:hover{background:var(--orange-soft);border-color:var(--orange);color:var(--orange)}.reset-button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.route-delete-form{color:var(--orange);flex-wrap:wrap;align-items:center;gap:8px;margin:0 24px 16px;font:11px DM Mono,monospace;display:flex}.route-delete-form span{margin-right:4px}.map-canvas{border-radius:0 0 var(--radius) var(--radius);background:#293631;height:460px;position:relative;overflow:hidden}[data-theme=light] .map-canvas{background:#e7ebe2}.leaflet-canvas{width:100%;height:100%}.dark-map .leaflet-tile{filter:brightness(.62)invert()hue-rotate(180deg)saturate(.72)}.map-empty{height:100%;color:var(--muted);text-align:center;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.map-empty-mark{background:var(--green-soft);width:56px;height:56px;color:var(--green);border-radius:16px;place-items:center;font:11px DM Mono,monospace;display:grid}.map-empty strong{color:var(--ink);letter-spacing:-.02em;font-size:17px}.map-empty span:last-child{max-width:300px;color:var(--faint);font:11px/1.6 DM Mono,monospace}.map-car-icon{background:0 0;border:none}.map-car-pulse{border:1px solid var(--orange);border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;animation:2s infinite pulse;position:absolute;top:50%;left:50%}.map-car-rotor{filter:drop-shadow(0 3px 6px #17211f33);width:30px;height:48px;margin:-25px 0 0 -15px;transition:transform .3s;position:absolute;top:50%;left:50%}.routes-panel{contain:size;flex-direction:column;display:flex}.routes-panel .panel-head{align-items:center}.online-label{color:var(--green);background:var(--green-soft);border-radius:999px;align-items:center;gap:5px;margin-top:2px;padding:6px 10px;font:10px DM Mono,monospace;display:inline-flex}.online-label:before{content:"";background:var(--green);border-radius:50%;width:6px;height:6px}.online-label.parked{color:var(--muted);background:#7f7f7f1a}.online-label.parked:before{background:var(--faint)}.vehicle-details{border-top:1px dashed var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;padding-top:14px;display:grid}.vehicle-details strong{letter-spacing:-.01em;margin-top:6px;font-size:13px;display:block}.updated{color:var(--faint);margin:20px 22px 22px;font:10px DM Mono,monospace}.empty-note{color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius-sm);background:#f6f7f1;margin:22px;padding:18px;font-size:12.5px;line-height:1.7}[data-theme=dark] .empty-note{background:#101716}.empty-note code{color:var(--green);font-family:DM Mono,monospace}.routes-section{flex-direction:column;flex:1;min-height:0;margin:0 22px 22px;display:flex}.routes-actions{gap:6px;display:flex}.routes-action-btn{cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;padding:5px 10px;font:10px DM Mono,monospace;transition:background .15s,border-color .15s}.routes-action-btn:hover{background:var(--green-soft);border-color:var(--green);color:var(--green)}.routes-summary{border:1px solid var(--green);border-radius:var(--radius-sm);background:var(--green-soft);margin-bottom:14px;padding:12px}.routes-summary-title{color:var(--ink);margin-bottom:8px;font-size:12px;font-weight:600}.routes-summary-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.routes-summary-stats span{color:var(--green);white-space:nowrap;text-overflow:ellipsis;background:#6bc7951a;border-radius:4px;padding:5px 8px;font:11px/1.4 DM Mono,monospace;display:block;overflow:hidden}.routes-summary-stats small{color:var(--muted);font-size:9px;display:block}.routes-summary.empty{border-color:var(--line);background:0 0}.routes-summary.empty .routes-summary-title{color:var(--muted)}.routes-summary.empty .routes-summary-stats span{color:var(--faint);background:#7f7f7f14}.routes-table{flex-direction:column;flex:1;gap:10px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.route-group{flex-direction:column;display:flex}.route-group-header{cursor:pointer;background:var(--panel);width:100%;color:var(--ink);text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.route-group-header:hover{background:var(--green-soft);border-color:var(--green)}.route-group-chevron{width:12px;color:var(--green);font-size:12px}.route-group-date{flex:1;font-size:13px;font-weight:600}.route-group-count{color:var(--green);background:#6bc7951a;border-radius:999px;padding:3px 8px;font:10px DM Mono,monospace}.route-group-items{flex-direction:column;gap:8px;margin:8px 0 0 12px;display:flex}.route-item{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#131a18;align-items:flex-start;gap:12px;padding:12px;transition:background .15s,border-color .15s;display:flex}[data-theme=light] .route-item{background:#f9faf8}.route-item:hover{border-color:var(--green);background:#1a2420}[data-theme=light] .route-item:hover{border-color:var(--green);background:#f5f7f1}.route-checkbox-col{flex-shrink:0;align-items:center;gap:8px;padding-top:2px;display:flex}.route-checkbox-col input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--green)}.route-color-indicator{width:16px;height:16px;box-shadow:var(--shadow-sm);border:1px solid #fff3;border-radius:3px}.route-info{flex:1;min-width:0}.route-title{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:600}.route-stats{color:var(--muted);flex-wrap:wrap;gap:10px;margin-bottom:6px;font-family:DM Mono,monospace;font-size:11px;display:flex}.route-stats span{color:var(--green);background:#6bc7951a;border-radius:4px;padding:3px 8px;display:inline-block}.route-time{color:var(--faint);font-family:DM Mono,monospace;font-size:10px;line-height:1.4}.routes-empty{color:var(--muted);text-align:center;border-radius:var(--radius-sm);background:#0003;padding:20px;font-size:12px}[data-theme=light] .routes-empty{background:#00000008}.control-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.control-empty{min-height:360px;color:var(--muted);text-align:center;border-top:1px dashed var(--line);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.control-empty strong{color:var(--ink);letter-spacing:-.02em;font-size:17px}.control-empty span:last-child{max-width:320px;color:var(--faint);font:11px/1.6 DM Mono,monospace}.media-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.media-panel .panel-head{align-items:center}.media-upload-controls,.media-unlock-form{align-items:center;gap:8px;display:flex}.media-tile-wrap{position:relative}.media-tile-wrap .media-tile{width:100%}.media-tile-delete{cursor:pointer;color:#fff;background:#0009;border:0;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;transition:background .15s;display:grid;position:absolute;top:8px;right:8px}.media-tile-delete:hover{background:var(--orange)}.media-key-input{border:1px solid var(--line);background:var(--paper);width:150px;color:var(--ink);border-radius:999px;padding:8px 12px;font:11px DM Mono,monospace}.media-key-input:focus{border-color:var(--green);outline:none}.media-upload-button{cursor:pointer;color:#0d1a14;background:var(--green);border-radius:999px;padding:8px 16px;font:600 12px Manrope,sans-serif;transition:transform .15s}.media-upload-button:hover{transform:translateY(-1px)}.media-upload-button.disabled{opacity:.5;cursor:progress}.media-panel.dragging{border-color:var(--green)}.media-dropzone{text-align:center;border:2px dashed var(--line);border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);justify-items:center;gap:6px;margin:0 24px 16px;padding:28px 20px;transition:border-color .15s,background .15s;display:grid}.media-dropzone:hover,.media-dropzone.active{border-color:var(--green);background:var(--green-soft)}.media-dropzone.disabled{opacity:.5;cursor:progress}.media-dropzone strong{color:var(--ink);font-size:14px}.media-dropzone span:last-child{color:var(--faint);font:10px DM Mono,monospace}.media-dropzone-icon{background:var(--green-soft);width:36px;height:36px;color:var(--green);border-radius:50%;place-items:center;font-size:18px;display:grid}.media-progress{margin:0 24px 16px}.media-progress-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font:11px DM Mono,monospace;overflow:hidden}.media-progress-track{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.media-progress-bar{background:var(--green);height:100%;transition:width .2s}.media-message{border-radius:var(--radius-sm);color:var(--green);background:var(--green-soft);margin:0 24px 16px;padding:10px 14px;font:11px DM Mono,monospace}.media-message.error{color:var(--orange);background:var(--orange-soft)}.media-grid{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;padding:16px 24px 24px;display:grid}.media-tile{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#101716;padding:0;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.media-tile:hover{border-color:var(--green);transform:translateY(-2px)}.media-tile img,.media-tile video{object-fit:cover;width:100%;height:100%;display:block}.media-play{color:#fff;background:#0000008c;border-radius:50%;place-items:center;width:72px;height:72px;font-size:26px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.media-tile-meta{text-align:left;color:#e8eee8;background:linear-gradient(#0000,#000000b3);padding:24px 14px 10px;font:12px DM Mono,monospace;position:absolute;bottom:0;left:0;right:0}.media-viewer{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.media-viewer-content{flex-direction:column;gap:12px;max-width:min(1200px,100%);max-height:100%;display:flex}.media-viewer-content img,.media-viewer-content video{object-fit:contain;border-radius:var(--radius-sm);background:#000;max-width:100%;max-height:calc(100vh - 120px)}.media-viewer-bar{color:#e8eee8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font:11px DM Mono,monospace;display:flex}.media-viewer-bar a{text-decoration:none}.setup-shell{align-content:start;justify-items:center;gap:22px;min-height:100vh;padding:48px 18px;display:grid}.setup-brand{letter-spacing:-.03em;align-items:center;gap:12px;font-size:18px;font-weight:800;display:flex}.setup-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(640px,100%);box-shadow:var(--shadow-md);gap:16px;padding:28px;display:grid}.setup-card h1{letter-spacing:-.04em;margin:4px 0 0;font-size:28px}.setup-lead{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.setup-subhead{margin:8px 0 -6px}.setup-fields{border:0;gap:14px;min-width:0;margin:0;padding:0;display:grid}.setup-fields:disabled{opacity:.4}.setup-skip{border:1px dashed var(--line);border-radius:var(--radius-sm);padding:10px 12px}.setup-code{letter-spacing:.12em;text-transform:uppercase;font-size:18px}.setup-inline-button{justify-self:start}.setup-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:6px;display:flex}.setup-progress{gap:6px;display:grid}.setup-progress-label{color:var(--muted);justify-content:space-between;font:11px DM Mono,monospace;display:flex}.setup-progress-track{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.setup-progress-bar{background:linear-gradient(90deg, var(--green), var(--lime));border-radius:999px;height:100%;transition:width .35s}.setup-tasks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.setup-task{grid-template-columns:28px 1fr;align-items:start;gap:10px;font-size:14px;display:grid}.setup-task>div{gap:6px;display:grid}.setup-task-icon{background:var(--line);width:24px;height:24px;color:var(--muted);border-radius:50%;place-items:center;font:12px DM Mono,monospace;display:grid}.setup-task.done .setup-task-icon{background:var(--green-soft);color:var(--green)}.setup-task.running .setup-task-icon{background:var(--green-soft);color:var(--green);animation:1s linear infinite setup-spin}.setup-task.error .setup-task-icon{background:var(--orange-soft);color:var(--orange)}.setup-task.skipped strong{color:var(--muted);font-weight:500}@keyframes setup-spin{to{transform:rotate(360deg)}}.admin-tabs{width:fit-content;margin-bottom:22px}.overview-copy{align-items:center;gap:8px;display:flex}.overview-copy .pbx-input{flex:1;min-width:0}.overview-list{margin:0;padding:0;font-size:13px;list-style:none}.overview-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:7px 0;display:flex}.overview-list li:last-child{border-bottom:0}.overview-list li span:first-child{color:var(--muted)}.overview-item{margin:0;font-size:13px;line-height:1.6}.overview-item code,.pbx-hint code{color:var(--green);font:12px DM Mono,monospace}.overview-command{gap:8px;padding:0 24px 24px;display:grid}.overview-command textarea{resize:vertical;font-size:11px}.overview-command button{justify-self:start}.mikrotik-setup{gap:12px;display:grid}.overview-link{justify-self:start;width:fit-content;text-decoration:none}.mikrotik-row{grid-template-columns:2fr 1fr;gap:12px;display:grid}.mikrotik-code{resize:vertical;white-space:pre;font-size:11px;line-height:1.5}.pbx-mode button:disabled{opacity:.4;cursor:not-allowed}.pbx-layout{flex-direction:column;gap:22px;display:flex}.pbx-message{margin:0 0 22px}.pbx-status{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;padding:16px 24px 24px;display:grid}.pbx-status pre{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--muted);margin:0;padding:12px;font:11px/1.5 DM Mono,monospace;overflow-x:auto}.pbx-sections{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;padding:16px 24px 24px;display:grid}.pbx-section{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:12px;margin:0;padding:16px;display:flex}.pbx-section legend{padding:0 6px;font-size:13px;font-weight:700}.pbx-section:disabled{opacity:.45}.pbx-tag{background:var(--line);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font:9px DM Mono,monospace}.pbx-mode-row{flex-wrap:wrap;align-items:center;gap:16px;padding:0 24px 16px;display:flex}.pbx-mode{border:1px solid var(--line);background:var(--paper);border-radius:999px;gap:4px;padding:4px;display:flex}.pbx-mode button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:7px 16px;font:12px DM Mono,monospace;transition:background .15s,color .15s}.pbx-mode button.active{background:var(--green-soft);color:var(--green)}.pbx-local-steps{border:1px dashed var(--green);border-radius:var(--radius-sm);background:var(--green-soft);margin:0 24px 16px;padding:14px 18px 14px 36px;font-size:13px;line-height:1.7}.pbx-local-steps code{color:var(--green);font:12px DM Mono,monospace}.pbx-field{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;gap:6px;font:10px DM Mono,monospace;display:flex}.pbx-input{border:1px solid var(--line);background:var(--paper);color:var(--ink);text-transform:none;letter-spacing:0;border-radius:10px;padding:9px 12px;font:12px DM Mono,monospace}.pbx-input:focus{border-color:var(--green);outline:none}.pbx-check{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.pbx-check input{width:16px;height:16px;accent-color:var(--green)}.pbx-hint{color:var(--faint);margin:0;font:11px/1.6 DM Mono,monospace}.pbx-warning{color:var(--orange);background:var(--orange-soft);border-radius:10px;margin:0;padding:8px 12px;font:11px/1.6 DM Mono,monospace}.pbx-section input:disabled{opacity:.5;cursor:not-allowed}.pbx-check:has(input:disabled){opacity:.5;cursor:not-allowed}.pbx-moh-empty{border-top:1px dashed var(--line);padding:16px 24px 24px}.pbx-moh-list{border-top:1px dashed var(--line);margin:0;padding:8px 24px 20px;list-style:none}.pbx-moh-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.pbx-moh-list li:last-child{border-bottom:0}.pbx-greeting{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.pbx-greeting span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.routes-action-btn.disabled{opacity:.5;cursor:progress}.pbx-calls{border-top:1px dashed var(--line);padding:12px 24px 20px;overflow-x:auto}.pbx-call-group{margin:6px 0}.pbx-call-group .pbx-call-group{margin-left:16px}.pbx-call-group>summary{cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.pbx-call-group>summary:hover{background:var(--green-soft);border-color:var(--green)}.pbx-call-group>table{width:calc(100% - 16px);margin:4px 0 8px 16px}.pbx-calls table{border-collapse:collapse;width:100%;font:12px DM Mono,monospace}.pbx-calls th{text-align:left;color:var(--faint);text-transform:uppercase;letter-spacing:.08em;padding:14px 10px 8px 0;font-size:10px;font-weight:400}.pbx-calls td{border-top:1px solid var(--line);white-space:nowrap;padding:9px 10px 9px 0}.pbx-result.answered,.pbx-result.party{color:var(--green)}.pbx-result.missed,.pbx-result.busy,.pbx-result.failed{color:var(--orange)}.live-pill.call{background:var(--orange-soft);color:var(--orange)}.live-pill.call:before{background:var(--orange)}button.media-upload-button:disabled{opacity:.5;cursor:progress}@keyframes pulse{0%,to{opacity:.7;transform:scale(.6)}50%{opacity:0;transform:scale(1.8)}}@keyframes pulse-dot{0%,to{box-shadow:0 0 #6bc79555}50%{box-shadow:0 0 0 4px #6bc79500}}@media (max-width:800px){.shell{padding:0 18px 40px}.topbar{height:68px}.topbar-left{gap:12px}.brand>span:last-child{display:none}.connection{padding:8px 10px;font-size:0}.connection .status-dot{margin-right:0}.intro{padding:40px 0 32px;display:block}.intro h1{font-size:42px}.button{margin-top:24px}.overview-row{grid-template-columns:1fr}.media-panel .panel-head{flex-direction:column;align-items:stretch;gap:12px}.media-key-input{flex:1;width:auto}.media-grid{grid-template-columns:1fr;gap:12px;padding:12px}.workspace{grid-template-columns:1fr}.map-canvas{height:320px}.vehicle-details{grid-template-columns:1fr}.routes-panel{contain:none}.routes-table{max-height:300px}}
