:root{--bg: #05080b;--bg-2: #070b10;--panel: #0a0e13;--panel-2: #0d1219;--panel-glass: rgba(10, 14, 20, .86);--line: rgba(132, 152, 162, .12);--line-2: rgba(150, 176, 186, .22);--accent: #4fe3d0;--accent-deep: #1c8b7d;--accent-wash: rgba(79, 227, 208, .1);--amber: #f0b35c;--danger: #f0635c;--text: #c4d2d7;--text-bright: #eaf4f6;--text-dim: #65777f;--mono: "Share Tech Mono", ui-monospace, monospace;--display: "Orbitron", var(--mono);--radius: 2px}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--mono);overflow:hidden}#app{height:100vh;height:100dvh;width:100vw;width:100dvw}button,input,select,textarea{font-family:var(--mono);color:var(--text)}::selection{background:#4fe3d040}.center-stage{display:flex;align-items:center;justify-content:center;height:100%;min-height:100dvh;flex-direction:column;gap:22px;text-align:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box;background:radial-gradient(circle at 50% 18%,rgba(79,227,208,.05),transparent 55%),var(--bg)}.brand{font-family:var(--display);font-weight:700;font-size:44px;letter-spacing:10px;color:var(--text-bright);text-shadow:0 0 22px rgba(79,227,208,.25)}.brand-sub{color:var(--text-dim);letter-spacing:4px;font-size:13px;text-transform:uppercase}.player-shell{display:flex;flex-direction:column;align-items:center;gap:18px;width:min(420px,92vw)}.player-code-field{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left}.player-code-label{color:var(--text-dim);letter-spacing:2px;font-size:11px;text-transform:uppercase}.player-code-input{width:100%;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:14px 16px;font-family:var(--display);font-size:28px;letter-spacing:12px;text-align:center;text-transform:uppercase;color:var(--accent)}.player-code-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px #4fe3d033}.player-text-input{width:100%;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:12px 14px;font-family:var(--body);font-size:16px;color:var(--text)}.player-text-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px #4fe3d033}.player-error{color:var(--danger);margin:0}.player-queue-stage{background:var(--bg)}.player-queue-shell{gap:28px}.queue-observer-label{font-size:11px;letter-spacing:1px;color:var(--text-dim);margin:0 0 8px;text-transform:uppercase}.queue-observer-row{display:flex;gap:8px;align-items:center}.queue-observer-select{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:12px;padding:8px 10px;cursor:pointer;min-height:44px}.queue-observer-select:focus{outline:none;border-color:var(--accent)}.player-shell .btn{min-height:44px;touch-action:manipulation}@media(max-width:480px){.brand{font-size:34px;letter-spacing:6px}.player-shell .brand[style]{font-size:24px!important;letter-spacing:5px}.brand-sub{font-size:11px;letter-spacing:2px}.player-code-input{font-size:24px;letter-spacing:8px;padding:12px 14px}.player-stage-label{font-size:38px;letter-spacing:6px}.player-stage-detail{font-size:11px;letter-spacing:2px}}.player-stage-label{font-family:var(--display);font-size:56px;letter-spacing:12px;color:var(--accent);text-shadow:0 0 28px rgba(79,227,208,.35)}.player-stage-detail{color:var(--text-dim);letter-spacing:3px;font-size:13px;text-transform:uppercase;min-height:1.2em;white-space:pre-line}.player-view{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020608;height:100vh;height:100dvh;width:100vw;width:100dvw;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none}.player-view-stage,.player-view .stage{width:100%;height:100%;min-height:0;touch-action:none}.player-view.player-orbitals-mode>.player-view-stage{display:none}.player-view.player-orbitals-mode>.orbits-viewport{display:flex!important}.player-view.player-orbitals-mode>.orbits-viewport[hidden]{display:flex!important}.player-view>.orbits-viewport{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.player-view canvas{touch-action:none}.player-view-controls{position:absolute;z-index:70;top:max(12px,env(safe-area-inset-top,12px));right:max(12px,env(safe-area-inset-right,12px));display:flex;flex-direction:column;gap:8px}.player-tool-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid rgba(79,227,208,.45);background:#040c10d1;color:var(--accent);box-shadow:0 0 16px #36f5d62e;touch-action:manipulation}.player-tool-btn svg{width:22px;height:22px}.player-lag-btn{width:auto;min-width:44px;padding:0 12px;font-size:10px;letter-spacing:1px}.player-tool-btn:active{transform:scale(.96);background:#4fe3d01f}.player-signout-btn{position:absolute;z-index:70;right:max(12px,env(safe-area-inset-right,12px));bottom:max(12px,env(safe-area-inset-bottom,12px));min-height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(79,227,208,.28);background:#040c10d1;color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;touch-action:manipulation}.player-signout-btn:active{color:var(--accent);border-color:#4fe3d073}.player-tool-btn.active{border-color:var(--accent);background:#4fe3d02e;box-shadow:0 0 20px #36f5d659}.player-tool-btn.sending,.btn.sending{opacity:.72;cursor:wait}.player-tool-btn.sent,.btn.sent{border-color:#5cff9dbf;color:#9fffc2;box-shadow:0 0 20px #5cff9d3d}.player-tool-btn.error,.btn.error{border-color:#f0635cbf;color:#ffb0aa;box-shadow:0 0 20px #f0635c38}.player-nav{position:absolute;z-index:70;right:max(12px,env(safe-area-inset-right,12px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}.player-nav-btn{display:inline-flex;align-items:center;gap:0;width:44px;height:44px;padding:0;border-radius:999px;border:1px solid rgba(79,227,208,.45);background:#040c10d1;color:var(--accent);box-shadow:0 0 16px #36f5d62e;touch-action:manipulation;cursor:pointer;overflow:hidden}.player-nav-icon{flex:0 0 auto;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center}.player-nav-icon svg{width:22px;height:22px}.player-nav-label{display:none;white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.player-nav-btn:active{transform:scale(.97);background:#4fe3d01f}.player-nav-btn[aria-expanded=true],.player-nav-btn.active{border-color:var(--accent);background:#4fe3d02e;box-shadow:0 0 20px #36f5d659}.player-nav-btn:disabled,.player-nav-btn.disabled{opacity:.32;pointer-events:none;box-shadow:none}@media(hover:hover)and (pointer:fine){.player-nav-btn{width:auto;border-radius:999px;padding-right:16px}.player-nav-label{display:inline}}.company-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:stretch;justify-content:flex-end;background:#0206088c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.company-panel[hidden]{display:none}.company-sheet{display:flex;flex-direction:column;width:min(520px,100%);height:100%;background:#040c10f0;border-left:1px solid rgba(79,227,208,.28);box-shadow:-12px 0 40px #00000080}.company-header{display:flex;align-items:center;justify-content:space-between;padding:max(16px,env(safe-area-inset-top,16px)) 18px 14px;border-bottom:1px solid rgba(79,227,208,.18)}.company-eyebrow{display:block;font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.company-title{margin:2px 0 0;font-size:20px;color:var(--text)}.company-close{flex:0 0 auto;width:36px;height:36px;border-radius:999px;border:1px solid rgba(79,227,208,.28);background:#040c1099;color:var(--text-dim);font-size:14px;cursor:pointer;touch-action:manipulation}.company-close:active{color:var(--accent);border-color:#4fe3d073}.company-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px max(20px,env(safe-area-inset-bottom,20px));-webkit-overflow-scrolling:touch}.csuite-body{display:flex;flex-direction:column;gap:8px}.csuite-row{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.csuite-row-detail{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.csuite-player-stats{display:grid;grid-template-columns:76px 1fr 34px;gap:4px 6px;align-items:center}.csuite-stat-name{font-size:10px;letter-spacing:.4px;color:var(--text-dim);white-space:nowrap}.csuite-role{flex-shrink:0;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);width:32px;padding-top:2px}.csuite-role--none{color:var(--text-dim)}.csuite-name{font-size:13px;color:var(--text);line-height:1.2}.csuite-name-input{flex:1;min-width:0;font-size:13px;padding:4px 8px}.csuite-empty{color:var(--text-dim);font-size:12px;margin:0}.csuite-metrics{margin-top:8px;display:flex;flex-direction:column;gap:6px}.csuite-metric-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.csuite-metric-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-dim)}.csuite-metric-name{width:110px;flex-shrink:0;letter-spacing:.3px}.csuite-metric-bar{flex:1;height:4px;background:var(--line);border-radius:2px;overflow:hidden}.csuite-metric-fill{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .2s}.csuite-metric-val{width:34px;text-align:right;flex-shrink:0;color:var(--text)}.csuite-metric-val--wide{width:42px}.csuite-metric-bar--bipolar{position:relative}.csuite-metric-bar--bipolar:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--text-dim);transform:translate(-50%);pointer-events:none}.csuite-metric-bar--bipolar .csuite-metric-fill{position:absolute;top:0;height:100%;transition:width .2s,left .2s}.csuite-metric-fill--positive{background:#4caf73}.csuite-metric-fill--negative{background:#e05252}.csuite-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.csuite-position{font-size:10px;letter-spacing:.4px;color:var(--accent);background:var(--panel-3, var(--panel-2));border:1px solid var(--line);border-radius:999px;padding:1px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.csuite-move-character-btn{display:block;width:100%;margin-top:16px;padding:12px 0;font-size:12px;letter-spacing:2px;text-align:center;border-color:var(--accent);color:var(--accent)}.csuite-move-character-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.csuite-pos-group{display:flex;flex-direction:column;gap:6px}.csuite-pos-group-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.csuite-pos-items{display:flex;flex-wrap:wrap;gap:6px}.csuite-pos-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:11px;letter-spacing:.4px;padding:5px 10px;cursor:pointer;transition:border-color .12s,background .12s}.csuite-pos-item:hover{border-color:var(--accent)}.roster-position-select{min-width:100px;max-width:140px}.reposition-confirm-overlay{position:absolute;bottom:max(24px,env(safe-area-inset-bottom,24px));left:50%;transform:translate(-50%);z-index:95;pointer-events:all}.reposition-confirm-overlay[hidden]{display:none}.reposition-bar{display:flex;align-items:center;gap:16px;padding:12px 18px;background:#040c10f0;border:1px solid rgba(79,227,208,.45);border-radius:var(--radius);box-shadow:0 4px 24px #0009;white-space:nowrap}.reposition-bar-loc{display:flex;flex-direction:column;gap:2px;min-width:0}.reposition-bar-type{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.reposition-bar-name{font-size:13px;color:var(--text);max-width:180px;overflow:hidden;text-overflow:ellipsis}.reposition-bar-actions{display:flex;gap:8px;flex-shrink:0}.reposition-bar-confirm{border-color:var(--accent);color:var(--accent)}.contracts-view-body{display:flex;flex-direction:column;gap:14px}.contracts-ribbon{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2px}.contracts-tab{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;border-radius:999px;border:1px solid rgba(79,227,208,.35);background:#040c10d1;color:var(--accent);font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;touch-action:manipulation}.contracts-tab-label{line-height:1.2;text-align:center}.contracts-tab-meta{display:flex;align-items:baseline;justify-content:center;gap:6px;font-size:11px;letter-spacing:0;text-transform:none;color:var(--text)}.contracts-tab-count{font-weight:600;color:var(--text-bright)}.contracts-tab-net{font-weight:600}.contracts-tab:active{transform:scale(.98);background:#4fe3d01f}.contracts-tab.active{border-color:var(--accent);background:#4fe3d02e;box-shadow:0 0 16px #36f5d640}.rent-contract-list{display:flex;flex-direction:column;gap:10px}.rent-contract-row{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid rgba(79,227,208,.16);border-radius:10px;background:#061014b3}.contract-clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.contract-clickable:hover,.contract-clickable:focus-visible{border-color:#4fe3d08c;box-shadow:0 0 0 1px #4fe3d059,0 8px 20px #00000059;outline:none;transform:translateY(-1px)}.rent-contract-primary-col{display:flex;flex-direction:column;gap:2px;min-width:0}.rent-contract-primary-label{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.rent-contract-primary{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--text);line-height:1.2}.rent-contract-payee{font-size:12px;color:var(--text-dim)}.rent-contract-secondary{display:flex;flex-wrap:wrap;gap:6px}.rent-provider-costs{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:11px}.rent-provider-costs-label{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);flex:0 0 auto}.rent-provider-costs-values{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 4px;min-width:0}.rent-provider-cost-item{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);white-space:nowrap}.rent-provider-cost-item .company-res-icon{flex:0 0 auto}.rent-provider-cost-sep{color:var(--text-dim);opacity:.6;-webkit-user-select:none;user-select:none}.rent-contract-details{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px solid rgba(79,227,208,.1)}.rent-contract-lines{display:flex;flex-direction:column;gap:4px}.rent-contract-lines-label{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.rent-contract-lines-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.rent-contract-line-item{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px}.rent-contract-line-name{color:var(--text);font-weight:500}.rent-contract-line-meta{color:var(--text-dim);font-size:11px}.rent-contract-line-amount{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:600;white-space:nowrap}.rent-contract-context{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-dim)}.rent-contract-context .company-res-icon{opacity:.7}.rent-contract-context-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-plaintext-block{display:flex;flex-direction:column;gap:4px;padding-top:8px;margin-top:4px;border-top:1px solid rgba(79,227,208,.1)}.contract-plaintext{margin:0;font-size:10px;line-height:1.45;color:var(--text-dim);opacity:.85}.rent-contract-main{display:flex;flex-direction:column;gap:8px}.rent-contract-goods{display:flex;align-items:flex-start;gap:8px}.rent-contract-qty-col{display:flex;flex-direction:column;gap:2px;min-width:0}.rent-contract-qty{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--text)}.rent-contract-res{font-size:12px;color:var(--text-dim)}.rent-contract-dims{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.rent-contract-parties{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px}.rent-contract-party{color:var(--text)}.rent-contract-party-arrow{color:var(--text-dim)}.rent-contract-econ{display:flex;flex-wrap:wrap;gap:6px}.rent-contract-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rent-contract-head .rent-contract-main,.rent-contract-head .rent-contract-primary-col{flex:1 1 auto;min-width:0}.rent-contract-amount{flex:0 0 auto;font-family:var(--mono);font-size:15px;font-weight:600;white-space:nowrap;text-align:right}.rent-contract-row--paid{border-color:#ff7a7a38}.rent-contract-row--received{border-color:#5bf0c238}.rent-major-section{display:flex;flex-direction:column;gap:12px;padding-top:8px}.rent-major-section+.rent-major-section{margin-top:8px;padding-top:16px;border-top:1px solid rgba(79,227,208,.14)}.rent-major-heading{margin:0;font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase}.rent-major-section--paid .rent-major-heading{color:#ff9a9a}.rent-major-section--received .rent-major-heading{color:#5bf0c2}.rent-subsection{display:flex;flex-direction:column;gap:8px}.rent-subheading{margin:0;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.rent-empty-note{margin:0}.rent-line-title{display:flex;flex-direction:column;gap:2px;min-width:0}.rent-line-owner{font-family:var(--mono);font-size:10px;color:var(--text-dim)}.rent-line-row--paid{border-color:#ff7a7a29}.rent-line-row--received{border-color:#5bf0c229}.rent-agg-list{display:flex;flex-direction:column;gap:8px}.rent-line-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid rgba(79,227,208,.14);border-radius:8px;background:#00000038}.rent-line-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.rent-line-name{font-size:13px;color:var(--text)}.rent-line-income{font-family:var(--mono);font-size:14px;font-weight:600}.rent-line-stats{display:flex;flex-wrap:wrap;gap:6px}.rent-agg-totals{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid rgba(79,227,208,.22);border-radius:10px;background:#4fe3d00f}.rent-agg-totals-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.rent-agg-totals-net{font-family:var(--mono);font-size:20px;font-weight:600}.rent-agg-totals-chips{display:flex;flex-wrap:wrap;gap:6px}.transport-fees-section{display:flex;flex-direction:column;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(79,227,208,.14)}.transport-fees-heading{margin:0;font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#ff9a9a}.transport-fees-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid rgba(255,122,122,.22);border-radius:10px;background:#ff7a7a0f}.transport-fees-total-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.transport-fees-total-value{font-family:var(--mono);font-size:18px;font-weight:600}.rent-aggregate-footer{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(79,227,208,.14)}.rent-aggregate-col{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid rgba(79,227,208,.22);border-radius:10px;background:#4fe3d00f}.rent-aggregate-col--receipts{border-color:#5bf0c247;background:#5bf0c20f}.rent-aggregate-col--costs{border-color:#ffb47838;background:#ffb4780d}.rent-aggregate-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.rent-aggregate-value{font-family:var(--mono);font-size:20px;font-weight:600}.rent-aggregate-costs{display:flex;flex-wrap:wrap;gap:6px}.launch-chip-grid{display:flex;flex-direction:column;gap:10px}.launch-chip{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid rgba(79,227,208,.18);border-radius:10px;background:#061014b8}.launch-chip-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.launch-chip-goods{display:flex;align-items:center;gap:8px;min-width:0}.launch-chip-qty{font-family:var(--mono);font-size:15px;font-weight:600}.launch-chip-res{font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.launch-chip-fee{flex:0 0 auto;font-family:var(--mono);font-size:15px;font-weight:600}.launch-chip-net{font-family:var(--mono);font-size:10px;font-weight:500;line-height:1.2;color:var(--text-dim);white-space:nowrap}.launch-chip-parties{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--text-dim)}.launch-chip-arrow{color:var(--text-dim)}.launch-chip-costs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.contracts-summary{display:flex;gap:10px}.contracts-summary-stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid rgba(79,227,208,.18);border-radius:10px;background:#4fe3d00d}.contracts-summary-num{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--text)}.contracts-summary-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.contracts-grid{display:flex;flex-direction:column;gap:12px}.contract-card{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid rgba(79,227,208,.16);border-left-width:3px;border-radius:10px;background:#061014b3}.contract-card--seller{border-left-color:#36f5d6b3}.contract-card--buyer{border-left-color:#ffb05cb3}.contract-card-head{display:flex;align-items:flex-start;gap:10px}.contract-dir{flex:0 0 auto;padding:3px 8px;border-radius:999px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}.contract-dir--seller{color:#062018;background:#36f5d6d9}.contract-dir--buyer{color:#241405;background:#ffb05cd9}.contract-card-titles{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.contract-card-name{margin:0;font-size:15px;color:var(--text)}.contract-card-party{font-size:12px;color:var(--text-dim)}.contract-net{flex:0 0 auto;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--text-dim)}.contract-net--pos{color:#5cf0c6}.contract-net--neg{color:#ff9d6b}.contract-flow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:#00000047}.contract-flow-goods{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px}.contract-flow-qty{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--text)}.contract-flow-res{font-size:13px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-flow-arrow{flex:0 0 auto;font-size:18px;color:var(--text-dim)}.contract-flow-money{flex:0 0 auto;font-family:var(--mono);font-size:18px;font-weight:600}.contract-trade-lead{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}.contract-trade-figures{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}.contract-trade-price{font-family:var(--mono);font-size:10px;font-weight:500;line-height:1.2;color:var(--text-dim);white-space:nowrap}.contract-meta-sep{color:var(--text-dim)}.contract-meta-route-warn{color:var(--text-dim);font-style:italic}.contract-card-subtitle{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-expiry-chip{display:inline-block;align-self:flex-start;font-size:10px;padding:1px 6px;border-radius:3px;margin-top:2px}.contract-expiry-chip--gray{background:#96a0aa1a;color:var(--text-dim);border:1px solid rgba(150,160,170,.2)}.contract-expiry-chip--orange{background:#f0b35c1f;color:#f0b35c;border:1px solid rgba(240,179,92,.3)}.contract-expiry-chip--red{background:#f0503c24;color:#f06050;border:1px solid rgba(240,80,60,.35)}.contract-card-stats{display:flex;flex-wrap:wrap;gap:6px}.contract-card-costs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.contract-cost-area{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid rgba(79,227,208,.16);border-radius:8px;background:#00000038}.contract-cost-area-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.contract-cost-area-label{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.contract-cost-area-total{font-family:var(--mono);font-size:12px;font-weight:600;white-space:nowrap}.contract-cost-area-body{display:flex;flex-direction:column;gap:4px}.contract-cost-subheading{margin-top:2px;font-family:var(--mono);font-size:9px;letter-spacing:.5px;color:var(--text-dim)}.contract-cost-subheading:not(:first-child){margin-top:4px;padding-top:4px;border-top:1px solid rgba(79,227,208,.1)}.contract-cost-line{display:flex;align-items:center;gap:5px;font-size:11px}.contract-cost-line .company-res-icon{flex:0 0 auto}.contract-cost-line-label{flex:1 1 auto;min-width:0;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-cost-line-value{flex:0 0 auto;font-family:var(--mono);font-size:11px;white-space:nowrap}.contract-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid rgba(79,227,208,.18);border-radius:999px;background:#4fe3d00d;font-size:11px}.contract-chip-label{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.contract-chip-value{font-family:var(--mono);color:var(--text)}.contract-chip--warn{border-color:#ff8a5c66;background:#ff8a5c14;color:#ffb08a}.contract-chip--muted{color:var(--text-dim)}.contract-route-canvas{margin-top:2px;line-height:0}.contract-leg-highlight{display:flex;flex-direction:column;gap:4px;padding:6px 0 2px}.resources-view-header{gap:10px}.resources-view-header .company-titles{flex:1 1 auto;min-width:0}.resources-back{flex:0 0 auto;padding:8px 12px;border-radius:999px;border:1px solid rgba(79,227,208,.28);background:#040c1099;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation;white-space:nowrap}.resources-back:active{border-color:#4fe3d073;background:#4fe3d014}.resources-view-body{display:flex;flex-direction:column;gap:14px}.resources-price-list{display:flex;flex-direction:column;gap:6px}.resources-price-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(79,227,208,.18);background:#040c108c;color:var(--text);font:inherit;text-align:left;touch-action:manipulation}.resources-price-row--linked{cursor:pointer}.resources-price-row--linked:hover,.resources-price-row--linked.active{border-color:#4fe3d06b;background:#4fe3d014}.resources-price-row:not(.resources-price-row--linked){cursor:default;opacity:.82}.resources-price-res{display:flex;align-items:flex-start;gap:10px;min-width:0;flex:1 1 auto}.resources-price-res-body{display:flex;flex-direction:column;gap:4px;min-width:0}.resources-price-name{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resources-price-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;line-height:1.35}.resources-price-meta-sep{color:var(--text-dim)}.resources-price-stock,.resources-price-flow{font-weight:600}.resources-price-trail{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding-top:1px}.resources-price-estimate{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.resources-price-estimate-label{font-size:10px;letter-spacing:.3px;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.resources-price-value{font-family:var(--mono);font-size:13px;color:var(--accent)}.resources-price-chevron{font-size:18px;line-height:1;color:var(--text-dim)}.resources-activity-breakdown{display:flex;flex-direction:column;gap:8px}.resources-activity-breakdown-title{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim)}.resources-activity-list{display:flex;flex-direction:column;gap:6px}.resources-activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(79,227,208,.18);background:#040c108c;color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.resources-activity-row:hover,.resources-activity-row.active{border-color:#4fe3d06b;background:#4fe3d014}.resources-activity-row:disabled{cursor:default;opacity:.72}.resources-activity-row:disabled:hover{border-color:#4fe3d02e;background:#040c108c}.resources-activity-label{font-size:13px}.resources-activity-trail{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.resources-activity-total{font-size:13px;font-variant-numeric:tabular-nums;color:var(--accent)}.resources-activity-total--zero{color:var(--text-dim)}.resources-activity-chevron{color:var(--text-dim);font-size:16px;line-height:1}.resources-activity-detail-summary{margin:0;font-size:12px;color:var(--text-dim)}.resources-activity-detail-list{display:flex;flex-direction:column;gap:8px}.resources-activity-item{padding:10px 12px;border-radius:10px;border:1px solid rgba(79,227,208,.14);background:#040c1073}.resources-activity-item--nav{cursor:pointer;transition:border-color .15s ease,background .15s ease}.resources-activity-item--nav:hover,.resources-activity-item--nav:focus-visible{border-color:#4fe3d06b;background:#4fe3d00f;outline:none}.resources-activity-item-trail{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.resources-activity-item-map-hint{font-size:16px;line-height:1;color:var(--text-dim);opacity:0;transition:opacity .15s ease}.resources-activity-item--nav:hover .resources-activity-item-map-hint,.resources-activity-item--nav:focus-visible .resources-activity-item-map-hint{opacity:1;color:var(--accent)}.resources-activity-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.resources-activity-item-label{font-size:13px;line-height:1.35}.resources-activity-item-qty{flex:0 0 auto;font-size:13px;font-variant-numeric:tabular-nums;color:var(--accent)}.resources-activity-item-detail{margin:6px 0 0;font-size:12px;line-height:1.35;color:var(--text-dim)}.resources-heuristics-summary{margin:0 0 14px;font-size:12px;color:var(--text-dim)}.resources-heuristics-graphs{display:flex;flex-direction:column;gap:0}.resources-heuristic-graph{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-bottom:1px solid rgba(79,227,208,.1)}.resources-heuristic-graph:last-child{border-bottom:none;padding-bottom:0}.resources-heuristic-graph:first-child{padding-top:0}.resources-heuristic-graph-name{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim);line-height:1.35}.resources-heuristic-flow{display:flex;align-items:center;gap:14px}.resources-heuristic-side{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}.resources-heuristic-side--in{align-items:flex-end;text-align:right}.resources-heuristic-side--out{align-items:flex-start}.resources-heuristic-side-empty{font-size:13px;color:var(--text-dim)}.resources-heuristic-mid{flex:0 0 auto;display:flex;align-items:center;color:var(--accent);opacity:.45}.resources-heuristic-edge{width:20px;height:20px}.resources-heuristic-term{display:inline-flex;align-items:center;gap:7px;max-width:100%}.resources-heuristic-term--focus .resources-heuristic-term-name{color:var(--text)}.resources-heuristic-term--focus .resources-heuristic-term-qty{color:var(--accent)}.resources-heuristic-term-missing{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:11px}.resources-heuristic-term-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resources-heuristic-term-qty{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text)}.resources-heuristic-term-name{font-size:13px;color:var(--text-dim);margin-left:.3em}.resources-heuristic-term-role{font-size:11px;color:var(--accent);opacity:.75}.resources-heuristic-term--link{cursor:pointer;background:none;border:none;padding:0;font:inherit;color:inherit;border-radius:4px}.resources-heuristic-term--link:hover .resources-heuristic-term-name,.resources-heuristic-term--link:focus-visible .resources-heuristic-term-name{color:var(--text);text-decoration:underline;text-underline-offset:2px}.resources-heuristic-term--link:focus-visible{outline:1px solid rgba(79,227,208,.55);outline-offset:2px}.resources-price-physical{display:flex;flex-wrap:wrap;gap:8px;margin-top:1px}.resources-price-phys-chip{display:inline-flex;align-items:baseline;gap:4px}.resources-price-phys-label{font-size:9px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim);opacity:.7}.resources-price-phys-value{font-size:11px;font-family:var(--mono);color:var(--text-dim);font-weight:500}.resources-detail-props{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin-bottom:16px;background:#4fe3d00a;border:1px solid rgba(79,227,208,.14);border-radius:8px}.resources-detail-prop-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.resources-detail-prop-label{font-size:11px;color:var(--text-dim);flex:0 0 auto}.resources-detail-prop-value{font-family:var(--mono);font-size:12px;color:var(--text);text-align:right}@media(max-width:520px){.resources-heuristic-flow{flex-direction:column;align-items:stretch}.resources-heuristic-mid{flex-direction:row;justify-content:center;padding:2px 0}.resources-heuristic-edge{transform:rotate(90deg)}}.licenses-player-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:stretch;justify-content:flex-end;background:#0206086b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:auto}.licenses-player-panel[hidden]{display:none}.licenses-player-sheet{display:flex;flex-direction:column;width:min(480px,100%);height:100%;background:#040c10f0;border-left:1px solid rgba(79,227,208,.28);box-shadow:-12px 0 40px #00000080}.licenses-player-header{display:flex;align-items:center;justify-content:space-between;padding:max(16px,env(safe-area-inset-top,16px)) 18px 14px;border-bottom:1px solid rgba(79,227,208,.18)}.licenses-player-eyebrow{display:block;font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.licenses-player-title{margin:2px 0 0;font-size:20px;color:var(--text)}.licenses-player-team-picker{margin-top:2px}.licenses-player-team-select{width:100%;max-width:280px;margin-top:2px;background:#040c10d9;border:1px solid rgba(79,227,208,.28);padding:8px 10px;color:var(--text);border-radius:var(--radius);font:inherit;font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.licenses-player-team-select:focus{outline:none;border-color:var(--accent)}.player-view.licenses-view-open>.team-key-overlay,.game-workspace.licenses-view-open>.team-key-overlay{display:none}.licenses-player-close{flex:0 0 auto;width:36px;height:36px;border-radius:999px;border:1px solid rgba(79,227,208,.28);background:#040c1099;color:var(--text-dim);font-size:14px;cursor:pointer;touch-action:manipulation}.licenses-player-close:active{color:var(--accent);border-color:#4fe3d073}.licenses-player-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px max(20px,env(safe-area-inset-bottom,20px));-webkit-overflow-scrolling:touch}.licenses-player-summary{margin:0 0 14px;font-size:12px;color:var(--text-dim)}.licenses-player-empty{margin:0;font-size:13px;color:var(--text-dim)}.licenses-player-grid{display:flex;flex-direction:column;gap:12px}.licenses-player-card{padding:14px;border-radius:var(--radius);border:1px solid rgba(79,227,208,.16);background:linear-gradient(135deg,#4fe3d00f,#ffffff05);box-shadow:0 0 24px #36f5d60f}.licenses-player-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.licenses-player-swatch{flex:0 0 auto;width:14px;height:14px;margin-top:4px;border-radius:4px;box-shadow:0 0 10px #ffffff26}.licenses-player-card-name{margin:0;font-size:16px;color:var(--text)}.licenses-player-card-tags{display:block;margin-top:2px;font-size:11px;color:var(--text-dim)}.licenses-player-rights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.licenses-player-right-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:6px;background:#ffffff08}.licenses-player-right-name{font-size:12px;color:var(--text)}.licenses-player-right{flex:0 0 auto;font-family:var(--mono);font-size:9px;letter-spacing:.8px;text-transform:uppercase;padding:3px 7px;border-radius:999px;border:1px solid transparent}.licenses-player-right--permission{color:#7ee8ff;border-color:#7ee8ff59;background:#7ee8ff1a}.licenses-player-right--exclusive{color:#ffd166;border-color:#ffd16666;background:#ffd1661f}.licenses-player-empty-rights{margin:0;font-size:12px;color:var(--text-dim);font-style:italic}.player-view.licenses-view-mobile>.player-view-stage{filter:brightness(.92);transition:filter .32s ease;pointer-events:none}.licenses-player-panel--mobile{flex-direction:column;justify-content:flex-start;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.licenses-player-map-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 70% at 50% 50%,transparent 35%,rgba(2,6,8,.22) 100%),linear-gradient(180deg,rgba(2,6,8,.28) 0%,transparent 18%,transparent 78%,rgba(2,6,8,.24) 100%);pointer-events:none}.licenses-mobile-bar{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top,10px)) 14px 10px;background:linear-gradient(180deg,#02080ce0,#02080c73);border-bottom:1px solid rgba(79,227,208,.16);pointer-events:auto}.licenses-mobile-title{margin:2px 0 0;font-size:17px;color:var(--text)}.licenses-mobile-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;padding:14px 18px;border-radius:var(--radius);border:1px solid rgba(79,227,208,.2);background:#040c10d1;font-size:13px;color:var(--text-dim);pointer-events:auto}.licenses-callout-lines{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.licenses-callout-line{fill:none;stroke:var(--lic-color, var(--accent));stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.licenses-callout-dot{fill:var(--lic-color, var(--accent));stroke:#ffffffb3;stroke-width:1}.licenses-callout-chips{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;pointer-events:none}.licenses-callout-chip{position:absolute;transform:translate(-50%,-50%);box-sizing:border-box;padding:4px 7px 4px 9px;border-radius:6px;border-left:2px solid var(--lic-color, var(--accent));background:#030a0edb;box-shadow:0 2px 12px #00000059;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.licenses-callout-chip-title{margin:0 0 2px;padding-bottom:2px;border-bottom:1px solid rgba(255,255,255,.08);font-size:10px;font-weight:600;letter-spacing:.2px;color:#eafff9f5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.licenses-callout-chip--dragging{cursor:grabbing;z-index:4;box-shadow:0 4px 20px #00000080}.licenses-callout-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.licenses-callout-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:13px;line-height:1.2}.licenses-callout-row--empty{font-size:9px;color:var(--text-dim);font-style:italic;justify-content:flex-start}.licenses-callout-right-name{flex:1;min-width:0;font-size:10px;color:#e6f5f2eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.licenses-callout-status{flex:0 0 auto;font-family:var(--mono);font-size:8px;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim)}.licenses-callout-status--permission{color:#7ee8ff}.licenses-callout-status--exclusive{color:#ffd166}.licenses-mobile-bar--measure{box-sizing:border-box}@media(min-width:721px)and (not (orientation:portrait)),(min-width:901px){.licenses-player-panel:not(.licenses-player-panel--mobile){background:#0206086b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}}.company-section+.company-section{margin-top:24px}.company-ribbon{display:flex;flex-wrap:nowrap;gap:0;width:fit-content;max-width:100%;margin:0 auto 10px;justify-content:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border:1px solid rgba(79,227,208,.18);border-radius:var(--radius);background:#ffffff05}.company-ribbon::-webkit-scrollbar{display:none}.company-ribbon-tab{flex:0 0 auto;min-width:0;padding:8px 12px;border:none;border-right:1px solid rgba(79,227,208,.18);border-radius:0;background:transparent;color:var(--text-dim);font:inherit;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:background .12s ease,color .12s ease}.company-ribbon-tab:last-child{border-right:none}.company-ribbon-tab:hover{color:var(--text-bright);background:#ffffff08}.company-ribbon-tab.active{color:var(--accent);background:#4fe3d01a}.company-inventory-meta{margin:0 0 10px;font-family:var(--mono);font-size:11px;color:var(--accent)}.company-link-end-label{flex:0 0 auto;font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--text-dim)}.company-link-shipping{display:flex;flex-direction:column;gap:6px;padding-top:4px;border-top:1px solid rgba(79,227,208,.1)}.company-link-route{font-family:var(--mono);font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#96b4d2d9}.company-link-rates{display:flex;flex-direction:column;gap:2px;font-family:var(--mono);font-size:10px}.company-link-rate{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,.7fr);gap:8px;align-items:center;padding:3px 0}.company-link-rate--head{padding-bottom:2px;border-bottom:1px solid rgba(79,227,208,.08);font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#96b4d28c}.company-link-rate-tariff{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--text)}.company-link-rate-per100{color:#d2e8ffeb;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-link-rate--head .company-link-rate-per100,.company-link-rate--head .company-link-rate-total{font-weight:400;color:#96b4d28c}.company-ship-credit{flex:0 0 auto;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--amber);line-height:1}.company-ship-rate-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.company-link-rate-total{text-align:right;color:#96b4d2bf;white-space:nowrap}.company-link-rate:not(.company-link-rate--head) .company-link-rate-total{font-weight:600;color:#d2e8ffd9}.company-chip-store{font-weight:600}.company-section-title{margin:0 0 10px;font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.company-empty{margin:0;font-size:13px;color:var(--text-dim)}.company-res-icon{flex:0 0 auto;display:inline-block}.company-table{display:flex;flex-direction:column;font-size:12px}.company-balance-section{margin-bottom:4px}.company-balance-grid{display:flex;flex-direction:column;border:1px solid rgba(79,227,208,.16);border-radius:10px;overflow:hidden;background:#040c108c;font-size:12px}.company-balance-grid:has(.company-balance-grid-row--item) .company-balance-grid-row{grid-template-columns:minmax(0,1.85fr) minmax(0,.62fr) minmax(0,.62fr) minmax(0,.72fr)}.company-balance-grid-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.72fr) minmax(0,.72fr) minmax(0,.8fr);align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;color:var(--text);font:inherit;text-align:left}.company-balance-grid-row:last-child{border-bottom:0}.company-balance-grid-row--head{padding-top:9px;padding-bottom:9px;background:#4fe3d00d;font-family:var(--mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim)}.company-balance-grid-row--head .company-balance-cell--num{text-align:right}.company-balance-grid-row--linked{cursor:pointer;touch-action:manipulation}.company-balance-grid-row--linked:hover,.company-balance-grid-row--linked.active{background:#4fe3d014}.company-balance-grid-row--gross,.company-balance-grid-row--total{border-top:1px solid rgba(79,227,208,.18);background:#4fe3d012;font-weight:600}.company-balance-cell{min-width:0}.company-balance-cell--label{display:flex;flex-direction:column;gap:2px;min-width:0}.company-balance-label-wrap{display:inline-flex;align-items:center;gap:6px;min-width:0}.company-balance-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-balance-cell--num{text-align:right;font-family:var(--mono);font-size:11px;white-space:nowrap}.company-balance-chevron{flex:0 0 auto;color:var(--accent);font-size:14px;line-height:1}.company-balance-detail-head{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.company-balance-detail-titles{display:flex;flex-direction:column;gap:4px}.company-balance-detail-titles .company-section-title{margin:0}.company-balance-detail-total{font-family:var(--mono);font-size:11px;color:var(--text-dim)}.company-balance-item-detail{color:var(--text-dim);font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-balance-grid-row--item{align-items:start}.company-balance-grid-row--item .company-balance-label,.company-balance-grid-row--item .company-balance-item-detail{overflow:visible;text-overflow:unset;white-space:normal;overflow-wrap:anywhere}.company-balance-grid-row--item .company-balance-cell--num{padding-top:1px}.company-balance-grid-row--item .company-balance-cell--label{padding-left:4px}.company-row{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,.8fr)) minmax(0,1.1fr);align-items:center;gap:6px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}.company-row--head{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.company-cell--res{display:flex;align-items:center;gap:7px;min-width:0}.company-res-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.company-cell--num{text-align:right;font-family:var(--mono);color:var(--text)}.company-balance--pos,.company-net--up{color:#5bf0c2}.company-balance--neg,.company-net--down{color:#ff7a7a}.company-balance--zero{color:var(--text-dim)}.company-reserves-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-top:4px;border-top:1px solid rgba(255,255,255,.07);font-size:11px}.company-reserves-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.company-reserves-val{font-variant-numeric:tabular-nums;color:#5bf0c2;font-weight:600}.company-chip-balance{font-weight:600}.company-chip-sep,.company-chip-cap{color:var(--text-dim)}.company-chip-money-tag{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text-dim);font-weight:600}.company-store{font-weight:600}.company-store--green{color:#5bf0c2}.company-store--yellow{color:#ffe066}.company-store--orange{color:#ff9d4d}.company-store--red{color:#ff6161}.company-store--full{color:#4a7bff}.company-store--filling{color:#7fd3ff}.company-fac-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.company-inventory-list{display:flex;flex-direction:column;gap:8px}.company-vacuum-block{margin-top:6px;padding-top:12px;border-top:1px solid rgba(120,160,220,.22)}.company-vacuum-heading{margin:0 0 8px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#8cb4e6e0}.company-vacuum-list{gap:7px}.company-fac--vacuum{border-color:#78aae63d;background:#4678be0f}.company-fac--vacuum.company-fac--nav:hover,.company-fac--vacuum.company-fac--nav:focus-visible{border-color:#96c3ff7a;background:#4678be1c}.company-fac-kind{flex:0 0 auto;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#96bef0eb}.company-fac--vacuum .company-fac-name,.company-fac--vacuum .company-fac-meta,.company-fac--vacuum .company-fac-crew{color:#b4cdebeb}.company-fac--vacuum .company-fac-province{color:#a0c8fff2}.company-fac{display:flex;flex-direction:column;gap:7px;padding:11px 12px;border:1px solid rgba(79,227,208,.16);border-radius:var(--radius);background:#ffffff05}.company-fac--nav{cursor:pointer;transition:border-color .15s ease,background .15s ease}.company-fac--nav:hover,.company-fac--nav:focus-visible{border-color:#4fe3d06b;background:#4fe3d00f;outline:none}.company-fac-name{font-size:14px;color:var(--text);flex:1 1 auto;min-width:0}.company-fac-title-row{display:flex;align-items:baseline;gap:10px}.company-fac-crew{flex:0 0 auto;font-family:var(--mono);font-size:11px;color:var(--accent)}.company-section-meta{margin-left:8px;font-family:var(--mono);font-size:11px;font-weight:400;color:var(--accent)}.company-fac-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-dim)}.company-fac-province{color:var(--accent)}.company-fac-chips{display:flex;flex-wrap:wrap;gap:6px}.company-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:#ffffff0a;font-family:var(--mono);font-size:11px;color:var(--text)}.team-key-overlay{position:absolute;z-index:65;top:max(12px,env(safe-area-inset-top,12px));left:max(12px,env(safe-area-inset-left,12px));pointer-events:none;max-width:min(240px,calc(100vw - 80px))}.team-key-overlay[hidden]{display:none}.team-key-panel{pointer-events:auto;padding:10px 12px;border-radius:var(--radius);border:1px solid rgba(79,227,208,.28);background:#040c10eb;box-shadow:0 0 24px #36f5d61a,inset 0 1px #ffffff0a}.team-key-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;margin:0 0 8px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;touch-action:manipulation;cursor:pointer}.team-key-panel--collapsed .team-key-toggle{margin-bottom:0}.team-key-panel--collapsed .team-key-list{display:none}.team-key-toggle-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.team-key-title{display:block;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.team-key-toggle-icon{flex:0 0 auto;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.team-key-toggle-icon--desktop{display:none;color:var(--text-dim)}.team-key-toggle-icon--desktop svg{width:14px;height:14px}.team-key-panel:not(.team-key-panel--collapsed) .team-key-fold-h{opacity:0}.team-key-fold-h{transition:opacity .15s ease}.team-key-chevron{width:7px;height:7px;border-right:1.5px solid var(--text-dim);border-bottom:1.5px solid var(--text-dim);transform:rotate(45deg);transition:transform .2s ease;margin-top:-2px}.team-key-panel--collapsed .team-key-chevron{transform:rotate(-135deg);margin-top:2px}@media(hover:hover)and (pointer:fine){.team-key-toggle-icon--mobile{display:none}.team-key-toggle-icon--desktop{display:flex}}@media(hover:none)and (pointer:coarse){.team-key-toggle{min-height:32px}}.team-key-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.team-key-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-family:var(--body);font-size:12px;text-align:left;cursor:default;transition:background .28s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1)}.team-key-item:hover,.team-key-item:focus-visible{outline:none;background:#4fe3d014;border-color:#4fe3d038}.team-key-swatch{flex:0 0 auto;width:12px;height:12px;border-radius:3px;background:var(--team-color);box-shadow:0 0 0 1px #00000059;transition:box-shadow .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}.team-key-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .28s ease}.team-key-item--npc .team-key-name{color:var(--text-dim)}.team-key-item--key-focus,.team-key-item--pinned{background:#4fe3d01f;border-color:#4fe3d06b;box-shadow:0 0 18px #36f5d629;transform:translate(2px)}.team-key-item--pinned .team-key-swatch{box-shadow:0 0 0 1px #ffffff40,0 0 16px color-mix(in srgb,var(--team-color) 70%,white);transform:scale(1.15)}.team-key-item--pinned .team-key-name{color:#f4fffc}.team-key-item--key-focus .team-key-swatch{box-shadow:0 0 0 1px #00000059,0 0 12px color-mix(in srgb,var(--team-color) 70%,transparent);transform:scale(1.15)}.team-key-item--tack-focus{background:#ffffff0f;border-color:color-mix(in srgb,var(--team-color) 55%,transparent);box-shadow:0 0 20px color-mix(in srgb,var(--team-color) 35%,transparent)}.team-key-item--tack-focus .team-key-swatch{box-shadow:0 0 0 1px #ffffff40,0 0 16px var(--team-color);transform:scale(1.22)}.team-key-item--tack-focus .team-key-name{color:#f4fffc}.game-workspace .team-key-overlay{top:12px;left:12px}.player-view-wipe{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;background:#020608;transform:translate(0);will-change:transform}.player-view-wipe:before{content:"";position:absolute;top:0;bottom:0;right:0;width:2px;background:linear-gradient(180deg,transparent 0%,rgba(54,245,214,.15) 20%,rgba(54,245,214,.95) 50%,rgba(54,245,214,.15) 80%,transparent 100%);box-shadow:0 0 18px #36f5d6d9,0 0 42px #36f5d659}.player-view-wipe:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(54,245,214,.08) 2px,rgba(54,245,214,.08) 3px)}.player-view--opening .player-view-wipe{animation:player-view-wipe .76s cubic-bezier(.76,0,.24,1) forwards}@keyframes player-view-wipe{0%{transform:translate(0)}to{transform:translate(100%)}}.player-view--open .player-view-stage{animation:player-view-reveal .42s ease-out}@keyframes player-view-reveal{0%{filter:brightness(.55) contrast(1.08)}to{filter:none}}.player-view--flicker .player-view-stage{animation:player-map-flicker .46s steps(1,end) both}@keyframes player-map-flicker{0%{opacity:0}8%{opacity:.7}12%{opacity:.1}22%{opacity:.85}28%{opacity:.2}42%{opacity:1}48%{opacity:.45}60%{opacity:1}70%{opacity:.8}to{opacity:1}}.btn,a.btn,label.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:38px;padding:0 18px;background:#0b0f15d6;border:1px solid rgba(132,152,162,.16);border-radius:1px;color:#c4d2d7e6;font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.04em;line-height:1.2;text-transform:none;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.btn:before{content:"";position:absolute;top:0;left:14px;right:14px;height:1px;background:linear-gradient(90deg,transparent,rgba(196,210,215,.1),transparent);pointer-events:none}.btn:hover{color:var(--text-bright);border-color:#96b0ba4d;background:#10161ed1}.btn:active{background:#080c11eb;transition-duration:.06s}.btn:focus-visible{outline:none;border-color:#4fe3d06b;box-shadow:0 0 0 1px #4fe3d01a}.btn.primary{color:var(--text-bright);border-color:#4fe3d042;background:#4fe3d009;box-shadow:inset 0 0 0 1px #4fe3d00a}.btn.primary:before{background:linear-gradient(90deg,transparent,rgba(79,227,208,.2),transparent)}.btn.primary:hover{border-color:#4fe3d075;background:#4fe3d011;box-shadow:inset 0 0 0 1px #4fe3d00f,0 6px 28px #4fe3d00d}.btn.active{color:var(--accent);border-color:#4fe3d05c;background:#4fe3d00e}.btn.danger{color:#f07870e6;border-color:#f0635c38;background:#f0635c08}.btn.danger:hover{color:#f8b0aa;border-color:#f0635c66;background:#f0635c0f}.btn.icon{min-width:36px;min-height:36px;padding:0 10px;font-size:15px;letter-spacing:0}.btn.mini{min-height:26px;padding:0 10px;font-size:10px;letter-spacing:.06em}.btn.mini.danger{color:#ff8a98eb;border-color:#ff5d6c47}.btn.mini.danger:hover{color:#ffc0c8;border-color:#ff5d6c7a}.btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-icon{flex-shrink:0;width:16px;height:16px;opacity:.9}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn-wide{min-width:min(320px,88vw);justify-content:center;min-height:44px;padding:0 24px;font-size:13px}.lobby{width:min(720px,90vw);text-align:left;border:1px solid var(--line);background:var(--panel);padding:26px;border-radius:var(--radius)}.map-list{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow:auto}.map-list li{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-left:2px solid var(--line-2);padding:11px 14px;background:var(--panel-2);border-radius:var(--radius);transition:border-color .12s ease}.map-list li:hover{border-left-color:var(--accent)}.map-list .meta{color:var(--text-dim);font-size:11px}.map-list li button{background:none;border:none;color:#4fe3d0d1;cursor:pointer;letter-spacing:.04em;text-transform:none;font-size:12px;padding:4px 0;transition:color .15s ease}.map-list li button:hover{color:var(--text-bright)}.editor{display:grid;grid-template-columns:72px 1fr 324px;grid-template-rows:46px 1fr;grid-template-areas:"top top top" "tools stage inspector";height:100%}.topbar{grid-area:top;display:flex;align-items:center;gap:14px;padding:0 14px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-bottom:1px solid var(--line-2);z-index:5}.topbar .title{font-family:var(--display);letter-spacing:5px;color:var(--text-bright);font-size:14px;text-shadow:0 0 12px rgba(79,227,208,.2)}.topbar .map-name{background:var(--bg-2);border:1px solid var(--line);color:var(--text);padding:5px 9px;letter-spacing:1px;min-width:180px;border-radius:var(--radius)}.topbar .map-name:focus{outline:none;border-color:var(--accent)}.topbar .spacer{flex:1}.status{color:var(--text-dim);font-size:11px;letter-spacing:1px}.toolbar{grid-area:tools;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-right:1px solid var(--line-2);display:flex;flex-direction:column;align-items:stretch;padding:10px 8px;gap:8px;z-index:4}.ctx-switch{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden}.ctx{background:var(--bg-2);border:none;border-bottom:1px solid var(--line);color:var(--text-dim);font-family:var(--display);font-size:10px;letter-spacing:2px;padding:8px 0;cursor:pointer;transition:background .12s ease,color .12s ease}.ctx:last-child{border-bottom:none}.ctx:hover{color:var(--text-bright);background:#0c1218}.ctx.active{color:var(--accent);background:#4fe3d01a;text-shadow:none}.tool-sep{height:1px;background:var(--line);margin:2px 4px}.tool-stack{display:flex;flex-direction:column;gap:6px}.tool{position:relative;height:46px;border:1px solid var(--line);background:var(--bg-2);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;display:grid;place-items:center;gap:1px;transition:border-color .12s ease,color .12s ease,background .12s ease}.tool .tool-glyph{font-size:17px;line-height:1}.tool small{font-size:8px;letter-spacing:1.5px}.tool:hover{color:var(--text);border-color:var(--line-2);background:#0c1218}.tool.active{color:var(--accent);border-color:var(--accent-deep);background:linear-gradient(180deg,#4fe3d01f,#4fe3d008)}.tool.active:before{content:"";position:absolute;left:-1px;top:6px;bottom:6px;width:2px;background:var(--accent)}.stage{grid-area:stage;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(54,245,214,.06),transparent 60%),var(--bg)}#map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:crosshair}.stage-corner-btn,.immersive-btn{position:absolute;bottom:16px;z-index:6;background:#0b0f15e0;border:1px solid rgba(132,152,162,.16);color:#65777ff2;padding:0 16px;min-height:34px;letter-spacing:.04em;text-transform:none;font-size:11px;font-family:var(--mono);cursor:pointer;border-radius:1px;transition:opacity .18s ease,border-color .18s ease,color .18s ease,background .18s ease;opacity:.55}.stage-corner-btn{left:16px}.immersive-btn{left:50%;transform:translate(-50%)}.stage-corner-btn:hover,.immersive-btn:hover{opacity:1;color:var(--text-bright);border-color:#4fe3d061;background:#10161ed9}.editor.immersive{grid-template-columns:0 1fr 0;grid-template-rows:0 1fr}.editor.immersive .topbar,.editor.immersive .toolbar,.editor.immersive .inspector{display:none}.editor.immersive .immersive-btn{opacity:0;pointer-events:none}.editor.immersive .immersive-btn.near{opacity:.5;pointer-events:auto}.editor.immersive .immersive-btn.near:hover{opacity:1}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#020407b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.modal{width:min(440px,92vw);max-height:86vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);border-top:2px solid var(--accent-deep);border-radius:var(--radius);box-shadow:0 24px 60px #0009}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--display);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--text-bright)}.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:15px;line-height:1;padding:2px 6px}.modal-close:hover{color:var(--danger)}.modal-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.inspector{grid-area:inspector;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--line-2);overflow-y:auto;padding:10px 12px 12px;z-index:4}.section{margin-bottom:6px}.section>h3{margin:0;padding:11px 0 9px 9px;font-family:var(--display);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--text-bright);border-bottom:1px solid var(--line);border-left:2px solid var(--accent-deep);display:flex;justify-content:space-between;align-items:center;gap:8px}.head-tag{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:#02110e;background:var(--accent);padding:2px 7px;border-radius:var(--radius)}.section .body{padding:12px 0 4px;display:flex;flex-direction:column;gap:11px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.field input[type=text],.field select,.field textarea{background:var(--bg-2);border:1px solid var(--line);padding:7px 9px;color:var(--text);border-radius:var(--radius);letter-spacing:1px}.field input[type=text]:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.field textarea{resize:vertical;min-height:48px}.row{display:flex;gap:8px;align-items:center}.range-row{display:flex;flex-direction:column;gap:5px}.range-row .range-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.range-row .range-head .val{color:var(--accent)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3px;background:linear-gradient(90deg,var(--accent-deep),var(--accent));border-radius:2px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:1px;background:var(--accent);cursor:pointer}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:1px;background:var(--accent);cursor:pointer}input[type=color]{width:100%;height:30px;border:1px solid var(--line);background:var(--bg-2);cursor:pointer;border-radius:var(--radius)}.toggle{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);cursor:pointer}.toggle input{accent-color:var(--accent);width:15px;height:15px}.hint{color:var(--text-dim);font-size:11px;line-height:1.55;letter-spacing:.4px}.hint p{margin:0 0 7px}.kbd{border:1px solid var(--line-2);border-radius:var(--radius);padding:0 5px;color:var(--accent);font-size:10px}.tag-chip{display:inline-block;border:1px solid var(--accent-deep);color:var(--accent);border-radius:var(--radius);padding:1px 8px;font-size:10px;margin:3px 3px 0 0}.empty{color:var(--text-dim);font-size:11px;font-style:italic}.teams-view{display:flex;flex-direction:column;gap:14px}.teams-view .hint{margin:0}.active-team{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-left:2px solid var(--accent-deep);border-radius:var(--radius);padding:10px 12px;background:var(--panel-2)}.active-team-info{display:flex;flex-direction:column;gap:5px;min-width:0}.active-team-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.active-team-name{display:flex;align-items:center;gap:8px;letter-spacing:1px;color:var(--text-bright);font-size:13px}.assign-btn{width:100%}.add-row{display:flex;gap:8px}.add-row input{flex:1;background:var(--bg-2);border:1px solid var(--line);padding:7px 9px;color:var(--text);border-radius:var(--radius);letter-spacing:1px;font-family:var(--mono)}.add-row input:focus{outline:none;border-color:var(--accent)}.team-list{display:flex;flex-direction:column;gap:5px}.team-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--bg-2);transition:border-color .12s ease}.team-row:hover{border-color:var(--line-2)}.team-row.active{border-color:var(--accent-deep);border-left:2px solid var(--accent)}.team-swatch{width:13px;height:13px;border-radius:1px;border:1px solid rgba(255,255,255,.25);flex:0 0 auto}.team-name{flex:1;letter-spacing:1px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-count{color:var(--text-dim);font-size:10px;letter-spacing:1px}.team-mask-list{display:flex;flex-direction:column;gap:5px;margin-bottom:4px}.team-mask-row{display:flex;align-items:center;gap:8px}.team-mask-row .team-mask-stats{margin-left:auto;flex-shrink:0;cursor:help}.seg-group{display:flex;flex:0 0 auto;border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden}.seg{background:#0b0f158c;border:none;border-left:1px solid var(--line);color:var(--text-dim);cursor:pointer;font:inherit;font-size:10px;letter-spacing:.04em;padding:4px 8px;transition:color .15s ease,background .15s ease}.seg:first-child{border-left:none}.seg:hover{color:var(--text-bright)}.seg.active{color:var(--text-bright);font-weight:500}.seg.active.include{background:#4fe3d024;color:var(--accent)}.seg.active.exclude{background:#f0635c1f;color:#f8a09a}.seg.active.neutral{background:#65777f2e;color:var(--text)}.mini{background:var(--bg-2);border:1px solid var(--line);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;width:22px;height:22px;line-height:1;flex:0 0 auto}.mini:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.mini:disabled{opacity:.3;cursor:default}.mini.ghost{display:grid;place-items:center;color:var(--amber);border-color:transparent;background:none;cursor:default}.icon-palette{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.icon-btn{display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:4px;cursor:pointer;transition:border-color .12s ease,background .12s ease}.icon-btn canvas{display:block}.icon-btn:hover{border-color:var(--line-2)}.icon-btn.active{border-color:var(--accent-deep);background:var(--accent-wash)}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line-2);border-left:2px solid var(--accent);color:var(--text-bright);padding:9px 16px;border-radius:var(--radius);letter-spacing:1px;font-size:12px;box-shadow:0 12px 30px #00000080;z-index:50;opacity:0;transition:opacity .25s ease}.toast.show{opacity:1}.lobby-wide{width:min(860px,94vw)}.lobby-switch{margin-top:22px;width:100%}.lobby-switch .seg{flex:1;text-align:center;padding:11px 16px;font-size:12px;letter-spacing:.06em;text-transform:none}.lobby-switch .seg.active{color:var(--accent);background:#4fe3d01a}.lobby-panel{margin-top:18px}.lobby-panel[hidden]{display:none}.lobby-section{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.section-head{margin:0 0 12px;font-family:var(--font-display);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.artifact-list{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-direction:column;gap:6px;max-height:48vh;overflow:auto}.artifact-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-left:2px solid var(--line-2);padding:11px 14px;background:var(--panel-2);border-radius:var(--radius)}.artifact-list li:hover{border-left-color:var(--accent)}.artifact-main{display:flex;align-items:center;gap:10px;min-width:0}.map-list,.artifact-list .meta{color:var(--text-dim);font-size:11px}.artifact-list li button{background:none;border:none;color:#4fe3d0d1;cursor:pointer;letter-spacing:.04em;text-transform:none;font-size:12px;padding:4px 0;transition:color .15s ease}.artifact-list li button:hover{color:var(--text-bright)}.map-select{min-width:180px;flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px}.dialog-field{display:flex;flex-direction:column;gap:6px}.dialog-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.modal-body .dialog-input{width:100%;min-width:0}.game-thumb{width:42px;height:42px;object-fit:cover;border:1px solid var(--line-2);border-radius:4px;flex-shrink:0}.game-thumb-empty{display:inline-flex;align-items:center;justify-content:center;background:var(--panel);color:var(--text-dim);font-size:18px}.game-view{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.game-view .topbar{flex:0 0 auto;grid-area:unset;min-height:40px;padding:0 12px;gap:10px}.game-view .topbar .title{font-size:12px;letter-spacing:3px}.game-view .topbar .btn{padding:4px 10px;font-size:10px}.game-view .game-title{font-family:var(--font-display);letter-spacing:1px;color:var(--text-bright);font-size:13px}.game-view .meta-dim{color:var(--text-dim);font-size:10px}.game-view .game-stage,.game-view .stage{flex:1 1 0;grid-area:unset;position:relative;width:100%;min-height:0;min-width:0}.game-main{flex:1 1 0;display:flex;min-height:0;min-width:0;overflow:hidden}.game-sidebar{position:relative;z-index:40;flex:0 0 168px;display:flex;flex-direction:column;min-height:0;padding:10px 8px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-right:1px solid var(--line-2);overflow:hidden}.game-sidebar-ribbon{flex:1 1 auto;display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto}.game-sidebar-footer{flex:0 0 auto;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}.game-sidebar-tab,.game-sidebar-btn{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font:inherit;font-size:10px;letter-spacing:1px;line-height:1.35;padding:10px 8px;text-align:center;transition:background .12s ease,border-color .12s ease,color .12s ease}.game-sidebar-action{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font:inherit;font-size:10px;letter-spacing:1px;line-height:1.35;padding:10px 8px;text-align:center;transition:background .12s ease,border-color .12s ease,color .12s ease}.game-sidebar-tab:hover,.game-sidebar-btn:hover{color:var(--text-bright);border-color:var(--line-2)}.game-sidebar-action:hover{color:var(--text-bright);border-color:var(--line-2);background:var(--bg-2)}.game-sidebar-tab.active,.game-sidebar-btn.active{color:var(--accent);background:#4fe3d014;border-color:#4fe3d061;text-shadow:none}.game-workspace{flex:1 1 0;position:relative;display:flex;min-width:0;min-height:0;overflow:hidden}.game-workspace>.stage{flex:1 1 0}.game-workspace.orbits-mode>.game-stage{display:none}.game-workspace.markets-mode>.game-stage{display:none}.game-workspace.resources-mode>.game-stage{display:none}.markets-viewport{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;background:var(--bg)}.markets-viewport[hidden]{display:none}.markets-sidebar{flex:0 0 min(260px,32vw);display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--line-2)}.markets-sidebar-head{flex:0 0 auto;padding:10px 14px;border-bottom:1px solid var(--line)}.markets-sidebar-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.markets-list{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px}.markets-list-item{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);cursor:pointer;font:inherit;font-size:12px;letter-spacing:.5px;padding:9px 10px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s ease,border-color .12s ease,color .12s ease}.markets-list-item:hover{color:var(--text-bright);border-color:var(--line-2)}.markets-list-item.active{color:var(--accent);background:#4fe3d014;border-color:#4fe3d061}.markets-list-item.unnamed{font-style:italic;color:var(--text-dim)}.markets-create{flex:0 0 auto;margin:0 10px 12px}.markets-editor{flex:1 1 0;min-width:0;min-height:0;overflow-y:auto;padding:24px}.markets-editor-empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px;letter-spacing:1px}.markets-form{max-width:560px;display:flex;flex-direction:column;gap:18px}.markets-field{display:flex;flex-direction:column;gap:6px}.markets-field-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.markets-input{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-bright);font:inherit;font-size:13px;padding:9px 10px}.markets-input:focus{outline:none;border-color:var(--accent)}.markets-textarea{resize:vertical;min-height:80px}.markets-select{cursor:pointer}.markets-resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px}.markets-resource-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text);cursor:pointer}.markets-resource-check input{accent-color:var(--accent)}.markets-form-actions{margin-top:4px}.markets-participants{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;margin-bottom:8px;padding-right:2px}.markets-participants-empty{margin:0 0 8px}.market-participant{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:8px}.market-participant-head{display:flex;align-items:center;gap:6px}.market-participant-name{flex:1 1 auto;min-width:0}.market-participant-add-btn,.market-participant-remove,.market-position-remove{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font:inherit;font-size:14px;line-height:1;transition:background .12s ease,border-color .12s ease,color .12s ease}.market-participant-add-btn:hover,.market-participant-remove:hover,.market-position-remove:hover{color:var(--text-bright);border-color:var(--line-2)}.market-participant-add-btn.active{color:var(--accent);border-color:#4fe3d061;background:#4fe3d014}.market-participant-remove:hover{color:var(--danger);border-color:var(--danger)}.market-participant-picker{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.market-participant-pick{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);cursor:pointer;font:inherit;font-size:11px;letter-spacing:.5px;padding:5px 9px;transition:background .12s ease,border-color .12s ease,color .12s ease}.market-participant-pick:hover{color:var(--accent);border-color:#4fe3d061}.market-participant-positions{display:flex;flex-direction:column;gap:6px;margin-top:8px}.market-position{display:flex;align-items:center;gap:8px}.market-position-name{flex:1 1 auto;min-width:0;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.market-position-qty{flex:0 0 96px;text-align:right}.market-position-qty.pos{color:var(--accent);border-color:#4fe3d066}.market-position-qty.neg{color:var(--amber);border-color:#f0b35c73}.markets-participant-add{align-self:flex-start}.markets-shipping-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.markets-fuel-manage{flex:0 0 auto}.markets-shipping-empty{margin:0}.mship{display:flex;flex-direction:column;gap:10px}.mship-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mship-stat{display:flex;flex-direction:column;gap:2px;padding:7px 12px;border:1px solid rgba(79,227,208,.32);border-radius:var(--radius);background:#4fe3d00f;flex:0 0 auto}.mship-stat-label{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.mship-stat-val{font-size:18px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.mship-note{margin:0;flex:1 1 180px;font-size:11px;line-height:1.4;color:var(--text-dim)}.mship-note b{color:var(--text-bright);font-weight:600}.mship-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.mship-table{border-collapse:collapse;width:100%;font-size:12px}.mship-table th,.mship-table td{padding:8px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}.mship-table tbody tr:last-child th,.mship-table tbody tr:last-child td{border-bottom:none}.mship-table tbody tr:nth-child(2n){background:#8498a20a}.mship-fuel{background:var(--bg-2);border-left:2px solid var(--mship-fuel-col, var(--line))}.mship-fuel-name{display:block;font-size:12px;font-weight:600;color:var(--mship-fuel-col, var(--text-bright))}.mship-fuel-ve{display:block;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim)}.mship-res{text-align:left;position:sticky;left:0;background:var(--bg);border-right:1px solid var(--line)}.mship-corner{background:var(--bg-2);color:var(--text-dim);font-size:10px;letter-spacing:1px;text-transform:uppercase}.mship-res-name{display:block;color:var(--mship-res-col, var(--text-bright));font-weight:600}.mship-res-base{display:block;font-size:10px;color:var(--text-dim)}.mship-cell{font-variant-numeric:tabular-nums}.mship-cell.mship-na{color:var(--text-dim)}.mship-after{display:block;font-size:14px;font-weight:600;color:var(--text-bright)}.mship-after.pos{color:var(--accent)}.mship-after.neg{color:var(--danger)}.mship-cost{display:block;font-size:10px;color:var(--text-dim)}.market-fuels-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.market-fuel-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.market-fuel-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.market-fuel-toggle input{accent-color:var(--accent)}.market-fuel-ve{display:flex;align-items:center;gap:6px;flex:0 0 auto}.market-fuel-ve .markets-input{width:92px;text-align:right}.market-fuel-ve .markets-input:disabled{opacity:.4}.market-fuel-ve-unit{font-size:10px;letter-spacing:.5px;color:var(--text-dim)}.line-cost-row{display:flex;gap:8px}.line-cost-field{display:flex;align-items:center;gap:6px;flex:1 1 0;min-width:0}.line-cost-field input{width:100%;min-width:0;text-align:right}.line-cost-unit{flex:0 0 auto;font-size:11px;letter-spacing:.5px;color:var(--text-dim)}.cost-brush-hint{margin:0 0 12px;font-size:11px;line-height:1.45;color:var(--text-dim)}.cost-brush-warn{margin:0 0 12px;padding:8px 10px;font-size:11px;background:#f0b35c14;border:1px solid rgba(240,179,92,.25);color:var(--amber)}.field-hint{font-size:10px;font-weight:400;letter-spacing:.4px;color:var(--text-dim)}.line-length-field .line-length-val{font-size:14px;color:var(--text-bright)}.line-length-hint{display:block;margin-top:4px;font-size:10px;color:var(--text-dim)}.line-resource-cost-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.line-resource-cost-row{display:grid;grid-template-columns:minmax(120px,1.4fr) auto auto auto auto auto;gap:6px;align-items:center}.line-resource-cost-row .resource-select,.line-resource-cost-row select{min-width:0}.line-resource-cost-row input[type=text]{width:56px;text-align:right}.line-resource-cost-icon{display:flex;align-items:center}.line-resource-cost-del{padding:2px 6px!important;min-width:0}.line-resource-cost-empty{margin:0 0 8px}.resource-select{position:relative;min-width:0}.resource-select-trigger{display:flex;align-items:center;gap:6px;width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font:inherit;font-size:11px;padding:4px 8px;cursor:pointer;text-align:left}.resource-select-trigger:focus{outline:none;border-color:var(--accent)}.resource-select-value{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.resource-select-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-select-placeholder{flex:1;color:var(--text-dim)}.resource-select-chevron{margin-left:auto;color:var(--text-dim);font-size:10px;flex-shrink:0}.resource-select-menu{position:absolute;z-index:40;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #00000059}.resource-select-option{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:11px;cursor:pointer}.resource-select-option:hover,.resource-select-option.selected{background:#36f5d61a}.resource-select-option--empty{color:var(--text-dim)}.line-resource-access-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.line-resource-access-item{display:flex;align-items:center;gap:8px;padding:4px 6px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius)}.line-resource-access-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:11px}.line-resource-access-del{flex-shrink:0}.line-resource-access-empty{margin:0 0 8px}.line-resource-access-add-row .resource-select,.line-resource-access-add{max-width:260px}.facility-res-add-row .resource-select,.heuristic-side-add.resource-select{max-width:240px}.facility-res-add-row .resource-select{align-self:flex-start}.contracts-field .resource-select{width:100%}.line-cost-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.line-cost-editor-head label{margin:0}.line-cost-editor .line-cost-row{margin-top:0}.line-fixed-resource-costs-label{display:block;margin:10px 0 6px;font-size:11px;letter-spacing:.5px;color:var(--text-dim)}.line-resource-paste-toolbar{display:flex;align-items:center;gap:6px;flex:0 0 auto}.game-workspace.manage-players-mode>.game-stage{display:none}.game-workspace.team-preview-orbits-mode>.game-stage{display:none}.game-workspace.team-preview-orbits-mode>.orbits-viewport{display:flex!important}.game-workspace.team-preview-orbits-mode>.orbits-viewport[hidden]{display:flex!important}.orbits-viewport{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;background:#040608}.orbits-viewport[hidden]{display:none}.orbits-scene{flex:1 1 0;min-width:0;min-height:0;position:relative;cursor:grab;touch-action:none}.orbits-scene:active{cursor:grabbing}#orbits-canvas{display:block;width:100%;height:100%}.orbits-focus-btn{position:absolute;top:12px;right:12px;z-index:6;min-height:32px;padding:0 14px;border-radius:4px;border:1px solid rgba(79,227,208,.45);background:#040a12e0;color:var(--accent);font:700 11px Orbitron,Share Tech Mono,monospace;letter-spacing:.08em;box-shadow:0 0 14px #36f5d629;cursor:pointer;touch-action:manipulation}.orbits-focus-btn[hidden]{display:none}.orbits-focus-btn[aria-pressed=true]{border-color:#ffffff8c;color:#fff;background:#183040eb;box-shadow:0 0 16px #ffffff1f}.orbits-focus-btn:hover{border-color:#4fe3d0bf;background:#08141cf2}.orbits-focus-btn:active{transform:scale(.98)}.orbits-fade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;background:#040608;opacity:0;transition:opacity .12s ease}.orbits-fade--in{opacity:1}@media(prefers-reduced-motion:reduce){.orbits-fade{transition-duration:1ms}}.orbits-sidebar{flex:0 0 min(320px,34vw);display:flex;flex-direction:column;min-width:260px;max-width:380px;background:var(--bg);border-left:1px solid var(--line-2);overflow:hidden}.orbits-sidebar-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.orbits-sidebar-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.orbits-sidebar-head .btn{margin-left:auto}.orbits-detail{flex:0 0 auto;padding:12px 14px;border-bottom:1px solid var(--line)}.orbits-detail-card{display:flex;flex-direction:column;gap:10px}.orbits-field-name,.orbits-field-color{grid-template-columns:1fr;gap:6px}.orbits-color-input{width:100%;height:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);cursor:pointer;padding:2px}.orbits-color-input:hover,.orbits-color-input:focus{border-color:var(--line-2);outline:none}.orbits-name-input,.orbits-list-name-input{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);color:var(--text);font:inherit;font-size:11px;letter-spacing:.5px;padding:6px 8px}.orbits-name-input:hover,.orbits-name-input:focus,.orbits-list-name-input:hover,.orbits-list-name-input:focus{border-color:var(--line-2);outline:none}.orbits-list-name.hidden,.orbits-list-name-input.hidden{display:none}.orbits-list-name{-webkit-user-select:none;user-select:none;font-size:11px;letter-spacing:1px}.orbits-list-unnamed{font-style:italic;opacity:.65}.orbits-field{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 8px;align-items:center}.orbits-field-label{font-size:11px;color:var(--text-dim)}.orbits-field-value{display:inline-flex;align-items:baseline;justify-self:end;gap:1px;font-size:11px;color:var(--text-bright)}.orbits-field-num{width:4.5em;border:1px solid transparent;border-radius:2px;background:transparent;color:inherit;font:inherit;font-size:inherit;text-align:right;padding:0 2px;font-variant-numeric:tabular-nums}.orbits-field-num:hover,.orbits-field-num:focus{border-color:var(--line-2);background:var(--bg);outline:none}.orbits-field-suffix{flex:0 0 auto}.orbits-field input[type=range]{grid-column:1 / -1;width:100%}.orbits-create-hint{margin:0;font-size:10px;line-height:1.4}.orbits-create-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.orbits-list{flex:1 1 0;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.orbits-empty{margin:8px 4px}.orbits-list-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:2px 8px;width:100%;padding:10px 12px;text-align:left;background:var(--panel);border:1px solid var(--line);cursor:pointer;color:var(--text)}.orbits-list-swatch{grid-row:1;grid-column:1;align-self:center;width:10px;height:10px;border-radius:2px;box-shadow:0 0 6px #ffffff14}.orbits-list-name,.orbits-list-name-input{grid-row:1;grid-column:2}.orbits-list-item:hover{border-color:var(--line-2);background:var(--panel-2, var(--panel))}.orbits-list-item.selected{color:#fffffffa;border-color:#ffffff59;box-shadow:0 0 12px #ffffff0f}.orbits-list-meta{grid-column:1 / -1;font-size:10px;opacity:.75}.orbits-list-remove{grid-row:1;grid-column:3;align-self:start;font-size:11px;opacity:.45;padding:0 2px}.orbits-list-remove:hover{opacity:1}.game-workspace>.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:35}.game-view.team-preview-fullscreen>.topbar,.game-view.team-preview-fullscreen .game-sidebar,.game-view.team-preview-fullscreen .team-views-panel,.game-view.team-preview-fullscreen .team-elements-panel,.game-view.team-preview-fullscreen .projects-panel,.game-view.team-preview-fullscreen .resources-viewport,.game-view.team-preview-fullscreen .licenses-panel,.game-view.team-preview-fullscreen .manage-players-panel,.game-view.team-preview-fullscreen .manage-teams-panel{display:none!important}.team-preview-back-btn{width:auto;letter-spacing:1px;text-transform:none;font-size:11px}.game-dev-panel{flex:0 0 min(360px,42vw);display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--line-2);min-width:280px;max-width:420px;z-index:20;overflow:hidden}.game-dev-panel-wide{flex:1 1 0;min-width:0;max-width:none}.game-dev-panel[hidden],.team-views-panel[hidden],.team-elements-panel[hidden],.projects-panel[hidden],.licenses-panel[hidden],.manage-players-panel[hidden],.manage-teams-panel[hidden]{display:none}.manage-players-panel{flex-basis:min(440px,46vw);max-width:520px}.game-workspace.manage-players-mode>.manage-players-panel{flex:1 1 0;min-width:0;max-width:none;border-left:none}.team-views-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto;flex-wrap:wrap}.team-views-head .hint.subtle{flex:1 1 100%}@media(min-width:640px){.team-views-head .hint.subtle{flex:1 1 auto}}.team-views-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.team-views-levels{flex:0 0 auto;padding:14px;border-bottom:1px solid var(--line)}.team-views-levels-compact{padding:8px 10px}.team-views-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.team-views-section-head .team-views-section-title{margin:0;padding-bottom:0;border-bottom:none}.visibility-level-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.visibility-level-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 0;min-width:0}.vis-level-chip{display:inline-flex;align-items:center;border:1px solid var(--line-2);background:var(--bg-2);border-radius:999px;color:var(--text-dim);cursor:pointer;font:inherit;font-size:10px;letter-spacing:.4px;line-height:1.2;padding:3px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .12s ease,background .12s ease,color .12s ease}.vis-level-chip:hover{border-color:var(--accent-deep);color:var(--text-bright)}.vis-level-chip.active{border-color:var(--accent);background:#4fe3d01f;color:var(--text-bright)}.team-views-body{flex:1 1 0;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:14px}.team-views-section{display:flex;flex-direction:column}.team-views-section-title{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:400}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.visibility-level-layout{display:flex;gap:12px;align-items:flex-start;margin-top:10px}.visibility-level-column{flex:0 0 168px;display:flex;flex-direction:column;gap:8px}.visibility-level-list{display:flex;flex-direction:column;gap:4px}.visibility-level-row{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.visibility-level-row:hover{border-color:var(--line-2)}.visibility-level-row.active{border-color:var(--accent);background:#4fe3d014}.visibility-level-reorder{display:flex;flex-direction:column;gap:1px;flex:0 0 auto}.visibility-level-move{display:inline-flex;align-items:center;justify-content:center;width:18px;height:14px;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--panel);color:var(--text-dim);font:inherit;font-size:10px;line-height:1;cursor:pointer}.visibility-level-move:hover:not(:disabled){border-color:var(--accent-deep);color:var(--text-bright)}.visibility-level-move:disabled{opacity:.35;cursor:default}.visibility-level-name{flex:1 1 0;min-width:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text);font:inherit;font-size:11px;letter-spacing:.5px;padding:3px 6px}.visibility-level-name.hidden{display:none}span.visibility-level-name{-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visibility-level-name:hover,.visibility-level-name:focus{border-color:var(--line-2);background:var(--bg);outline:none}.visibility-level-row.active .visibility-level-name{color:var(--text-bright)}.visibility-level-remove{flex:0 0 auto}.visibility-level-detail{flex:1 1 0;min-width:0}.chip-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:var(--bg-2);border-radius:999px;color:var(--text);cursor:pointer;font:inherit;font-size:11px;letter-spacing:.5px;padding:5px 10px;transition:border-color .12s ease,background .12s ease,color .12s ease}.chip-btn:hover{border-color:var(--accent-deep);color:var(--text-bright)}.chip-btn.active{border-color:var(--accent);background:#4fe3d01f;color:var(--text-bright)}.chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;color:var(--text-dim);font-size:13px;line-height:1}.chip-remove:hover{color:var(--danger);background:#ff5d6c1f}.team-chip-list{display:flex;flex-wrap:wrap;gap:8px}.team-view-team-list{display:flex;flex-direction:column;gap:10px}.team-view-team{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.team-view-team-head{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--panel-2)}.team-view-team.collapsed .team-view-team-head{border-bottom:none}.team-view-team-toggle{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:10px;padding:2px 0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.team-view-team-chevron{flex:0 0 auto;font-size:9px;line-height:1;color:var(--text-dim);transition:transform .15s ease}.team-view-team.collapsed .team-view-team-chevron{transform:rotate(-90deg)}.team-view-team-toggle:hover .team-name{color:var(--text-bright)}.team-view-team-head .team-name{flex:1;min-width:0}.team-view-team.collapsed .team-view-team-body{display:none}.team-view-team-body{padding:12px;display:flex;flex-direction:column;gap:10px}.team-view-rules .field{margin-bottom:0}.team-view-rules .field input{width:100%}.team-view-mask-label{display:block;font-size:10px;letter-spacing:1px;color:var(--text-dim);margin-bottom:4px}.visibility-level-style{margin-top:0;padding-top:0;border-top:none}.visibility-style-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-top:8px}.visibility-style-group{grid-column:1 / -1;margin:6px 0 0;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);opacity:.8}.vis-flag{display:inline-flex;align-items:center;gap:5px;color:var(--text-dim);font-size:10px;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.vis-flag input{accent-color:var(--accent)}.vis-flag-nop{opacity:.65}.resources-viewport{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;background:var(--bg)}.resources-viewport[hidden]{display:none}.resources-sidebar{flex:0 0 min(340px,38vw);display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--line-2)}.resources-sidebar-head{flex:0 0 auto;padding:10px 14px;border-bottom:1px solid var(--line)}.resources-sidebar-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.resources-sidebar .resources-body{flex:1 1 0;min-height:0;overflow-y:auto;padding:12px}.heuristics-editor{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:18px 24px 24px}.heuristics-head{flex:0 0 auto;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.heuristics-scroll{flex:1 1 0;min-height:0;overflow-y:auto}.heuristics-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.heuristics-view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.heuristics-view-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--bg-2);color:var(--text-dim);font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 12px;cursor:pointer;transition:background .12s ease,color .12s ease}.heuristics-view-btn+.heuristics-view-btn{border-left:1px solid var(--line)}.heuristics-view-btn:hover{color:var(--text)}.heuristics-view-btn.active{background:var(--accent-wash);color:var(--accent)}.resource-flows{flex:1 1 0;min-height:0;overflow:auto}.resource-flows-empty{max-width:460px}.resource-flows-canvas{position:relative}.resource-flows-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.flow-edge{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:opacity .12s ease,stroke-width .12s ease}.flow-edge-back{stroke-dasharray:5 4;opacity:.38}.flow-edge:hover{opacity:.95;stroke-width:3}.flow-node{position:absolute;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid color-mix(in srgb,var(--flow-node-color) 55%,transparent);border-left:3px solid var(--flow-node-color);border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 0 0 1px #00000059,0 6px 16px #00000059;overflow:hidden}.flow-node-icon{flex:0 0 auto;display:inline-flex}.flow-node-icon .resource-icon-canvas,.flow-node-icon .resource-icon-img{display:block}.flow-node-name{flex:1 1 auto;min-width:0;font-size:12px;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heuristic-filter{flex:0 0 auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.heuristic-filter-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.heuristic-filter-chips{display:flex;flex-wrap:wrap;gap:4px}.heuristic-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 5px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.heuristic-filter-chip:hover{border-color:var(--line-2)}.heuristic-filter-chip.active{border-color:#4fe3d080;background:#4fe3d01a}.heuristic-filter-chip input{accent-color:var(--accent);margin:0}.heuristic-filter-chip .resource-icon-canvas,.heuristic-filter-chip .resource-icon-img{display:block}.heuristics-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));align-items:start;gap:10px}.heuristic-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:10px 12px}.heuristic-row-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.heuristic-name{flex:1 1 0;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-bright);font:inherit;font-size:12px;padding:6px 8px}.heuristic-name:focus{outline:none;border-color:var(--accent)}.heuristic-row-body{display:flex;align-items:stretch;gap:10px}.heuristic-side{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}.heuristic-side-terms{display:flex;flex-wrap:wrap;gap:6px}.heuristic-mid{flex:0 0 auto;align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:2px}.heuristic-arrow{color:var(--accent);font-size:16px}.heuristic-delta{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:center}.heuristic-term{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.heuristic-term-icon{display:inline-flex}.heuristic-term-amount{width:46px;background:transparent;border:none;border-left:1px solid var(--line);color:var(--text-bright);font:inherit;font-size:12px;padding:2px 4px;text-align:right}.heuristic-term-amount:focus{outline:none}.heuristic-term-amount::-webkit-outer-spin-button,.heuristic-term-amount::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.heuristic-term-mass{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;line-height:1;opacity:.4;padding:2px}.heuristic-term-mass.active{color:var(--accent);opacity:1}.heuristic-term-mass:hover{opacity:1}.heuristic-term.mass-excluded{opacity:.55}.heuristic-term-remove{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:11px;line-height:1;padding:2px}.heuristic-term-remove:hover{color:var(--danger, #ff6b6b)}.heuristic-side-add{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);font:inherit;font-size:11px;padding:4px 6px;cursor:pointer}.heuristic-side-empty{font-size:11px}.heuristic-side-mass{margin-top:auto;padding-top:8px;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.heuristic-mass-cell.pos{color:#6ee7a8}.heuristic-mass-cell.neg{color:#ff9b6b}.heuristic-side-value{margin-top:4px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.5px}.heuristic-value-delta{margin-top:3px;padding-top:3px;border-top:1px dashed var(--line);font-size:11px}.heuristics-add{flex:0 0 auto;width:100%;margin-top:14px}.heuristic-row-foot{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}.heuristic-view-facilities{width:100%;font-size:11px;text-align:center}.heuristic-view-facilities.active{border-color:var(--accent);background:#4fe3d024;color:var(--text-bright)}.heuristic-facilities-view{display:flex;flex-direction:column;gap:10px}.heuristic-facilities-head{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line)}.heuristic-facilities-title{flex:1 1 0;min-width:0;font-size:12px;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heuristic-facilities-list{display:flex;flex-direction:column;gap:8px}.heuristic-facility-entry{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.heuristic-facility-entry.expanded{border-color:var(--line-2)}.heuristic-facility-row{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;background:none;border:none;color:inherit;font:inherit;cursor:pointer;text-align:left}.heuristic-facility-row:hover{background:var(--bg)}.heuristic-facility-caret{flex:0 0 auto;color:var(--text-dim);font-size:10px}.heuristic-facility-names{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:1px}.heuristic-facility-name{font-size:12px;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heuristic-facility-owner{font-size:10px;letter-spacing:.5px;color:var(--text-dim)}.heuristic-facility-editor{padding:10px;border-top:1px solid var(--line)}.facility-heuristics{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}.facility-heuristics-head{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.heuristic-applied{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:7px 9px;display:flex;flex-direction:column;gap:5px}.heuristic-applied-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.heuristic-applied-name{flex:1 1 0;min-width:0;font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heuristic-applied-eff{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.heuristic-applied-eff.pos{color:#6ee7a8}.heuristic-applied-eff.neg{color:#ff9b6b}.heuristic-applied-eff.ignored-eff{font-style:italic;color:var(--text-dim)}.heuristic-applied.ignored{border-style:dashed;opacity:.55}.heuristic-ignore-toggle{flex:0 0 auto;background:none;border:1px solid var(--line);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font:inherit;font-size:9px;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px}.heuristic-ignore-toggle:hover{border-color:var(--line-2);color:var(--text)}.heuristic-ignore-toggle[aria-pressed=true]{border-color:#ff9b6b80;color:#ff9b6b}.heuristic-applied-flow{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--text)}.heuristic-flow-side{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.heuristic-flow-term{display:inline-flex;align-items:center;gap:3px}.heuristic-flow-term .resource-icon-canvas,.heuristic-flow-term .resource-icon-img{display:block}.heuristic-flow-plus{color:var(--text-dim)}.heuristic-flow-arrow{color:var(--accent)}.heuristic-applied-ratios{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.heuristic-ratio-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.heuristic-ratio-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 5px 1px 3px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.heuristic-ratio-chip.pos{color:#6ee7a8;border-color:#6ee7a866}.heuristic-ratio-chip.neg{color:#ff9b6b;border-color:#ff9b6b66}.resources-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.resources-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.resources-body{flex:1 1 0;min-height:0;overflow:auto;padding:14px}.licenses-head{display:flex;flex-direction:column;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.licenses-head-row{display:flex;align-items:center;gap:12px;min-width:0}.licenses-head-row .title{font-size:12px;letter-spacing:3px;color:var(--text-bright);flex:1 1 auto}.licenses-manage-rights{flex:0 0 auto;font-size:10px;letter-spacing:1px;text-transform:none;color:var(--text-dim);padding:4px 8px}.licenses-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.licenses-body{flex:1 1 0;min-height:0;overflow:auto;padding:14px}.licenses-list{display:flex;flex-direction:column;gap:6px}.licenses-row{display:flex;align-items:stretch;gap:6px}.licenses-row-main{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);color:var(--text);cursor:pointer;transition:border-color .12s ease,background .12s ease}.licenses-row-main:hover{border-color:var(--line-2)}.licenses-row-name{font-size:12px;color:var(--text-bright)}.licenses-row-sub{font-size:10px;letter-spacing:1px;color:var(--text-dim)}.licenses-row-del{flex:0 0 auto}.license-rights-list{display:flex;flex-direction:column;gap:8px}.license-right-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.license-right-name{font-size:12px;color:var(--text-bright);flex:1 1 auto;min-width:0}.license-right-seg{display:inline-flex;flex:0 0 auto;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.license-right-opt{padding:5px 9px;border:none;border-left:1px solid var(--line);background:var(--bg-2);color:var(--text-dim);font:inherit;font-size:10px;letter-spacing:1px;cursor:pointer;transition:background .12s ease,color .12s ease}.license-right-opt:first-child{border-left:none}.license-right-opt:hover{color:var(--text)}.license-right-opt.active{background:var(--accent);color:var(--bg)}.rights-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.rights-row{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.rights-row-top{display:flex;align-items:center;gap:6px}.rights-row-default{display:flex;align-items:center;justify-content:space-between;gap:12px}.rights-row-default-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.rights-row-name{flex:1 1 auto;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:7px 9px;color:var(--text);font:inherit;font-size:12px}.rights-row-name:focus{outline:none;border-color:var(--accent)}.rights-row-del{flex:0 0 auto}.rights-add{width:100%}.resources-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.resource-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:8px}.resource-row.flows-excluded{opacity:.62}.resource-flow-toggle{flex:0 0 auto;min-width:28px;padding:0 7px;line-height:1}.resource-flow-toggle.active{color:var(--accent);border-color:var(--accent-deep)}.resource-row-main{display:flex;align-items:center;gap:8px}.resource-icon-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);cursor:pointer}.resource-icon-img{object-fit:contain}.resource-row-main .resource-name{flex:1 1 0;min-width:0;font:inherit;font-size:12px;background:var(--bg-2);border:1px solid var(--line);padding:7px 9px;border-radius:var(--radius);letter-spacing:1px;min-height:32px}.resource-row-main .resource-name:focus{outline:none;border-color:var(--accent)}.resource-row-main .resource-color,.resource-row-main input[type=color]{flex:0 0 28px;width:28px;min-width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:none;cursor:pointer}.resource-mass-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:8px;padding-left:40px}.resource-mass-field{display:flex;align-items:center;gap:8px}.resource-mass-label{flex:0 0 auto;font-size:10px;letter-spacing:1px;color:var(--text-dim);text-transform:uppercase}.resource-mass{flex:0 0 120px;width:120px;min-width:0;font:inherit;font-size:12px;background:var(--bg-2);border:1px solid var(--line);padding:6px 8px;border-radius:var(--radius);letter-spacing:.5px;min-height:28px}.resource-mass:focus{outline:none;border-color:var(--accent)}.resource-mass::-webkit-outer-spin-button,.resource-mass::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.btn.mini.danger{color:#ff8a8a}.resource-icon-picker{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.resource-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px}.resource-icon-option{display:inline-flex;align-items:center;justify-content:center;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);cursor:pointer}.resource-icon-option.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.resource-icon-upload{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:1px;color:var(--accent);cursor:pointer}.facility-section{display:flex;flex-direction:column}.facility-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:8px;display:flex;flex-direction:column;gap:6px}.facility-head{display:flex;align-items:center;gap:6px}.facility-name,.facility-desc,.facility-crew,.facility-res-num,.facility-res-add{background:var(--bg-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);letter-spacing:.5px}.facility-name:focus,.facility-desc:focus,.facility-crew:focus,.facility-res-num:focus,.facility-res-add:focus{outline:none;border-color:var(--accent)}.facility-name{flex:1 1 auto;min-width:0;font:inherit;font-size:11px;padding:6px 8px}.facility-desc{width:100%;font:inherit;font-size:11px;padding:6px 8px;resize:vertical;min-height:44px}.facility-crew-row{display:flex;align-items:center;gap:8px}.facility-crew-label{font-size:9px;letter-spacing:.5px;color:var(--text-dim);flex:0 0 auto}.facility-crew{width:72px;font:inherit;font-family:var(--mono);font-size:11px;padding:5px 8px}.facility-crew-auto{font-size:9px;letter-spacing:.4px}.facility-money-row{display:flex;align-items:center;gap:8px}.facility-money-label{font-size:9px;letter-spacing:.5px;color:var(--text-dim);flex:0 0 auto}.facility-money-num{flex:1 1 0;min-width:0;width:100%;font:inherit;font-family:var(--mono);font-size:10px;padding:5px 6px;text-align:center;font-variant-numeric:tabular-nums;background:var(--bg-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius)}.facility-money-num:focus{outline:none;border-color:var(--accent)}.facility-res-head,.facility-res-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 48px 48px 26px;gap:4px;align-items:center}.facility-res-head{font-size:8px;letter-spacing:.5px;color:var(--text-dim);text-align:center}.facility-res-head span:first-child{text-align:left}.facility-res-name{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:10px;color:var(--text-bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facility-res-num{width:100%;min-width:0;font:inherit;font-size:10px;padding:5px 2px;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.facility-res-num::-webkit-outer-spin-button,.facility-res-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.facility-res-add-row{margin-top:2px}.facility-res-add-row .hint.subtle{font-size:10px;color:var(--text-dim)}.facility-res-add{width:100%;font:inherit;font-size:10px;padding:5px 8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.tack-stock-section{margin-bottom:8px}.tack-stock-head label{font-size:10px;letter-spacing:.5px;color:var(--text-dim)}.tack-stock-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tack-stock-item{display:flex;flex-direction:column;gap:4px;flex:1 1 108px;min-width:0;max-width:160px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.tack-stock-label{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:10px;color:var(--text-bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tack-stock-edit{display:flex;align-items:center;gap:4px}.tack-stock-num{width:44px;min-width:44px;flex:0 0 44px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);font:inherit;font-size:10px;padding:4px 2px;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.tack-stock-num:focus{outline:none;border-color:var(--accent)}.tack-stock-num::-webkit-outer-spin-button,.tack-stock-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tack-stock-cap{font-size:9px;font-variant-numeric:tabular-nums;color:var(--text-dim);white-space:nowrap}.team-elements-head{display:flex;flex-direction:column;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.team-elements-head-row{display:flex;align-items:center;min-width:0}.team-elements-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.team-elements-team-select{flex:1 1 120px;min-width:0;max-width:220px;background:var(--bg-2);border:1px solid var(--line);padding:7px 9px;color:var(--text);border-radius:var(--radius);letter-spacing:1px;font:inherit;font-size:11px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.team-elements-team-select:focus{outline:none;border-color:var(--accent)}.team-elements-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.team-elements-body{flex:1 1 0;min-height:0;overflow:auto;padding:14px}.team-elements-section{display:flex;flex-direction:column}.team-elements-group+.team-elements-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.team-elements-group-title{margin:0 0 8px;font-size:10px;letter-spacing:1.5px;color:var(--text-dim);font-weight:400}.team-elements-count{color:var(--text);font-variant-numeric:tabular-nums}.team-elements-list{display:flex;flex-direction:column;gap:6px}.team-element-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:2px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);cursor:pointer;text-align:left;font:inherit;color:inherit}.team-element-row:hover{background:var(--panel-2)}.team-element-row.selected{border-color:var(--accent-deep);background:color-mix(in srgb,var(--accent-deep) 12%,var(--panel-2))}.team-element-name{grid-column:1;grid-row:1;font-size:13px;font-weight:500;letter-spacing:.4px;color:var(--text-bright);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-element-sub{grid-column:1;grid-row:2;display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden}.team-element-kind{flex:0 0 auto;font-size:9px;letter-spacing:1px;color:var(--text-dim);text-transform:uppercase}.team-element-meta{flex:1 1 auto;min-width:0;font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-element-dialog{position:absolute;top:0;right:0;bottom:0;left:50%;z-index:12;pointer-events:none;overflow:hidden}.team-element-dialog[hidden]{display:none}.team-element-dialog-card{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto;min-height:0;display:flex;flex-direction:column;background:var(--panel);border-left:2px solid var(--accent-deep);box-shadow:-16px 0 48px #00000073;overflow:hidden}.team-element-dialog-head{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--panel-2);flex:0 0 auto;-webkit-user-select:none;user-select:none}.team-element-dialog-head .modal-close{cursor:pointer;-webkit-user-select:none;user-select:none}.team-element-dialog-head-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.team-element-dialog-title{font-size:16px;font-weight:500;letter-spacing:.3px;color:var(--text-bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-element-dialog-sub{font-size:11px;letter-spacing:.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-element-dialog-body{flex:1 1 0;min-height:0;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.elem-sub{flex:0 0 auto;display:flex;flex-direction:column}.elem-sub-head{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.elem-sub-toggle{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;padding:8px 0;border:none;background:transparent;color:var(--accent);font:inherit;font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;text-align:left}.elem-sub-toggle:hover{color:var(--text-bright)}.elem-sub-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elem-sub-chevron{flex:0 0 auto;font-size:9px;line-height:1;color:var(--text-dim);transition:transform .15s ease}.elem-sub.collapsed .elem-sub-chevron{transform:rotate(-90deg)}.elem-sub-head .facility-add-btn{flex:0 0 auto}.elem-sub-body{display:flex;flex-direction:column;gap:12px;padding-top:12px}.elem-sub.collapsed .elem-sub-body{display:none}.team-element-name-field{flex:0 0 auto;margin:0}.team-element-name-field label{font-size:10px;letter-spacing:1px}.team-element-name-field input{width:100%;font:inherit;font-size:13px}.team-element-line-style{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;margin:0}.team-element-line-style .field{margin:0}.team-element-line-style .field label{font-size:10px;letter-spacing:1px}.team-element-icon-field{flex:0 0 auto;margin:0}.team-element-icon-field>label{font-size:10px;letter-spacing:1px}.team-element-icon-row{display:flex;align-items:center;gap:10px}.team-element-icon-label{font-size:12px;color:var(--text-dim)}.team-element-delete-row{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.team-element-delete-row .hint.subtle{margin-right:auto}.team-element-fields{display:flex;flex-direction:column;gap:16px;flex:0 0 auto}.team-element-fields .field{margin:0}.team-element-fields .field label{font-size:10px;letter-spacing:1px}.team-element-fields .field input{width:100%;font:inherit;font-size:13px}.team-element-auto-textarea{width:100%;font:inherit;font-size:13px;resize:none;overflow-y:hidden;field-sizing:content;min-height:calc(2.9em + 16px);line-height:1.45;padding:8px 10px}.team-element-dialog-body .facility-section{flex:1 1 0;min-height:0;overflow:hidden}.team-element-dialog-body .facility-section.collapsed{flex:0 0 auto}.team-element-dialog-body .facility-section .elem-sub-body{flex:1 1 0;min-height:0;padding-top:8px}.team-element-dialog-body .tack-stock-section{flex:0 0 auto}.team-element-dialog-body .facility-add-btn{justify-content:center}.team-element-dialog-body .facility-section-scroll{flex:1 1 0;min-height:120px;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(150,176,186,.35) transparent}.team-element-dialog-body .facility-section-scroll::-webkit-scrollbar{width:6px}.team-element-dialog-body .facility-section-scroll::-webkit-scrollbar-track{background:transparent}.team-element-dialog-body .facility-section-scroll::-webkit-scrollbar-thumb{background:#96b0ba59;border-radius:3px}.team-element-dialog-body .facility-name,.team-element-dialog-body .facility-desc{font-size:12px}.team-element-dialog-body .facility-res-head,.team-element-dialog-body .facility-res-row{grid-template-columns:minmax(0,1fr) 52px 52px 52px 28px;gap:6px}.manage-players-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto;flex-wrap:wrap}.manage-players-head .hint.subtle{flex:1 1 100%}@media(min-width:640px){.manage-players-head .hint.subtle{flex:1 1 auto}}.manage-players-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.manage-players-body{flex:1 1 0;min-height:0;overflow:auto;padding:16px}.manage-players-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px;align-items:start}.game-workspace.manage-players-mode .manage-players-grid{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:stretch;min-height:100%}@media(max-width:900px),(orientation:portrait){.manage-players-grid{grid-template-columns:1fr}.manage-players-grid .roster-section-waiting{order:-1}}.roster-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:14px}.roster-section-title{margin:0 0 8px;font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:400}.roster-team-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.roster-team{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.roster-team-head{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid var(--line)}.playable-check{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--text-dim);font-size:10px;letter-spacing:1px;cursor:pointer;-webkit-user-select:none;user-select:none}.playable-check input{accent-color:var(--accent)}.roster-team-compact .roster-team-head{border-bottom:none}.roster-team-head .team-name{flex:1;min-width:0}.join-target-row{display:flex;flex-direction:column;gap:8px;margin:12px 0}.join-target-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.join-target-btn{display:flex;align-items:center;gap:10px;width:100%;justify-content:flex-start;text-align:left}.join-target-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.join-target-chevron{color:var(--text-dim);font-size:11px;margin-left:auto}.join-target-picker,.join-target-options{display:flex;flex-direction:column;gap:6px}.join-target-empty{margin:0}.roster-team-players,.roster-waiting-list{display:flex;flex-direction:column;gap:6px;padding:10px 12px}.roster-player-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex-wrap:wrap}@media(max-width:480px),(orientation:portrait)and (max-width:720px){.roster-player-row{flex-wrap:wrap}.roster-player-actions{margin-left:auto}}.roster-player-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.roster-player-name{flex:1;min-width:0;font-size:12px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-player-discord{margin-left:8px;color:var(--text-dim);font-size:11px;letter-spacing:.3px}.roster-role-select{flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:10px;letter-spacing:1px;padding:2px 6px;cursor:pointer}.roster-role-select:focus{outline:none;border-color:var(--accent)}.roster-test-tag{margin-left:8px;font-size:9px;letter-spacing:1px;color:var(--text-dim);border:1px solid var(--line-2);border-radius:999px;padding:1px 6px;vertical-align:middle}.roster-observer-check{display:flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.8px;color:var(--text-dim);cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none}.roster-observer-check input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.roster-team-pick{display:flex;align-items:center;gap:10px;justify-content:flex-start}.roster-player-stats{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.roster-stat-label{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.5px;color:var(--text-dim);white-space:nowrap}.roster-stat-name{width:76px;flex-shrink:0}.roster-stat-slider{flex:1;min-width:60px;accent-color:var(--accent);cursor:pointer}.roster-stat-val{width:34px;text-align:right;flex-shrink:0;color:var(--text)}.roster-stat-val--wide{width:40px}.bipolar-slider-wrap{position:relative;flex:1;min-width:60px;display:flex;align-items:center}.bipolar-slider-wrap:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2px;height:10px;background:var(--text-dim);pointer-events:none;z-index:1}.bipolar-slider-wrap .roster-stat-slider{width:100%;flex:1}.roster-dice-btn{flex-shrink:0;font-size:14px;padding:2px 6px}.manage-teams-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.manage-teams-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.manage-teams-body{flex:1 1 0;min-height:0;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.mteam-add-row{display:flex;gap:8px;align-items:center}.mteam-name-input{flex:1;min-width:0;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 8px;letter-spacing:.5px}.mteam-name-input:focus{outline:none;border-color:var(--accent)}.mteam-list{display:flex;flex-direction:column;gap:10px}.mteam-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.mteam-head{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid var(--line)}.mteam-head .team-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.mteam-members{font-size:10px;letter-spacing:.5px;color:var(--text-dim);flex-shrink:0}.mteam-stats{display:flex;flex-direction:column;gap:6px;padding:10px 12px}.mteam-stat-name{width:120px!important}.mteam-reserves-input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:var(--text);font-size:12px;padding:3px 6px;min-width:0}.modal-wide{width:min(720px,92vw)}.modal-sm{width:min(420px,92vw)}.dialog-actions{display:flex;flex-direction:column;gap:8px;margin:14px 0}.dialog-actions .btn{width:100%;text-align:left}.hint.subtle{opacity:.75;font-size:11px}.hist-games{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.hist-game-chip{border:1px solid var(--line-2);background:var(--panel-2);padding:4px 10px;border-radius:999px;font-size:11px;color:var(--accent)}.hist-tree{max-height:50vh;overflow:auto;border:1px solid var(--line);background:var(--panel-2);padding:12px;border-radius:var(--radius)}.hist-branch{list-style:none;margin:0;padding-left:16px;border-left:1px solid var(--line)}.hist-branch:first-child{padding-left:0;border-left:none}.hist-node{margin:8px 0}.hist-row{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.hist-type{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-deep);padding:2px 6px;border-radius:3px}.hist-node.event-sync_from_original .hist-type{color:#ffb454;border-color:#ffb454}.hist-node.event-game_created .hist-type{color:#9b8cff;border-color:#9b8cff}.hist-label{color:var(--text-bright);font-size:12px}.hist-time{color:var(--text-dim);font-size:10px;margin-left:auto}.hist-detail{font-size:10px;color:var(--text-dim);margin-top:4px;padding-left:4px}.hist-detail code{font-size:10px;color:var(--text)}.game-workspace.contracts-mode>.game-stage{display:none}.contracts-viewport{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;background:var(--bg)}.contracts-viewport[hidden]{display:none}.contracts-sidebar{flex:0 0 min(260px,32vw);display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--line-2)}.contracts-sidebar-head{flex:0 0 auto;padding:10px 14px;border-bottom:1px solid var(--line)}.contracts-sidebar-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.contracts-filters{display:flex;gap:6px;margin-top:10px}.contracts-filter{flex:1 1 0;min-width:0;background:var(--bg-2);border:1px solid var(--line);padding:6px 8px;color:var(--text);border-radius:var(--radius);letter-spacing:.5px;font:inherit;font-size:11px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.contracts-filter:focus{outline:none;border-color:var(--accent)}.contracts-list{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px}.contracts-list-item{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);cursor:pointer;font:inherit;font-size:12px;letter-spacing:.5px;padding:9px 10px;text-align:left;display:flex;flex-direction:column;gap:6px;transition:background .12s ease,border-color .12s ease,color .12s ease}.contracts-list-item:hover{color:var(--text-bright);border-color:var(--line-2)}.contracts-list-item.active{color:var(--accent);background:#4fe3d014;border-color:#4fe3d061}.contracts-item-parties{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;color:var(--text-bright)}.contracts-item-party{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-item-arrow{flex:0 0 auto;color:var(--text-dim)}.contracts-item-res{display:flex;align-items:center;gap:6px;min-width:0;font-size:11px;color:var(--text)}.contracts-item-res .resource-icon-canvas,.contracts-item-res .resource-icon-img{flex:0 0 auto}.contracts-item-res-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-item-res-name.muted{color:var(--text-dim);font-style:italic}.contracts-item-res-qty{flex:0 0 auto;color:var(--text-dim)}.contracts-item-figures{display:flex;gap:8px}.contracts-item-fig{flex:1 1 0;display:flex;flex-direction:column;gap:1px;min-width:0}.contracts-item-fig-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.contracts-item-fig-val{font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-create{flex:0 0 auto;margin:0 10px 12px}.contracts-editor{flex:1 1 0;min-width:0;min-height:0;overflow-y:auto;padding:24px}.contracts-editor-empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px;letter-spacing:1px}.contracts-overview{max-width:960px}.contracts-overview-empty{margin:0;padding:48px 0;text-align:center}.contracts-overview-table{display:flex;flex-direction:column;font-size:12px}.contracts-overview-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr) minmax(0,.55fr) minmax(0,1.25fr) minmax(0,.55fr);align-items:start;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}.contracts-overview-row--head{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);padding-top:0}.contracts-overview-cell--team{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-bright);font-weight:600}.contracts-overview-swatch{flex:0 0 auto;width:10px;height:10px;border-radius:2px;border:1px solid rgba(255,255,255,.15)}.contracts-overview-cell--chips{display:flex;flex-wrap:wrap;gap:6px 10px;min-width:0}.contracts-overview-cell--balance{display:flex;align-items:center;min-width:0}.contracts-overview-balance{display:inline-flex;align-items:baseline;gap:2px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.02em}.contracts-overview-balance--balanced{opacity:.42;font-weight:400}.contracts-overview-balance-symbol{font-size:11px;color:var(--text-dim)}.contracts-overview-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.contracts-overview-chip--balanced{opacity:.42;border-color:#ffffff0a;background:#ffffff05}.contracts-overview-chip--balanced .company-chip-balance{font-weight:400}.contracts-overview-empty-cell{color:var(--text-dim)}.contracts-form{max-width:640px;display:flex;flex-direction:column;gap:16px}.contracts-field{display:flex;flex-direction:column;gap:6px;min-width:0}.contracts-field-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.contracts-parties{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contracts-party{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.contracts-party-head{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)}.contract-participant-hint{margin:0 0 6px;font-size:11px;line-height:1.4;color:var(--muted)}.contracts-field-nested{margin-top:4px}.contracts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.contract-cargo-mass{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.contract-cargo-missing{font-size:11px;color:var(--text-dim);font-style:italic}.contracts-actions{margin-top:4px}.contract-node-field{position:relative;display:flex;flex-direction:column}.contract-node-btn{display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}.contract-node-btn-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-node-btn-icons,.contract-node-opt-icons{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto}.contract-node-caret{flex:0 0 auto;color:var(--text-dim);font-size:11px}.contract-node-field.open .contract-node-caret{color:var(--accent)}.contract-node-menu{margin-top:4px;max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding:4px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--panel)}.contract-node-opt{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius);background:var(--bg-2);color:var(--text);cursor:pointer;font:inherit;font-size:12px;text-align:left}.contract-node-opt:hover{border-color:var(--line-2);color:var(--text-bright)}.contract-node-opt.active{color:var(--accent);border-color:#4fe3d061;background:#4fe3d014}.contract-node-opt-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.contract-node-lp{color:var(--accent);font-size:11px}.contract-node-empty{margin:4px;color:var(--text-dim)}.contract-res-icon{display:inline-flex;align-items:center;justify-content:center}#contract-route-host .contract-route{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);padding:14px;display:flex;flex-direction:column;gap:12px}#contract-route-host .contract-route-empty{margin:0;color:var(--text-dim)}#contract-route-host .contract-route-cargo{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim)}#contract-route-host .contract-route-cargo-label{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}#contract-route-host .contract-route-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.contract-rent{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.contract-rent-label{font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.contract-rent-total{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;color:#f0b35c}.contract-rent-split{display:flex;flex-wrap:wrap;gap:8px 16px}.contract-rent-party{font-size:11px;color:var(--text);font-variant-numeric:tabular-nums}.contract-figure{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.contract-figure-label{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.contract-figure-val{font-size:13px;color:var(--text-bright)}.contract-legs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.contract-leg{display:grid;grid-template-columns:110px 1fr auto auto;align-items:baseline;gap:10px;padding:6px 8px;border-radius:var(--radius);background:var(--panel);border-left:2px solid var(--line-2);font-size:12px}.contract-leg-launch,.contract-leg-land{border-left-color:var(--accent)}.contract-leg-kind{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.contract-leg-path{color:var(--text);overflow:hidden;min-width:0;display:flex;flex-direction:column;gap:2px}.contract-leg-line-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-leg-line-via{font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-leg-cost{color:var(--text-bright);white-space:nowrap}.contract-leg-run{color:var(--text-dim);white-space:nowrap}.contract-demanded{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.contract-demanded-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.contract-demanded-val{color:var(--text-bright);font-size:13px}.contract-demanded-split{font-size:11px;margin-left:auto}.contract-demanded-split.ok{color:var(--accent)}.contract-demanded-split.short{color:var(--danger, #ff6b6b)}.contract-demanded-split.over{color:#e3c64f}.contract-carriers{display:flex;flex-direction:column;gap:10px;width:100%}.contract-carriers-empty{margin:0 0 8px}.contract-carrier{display:flex;flex-direction:column;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:#ffffff05}.contract-carrier-head{display:flex;align-items:center;gap:8px}.contract-carrier-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.contract-carrier-name{font-size:12px;font-weight:600;flex:1}.contract-carrier-remove{border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:12px;padding:2px 4px}.contract-carrier-remove:hover{color:var(--danger, #ff6b6b)}.contract-carrier-section-label{display:block;font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.contract-carrier-section-hint{text-transform:none;letter-spacing:0;opacity:.85}.contract-carrier-line-costs{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.contract-carrier-line-costs-empty{margin:0}.contract-carrier-line-inventory{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.contract-carrier-line-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:10px;color:var(--text-dim)}.contract-carrier-line-name{flex:1 1 auto;min-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600}.contract-carrier-line-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;flex:0 1 auto}.contract-carrier-line-cost-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.contract-carrier-cost-chip{display:inline-flex;align-items:center;gap:2px;font-size:10px;line-height:1}.contract-carrier-cost-val{color:var(--danger);font-variant-numeric:tabular-nums;font-weight:600}.contract-carrier-line-aggregate{display:flex;flex-direction:column;gap:8px;padding:6px 8px;border-radius:4px;background:#0000002e}.contract-carrier-aggregate-tariff{display:flex;flex-direction:column;gap:2px}.contract-carrier-aggregate-row{display:flex;align-items:baseline;gap:6px;font-size:10px}.contract-carrier-aggregate-row--total{margin-top:2px;padding-top:3px;border-top:1px solid rgba(255,255,255,.06)}.contract-carrier-aggregate-icon{width:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.contract-carrier-aggregate-icon--empty{visibility:hidden}.contract-carrier-aggregate-label{color:var(--text-dim)}.contract-carrier-aggregate-row--total .contract-carrier-aggregate-label{color:var(--text);font-weight:600}.contract-carrier-aggregate-val{font-variant-numeric:tabular-nums;color:var(--text)}.contract-carrier-rate-spacer{width:18px}.contract-carrier-line-cost-list{display:flex;flex-direction:column;gap:6px}.contract-carrier-line-cost{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-radius:4px;background:#0000002e}.contract-carrier-line-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.contract-carrier-line-len,.contract-carrier-line-empty{font-size:10px;color:var(--text-dim)}.contract-carrier-line-rates{display:flex;flex-direction:column;gap:3px}.contract-carrier-line-rate{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:6px;font-size:10px}.contract-carrier-line-per100{color:var(--text-dim)}.contract-carrier-line-total{font-variant-numeric:tabular-nums;color:var(--text)}.contract-carrier-credit{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:2px;background:#f0b35c26;color:#f0b35c;font-size:9px;font-weight:700}.contract-carrier-rent{display:flex;flex-direction:column;gap:8px}.contract-carrier-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:8px}.contract-carrier-rate{display:flex;flex-direction:column;gap:4px}.contract-carrier-rate-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.contract-carrier-split{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.contract-carrier-split-side{font-size:10px;color:var(--text-dim)}.contract-carrier-split-side:first-child{text-align:left}.contract-carrier-split-side:last-child{text-align:right}.contract-carrier-split input[type=range]{width:100%;min-width:80px}.contract-fuel-split{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.contract-fuel-split-side{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--text-dim)}.contract-fuel-split-side:first-child{text-align:left}.contract-fuel-split-side:last-child{text-align:right}.contract-fuel-split-end{text-transform:uppercase;letter-spacing:.04em}.contract-fuel-split-val{font-variant-numeric:tabular-nums;color:var(--text)}.contract-fuel-split input[type=range]{width:100%;min-width:80px}.contract-orbital-mode{display:flex;gap:6px;margin-bottom:8px}.contract-orbital-mode-btn{flex:1}.contract-orbital-mode-btn.active{border-color:var(--accent);color:var(--accent)}.contract-lp-panel{display:flex;flex-direction:column;gap:10px}.contract-lp-market{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.contract-lp-market input[type=range]{width:100%;min-width:80px}.contract-lp-market-val{font-size:10px;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.contract-lp-readout{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-dim)}.contract-lp-readout-row{font-variant-numeric:tabular-nums}.contract-lp-net{color:var(--text)}.contract-lp-empty,.contract-lp-readout-empty{font-size:11px}.contract-carrier-add{margin-top:8px}.contract-carrier-add.active{border-color:var(--accent)}.contract-carrier-picker{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.contract-carrier-pick{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:#ffffff08;color:var(--text);font-size:11px;cursor:pointer}.contract-carrier-pick:hover{border-color:var(--accent);background:#ffffff0f}.facility-space-toggle{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.facility-space-toggle input{accent-color:var(--accent)}.game-workspace.flows-mode>.game-stage{display:none}.flows-viewport{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;background:var(--bg)}.flows-viewport[hidden]{display:none}.flows-sidebar{flex:0 0 min(260px,32vw);display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-left:1px solid var(--line-2)}.flows-sidebar-head{flex:0 0 auto;padding:10px 14px;border-bottom:1px solid var(--line)}.flows-sidebar-head .title{font-size:12px;letter-spacing:3px;color:var(--text-bright)}.flows-company-list{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px}.flows-company-item{display:flex;align-items:center;gap:9px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);cursor:pointer;font:inherit;font-size:12px;letter-spacing:.5px;padding:9px 10px;text-align:left;transition:background .12s ease,border-color .12s ease,color .12s ease}.flows-company-item:hover{color:var(--text-bright);border-color:var(--line-2)}.flows-company-item.active{color:var(--accent);background:#4fe3d014;border-color:#4fe3d061}.flows-company-swatch{flex:0 0 auto;width:12px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.25)}.flows-company-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flows-main{flex:1 1 0;min-width:0;min-height:0;overflow-y:auto;padding:24px}.flows-empty{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px;letter-spacing:1px}.flows-panel{max-width:1040px}.flows-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:4px}.flows-eyebrow{display:block;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim)}.flows-title{margin:2px 0 0;font-size:20px;color:var(--text-bright)}.flows-header-controls{display:flex;align-items:center;gap:12px}.flows-auto-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.flows-auto-toggle input{accent-color:var(--accent)}.flows-hint{margin:0 0 16px;font-size:12px;color:var(--text-dim)}.flows-table{display:flex;flex-direction:column;font-size:12px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.flows-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.5fr) minmax(0,1.4fr) 36px;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--line)}.flows-row:first-child{border-top:none}.flows-row-head{background:var(--panel-2);color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;font-size:10px}.flows-row-empty{grid-template-columns:1fr;color:var(--text-dim);padding:18px 12px}.flows-cell{min-width:0}.flows-cell-route{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.flows-route{display:flex;flex-direction:column;gap:4px;min-width:0}.flows-path-via{display:flex;align-items:center;flex-wrap:wrap;gap:4px;color:var(--text-dim);font-size:11px}.flows-path-line{color:var(--text)}.flows-path-sep{color:var(--accent)}.flows-path-direct,.flows-path-none{color:var(--text-dim);font-style:italic}.flows-path-mode{color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.flows-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.flows-row-route,.flows-row-del{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:13px;line-height:1;padding:2px 4px}.flows-row-route:hover,.flows-row-del:hover{color:var(--text-bright)}.flows-route-dialog{display:flex;flex-direction:column;gap:12px}.flows-route-hint{margin:0;font-size:12px;color:var(--text-dim)}.flows-route-lines{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);padding:8px}.flows-route-line{display:flex;align-items:flex-start;gap:8px;font-size:12px;cursor:pointer}.flows-route-line--active .flows-route-line-name{color:var(--accent)}.flows-route-line input{margin-top:3px}.flows-route-line-main{display:flex;flex-direction:column;gap:2px;min-width:0}.flows-route-line-name{color:var(--text-bright)}.flows-route-line-endpoints{color:var(--text-dim);font-size:11px}.flows-site{color:var(--text-bright)}.flows-arrow{color:var(--accent)}.flows-res,.flows-cost-res{display:inline-flex;align-items:center;gap:6px}.flows-cell-cost{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.flows-cost-credits{color:var(--accent)}.flows-cost-res-amt{color:var(--text)}.flows-cost-none{color:var(--warn, #e2b04a)}.flows-cost-free{color:var(--text-dim)}.flows-cell-act{text-align:right}.flows-row-del{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:13px;line-height:1;padding:2px 4px}.flows-row-del:hover{color:var(--text-bright)}.flows-dialog{display:flex;flex-direction:column;gap:12px}.flows-dialog-field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-dim)}.flows-dialog-cost{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.flows-dialog-cost-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.flows-dialog-cost-val{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.flows-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.game-view.projects-placement-fullscreen>.topbar,.game-view.projects-placement-fullscreen .game-sidebar,.game-view.projects-placement-fullscreen .projects-panel,.game-view.projects-placement-fullscreen .team-views-panel,.game-view.projects-placement-fullscreen .team-elements-panel,.game-view.projects-placement-fullscreen .licenses-panel,.game-view.projects-placement-fullscreen .manage-players-panel,.game-view.projects-placement-fullscreen .manage-teams-panel,.game-view.projects-placement-fullscreen .resources-viewport,.game-view.projects-placement-fullscreen .markets-viewport,.game-view.projects-placement-fullscreen .contracts-viewport,.game-view.projects-placement-fullscreen .flows-viewport{display:none!important}.projects-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex:0 0 auto}.projects-head .title{flex:1 1 auto;font-size:12px;letter-spacing:1.5px}.projects-body{flex:1 1 0;overflow:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.projects-list{display:flex;flex-direction:column;gap:6px}.projects-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#0810148c;color:inherit;cursor:pointer}.projects-row:hover{border-color:var(--line-2);background:#0c181ebf}.projects-row.selected{border-color:#4fe3d08c;background:#4fe3d014}.projects-row-icon{flex:0 0 auto}.projects-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.projects-row-name{font-size:12px;font-weight:600}.projects-row-sub{font-size:10px;color:var(--muted)}.projects-empty{margin:0}.projects-editor{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}.projects-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.projects-editor-title{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.projects-size-row{display:flex;align-items:center;gap:10px}.projects-size-row input[type=range]{flex:1 1 0}.projects-size-val,.projects-phase-val{min-width:2ch;font-size:11px;color:var(--muted)}.projects-add-body,.projects-setup-modal .modal-body{display:flex;flex-direction:column;gap:12px}.projects-pick-list{display:flex;flex-direction:column;gap:6px;max-height:min(50vh,360px);overflow:auto}.projects-pick-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#0810148c;color:inherit;cursor:pointer}.projects-pick-row:hover{border-color:var(--line-2)}.projects-pick-name{font-size:12px;font-weight:600}.projects-pick-sub{font-size:10px;color:var(--muted)}.projects-phase-slider-wrap{display:flex;flex-direction:column;gap:6px;position:relative}.projects-phase-slider-wrap input[type=range]{width:100%}.projects-phase-marks{position:relative;height:18px;margin:0 4px}.projects-phase-mark{position:absolute;top:0;transform:translate(-50%);pointer-events:none;opacity:.9}.player-projects-body{display:flex;flex-direction:column;gap:14px}.player-projects-summary{display:flex;gap:10px}.player-projects-summary-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid rgba(79,227,208,.22);background:#040c10b8}.player-projects-summary-val{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--accent);line-height:1.1}.player-projects-summary-label{font-family:var(--mono);font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-dim)}.player-projects-list{display:flex;flex-direction:column;gap:10px}.player-project-card{display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;border-radius:12px;border:1px solid rgba(79,227,208,.2);background:linear-gradient(145deg,#081418eb,#040a0ee0);box-shadow:inset 0 1px #4fe3d00f}.player-project-card--complete{border-color:#4fe3d01f;opacity:.82}.player-project-head{display:flex;align-items:flex-start;gap:10px}.player-project-icon-wrap{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid rgba(79,227,208,.18);background:#00000040}.player-project-icon{display:block}.player-project-titles{flex:1;min-width:0}.player-project-name{margin:0;font-size:15px;font-weight:600;color:var(--text);line-height:1.25}.player-project-meta{margin:3px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.4px;color:var(--text-dim);line-height:1.35}.player-project-kind{color:var(--accent)}.player-project-badge{flex:0 0 auto;align-self:flex-start;padding:3px 8px;border-radius:999px;border:1px solid rgba(79,227,208,.35);background:#4fe3d01a;font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--accent)}.player-project-progress{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.player-project-progress-chain{display:block;flex:0 0 auto}.player-project-steps{font-family:var(--mono);font-size:11px;letter-spacing:.5px;color:var(--accent)}.player-project-steps--muted{color:var(--text-dim)}.player-project-desc{margin:0;font-size:12px;line-height:1.45;color:var(--text-dim)}.player-project-card--nav{cursor:pointer;touch-action:manipulation}.player-project-card--nav:hover,.player-project-card--nav:focus-visible{border-color:#4fe3d06b;box-shadow:inset 0 1px #4fe3d01a,0 0 0 1px #4fe3d014}.player-project-card--nav:active{transform:scale(.995)}.player-project-focus-hint{align-self:flex-end;font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.player-project-card--nav:hover .player-project-focus-hint,.player-project-card--nav:focus-visible .player-project-focus-hint{color:var(--accent)}.make-deal-sheet{display:flex;flex-direction:column;width:min(520px,100%);height:100%;background:#040c10f5;border-left:1px solid rgba(79,227,208,.28);box-shadow:-12px 0 40px #0000008c;overflow:hidden}.make-deal-inner{display:flex;flex-direction:column;height:100%;overflow:hidden}.make-deal-header{padding:max(16px,env(safe-area-inset-top,16px)) 18px 12px;border-bottom:1px solid rgba(79,227,208,.15);flex:0 0 auto}.make-deal-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.make-deal-step-title{margin:0;font-size:18px;color:var(--text-bright)}.make-deal-steps{display:flex;align-items:center;gap:6px;padding:10px 18px;border-bottom:1px solid rgba(79,227,208,.08);flex:0 0 auto}.make-deal-step-dot{width:6px;height:6px;border-radius:50%;background:#4fe3d02e;border:1px solid rgba(79,227,208,.3);transition:background .15s,border-color .15s}.make-deal-step-dot--active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 6px #4fe3d080}.make-deal-step-dot--done{background:#4fe3d073;border-color:#4fe3d099}.make-deal-content{flex:1 1 0;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:14px}.make-deal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px max(12px,env(safe-area-inset-bottom,12px));border-top:1px solid rgba(79,227,208,.12);flex:0 0 auto}.make-deal-back,.make-deal-next{padding:8px 18px;border-radius:var(--radius);border:1px solid rgba(79,227,208,.35);background:transparent;color:var(--accent);font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .12s}.make-deal-back:hover:not(:disabled),.make-deal-next:hover:not(:disabled){background:#4fe3d01a}.make-deal-back:disabled,.make-deal-next:disabled{opacity:.35;cursor:default}.make-deal-next--send{border-color:var(--accent);background:#4fe3d01f;font-weight:600}.make-deal-next--send:hover:not(:disabled){background:#4fe3d038}.deal-step{display:flex;flex-direction:column;gap:14px}.deal-section-label{margin:0;font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.deal-field-label{margin:0 0 5px;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.deal-empty{margin:0;font-size:12px;color:var(--text-dim);font-style:italic}.deal-role-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.deal-role-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border:1px solid rgba(79,227,208,.25);border-radius:6px;background:#00000040;cursor:pointer;transition:background .12s,border-color .12s}.deal-role-btn:hover{background:#4fe3d014;border-color:#4fe3d073}.deal-role-btn--active{border-color:var(--accent);background:#4fe3d024;box-shadow:0 0 10px #4fe3d02e}.deal-role-btn-title{font-family:var(--display);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--text-bright)}.deal-role-btn-sub{font-size:10px;color:var(--text-dim)}.deal-team-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.deal-team-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(79,227,208,.1);border-radius:4px;cursor:pointer;transition:background .1s}.deal-team-item:hover{background:#4fe3d00f}.deal-team-item--active{border-color:var(--accent);background:#4fe3d01a}.deal-team-swatch{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.deal-team-swatch--sm{width:8px;height:8px}.deal-team-name{font-size:13px;color:var(--text)}.deal-resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.deal-resource-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid rgba(79,227,208,.12);border-radius:4px;cursor:pointer;transition:background .1s}.deal-resource-item:hover{background:#4fe3d00f}.deal-resource-item--active{border-color:var(--accent);background:#4fe3d01f}.deal-resource-name{font-size:9px;text-align:center;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.deal-field-group{display:flex;flex-direction:column;gap:5px}.deal-field-group--inline{flex-direction:row;align-items:center;gap:10px}.deal-input{padding:7px 10px;border:1px solid rgba(79,227,208,.25);border-radius:var(--radius);background:#0000004d;font-size:13px;color:var(--text-bright);width:100%}.deal-input--sm{width:100px;flex:0 0 auto}.deal-input:focus{outline:none;border-color:var(--accent)}.deal-select{padding:7px 10px;border:1px solid rgba(79,227,208,.25);border-radius:var(--radius);background:#0000004d;font-size:12px;color:var(--text);width:100%;cursor:pointer}.deal-select:focus{outline:none;border-color:var(--accent)}.deal-textarea{padding:8px 10px;border:1px solid rgba(79,227,208,.25);border-radius:var(--radius);background:#0000004d;font-size:12px;color:var(--text);width:100%;resize:vertical}.deal-textarea:focus{outline:none;border-color:var(--accent)}.deal-duration-seg{display:flex;gap:4px}.deal-dur-btn{flex:1;padding:7px 0;border:1px solid rgba(79,227,208,.22);border-radius:var(--radius);background:transparent;color:var(--text-dim);font-family:var(--mono);font-size:12px;cursor:pointer;transition:background .1s}.deal-dur-btn:hover{background:#4fe3d00f;color:var(--text)}.deal-dur-btn--active{border-color:var(--accent);background:#4fe3d024;color:var(--accent)}.deal-facility-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.deal-facility-col{display:flex;flex-direction:column;gap:6px}.deal-facility-col-label{margin:0;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim)}.deal-facility-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.deal-facility-item{display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid rgba(79,227,208,.1);border-radius:3px;cursor:pointer;transition:background .1s}.deal-facility-item:hover{background:#4fe3d00d}.deal-facility-item--active{border-color:var(--accent);background:#4fe3d01a}.deal-facility-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.deal-facility-name{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-route-hint{margin:0;font-size:11px;color:var(--text-dim);font-style:italic}.deal-route-hint--warn{color:var(--amber)}.deal-route-strip{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:10px 12px;border:1px solid rgba(79,227,208,.14);border-radius:5px;background:#0003}.deal-route-node{font-size:11px;font-weight:600;color:var(--text-bright);white-space:nowrap}.deal-route-arrow{font-size:10px;color:var(--text-dim)}.deal-route-leg{font-size:10px;padding:2px 7px;border:1px solid rgba(79,227,208,.25);border-radius:999px;color:var(--text);white-space:nowrap}.deal-route-leg--launch,.deal-route-leg--land{border-color:#f0b35c66;color:var(--amber)}.deal-route-costs{display:flex;flex-wrap:wrap;gap:6px}.deal-route-cost-chip{padding:3px 9px;border:1px solid rgba(79,227,208,.18);border-radius:999px;font-size:11px;color:var(--text-dim)}.deal-route-cost-chip--space{border-color:#f0b35c47;color:var(--amber)}.deal-route-error{margin:0;font-size:12px;color:var(--danger);font-style:italic}.deal-space-section{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border:1px solid rgba(240,179,92,.18);border-radius:5px;background:#f0b35c08}.deal-split-row{display:flex;align-items:center;gap:8px}.deal-split-slider{flex:1;accent-color:var(--accent)}.deal-split-label{font-size:10px;color:var(--text-dim);white-space:nowrap;min-width:70px}.deal-split-label--right{text-align:right}.deal-carriers-section{display:flex;flex-direction:column;gap:8px}.deal-carrier-row{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid rgba(79,227,208,.15);border-radius:5px;background:#0000002e}.deal-carrier-row-head{display:flex;align-items:center;gap:8px}.deal-carrier-name{font-size:12px;font-weight:600;color:var(--text-bright)}.deal-carrier-note{margin-left:auto;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);opacity:.7}.deal-carrier-published{font-size:10px;color:var(--text-dim);white-space:nowrap}.deal-econ-box{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border:1px solid rgba(79,227,208,.18);border-radius:5px;background:#00000038}.deal-econ-net{font-family:var(--mono);font-size:16px;font-weight:600}.deal-econ-net--pos{color:#5bf0c2}.deal-econ-net--neg{color:var(--danger)}.deal-econ-row{font-size:11px;color:var(--text-dim)}.deal-review-summary{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid rgba(79,227,208,.14);border-radius:5px;background:#0003}.deal-review-line{margin:0;font-size:12px;color:var(--text)}.deal-dispatch-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.deal-dispatch-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(79,227,208,.1);border-radius:3px}.deal-dispatch-name{font-size:12px;color:var(--text);flex:1}.deal-dispatch-role{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim)}.deal-send-error{margin:0;font-size:11px;color:var(--danger)}.deal-counterparty-section-label{margin:8px 0 4px;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.deal-market-label{margin:4px 0 2px;font-size:10px;color:#4fe3d099;padding-left:2px}.deal-participant-swatch{width:8px;height:8px;border-radius:2px;border:1px solid rgba(79,227,208,.4);background:#4fe3d01a;flex:0 0 auto}.deal-participant-info{display:flex;flex-direction:column;gap:2px;min-width:0}.deal-participant-pos{font-size:9px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deal-facility-single{display:flex;flex-direction:column;gap:12px}.deal-participant-endpoint{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid rgba(79,227,208,.12);border-radius:4px;background:#0000002e}.deal-participant-endpoint-name{margin:0;font-size:13px;color:var(--text-bright)}.deal-participant-endpoint-market{margin:0;font-size:10px;color:var(--text-dim)}.deal-resource-item--dim{opacity:.45}.deal-resource-item--dim:hover{opacity:.65}.deal-resource-warn{font-size:11px;color:var(--amber);line-height:1}.deal-price-row{display:flex;align-items:center;gap:10px}.deal-price-total{font-size:11px;color:var(--text-dim);white-space:nowrap}.deal-fuel-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deal-fuel-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(79,227,208,.25);border-radius:999px;font-size:11px;color:var(--text)}.deal-fuel-auto-tag{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);border:1px solid rgba(79,227,208,.4);border-radius:999px;padding:1px 5px}.deal-select--inline{width:auto;flex:1 1 auto;min-width:0;font-size:11px;padding:4px 8px}.deal-lp-section{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border:1px solid rgba(79,227,208,.1);border-radius:5px;background:#00000026;margin-top:6px}.deal-lp-toggle-row{display:flex;align-items:center;gap:8px}.deal-lp-toggle-label{font-size:12px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.deal-lp-estimate{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid rgba(240,179,92,.2);border-radius:4px;background:#f0b35c08}.market-fuel-admin-toggle{display:flex;align-items:center;gap:5px;margin-left:auto;cursor:pointer}.market-fuel-admin-label{font-size:10px;letter-spacing:.5px;color:var(--text-dim)}.deal-landing-new{display:flex;flex-direction:column;align-items:stretch}.deal-landing-divider{height:1px;background:#4fe3d01a;margin:4px 0}.deal-new-btn{padding:12px 18px;border:1px dashed rgba(79,227,208,.4);border-radius:6px;background:#4fe3d00a;color:var(--accent);font-family:var(--mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .12s,border-color .12s;text-align:center}.deal-new-btn:hover{background:#4fe3d01a;border-color:var(--accent)}.deal-section-label--alert{color:var(--amber)}.deal-approval-card{display:flex;flex-direction:column;gap:9px;padding:11px 13px;border:1px solid rgba(240,179,92,.35);border-radius:6px;background:#f0b35c0a}.deal-approval-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.deal-approval-proposer{font-size:11px;color:var(--text-dim)}.deal-approval-time{font-size:10px;color:var(--text-dim)}.deal-approval-summary{display:flex;flex-direction:column;gap:3px}.deal-approval-line{margin:0;font-size:12px;color:var(--text)}.deal-approval-co{display:flex;flex-wrap:wrap;gap:5px}.deal-approval-co-chip{padding:2px 8px;border-radius:999px;font-size:10px;border:1px solid rgba(79,227,208,.2);color:var(--text-dim)}.deal-approval-co-chip--approved{border-color:#5bf0c266;color:#5bf0c2}.deal-approval-co-chip--rejected{border-color:#f0635c59;color:var(--danger)}.deal-approval-co-chip--pending{border-color:#f0b35c4d;color:var(--amber)}.deal-approval-actions{display:flex;gap:8px}.deal-approve-btn{padding:6px 16px;border-radius:var(--radius);border:1px solid rgba(91,240,194,.45);background:transparent;color:#5bf0c2;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .1s}.deal-approve-btn:hover{background:#5bf0c21a}.deal-approve-btn--reject{border-color:#f0635c59;color:var(--danger)}.deal-approve-btn--reject:hover{background:#f0635c14}.deal-approval-notice{display:flex;align-items:flex-start;gap:9px;padding:9px 12px;border:1px solid rgba(240,179,92,.3);border-radius:5px;background:#f0b35c0a}.deal-approval-notice-icon{font-size:14px;color:var(--amber);flex:0 0 auto;line-height:1.4}.deal-approval-notice-text{margin:0;font-size:11px;color:var(--amber);line-height:1.5}.make-deal-badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--amber);color:#1a1000;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none}.inbox-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none}.player-nav-btn{position:relative}.inbox-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid rgba(79,227,208,.16);border-radius:6px;background:#061014b8}.inbox-card--sent{border-color:#4fe3d01a;opacity:.85}.inbox-card-head{display:flex;align-items:flex-start;gap:8px}.inbox-card-head-text{display:flex;flex-direction:column;gap:2px;flex:1}.inbox-card-from{font-size:12px;font-weight:600;color:var(--text-bright)}.inbox-card-time{font-size:10px;color:var(--text-dim)}.inbox-type-badge{padding:2px 8px;border-radius:999px;border:1px solid rgba(79,227,208,.3);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);white-space:nowrap}.inbox-type-badge--carrier{border-color:#f0b35c66;color:var(--amber)}.inbox-status-badge{padding:2px 8px;border-radius:999px;border:1px solid rgba(79,227,208,.2);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.inbox-status-badge--agreed{border-color:#5bf0c266;color:#5bf0c2}.inbox-status-badge--rejected{border-color:#f0635c66;color:var(--danger)}.inbox-card-summary{display:flex;flex-direction:column;gap:3px}.inbox-card-summary-line{margin:0;font-size:12px;color:var(--text)}.inbox-card-note{margin:4px 0 0;font-size:11px;color:var(--text-dim);font-style:italic}.inbox-card-history{padding:4px 0;border-top:1px solid rgba(79,227,208,.08)}.inbox-card-history-label{margin:0;font-size:10px;color:var(--text-dim)}.inbox-card-actions{display:flex;gap:8px}.inbox-action-btn{padding:6px 14px;border-radius:var(--radius);border:1px solid rgba(79,227,208,.3);background:transparent;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .1s}.inbox-action-btn--accept{border-color:#5bf0c273;color:#5bf0c2}.inbox-action-btn--accept:hover{background:#5bf0c21a}.inbox-action-btn--reject{border-color:#f0635c59;color:var(--danger)}.inbox-action-btn--reject:hover{background:#f0635c14}.inbox-settlement-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid rgba(79,227,208,.1);border-radius:4px;background:#00000026}.inbox-settlement-item{display:flex;align-items:center;gap:8px;font-size:11px}.inbox-settle-icon{width:16px;text-align:center;color:var(--text-dim);font-size:11px}.inbox-settle-icon--done{color:#5bf0c2}.inbox-settle-party{flex:1;color:var(--text)}.inbox-settle-status{color:var(--text-dim);font-size:10px}.inbox-settle-status--rejected{color:var(--danger)}.inbox-settlement-note{margin:4px 0 0;font-size:10px;color:var(--text-dim);font-style:italic}.stage{--fx-scanline: .18;--fx-scanline-size: 3px;--fx-vignette: .55;--fx-noise: .05;--fx-hue: 0deg;--fx-bloom: 6px;--fx-tint: rgba(54, 245, 214, .05);--fx-canvas-filter: none}.stage .fx-filtered{filter:var(--fx-canvas-filter, none)}#map-glow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none;mix-blend-mode:screen;filter:blur(var(--fx-bloom, 6px))}.fx-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fx-scanlines{background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,0) calc(var(--fx-scanline-size) - 1px),rgba(0,0,0,calc(var(--fx-scanline) * 1.2)) var(--fx-scanline-size));mix-blend-mode:multiply;z-index:10}.fx-tint{background:var(--fx-tint);mix-blend-mode:screen;z-index:9}.fx-vignette{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,var(--fx-vignette)) 100%);z-index:11}.fx-noise{z-index:12;opacity:var(--fx-noise);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
