/* Neon Ledger v0.46 — implementation of the Figma product redesign. */
:root{
  --nl-bg-canvas:#020607;--nl-bg-shell:#05090b;--nl-bg-panel:#071013;--nl-bg-panel-raised:#0a1417;--nl-bg-hover:#0d1a1e;--nl-bg-selected:#12242a;
  --nl-text-primary:#e5efed;--nl-text-secondary:#9cb0b0;--nl-text-muted:#71888a;--nl-border-subtle:#20363b;--nl-border-strong:#31545a;--nl-border-focus:#42f5d7;
  --nl-action-primary:#42f5d7;--nl-action-primary-hover:#a5fff0;--nl-action-secondary:#ff7138;--nl-status-success:#68e89c;--nl-status-warning:#ffd34e;--nl-status-danger:#ff4c61;--nl-status-info:#53a8ff;
  --nl-shadow-panel:0 10px 30px rgba(0,0,0,.32);--nl-sidebar:224px;--nl-topbar:64px;
  --bg:var(--nl-bg-canvas);--panel:var(--nl-bg-panel);--panel2:var(--nl-bg-panel-raised);--line:var(--nl-border-subtle);--line2:var(--nl-border-strong);--cyan:var(--nl-action-primary);--orange:var(--nl-action-secondary);--yellow:var(--nl-status-warning);--text:var(--nl-text-primary);--muted:var(--nl-text-muted);--red:var(--nl-status-danger);--shadow:var(--nl-shadow-panel)
}
*{scrollbar-width:thin;scrollbar-color:var(--nl-border-strong) var(--nl-bg-shell)}
html,body{min-width:0;background:var(--nl-bg-canvas);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.55}
body{display:grid;grid-template-columns:var(--nl-sidebar) minmax(0,1fr);grid-template-rows:var(--nl-topbar) minmax(0,1fr);overflow:hidden;background:var(--nl-bg-canvas)}body:after{opacity:.035}
button,input,select{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--nl-border-focus);outline-offset:2px}
.topbar{grid-column:2;grid-row:1;height:var(--nl-topbar);padding:0 24px;background:var(--nl-bg-shell);border-bottom:1px solid var(--nl-border-subtle);box-shadow:none;z-index:20}
.brand{position:fixed;z-index:30;left:16px;top:14px;width:192px;min-width:0;display:block;pointer-events:none}.brand b{display:block;color:var(--nl-action-primary);font:600 11px/16px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:.08em;text-shadow:none}.brand small{display:block;color:var(--nl-text-primary);font:700 22px/32px "Noto Sans SC","PingFang SC",sans-serif}
.main-nav{position:fixed;z-index:30;left:16px;top:106px;width:192px;display:flex;flex-direction:column;gap:4px;height:auto}.nav-btn{width:192px;height:44px;min-height:44px;padding:0 14px;border:0;border-radius:6px;background:transparent;color:var(--nl-text-secondary);font:500 13px/18px "Noto Sans SC","PingFang SC",sans-serif;letter-spacing:0;text-align:left;text-transform:none}.nav-btn:before{content:none!important;display:none!important}.nav-btn:hover{background:var(--nl-bg-hover);color:var(--nl-text-primary)}.nav-btn.active{background:var(--nl-bg-selected);color:var(--nl-action-primary)}.nav-btn.active:after{left:0;right:auto;top:12px;bottom:12px;width:3px;height:auto;border-radius:2px;background:var(--nl-action-primary);box-shadow:none}
.clock{margin-left:auto;gap:14px;color:var(--nl-text-muted)}.clock>span:first-child{display:flex;align-items:center;gap:8px;font:600 11px/16px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:.06em}.clock>span:first-child>span{white-space:nowrap}.clock br{display:none}.clock strong{color:var(--nl-action-primary);font:600 13px/18px ui-monospace,"IBM Plex Mono",monospace}.clock .divider{height:24px;background:var(--nl-border-subtle)}
.realtime-pill,.player-pill,.lang-btn,.logout-btn,.icon-btn{min-height:32px;border:1px solid var(--nl-border-subtle);border-radius:6px;background:var(--nl-bg-panel);color:var(--nl-text-secondary)}.realtime-pill{font:600 10px/16px ui-monospace,"IBM Plex Mono",monospace}.realtime-pill.live{color:var(--nl-status-success);border-color:var(--nl-status-success);box-shadow:none}.lang-btn,.logout-btn{padding:0 10px}.icon-btn{width:36px}.notify-badge{background:var(--nl-status-danger)}
.app-shell{display:contents;padding:0}.left-rail{grid-column:1;grid-row:1/3;position:relative;z-index:5;border:0;border-right:1px solid var(--nl-border-subtle);border-radius:0;background:var(--nl-bg-shell);box-shadow:none;overflow:hidden}.left-rail .panel-title,.left-rail .rail-pad,.left-rail .rail-action{display:none}
.company-identity{position:fixed;z-index:31;left:16px;bottom:16px;width:192px;padding:10px;border:0;border-radius:8px;background:var(--nl-bg-panel);gap:9px}.company-identity .avatar{width:32px;height:32px;border-radius:6px;border-color:var(--nl-border-subtle)}.company-identity h2{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;font:500 12px/18px "Noto Sans SC","PingFang SC",sans-serif}.company-identity .online{display:block;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--nl-text-muted);font-size:10px}.company-identity .online:before{width:5px;height:5px;background:var(--nl-status-success);box-shadow:none}
.workspace{grid-column:2;grid-row:2;position:relative;height:100%;min-width:0;border:0;border-radius:0;background:var(--nl-bg-canvas);box-shadow:none;overflow:hidden}.view{height:100%;padding:24px;overflow:auto;background:var(--nl-bg-canvas)}.view.module,.region-view,.corporate-hub{padding:24px!important;background:var(--nl-bg-canvas)}
.dashboard-view{display:flex!important;flex-direction:column;gap:16px;overflow:auto}.dashboard-view:not(.active){display:none!important}.company-dashboard-head{order:0;min-height:64px;padding:0;border:0;background:none;display:flex;align-items:flex-start;justify-content:space-between}.company-dashboard-head small{color:var(--nl-action-secondary);font:600 11px/16px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:.06em}.company-dashboard-head h2{margin:3px 0;color:var(--nl-text-primary);font:700 28px/40px "Noto Sans SC","PingFang SC",sans-serif}.company-dashboard-head p{margin:0;color:var(--nl-text-secondary)}
.company-kpis{order:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.company-kpi{position:relative;min-height:140px;padding:16px;border:1px solid var(--nl-border-subtle);border-radius:10px;background:var(--nl-bg-panel);box-shadow:var(--nl-shadow-panel);overflow:hidden}.company-kpi:before{content:"";display:block;width:64px;height:3px;margin-bottom:10px;border-radius:2px;background:var(--nl-action-primary)}.company-kpi:nth-child(3):before{background:var(--nl-status-danger)}.company-kpi:nth-child(4):before{background:var(--nl-status-warning)}.company-kpi label{display:block;color:var(--nl-text-secondary);font-size:13px}.company-kpi b{display:block;margin:7px 0 5px;color:var(--nl-action-primary);font:600 28px/34px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:-.02em}.company-kpi:nth-child(3) b{color:var(--nl-status-danger)}.company-kpi small{color:var(--nl-text-muted)}
.company-ops-grid{order:2;display:grid;grid-template-columns:minmax(320px,.75fr) minmax(520px,1.25fr);gap:12px}.ops-card,.dashboard-equity-market,.module-card,.command-card,.equity-market-board,.equity-trade-ticket{border:1px solid var(--nl-border-subtle);border-radius:10px;background:var(--nl-bg-panel);box-shadow:none}.ops-card{padding:18px}.ops-card h3,.module-card h3,.command-card h3{margin:0 0 14px;color:var(--nl-text-primary);font:500 17px/26px "Noto Sans SC","PingFang SC",sans-serif}.ops-status-grid{gap:8px}.ops-status-grid>div{border:0;border-radius:4px;background:var(--nl-bg-panel-raised);padding:10px 12px}.ops-status-grid label{color:var(--nl-text-secondary)}.ops-status-grid b{color:var(--nl-action-primary);font-family:ui-monospace,"IBM Plex Mono",monospace}.inventory-ops{grid-column:1/-1}.inventory-ops .table-wrap{height:auto;max-height:260px}.dashboard-equity-market{order:3;margin:0;padding:18px;background:var(--nl-bg-panel)}.equity-listing-console{border-radius:8px;background:var(--nl-bg-panel-raised)}
.module-header{align-items:flex-start;margin-bottom:16px;padding-bottom:16px;border-color:var(--nl-border-subtle)}.module-header h2{color:var(--nl-text-primary);font:700 28px/40px "Noto Sans SC","PingFang SC",sans-serif}.module-header p{color:var(--nl-text-secondary);font-size:14px}.module-grid{gap:12px}.module-card{padding:18px}.module-card.full{grid-column:1/-1}
.action,.rail-action,.contract-action{min-height:40px;padding:0 16px;border:1px solid var(--nl-border-strong);border-radius:6px;background:var(--nl-bg-panel);color:var(--nl-text-primary);font:500 13px/18px "Noto Sans SC","PingFang SC",sans-serif;letter-spacing:0;text-transform:none}.action:hover,.rail-action:hover,.contract-action:hover{border-color:var(--nl-border-focus);background:var(--nl-bg-hover);color:var(--nl-action-primary);box-shadow:none}.action.fill{border-color:var(--nl-action-primary);background:var(--nl-action-primary);color:var(--nl-bg-canvas)}.action.orange{border-color:var(--nl-action-secondary);background:transparent;color:var(--nl-action-secondary)}
.field label{margin-bottom:6px;color:var(--nl-text-secondary);font-size:13px}.field input,.field select,.ranking-tools select,.equity-trade-ticket select,.equity-trade-ticket input{height:40px;border:1px solid var(--nl-border-strong);border-radius:6px;background:var(--nl-bg-shell);color:var(--nl-text-primary);padding:0 12px}.field input:focus,.field select:focus{outline:2px solid var(--nl-border-focus);outline-offset:1px}
.data-table{font-size:13px}.data-table th,.data-table td{padding:11px 12px;border-color:var(--nl-border-subtle);font-size:12px}.data-table th{background:var(--nl-bg-panel);color:var(--nl-text-muted);font:600 11px/16px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:.05em}.data-table td.num,.num,.price,.quote,.preview-stat b{font-family:ui-monospace,"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}.table-wrap{border-radius:8px;background:var(--nl-bg-panel-raised)}
.preview-stat{border:1px solid var(--nl-border-subtle);border-radius:8px;background:var(--nl-bg-panel);padding:14px}.preview-stat label{color:var(--nl-text-secondary);font-size:12px}.preview-stat b{margin-top:7px;color:var(--nl-action-primary);font-size:22px}
.market-terminal{border:1px solid var(--nl-border-subtle);border-radius:10px;background:var(--nl-bg-panel);overflow:hidden}.market-terminal .instrument{min-height:86px;border-color:var(--nl-border-subtle)}.instrument h2,.instrument-title h2{font:500 17px/26px "Noto Sans SC","PingFang SC",sans-serif}.instrument .code{font-family:ui-monospace,"IBM Plex Mono",monospace}.quote{font:600 24px/30px ui-monospace,"IBM Plex Mono",monospace}.chart-wrap{background-color:var(--nl-bg-panel-raised);border-color:var(--nl-border-subtle)}.time-tabs button{min-height:32px;border-radius:5px}.time-tabs .on{box-shadow:none}
.region-map-screen,.region-detail-screen{height:100%}.cyber-map{border:1px solid var(--nl-border-subtle);border-radius:10px;background-color:var(--nl-bg-panel)}.map-heading h2{color:var(--nl-text-primary);font:700 28px/40px "Noto Sans SC","PingFang SC",sans-serif}.map-heading p{color:var(--nl-text-secondary)}.map-district{border-radius:10px;background:var(--nl-bg-panel);box-shadow:var(--nl-shadow-panel)}.map-district:hover{transform:translateY(-3px)}.influence-card,.demand-preference,.region-profile>div,.regional-news article,.facility-card,.retail-store-card,.project-card{border-radius:8px;background:var(--nl-bg-panel);border-color:var(--nl-border-subtle)}
.corporate-command-header{border:1px solid var(--nl-border-subtle);border-radius:10px;background:var(--nl-bg-panel)}.corporate-tabs{margin-top:12px;border:1px solid var(--nl-border-subtle);border-radius:8px;background:var(--nl-bg-shell)}.corporate-tabs button{min-height:44px;font:500 13px/18px "Noto Sans SC","PingFang SC",sans-serif}.company-panel{padding:18px 0 0}
.notification-drawer,.console{border-color:var(--nl-border-strong);border-radius:10px;background:var(--nl-bg-shell);box-shadow:0 18px 44px rgba(0,0,0,.48)}
.auth-screen{background:var(--nl-bg-canvas)}.auth-shell{width:min(1440px,calc(100vw - 48px));height:min(900px,calc(100vh - 48px));border:1px solid var(--nl-border-subtle);border-radius:12px;background:var(--nl-bg-canvas);box-shadow:0 18px 44px rgba(0,0,0,.48);overflow:hidden}.auth-hero{padding:56px;background:var(--nl-bg-shell);border-right:1px solid var(--nl-border-subtle)}.auth-hero h1{color:var(--nl-action-primary);font:600 11px/16px ui-monospace,"IBM Plex Mono",monospace;letter-spacing:.08em}.auth-hero h2{color:var(--nl-text-primary);font:700 40px/48px "Noto Sans SC","PingFang SC",sans-serif}.auth-hero p{max-width:620px;color:var(--nl-text-secondary);font-size:16px;line-height:26px}.auth-feature{grid-template-columns:1fr;gap:10px}.auth-feature span{padding:14px;border:0;border-radius:8px;background:var(--nl-bg-panel);color:var(--nl-text-primary);font:500 13px/18px "Noto Sans SC","PingFang SC",sans-serif}.auth-panel{padding:56px 64px;background:var(--nl-bg-canvas)}.auth-tabs{border-color:var(--nl-border-subtle)}.auth-tabs button{min-height:48px;color:var(--nl-text-muted);font-size:14px}.auth-tabs button.active{color:var(--nl-action-primary);border-color:var(--nl-action-primary)}.auth-form{gap:18px}.auth-form .action{width:100%;margin-top:8px}.auth-error{color:var(--nl-status-danger)}
@media(max-width:1100px){:root{--nl-sidebar:192px}.brand{width:160px}.main-nav,.nav-btn{width:160px}.nav-btn{padding-left:14px}.company-identity{width:160px}.company-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.company-ops-grid{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.retail-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){
 html,body{height:auto;min-height:100%;overflow:auto}body{display:block;padding:54px 0 76px;background:var(--nl-bg-canvas)}body:after{display:none}.topbar{position:fixed;top:0;left:0;right:0;height:54px;padding:0 14px;z-index:50}.brand{position:fixed;top:11px;left:14px;width:auto}.brand b{font-size:10px}.brand small{display:none}.clock{width:100%;justify-content:flex-end}.clock .divider,.player-pill,.lang-btn,.logout-btn{display:none}.clock>span:first-child>span{display:none}
 .main-nav{position:fixed;z-index:60;left:14px;right:14px;top:auto;bottom:8px;width:auto;height:56px;display:flex;flex-direction:row;gap:2px;padding:6px;overflow-x:auto;border:1px solid var(--nl-border-subtle);border-radius:10px;background:var(--nl-bg-shell);box-shadow:0 10px 30px rgba(0,0,0,.45)}.nav-btn{flex:0 0 auto;width:auto;min-width:72px;height:44px;padding:0 10px;text-align:center;font-size:12px}.nav-btn:before,.nav-btn.active:after{display:none}.left-rail{display:none}.workspace{height:auto;min-height:calc(100vh - 130px);overflow:visible}.view,.view.module,.region-view,.corporate-hub{height:auto;min-height:calc(100vh - 130px);padding:14px!important;overflow:visible}
 .company-dashboard-head{min-height:auto;gap:12px}.company-dashboard-head h2,.module-header h2{font-size:22px;line-height:32px}.company-dashboard-head .action{width:auto;flex:0 0 auto}.company-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.company-kpi{min-height:86px;padding:12px}.company-kpi:before{width:36px;height:2px;margin-bottom:6px}.company-kpi b{font-size:18px;line-height:24px}.company-kpi small{font-size:10px}.company-ops-grid{grid-template-columns:1fr}.ops-status-grid{grid-template-columns:repeat(2,1fr)}.dashboard-equity-market{padding:14px}.equity-market-head,.module-header{align-items:flex-start;flex-direction:column}.equity-company-row{grid-template-columns:42px 1fr}.equity-buy{grid-column:1/-1}
 .module-grid,.market-operations-grid,.finance-equity-layout,.equity-layout,.command-grid,.region-lower{grid-template-columns:1fr}.module-card{padding:14px}.retail-kpis{grid-template-columns:repeat(2,1fr)}.retail-store-grid{grid-template-columns:1fr}.intel-kpis{grid-template-columns:repeat(2,1fr)}.market-terminal .instrument{grid-template-columns:1fr 1fr}.market-terminal .instrument-main{grid-column:1/-1}.market-grid{grid-template-columns:1fr}.chart-wrap{height:300px;border-right:0;border-bottom:1px solid var(--nl-border-subtle)}.orderbook{min-height:230px}
 .region-map-screen{height:auto}.cyber-map{height:auto;min-height:760px}.map-district{position:relative!important;left:auto!important;top:auto!important;width:calc(100% - 24px)!important;margin:12px}.map-route{display:none}.influence-grid,.demand-preference-grid{grid-template-columns:1fr}.region-hero{grid-template-columns:1fr 1fr}.region-title{grid-column:1/-1}.auth-screen{padding:0}.auth-shell{width:100%;height:auto;min-height:100vh;display:block;border:0;border-radius:0;overflow:auto}.auth-hero{display:none}.auth-panel{min-height:100vh;padding:72px 20px 28px}.auth-lang{top:14px;right:14px}.registration-region-cards{grid-template-columns:1fr}
}
#megacorpFlowRows .flow-time{white-space:nowrap;font-family:ui-monospace,"IBM Plex Mono",monospace;color:var(--nl-text-secondary);font-variant-numeric:tabular-nums}
