:root{--bg-color:#0b0f19;--panel-bg:#151c2cd9;--panel-border:#ffffff14;--panel-border-hover:#ffffff2e;--text-main:#f1f5f9;--text-muted:#94a3b8;--text-dim:#64748b;--accent-primary:#38bdf8;--accent-secondary:#818cf8;--accent-gold:#fbbf24;--accent-alert:#f43f5e;--accent-success:#34d399;--terrain-flat-fill:#2d5a3f;--terrain-flat-stroke:#3b7553;--terrain-road-smooth-fill:#d1d5db;--terrain-road-smooth-stroke:#f3f4f6;--terrain-road-busy-fill:#6b7280;--terrain-road-busy-stroke:#9ca3af;--terrain-road-jammed-fill:#111827;--terrain-road-jammed-stroke:#374151;--terrain-mountain-fill:#714a38;--terrain-mountain-stroke:#925f48;--terrain-pond-fill:#38bdf8;--terrain-pond-stroke:#7dd3fc;--color-brand-0:#ff3b30;--color-brand-1:#007aff;--color-brand-2:#34c759;--color-brand-3:#af52de;--color-brand-4:#ff9500;--color-brand-5:#5ac8fa;--color-brand-6:#ff2d55;--color-brand-7:#fc0;--color-agent-patrol:#38bdf8;--color-agent-supply:#fbbf24;--font-heading:"Outfit", "Zen Kaku Gothic New", sans-serif;--font-body:"Zen Kaku Gothic New", sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-body);background-image:radial-gradient(at 0 0,#38bdf814 0,#0000 50%),radial-gradient(at 100% 100%,#818cf814 0,#0000 50%);padding:.6rem .8rem;line-height:1.4}.app-container{flex-direction:column;gap:.6rem;width:100%;max-width:1920px;height:calc(100vh - 1.2rem);margin:0 auto;display:flex}.app-header{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:12px;flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.header-brand{align-items:center;gap:.75rem;display:flex}.eyebrow{font-family:var(--font-mono);color:var(--accent-primary);letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;display:block}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);color:var(--text-main);border-radius:12px;padding:1rem}.btn{font-family:var(--font-body);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent-primary);color:#0f172a}.btn-secondary{border-color:var(--panel-border);color:var(--text-main);background:#ffffff0d}input[type=number],input[type=text],select{border:1px solid var(--panel-border);color:var(--text-main);font-family:var(--font-mono);background:#0f172a99;border-radius:6px;padding:.4rem .6rem;font-size:.85rem}input[type=number]:focus,select:focus{border-color:var(--accent-primary);outline:none}.main-stage{flex:1;gap:.6rem;min-height:0;display:flex;position:relative}.header-brand h1{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.header-badges{gap:.4rem;display:flex}.badge{font-family:var(--font-mono);border:1px solid var(--panel-border);color:var(--text-muted);background:#ffffff0d;border-radius:9999px;padding:.25rem .6rem;font-size:.7rem}.badge-server{color:var(--accent-primary);background:#38bdf81a;border-color:#38bdf84d;align-items:center;gap:.3rem;display:flex}.status-dot{background-color:var(--accent-success);width:7px;height:7px;box-shadow:0 0 6px var(--accent-success);border-radius:50%}.top-timeline-bar{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;flex-direction:column;flex-shrink:0;gap:.35rem;padding:.5rem .85rem;display:flex}.timeline-row{align-items:center;gap:.75rem;display:flex}.inline-card{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:.6rem;padding:.25rem .6rem;display:flex}.control-label{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.control-label strong{color:var(--text-main);font-family:var(--font-mono)}.slider-row{align-items:center;gap:.4rem;width:100%;display:flex}.custom-range{accent-color:var(--accent-primary);cursor:pointer;background:#ffffff1a;border-radius:3px;flex:1;height:6px}.main-step-slider{width:100%}.global-progress-bar-wrap{background:#ffffff1a;border-radius:3px;min-width:80px;height:6px;position:relative;overflow:hidden}.global-progress-bar{background:linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));width:0%;height:100%;transition:width .1s linear}.main-workspace{flex:1;gap:.75rem;min-width:0;min-height:0;display:flex;overflow:hidden}.left-sidebar{width:310px;width:var(--left-sidebar-width,310px);background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;flex-direction:column;flex-shrink:0;transition:margin-left .25s cubic-bezier(.4,0,.2,1),opacity .2s;display:flex;overflow-y:auto}.unused{opacity:0;pointer-events:none;border:none;width:0;margin-left:-.75rem;padding:0;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.title-with-icon{align-items:center;gap:.5rem;display:flex}.sidebar-header h3{font-family:var(--font-heading);font-size:1rem;font-weight:600}.sidebar-content{flex-direction:column;gap:.75rem;padding:.85rem;display:flex}.input-tabs{background:#0003;border-radius:8px;gap:.25rem;padding:.2rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:.35rem .5rem;font-size:.75rem;font-weight:500;transition:all .2s}.tab-btn.active{background:var(--accent-primary);color:#000;font-weight:600}.tab-content{display:none}.tab-content.active{flex-direction:column;gap:.6rem;display:flex}.field{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.75rem;display:flex}.textarea-field textarea{border:1px solid var(--panel-border);width:100%;height:160px;color:var(--text-main);font-family:var(--font-mono);resize:vertical;background:#0000004d;border-radius:8px;padding:.6rem;font-size:.75rem}.button-row-stacked{flex-direction:column;gap:.4rem;display:flex}.layout-splitter{cursor:col-resize;z-index:100;background:0 0;border-radius:3px;flex-shrink:0;width:6px;transition:background .2s;position:relative}.layout-splitter:hover,.layout-splitter.dragging{background:var(--accent-primary)}.mini-sidebar+.layout-splitter{display:none}.center-content{flex-direction:column;flex:1;gap:.5rem;min-width:0;min-height:0;display:flex;overflow:hidden}.selected-agent-progress-area{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;height:62px;padding:.4rem .85rem;display:flex;overflow:hidden}.map-header-placeholder{color:var(--text-dim);text-align:center;font-size:.8rem;font-style:italic}.map-header-progress-card{flex-direction:column;gap:.25rem;width:100%;display:flex}.map-header-progress-title{color:var(--text-muted);justify-content:space-between;font-size:.75rem;display:flex}.map-header-progress-title strong{color:var(--accent-primary)}.map-viewport-wrapper{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:14px;flex:1;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.responsive-svg{width:100%;min-width:0;height:100%;min-height:0;display:block}.map-toolbar-overlay{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:.6rem;left:.6rem;right:.6rem}.map-toolbar-overlay .toolbar-group{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--panel-border);background:#0b0f19bf;border-radius:8px;align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex}.map-legend-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--panel-border);color:var(--text-muted);z-index:10;background:#0b0f19bf;border-radius:8px;flex-wrap:wrap;gap:.6rem;padding:.35rem .6rem;font-size:.7rem;display:flex;position:absolute;bottom:.6rem;left:.6rem}.legend-item{align-items:center;gap:.3rem;display:flex}.legend-box{border-radius:2px;width:10px;height:10px}.legend-box.flat{background:var(--terrain-flat-fill);border:1px solid var(--terrain-flat-stroke)}.legend-box.road-smooth{background:var(--terrain-road-smooth-fill)}.legend-box.road-busy{background:var(--terrain-road-busy-fill)}.legend-box.road-jammed{background:var(--terrain-road-jammed-fill)}.legend-box.mountain{background:var(--terrain-mountain-fill)}.legend-box.pond{background:var(--terrain-pond-fill)}.legend-box.patrol{background:var(--color-agent-patrol);border-radius:50%}.legend-box.supply{background:var(--color-agent-supply);border-radius:50%}.legend-box.alert{background:var(--accent-alert);border-radius:50%}.right-sidebar{width:350px;width:var(--right-sidebar-width,350px);flex-direction:column;flex-shrink:0;gap:.6rem;min-height:0;display:flex;overflow-y:auto}.panel-details{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;flex:none;transition:border-color .2s;overflow:hidden}.panel-summary{cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff05;align-items:center;gap:.5rem;padding:.6rem .85rem;display:flex}.panel-summary h2{font-family:var(--font-heading);font-size:.95rem;font-weight:600}.summary-icon{font-size:1.1rem}.panel-content{padding:.75rem .85rem}.hex-cell{stroke-width:1px;cursor:pointer;transition:fill .2s,stroke .2s}.hex-cell.flat{fill:var(--terrain-flat-fill);stroke:var(--terrain-flat-stroke)}.hex-cell.road-smooth{fill:var(--terrain-road-smooth-fill);stroke:var(--terrain-road-smooth-stroke)}.hex-cell.road-busy{fill:var(--terrain-road-busy-fill);stroke:var(--terrain-road-busy-stroke)}.hex-cell.road-jammed{fill:var(--terrain-road-jammed-fill);stroke:var(--terrain-road-jammed-stroke)}.hex-cell.mountain{fill:var(--terrain-mountain-fill);stroke:var(--terrain-mountain-stroke)}.hex-cell.pond{fill:var(--terrain-pond-fill);stroke:var(--terrain-pond-stroke)}.cell-index-text{font-family:var(--font-mono);fill:#ffffff59;pointer-events:none;font-size:10px}.cell-type-text{fill:#ffffff73;pointer-events:none;font-size:9px}.spot-hex-cover{opacity:.25;stroke-width:2px}.spot-group.selected .spot-hex-cover{filter:drop-shadow(0 0 6px var(--accent-gold));opacity:.8;stroke:var(--accent-gold)!important;stroke-width:3px!important}.donut-bg{fill:#0009;stroke:#ffffff26;stroke-width:4px}.donut-val{fill:none;stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .3s}.spot-text{font-family:var(--font-mono);fill:#fff;text-anchor:middle;pointer-events:none;font-size:10px;font-weight:700}.agent-group{cursor:pointer}.agent-circle{stroke-width:2px;stroke:#fff;transition:r .2s}.agent-circle.patrol{fill:var(--color-agent-patrol)}.agent-circle.supply{fill:var(--color-agent-supply)}.agent-circle.patrol.selected{filter:drop-shadow(0 0 10px var(--color-agent-patrol))}.agent-circle.supply.selected{filter:drop-shadow(0 0 10px var(--color-agent-supply))}.selected-border{filter:drop-shadow(0 0 8px var(--accent-gold));stroke:var(--accent-gold)!important;stroke-width:3.5px!important}.agent-index-text{font-family:var(--font-mono);fill:#000;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:11px;font-weight:700}.agent-fuel-ring{pointer-events:none}.agent-alert-ring{stroke:var(--accent-alert);stroke-width:3px;animation:1.2s ease-in-out infinite pulseAlert}@keyframes pulseAlert{0%{r:18;opacity:.9;stroke-width:3px}50%{r:24;opacity:.3;stroke-width:5px}to{r:18;opacity:.9;stroke-width:3px}}.trail-path{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 3;pointer-events:none}.agent-timeline-container{flex-direction:column;gap:.5rem;display:flex}.agent-card{border:1px solid var(--panel-border);cursor:pointer;background:#ffffff08;border-radius:10px;padding:.5rem;transition:all .2s}.agent-card:hover{background:#ffffff0f}.agent-card.selected-card{border-color:var(--accent-primary);background:#38bdf814}.agent-card-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;font-size:.75rem;display:flex}.agent-badge{font-family:var(--font-mono);color:#000;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:600}.agent-badge.patrol{background:var(--color-agent-patrol)}.agent-badge.supply{background:var(--color-agent-supply)}.segmented-bar-wrap{flex-direction:column;gap:.15rem;display:flex}.segmented-bar-labels{color:var(--text-dim);justify-content:space-between;font-size:.65rem;display:flex}.segmented-bar{background:#0006;border-radius:5px;height:10px;display:flex;position:relative;overflow:hidden}.segment{height:100%}.segment.move{background:var(--accent-primary)}.segment.wait{background:#fff3}.segment.depleted{background:var(--accent-alert)}.refuel-marker{background:var(--accent-gold);z-index:5;width:3px;box-shadow:0 0 4px var(--accent-gold);position:absolute;top:0;bottom:0}.timeline-pointer{z-index:10;background:#fff;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #fff}.score-cards-grid{grid-template-columns:repeat(3,1fr);gap:.4rem;margin-bottom:.5rem;display:grid}.score-card{border:1px solid var(--panel-border);text-align:center;background:#ffffff08;border-radius:8px;flex-direction:column;align-items:center;padding:.35rem;display:flex}.score-rank{color:var(--accent-gold);font-size:.6rem;font-weight:700}.score-title{color:var(--text-muted);font-size:.65rem}.score-value{font-family:var(--font-mono);color:var(--text-main);font-size:1.1rem;font-weight:700}.table-wrapper{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.75rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--panel-border);padding:.3rem .4rem}.data-table th{color:var(--text-muted);font-weight:500}.active-day-row{background:#38bdf81a}.btn{font-family:var(--font-body);border:1px solid var(--panel-border);color:var(--text-main);cursor:pointer;background:#ffffff0d;border-radius:6px;justify-content:center;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.75rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:hover{border-color:var(--panel-border-hover);background:#ffffff1f}.btn-primary{background:var(--accent-primary);color:#000;border:none;font-weight:600}.btn-secondary{color:var(--accent-secondary);background:#818cf833;border-color:#818cf866}.btn-accent{background:var(--accent-gold);color:#000;border:none;font-weight:600}.btn-subtle{color:var(--text-muted);background:0 0;border:none}.btn-icon{padding:.3rem .5rem}.btn-sm{padding:.25rem .5rem;font-size:.7rem}.custom-select{border:1px solid var(--panel-border);color:var(--text-main);background:#000c;border-radius:6px;padding:.25rem .4rem;font-size:.75rem}.checkbox-label{cursor:pointer;align-items:center;gap:.3rem;font-size:.75rem;display:flex}.event-log-queue{max-height:180px;font-family:var(--font-mono);flex-direction:column;gap:.35rem;font-size:.7rem;display:flex;overflow-y:auto}.event-row{background:#ffffff08;border-radius:6px;gap:.4rem;padding:.3rem .5rem;display:flex}.event-spot{border-left:3px solid var(--accent-success)}.event-refuel{border-left:3px solid var(--accent-gold)}.event-alert{border-left:3px solid var(--accent-alert)}.status-box{font-family:var(--font-mono);color:var(--accent-primary);font-size:.7rem}.error-box{color:var(--accent-alert);background:#f43f5e1a;border-radius:6px;padding:.4rem;font-size:.7rem}.hidden{display:none!important}.meta-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;margin-bottom:.5rem;display:grid}.meta-card{border:1px solid var(--panel-border);background:#ffffff05;border-radius:6px;flex-direction:column;padding:.3rem .4rem;display:flex}.meta-key{color:var(--text-dim);font-size:.65rem}.meta-val{font-family:var(--font-mono);color:var(--text-main);font-size:.75rem}.raw-json-block{max-height:140px;font-family:var(--font-mono);background:#0006;border-radius:6px;padding:.5rem;font-size:.65rem;overflow-y:auto}.day-input-row{border:1px solid var(--panel-border);background:#0000004d;border-radius:6px;flex-direction:column;gap:.4rem;padding:.5rem;display:flex}.day-input-row h4{justify-content:space-between;align-items:center;margin:0;font-size:.8rem;display:flex}.day-input-row textarea{border:1px solid var(--panel-border);width:100%;height:150px;color:var(--text-main);font-family:var(--font-mono);resize:vertical;background:#0f172a99;border-radius:4px;padding:.4rem;font-size:.75rem}.spot-marker{background:var(--accent-success,#28a745);z-index:6;width:3px;position:absolute;top:0;bottom:0}#app{width:100%;height:100%}.map-header-timeline{width:100%;margin-top:.5rem}
