:root{--bg:#0c1830;--panel:#111f3a;--panel2:#16284a;--ink:#e8eef8;--muted:#a9b6cc;--line:#2c4166;--accent:#6cc4ff;--amber:#ffb000;--ok:#57d18b;--warn:#ff6b6b;--side-w:360px;--tl-h:64px;--top-h:48px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink)}#app{display:grid;grid-template-rows:var(--top-h) 1fr var(--tl-h);height:100vh}button,select,input{font:inherit;color:var(--ink);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:4px 9px}button{cursor:pointer}button:hover{border-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button[aria-pressed="true"]{background:#1f4f7a;border-color:var(--accent)}button.primary{background:#1f5f9a;border-color:var(--accent)}#topbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:12px;background:#0a1428;border-bottom:1px solid var(--line)}#caption{font-weight:700;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#caption .sep{color:var(--muted);margin:0 8px;font-weight:400}.top-actions{display:flex;gap:8px;flex:none}#main{display:grid;grid-template-columns:1fr var(--side-w);min-height:0}#mapwrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:#1d3a5e}#map{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;display:block}#map.dragging{cursor:grabbing}#map.adding{cursor:crosshair}#mapctl{position:absolute;top:10px;left:10px;display:flex;flex-wrap:wrap;gap:4px;max-width:70%}#mapctl button{background:rgba(12,24,48,0.88);min-width:34px}#addhint{position:absolute;top:52px;left:10px;background:rgba(255,176,0,0.95);color:#111;padding:5px 10px;border-radius:6px;font-weight:600}#cursor{position:absolute;bottom:6px;right:8px;font-size:12px;color:var(--muted);background:rgba(12,24,48,0.7);padding:2px 6px;border-radius:4px;pointer-events:none}#scalebar{position:absolute;bottom:6px;left:10px;font-size:11px;color:var(--ink);pointer-events:none}#scalebar .bar{height:5px;border:1px solid #fff;border-top:none;margin-bottom:1px}#side{overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);padding:8px 12px 24px;font-size:14px}#side h2{font-size:15px;margin:14px 0 6px;color:var(--accent);letter-spacing:.02em}#side section:first-child h2{margin-top:4px}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.kv dt{color:var(--muted)}.kv dd{margin:0}.chip{display:inline-block;font-size:11px;padding:0 6px;border-radius:9px;margin-left:4px;vertical-align:1px;border:1px solid;white-space:nowrap}.chip.recorded{color:var(--ok);border-color:var(--ok)}.chip.estimated{color:var(--amber);border-color:var(--amber);border-style:dashed;font-style:italic}.chip.assumed{color:var(--amber);border-color:var(--amber);border-style:dashed}.chip.none{color:#8a94a6;border-color:#8a94a6;border-style:dotted}.chip.derived{color:#c9a0ff;border-color:#c9a0ff;border-style:dotted}.loc{border:1px solid var(--line);border-radius:8px;padding:6px 8px;margin:6px 0;background:var(--panel2)}.loc-head{display:flex;align-items:center;gap:6px;font-weight:700}.loc-head .sw{width:12px;height:12px;border-radius:50%;flex:none;border:1px solid #fff}.loc-head .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-head button{padding:0 6px;font-size:12px}.loc .rd{font-size:13px;margin-top:3px;line-height:1.45}.loc .rd b{font-weight:600}.inside{color:var(--warn);font-weight:700}.note{color:var(--muted);font-size:12px}#loc-edit summary{cursor:pointer;color:var(--muted);margin:6px 0}#loc-form label{display:block;margin:4px 0;font-size:13px;color:var(--muted)}#loc-form input:not([type=color]){width:100%}#loc-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:6px}#loc-form label.inline input{vertical-align:middle;padding:0;width:40px;height:24px}.btnrow{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.lyr{display:grid;grid-template-columns:20px 34px 1fr;align-items:center;gap:4px;padding:2px 0;cursor:pointer}.lyr input{margin:0}.lyr canvas{width:30px;height:16px}.lyr .lbl small{display:block;color:var(--muted);font-size:11px}.lyr.sub{padding-left:20px}.legend-cats{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;margin:4px 0 2px 24px}.legend-cats span i{display:inline-block;width:18px;height:5px;vertical-align:middle;margin-right:4px;border-radius:2px}table.tbl{border-collapse:collapse;width:100%;font-size:12px}table.tbl th,table.tbl td{border-bottom:1px solid var(--line);padding:2px 4px;text-align:right}table.tbl th:first-child,table.tbl td:first-child{text-align:left}table.tbl tr.est td{color:var(--amber);font-style:italic}.disclaimer{background:#2a2f14;border:1px solid #6b6a2a;padding:6px 8px;border-radius:6px;font-size:12.5px}.estnote{border:1px dashed var(--amber);color:#ffd27a;padding:6px 8px;border-radius:6px;font-size:12.5px;margin-top:8px}.sources{font-size:12px;color:var(--muted);padding-left:18px}.sources a{color:var(--accent)}body.mode-simple .detail-only{display:none !important}body.mode-detailed .simple-only{display:none !important}#timeline{display:flex;align-items:center;gap:8px;padding:0 12px;background:#0a1428;border-top:1px solid var(--line)}#timeline>button{font-size:18px;width:42px;height:40px;padding:0}#scrub-wrap{flex:1;height:48px;position:relative;min-width:120px}#scrub{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;touch-action:none}#t-label{width:230px;font-size:13px;line-height:1.25}#t-label b{font-size:14px}#speed-wrap{font-size:13px;color:var(--muted)}.modal{position:fixed;inset:0;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;z-index:50}.modal[hidden]{display:none}.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:620px;width:calc(100% - 40px);max-height:calc(100% - 40px);overflow:auto;padding:16px 20px;line-height:1.5;font-size:15px}.modal-card h2{margin-top:0;color:var(--accent)}@media (max-width:900px){:root{--side-w:100%}#main{grid-template-columns:1fr;grid-template-rows:60vh auto;overflow-y:auto}#side{border-left:none;border-top:1px solid var(--line)}#t-label{width:140px;font-size:11px}#caption{font-size:14px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;transition:none !important;animation:none !important}}.trk-badge{margin-left:12px;font-size:13px;font-weight:600;color:#111;background:var(--amber);border-radius:4px;padding:2px 8px}.trk-note{border-left:3px solid var(--amber);padding-left:8px}#spag-tip{position:absolute;z-index:5;pointer-events:none;background:rgba(8,16,32,0.94);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.35;max-width:220px}#spag-tip[hidden]{display:none}.legend-models{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;font-size:11px;margin:3px 0 2px 26px}.legend-models span{display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-models i{display:inline-block;width:16px;flex:none}#spag-tip .est-tag{color:var(--amber);font-weight:600}:root{--site-h:42px;--foot-h:26px}body.site{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}body.site #app{height:auto;flex:1 1 auto;min-height:0}#sitebar,#sitefoot{flex:none}#sitebar{height:var(--site-h);display:flex;align-items:center;gap:12px;padding:0 12px;background:#071022;border-bottom:1px solid var(--line);position:relative;z-index:20}#sitebar .brand{font-weight:700;letter-spacing:.02em;color:var(--accent);white-space:nowrap}#chooser{position:relative}#chooser-btn{display:flex;align-items:center;gap:8px;min-width:220px}.cat{display:inline-block;color:#111;font-size:12px;font-weight:700;border-radius:4px;padding:1px 6px}#chooser-pop{position:absolute;top:36px;left:0;width:440px;max-width:calc(100vw - 24px);max-height:70vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5);padding:8px}#chooser-pop[hidden]{display:none}#chooser-q{width:100%;margin-bottom:6px}#chooser-list{list-style:none;margin:0;padding:0;overflow:auto}#chooser-list li{display:grid;grid-template-columns:48px 1fr auto 62px 60px;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer}#chooser-list li:hover,#chooser-list li:focus{background:var(--panel2);outline:none}#chooser-list li[aria-selected="true"]{background:#1f4f7a}#chooser-list .yr,#chooser-list .mi{color:var(--muted);font-variant-numeric:tabular-nums}#chooser-list .mi{text-align:right;font-size:12px}#chooser-list .empty{color:var(--muted);cursor:default}#chooser-hint{color:var(--muted);font-size:12px;margin-top:6px}#sitefoot{padding:4px 12px 5px;font-size:11.5px;line-height:1.4;color:var(--muted);background:#071022;border-top:1px solid var(--line);max-height:22vh;overflow-y:auto}#sitefoot .foot-row{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}#sitefoot .license{margin:3px 0 0;color:#c4cfdf}#sitefoot a{color:var(--accent)}@media (max-width:900px){#sitefoot{font-size:11px;max-height:26vh}#sitefoot .foot-row span:last-child{display:none}}#sitefoot .ph{border:1px dashed var(--amber);color:var(--amber);border-radius:4px;padding:0 6px}.trk-badge{margin-left:12px;font-size:13px;font-weight:600;color:#111;background:var(--amber);border-radius:4px;padding:2px 8px}.trk-note{border-left:3px solid var(--amber);padding-left:8px}#chooser-list .trk{font-size:11px;color:var(--amber)}#sitefoot .foot-contact{font-weight:600}.kofi-btn{display:inline-flex;align-items:center;gap:6px;background:#72a4f2;color:#fff !important;font-weight:700;border-radius:999px;padding:1px 12px 1px 8px;text-decoration:none}.kofi-btn:hover{background:#5a8ee6}.kofi-cup{background:#fff;color:#ff5e5b;border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:12px}body.page{display:flex;flex-direction:column;min-height:100vh}body.page a.brand{text-decoration:none}.page-main{flex:1;width:100%;max-width:640px;margin:0 auto;padding:20px 16px}.page-main a{color:var(--accent)}.contact-form{display:flex;flex-direction:column;gap:12px}.contact-form label{display:flex;flex-direction:column;gap:4px;font-weight:600}.contact-form input,.contact-form select,.contact-form textarea{font-weight:400;width:100%}.contact-form button{align-self:flex-start}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}body.page #sitefoot{max-height:none}.contact-form textarea{font:inherit;color:var(--ink);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:6px 9px;resize:vertical}.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}