:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body,#root{height:100%;margin:0}html{height:100%}:root{--ink:#3f464d;--text:#6f767d;--muted:#9298a0;--line:#eeefef;--line-strong:#dfe3e6;--ground:#fafafa;--warn:#b8791f;--bad:#b8452f;--ok:#4a7a52}*{box-sizing:border-box}.app{color:var(--text);background:#fff;flex-direction:column;font-size:13px;display:flex;position:fixed;inset:0}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:14px 24px;display:flex}.app-header h1{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0;font-size:14px;font-weight:600}.app-header p{letter-spacing:.02em;margin:4px 0 0;font-size:12px}.header-stats{align-items:center;gap:22px;display:flex}.header-stats>span{gap:2px;min-width:64px;display:grid}.header-stats em{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px;font-style:normal}.header-stats strong{color:var(--ink);font-size:15px;font-weight:600}.body{flex:1;min-height:0;display:flex}.map-canvas-wrap{flex:1;min-width:0;position:relative}.map-canvas{touch-action:none;position:absolute;inset:0}.map-canvas canvas{display:block}.side{border-left:1px solid var(--line);background:#fff;flex:0 0 420px;width:420px;overflow-y:auto}.screen{flex-direction:column;display:flex}.boot,.boot-line{padding:24px}.splash{flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.splash h1{letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin:0;font-size:15px;font-weight:600}.splash-spinner{border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex;position:fixed;inset:0}.login h1{letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin:0;font-size:15px;font-weight:600}.login p{margin:0 0 18px}.login form{flex-direction:column;gap:10px;width:100%;max-width:260px;display:flex}.login-field input{width:100%;font:inherit;text-align:center;border:1px solid var(--line-strong);color:var(--ink);background:#fff;border-radius:3px;padding:9px 10px}.login-field input:focus{border-color:var(--muted);outline:none}.login-suggestions{border:1px solid var(--line-strong);background:#fff;border-radius:3px;margin:6px 0 0;padding:4px;list-style:none;box-shadow:0 4px 12px #0000000f}.login-suggestions button{text-align:center;width:100%;color:var(--ink);border:none;border-radius:2px;padding:7px 8px;display:block}.login-suggestions button:hover{background:var(--ground)}.panel{border-bottom:1px solid var(--line);padding:16px 20px 20px}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-head h2{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0;font-size:11px;font-weight:600}.panel h3{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;font-size:10px;font-weight:600}.muted{color:var(--muted);font-size:12px}.hint{background:var(--ground);border-left:2px solid var(--line-strong);margin:10px 0;padding:8px 10px;font-size:12px}.alert{color:var(--warn);background:#fdf6ec;border-left:2px solid #e6d3ad;margin:10px 0 0;padding:8px 10px;font-size:12px}button{font:inherit;cursor:pointer;color:var(--text);border:1px solid var(--line-strong);background:0 0;border-radius:3px;padding:7px 12px;transition:border-color .12s,color .12s,background .12s}button:hover:not(:disabled){border-color:var(--muted);color:var(--ink)}button:disabled{opacity:.45;cursor:not-allowed}.primary{border-color:var(--ink);color:var(--ink);font-weight:600}.primary:hover:not(:disabled){background:var(--ink);color:#fff}.ghost{color:var(--muted);border:none;padding:2px 6px;font-size:12px}.wide{text-align:left;gap:3px;width:100%;display:grid}.wide em{color:var(--muted);font-size:11px;font-style:normal}.row{gap:8px;margin-top:14px;display:flex}.row .primary{flex:1}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{align-items:baseline;gap:6px;padding:5px 9px;font-size:12px;display:inline-flex}.chip em{color:var(--muted);font-size:10px;font-style:normal}.chip-on{border-color:var(--ink);color:var(--ink)}.missions{gap:8px;margin-bottom:12px;display:grid}.mission{text-align:left;gap:4px;padding:11px 12px;display:grid}.mission strong{color:var(--ink);font-weight:600}.mission-objective{font-size:12px}.mission-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.mission-meta em{font-style:normal}.mission-line{gap:3px;margin:0 0 12px;display:grid}.mission-line strong{color:var(--ink)}.depart{gap:6px;margin-bottom:6px;display:grid}.steps{border-top:1px solid var(--line);margin:12px 0;padding:0;list-style:none}.step{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr auto 22px;align-items:center;gap:8px;padding:7px 0;display:grid}.step-return{color:var(--muted)}.step-clock{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}.step-label{color:var(--ink)}.step-return .step-label{color:var(--muted)}.step-cost{font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;font-size:11px;display:flex}.step-cost em{color:var(--muted);font-style:normal}.step-spacer{display:block}.actions-here{gap:8px;margin:12px 0;display:grid}.summary{border-top:1px solid var(--line);flex-wrap:wrap;gap:14px;padding-top:10px;font-size:12px;display:flex}.summary strong{color:var(--ink);font-variant-numeric:tabular-nums}.slack-ok{color:var(--ok)}.slack-warn{color:var(--warn)}.slack-bad{color:var(--bad)}.problems{color:var(--bad);margin:10px 0 0;padding:0 0 0 16px;font-size:12px}.clock{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.clock>strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.clock strong{font-variant-numeric:tabular-nums}.activity{background:var(--ground);border-radius:3px;gap:6px;margin-bottom:12px;padding:11px 12px;display:grid}.activity strong{color:var(--ink)}.bar{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.bar-fill{height:100%;transition:width .15s linear}.bar-ink{background:var(--ink)}.bar-warn{background:var(--warn)}.bar-bad{background:var(--bad)}.log,.journal,.loot,.roster,.messages{margin:0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr;gap:8px;padding:4px 0;font-size:12px;display:grid}.log-clock{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.loot li{border-bottom:1px solid var(--line);justify-content:space-between;padding:5px 0;display:flex}.loot strong{color:var(--ink);font-variant-numeric:tabular-nums}.stats{flex-wrap:wrap;gap:18px;margin-bottom:10px;display:flex}.stat{gap:2px;display:grid}.stat-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px}.stat-value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.stat-hint{color:var(--muted);font-size:11px}.upgrade-group{margin-bottom:6px}.upgrade{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.upgrade-text{gap:2px;display:grid}.upgrade-text strong{color:var(--ink);font-weight:600}.level{color:var(--muted);margin-left:6px;font-size:11px;font-weight:400}.outcome{color:var(--ink);margin:0 0 14px;font-size:15px;font-weight:600}.outcome-rescued{color:var(--warn)}.outcome-stranded{color:var(--bad)}.journal li{border-bottom:1px solid var(--line);grid-template-columns:32px 1fr auto auto;align-items:baseline;gap:10px;padding:5px 0;font-size:12px;display:grid}.journal-day{color:var(--muted);font-variant-numeric:tabular-nums}.journal-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.journal-outcome{color:var(--ok);font-size:11px}.outcome-rescued.journal-outcome{color:var(--warn)}.outcome-stranded.journal-outcome{color:var(--bad)}.chat{border:1px solid var(--line);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffffeb;border-radius:4px;flex-direction:column;gap:8px;width:230px;max-height:46%;padding:11px 12px;display:flex;position:absolute;bottom:16px;left:16px}.chat-full{z-index:50;background:#fffffffa;border-radius:0;width:auto;max-height:none;position:fixed;inset:0}.chat header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.chat h2{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:0;font-size:10px;font-weight:600}.chat-head-right{align-items:baseline;gap:10px;margin-left:auto;display:flex}.chat-toggle{letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffffeb;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;bottom:16px;left:16px}.chat-toggle em{background:var(--bad);color:#fff;letter-spacing:normal;border-radius:999px;padding:1px 6px;font-size:10px;font-style:normal}.roster li{align-items:center;gap:6px;padding:2px 0;font-size:12px;display:flex}.roster em{color:var(--muted);margin-left:auto;font-size:10px;font-style:normal}.dot{border-radius:50%;flex:none;width:7px;height:7px}.messages{border-top:1px solid var(--line);flex:1;min-height:0;padding-top:6px;overflow-y:auto}.messages li{gap:1px;padding:3px 0;font-size:12px;display:grid}.messages strong{font-size:11px;font-weight:600}.chat input{width:100%;font:inherit;border:1px solid var(--line-strong);color:var(--ink);background:#fff;border-radius:3px;padding:6px 8px}.chat input:focus{border-color:var(--muted);outline:none}@media (width<=900px){.app-header{flex-wrap:wrap;gap:10px 16px;padding:12px 16px}.header-stats{gap:16px}.header-stats>span{min-width:0}.body{flex-direction:column}.map-canvas-wrap{flex:0 0 46%}.side{border-left:none;border-top:1px solid var(--line);flex:1;width:100%}.chat:not(.chat-full){width:calc(100% - 32px);max-height:60%}}
