q
This commit is contained in:
parent
810ad6f5cb
commit
de7c6c32bd
123 changed files with 13201 additions and 6213 deletions
|
|
@ -1,12 +1,8 @@
|
|||
*{box-sizing:border-box}
|
||||
:root{
|
||||
--bg:#090b10;
|
||||
--bg-2:#0d1118;
|
||||
--surface:#11161f;
|
||||
--surface-2:#151d28;
|
||||
--surface-3:#1a2431;
|
||||
--surface-soft:rgba(20,28,39,.88);
|
||||
--panel:rgba(20,28,39,.9);
|
||||
--line:rgba(173,190,211,.12);
|
||||
--line-strong:rgba(173,190,211,.24);
|
||||
--text:#e8eef8;
|
||||
|
|
@ -14,7 +10,6 @@
|
|||
--muted-2:#6f8199;
|
||||
--accent:#4f8cff;
|
||||
--accent-strong:#3e75d9;
|
||||
--accent-soft:rgba(79,140,255,.14);
|
||||
--danger:#ff6861;
|
||||
--shadow:0 24px 60px rgba(0,0,0,.36);
|
||||
--shadow-soft:0 10px 26px rgba(0,0,0,.24);
|
||||
|
|
@ -117,7 +112,7 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
padding:9px 10px;
|
||||
cursor:pointer;
|
||||
font-weight:800;
|
||||
transition:background .16s,border-color .16s,color .16s,transform .16s, box-shadow .16s;
|
||||
transition:background .16s,border-color .16s,color .16s,box-shadow .16s;
|
||||
min-height:38px;
|
||||
}
|
||||
.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 8px 16px rgba(79,140,255,.18)}
|
||||
|
|
@ -132,7 +127,6 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
.segmented-button{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding-left:8px;padding-right:8px}
|
||||
.segmented-button:hover,.mode-button:hover{background:#202b3a}
|
||||
.segmented-button.active,.mode-button.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 16px rgba(79,140,255,.16)}
|
||||
.microcopy{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
|
||||
.mode-grid{display:grid;grid-template-columns:1fr;gap:6px}.mode-button{min-height:32px;padding:7px 9px;font-size:12px;border-radius:9px;text-align:left}
|
||||
.checkbox-row{display:flex;gap:8px;align-items:center;margin-top:9px;color:#d2dbeb;font-size:13px;cursor:pointer}.checkbox-row input{accent-color:var(--accent)}
|
||||
.patch-status{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.patch-status.invalid{color:var(--danger);font-weight:750}
|
||||
|
|
@ -193,7 +187,7 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
.summary-stats .stat-row{display:grid;grid-template-columns:1fr;gap:4px;border-bottom:0;border-right:1px solid rgba(173,190,211,.08);min-height:58px}.summary-stats .stat-row:last-child{border-right:0}
|
||||
.stat-row strong{color:#edf3fe;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;text-align:right;white-space:nowrap}.summary-stats .stat-row strong{text-align:left;font-size:15px}
|
||||
.legend-grid{display:flex;flex-direction:column;gap:8px}.legend-row{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;min-height:20px;color:#d0dae9;font-size:12px;line-height:1.35}
|
||||
.legend-line{display:inline-block;width:24px;height:4px;border-radius:999px;justify-self:center}.express-line{background:#87a087;border:1px solid #697d69}.road-line{background:#f5e182;border:1px solid #beaf8c}.river-major{background:#74a5ca;border:none;height:3px}.old-road-line{background:#fff;border:1px solid #8f8f86;height:3px}.minor-road-line{background:#fff;border:1px solid #a7a7a0;height:3px}.rail-line{background:#e8e8e8;height:1.5px;position:relative;border:none;margin-top:2px;border-radius:0}.rail-line::after{content:"";position:absolute;top:-2.5px;left:0;right:0;height:7px;background:repeating-linear-gradient(90deg,transparent,transparent 5px,#343a43 5px,#343a43 6px)}
|
||||
.legend-line{display:inline-block;width:24px;height:4px;border-radius:999px;justify-self:center}.road-line{background:#f5e182;border:1px solid #beaf8c}.river-major{background:#74a5ca;border:none;height:3px}.old-road-line{background:#fff;border:1px solid #8f8f86;height:3px}.minor-road-line{background:#fff;border:1px solid #a7a7a0;height:3px}.rail-line{background:#e8e8e8;height:1.5px;position:relative;border:none;margin-top:2px;border-radius:0}.rail-line::after{content:"";position:absolute;top:-2.5px;left:0;right:0;height:7px;background:repeating-linear-gradient(90deg,transparent,transparent 5px,#343a43 5px,#343a43 6px)}
|
||||
.legend-swatch{display:inline-block;width:24px;height:14px;border-radius:4px;background:#f5f5f5;justify-self:center}.border-swatch{border:2px dashed rgba(171,145,171,1);box-shadow:inset 0 0 0 1px rgba(255,255,255,1),0 0 0 1px rgba(255,255,255,1)}.admin-swatch{border:2px dashed rgba(190,180,190,.9);background:#fff}.terrain-swatch{background:linear-gradient(90deg,#7da564,#e3daa2,#98a58f)}.urban-swatch{background:#f0dccd;border:1px solid rgba(0,0,0,.1)}.sea-swatch{background:#9fc7df;border:1px solid rgba(70,120,160,.35)}
|
||||
.legend-icon{display:inline-block;width:14px;height:14px;justify-self:center;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.city-icon{background:#f06e6e}.town-icon{width:10px;height:10px;border-radius:3px;background:#f06e6e}.station-icon{background:#fff;border-color:#444}.industry-icon{background:#8caaa0;border-radius:3px}.port-icon{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:14px solid #4682c8;border-top:0;box-shadow:none;background:transparent;border-radius:0}.castle-icon{background:#b44646;border-radius:3px}
|
||||
|
||||
|
|
@ -201,7 +195,7 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
.zoom-control button{min-width:58px;height:40px;border:0;border-bottom:1px solid rgba(173,190,211,.10);background:transparent;color:var(--text);font-weight:850;cursor:pointer}.zoom-control button:last-child{border-bottom:0;font-size:12px}.zoom-control button:hover{background:rgba(79,140,255,.12);color:#fff}
|
||||
.map-hint{position:absolute;left:18px;top:18px;z-index:25;max-width:440px;background:rgba(14,27,50,.86);border:1px solid rgba(79,140,255,.36);color:#dce8ff;border-radius:13px;box-shadow:0 10px 26px rgba(0,0,0,.22);padding:10px 12px;font-size:13px;font-weight:800;backdrop-filter:blur(8px)}
|
||||
.hidden{display:none!important}
|
||||
.map-tooltip{position:absolute;z-index:26;pointer-events:none;min-width:200px;max-width:280px;background:rgba(17,22,31,.92);border:1px solid rgba(173,190,211,.16);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.28);backdrop-filter:blur(10px);padding:10px 12px;color:var(--text);font-size:12px;line-height:1.5;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;font-weight:500}.map-tooltip.visible{opacity:1;transform:translateY(0)}
|
||||
.map-tooltip{position:absolute;z-index:26;pointer-events:none;min-width:200px;max-width:280px;background:rgba(17,22,31,.84);border:1px solid rgba(173,190,211,.16);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.28);backdrop-filter:blur(10px);padding:10px 12px;color:var(--text);font-size:12px;line-height:1.5;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;font-weight:500}.map-tooltip.visible{opacity:1;transform:translateY(0)}
|
||||
.generation-progress{position:absolute;inset:18px auto auto 18px;z-index:30;min-width:300px;max-width:440px;background:rgba(17,22,31,.96);border:1px solid rgba(173,190,211,.16);border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.34);padding:14px 16px;color:var(--text);font-size:13px;line-height:1.5}.progress-title{font-weight:850;margin-bottom:4px}.progress-stage{color:var(--muted);margin-bottom:10px}.progress-timings{display:flex;flex-direction:column;gap:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#cfdbef}.progress-timing-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(173,190,211,.08);padding-top:4px}
|
||||
.map-selection-svg{position:absolute;left:0;top:0;width:0;height:0;z-index:18;display:none;pointer-events:none;overflow:visible}.map-selection-svg polygon{fill:rgba(79,140,255,.16);stroke:rgba(79,140,255,.92);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}.map-selection-svg.invalid polygon{fill:rgba(255,104,97,.14);stroke:rgba(255,104,97,.92)}.map-selection{position:absolute;z-index:18;display:none;pointer-events:none;border:2px solid rgba(79,140,255,.88);background:rgba(79,140,255,.16);box-shadow:0 0 0 1px rgba(255,255,255,.20) inset,0 8px 22px rgba(79,140,255,.20)}.map-selection.invalid{border-color:rgba(255,104,97,.92);background:rgba(255,104,97,.14);box-shadow:0 0 0 1px rgba(255,255,255,.20) inset,0 8px 22px rgba(255,104,97,.18)}
|
||||
.map-canvas.is-zooming{image-rendering:auto;pointer-events:auto}
|
||||
|
|
@ -477,7 +471,7 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
@media (max-width:1280px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
||||
@media (max-width:720px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aggregate-header,.aggregate-row{grid-template-columns:1fr .55fr}.aggregate-header strong,.aggregate-row strong{grid-column:2}.aggregate-header strong:nth-of-type(1)::before,.aggregate-row strong:nth-of-type(1)::before{content:"Avg ";color:var(--muted-2);font-family:inherit}.aggregate-header strong:nth-of-type(2)::before,.aggregate-row strong:nth-of-type(2)::before{content:"Max ";color:var(--muted-2);font-family:inherit}.aggregate-header strong:nth-of-type(3)::before,.aggregate-row strong:nth-of-type(3)::before{content:"P95 ";color:var(--muted-2);font-family:inherit}}
|
||||
.diagnostic-grid{margin-bottom:10px}
|
||||
.diagnostic-table{
|
||||
.diagnostic-table,.diagnostic-log{
|
||||
display:flex;
|
||||
flex-direction:column;
|
||||
overflow:hidden;
|
||||
|
|
@ -501,14 +495,6 @@ h2,h3{margin:0;letter-spacing:-.02em}h2{font-size:16px}h3{font-size:14px}
|
|||
.diagnostic-row span{color:#dbe5f4;font-weight:800}
|
||||
.diagnostic-row strong{color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.diagnostic-row small{color:var(--muted-2);line-height:1.25}
|
||||
.diagnostic-log{
|
||||
display:flex;
|
||||
flex-direction:column;
|
||||
overflow:hidden;
|
||||
border:1px solid rgba(173,190,211,.10);
|
||||
border-radius:12px;
|
||||
background:rgba(10,14,20,.22);
|
||||
}
|
||||
.diagnostic-log-row{
|
||||
display:grid;
|
||||
grid-template-columns:86px minmax(140px,.7fr) minmax(0,1.8fr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue