:root{--accent: #d9531e;--accent-fill: #b14418;--pos: #3ddc97;--neg: #ff5566;--signal: color-mix(in srgb, var(--accent) 40%, #fff);--e1: rgba(90, 160, 255, .26);--e2: rgba(90, 160, 255, .16);--e3: rgba(90, 160, 255, .1);--bg: #05090d;--grid: #0a1218;--card: #080f15;--head: #0a1219;--text: #cfe3f0;--muted: #6b8498;--faint: #3f5464;--kpi-idle: #22384a;--hilite: var(--hilite);--hover: var(--hover);--wash: var(--wash);--radius: 0;--hud-h: 34px;--topbar-h: 56px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:Meiryo UI,Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}table,.num,.n,input[type=number]{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:0}.mono-label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:.16em}.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--card);border-right:1px solid var(--e1);color:var(--text);display:flex;flex-direction:column;padding:0 0 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 14px;height:var(--topbar-h);border-bottom:1px solid var(--e2)}.brand__mark{width:30px;height:30px;border-radius:var(--radius);background:transparent;border:1px solid var(--accent);color:var(--signal);font-weight:700;font-size:15px;display:grid;place-items:center}.brand__name{font-weight:700;color:var(--text);font-size:14px;letter-spacing:.02em}.brand__sub{font-size:11px;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:16px;margin-top:14px}.nav-group__label{font-size:11px;color:var(--muted);letter-spacing:.08em;padding:0 14px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius);font-size:13px;color:var(--text);box-shadow:inset 2px 0 0 transparent}.nav-item:hover{background:var(--hover);box-shadow:inset 2px 0 0 var(--accent)}.nav-item.is-active{background:var(--wash);color:var(--signal);box-shadow:inset 2px 0 0 var(--signal)}.nav-item__icon{width:18px;text-align:center;color:var(--muted)}.nav-item.is-active .nav-item__icon{color:var(--signal)}.nav-item__label{flex:1}.nav-item__badge{font-size:10px;background:transparent;border:1px solid var(--e1);color:var(--muted);padding:1px 6px;border-radius:var(--radius)}.sidebar__foot{margin-top:auto;font-size:11px;color:var(--muted);padding:10px 14px 0}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);background:var(--head);border-bottom:1px solid var(--e1);display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:5}.topbar__title{font-weight:700;font-size:15px;color:var(--text)}.topbar__right{display:flex;align-items:center;gap:12px}.user{display:flex;align-items:center;gap:8px}.user__avatar{width:26px;height:26px;border-radius:var(--radius);background:transparent;border:1px solid var(--e1);color:var(--muted);display:grid;place-items:center;font-size:12px;font-weight:700}.user__email{font-size:12px;color:var(--muted)}#theme-toggle{display:inline-flex;align-items:center;padding:7px 9px}#theme-toggle svg{display:block;transition:transform .25s ease}[data-theme=light] #theme-toggle svg{transform:rotate(180deg)}.ct-hud{height:var(--hud-h);display:flex;align-items:center;gap:0;padding:0 18px;background:var(--bg);border-bottom:1px solid var(--e2);font-size:12px;color:var(--muted);position:sticky;top:var(--topbar-h);z-index:4;overflow-x:auto;white-space:nowrap}.ct-hud__item{padding:0 14px;border-right:1px solid var(--e3)}.ct-hud__item:first-child{padding-left:0}.ct-hud__item:last-child{border-right:0}.ct-hud__item.is-lead{color:var(--signal)}.ct-hud__item.is-tail{margin-left:auto;border-right:0}.ct-hud__v{color:var(--text);font-variant-numeric:tabular-nums}.ct-hud__v.is-none{color:var(--muted)}.view{padding:18px;flex:1;background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:28px 28px}.ct-card{background:var(--card);border:1px solid var(--e1);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--hilite);padding:14px}.ct-card__title{font-size:13px;font-weight:700;margin:0 0 10px;color:var(--text)}.ct-card.auto-h{align-self:start}.ct-kpi{background:transparent;border:1px solid var(--e2);border-radius:var(--radius);box-shadow:inset 0 2px 0 var(--kpi-idle);padding:12px 14px;display:flex;flex-direction:column}.ct-kpi.acc{box-shadow:inset 0 2px 0 var(--accent)}.ct-kpi.pos{box-shadow:inset 0 2px 0 var(--pos)}.ct-kpi.neg{box-shadow:inset 0 2px 0 var(--neg)}.ct-kpi__label{font-size:12px;color:var(--muted)}.ct-kpi__value{font-size:21px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}.ct-kpi__sub{font-size:11.5px;color:var(--muted);margin-top:4px}.ct-kpi.pos .ct-kpi__value{color:var(--pos)}.ct-kpi.neg .ct-kpi__value{color:var(--neg)}.ct-kpi__goal{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:10px;color:var(--muted);margin-top:auto;padding-top:6px}.ct-kpi__goal b{font-weight:700;font-variant-numeric:tabular-nums}.ct-kpi__goalbar{height:3px;background:var(--e2);margin-top:3px}.ct-kpi__goalbar>div{height:3px}.ct-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}.ct-tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.ct-tbl thead th{position:sticky;top:0;z-index:1;background:var(--head);border-bottom:1px solid var(--e2);font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.16em;text-align:left;padding:8px 10px}.ct-tbl td{border-bottom:1px solid var(--e3);padding:7px 10px;font-size:13px}.ct-tbl td.n,.ct-tbl th.n{text-align:right}.ct-row{box-shadow:inset 2px 0 0 transparent}.ct-row:hover{background:var(--hover);box-shadow:inset 2px 0 0 var(--accent)}.ct-row.is-sel{background:var(--wash);box-shadow:inset 2px 0 0 var(--signal),inset 0 0 0 1px var(--e1)}.ct-seg,.seg{display:inline-flex;gap:0;border:1px solid var(--e1);border-radius:var(--radius)}.ct-seg>*,.seg>*{padding:6px 12px;font-size:12.5px;color:var(--muted);background:transparent;border:0;border-radius:var(--radius);cursor:pointer}.ct-seg>.is-on,.seg>.is-on,.ct-seg>.on,.seg>.on{color:var(--signal);box-shadow:inset 0 0 0 1px var(--accent),inset 0 -2px 0 var(--accent)}.ct-bar{border:1px solid var(--e2);background:#0b131a;border-radius:var(--radius);height:10px}.ct-bar>span{display:block;height:100%;background:var(--accent)}.ct-bar>span.pos{background:var(--pos)}.ct-bar>span.neg{background:var(--neg)}.ct-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0}.ct-grid>.c6{grid-column:span 6}.ct-grid>.c12{grid-column:span 12}@media (max-width: 920px){.ct-grid>.c6{grid-column:span 12}}.ct-panel{background:var(--head);border:1px solid var(--e1);border-radius:var(--radius);padding:13px 15px}.ct-state{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 16px;font-size:12.5px;color:var(--muted)}.ct-state__t{font-size:13px;font-weight:700;color:var(--text)}.ct-state.is-error .ct-state__t,.ct-state.is-partial .ct-state__t{color:var(--neg)}.pos{color:var(--pos)}.neg{color:var(--neg)}.ct-approx{color:var(--muted)}.ct-approx:after{content:"（概算）";font-size:11px}.ct-none{color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin-bottom:16px}.kpi{background:transparent;border:1px solid var(--e2);border-radius:var(--radius);box-shadow:inset 0 2px 0 var(--kpi-idle);padding:12px 14px}.kpi__label{font-size:12px;color:var(--muted)}.kpi__value{font-size:21px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}.kpi__sub{font-size:11.5px;color:var(--muted);margin-top:4px}.kpi__value.pos{color:var(--pos)}.kpi__value.neg{color:var(--neg)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px}.card{background:var(--card);border:1px solid var(--e1);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--hilite);padding:14px}.card__title{font-weight:700;font-size:13.5px;margin:0 0 4px}.card__note{font-size:12px;color:var(--muted);margin:0 0 10px}.btn{border:1px solid var(--e1);background:transparent;color:var(--text);padding:7px 12px;border-radius:var(--radius);font-size:13px;cursor:pointer;font-family:inherit}.btn:hover{background:var(--wash);border-color:var(--accent)}.btn[disabled]{opacity:.5;cursor:default}.btn--primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;font-weight:700}.btn--primary:hover{background:var(--accent-fill);filter:brightness(1.08)}.btn--danger{border-color:var(--neg);color:var(--neg)}.pill{font-size:11.5px;padding:3px 9px;border-radius:var(--radius);border:1px solid var(--e1);color:var(--muted)}.pill--warn{border-color:var(--accent);color:var(--signal)}.stub{background:var(--card);border:1px dashed var(--e1);border-radius:var(--radius);padding:24px}.stub__title{font-weight:700;font-size:15px;margin:0 0 6px}.stub__note{color:var(--muted);font-size:13px;margin:0 0 12px}.stub__todo{font-size:12.5px;color:var(--muted)}.stub__todo li{margin:4px 0}.tag{display:inline-block;font-size:11px;color:var(--signal);border:1px solid var(--accent);border-radius:var(--radius);padding:1px 8px;margin-left:8px;vertical-align:middle}.placeholder-box{height:120px;margin-top:12px;border-radius:var(--radius);background:repeating-linear-gradient(45deg,var(--card),var(--card) 10px,var(--grid) 10px,var(--grid) 20px);border:1px solid var(--e2)}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(680px 340px at 50% -8%,rgba(217,83,30,.16),transparent 70%),var(--bg)}.login__card{background:var(--card);border:1px solid var(--e1);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--hilite);padding:30px;width:340px;text-align:center}.login__mark{width:46px;height:46px;border-radius:var(--radius);background:transparent;border:1px solid var(--accent);color:var(--signal);font-weight:700;font-size:22px;display:grid;place-items:center;margin:0 auto 12px}.login__title{font-weight:700;font-size:19px}.login__sub{color:var(--muted);font-size:13px;margin:4px 0 20px}.login__error{color:var(--neg);font-size:12.5px;min-height:18px;margin-top:12px}@media (min-width: 1700px){.layout{grid-template-columns:260px 1fr}}@media (max-width: 1400px){.layout{grid-template-columns:200px 1fr}}@media (max-width: 1100px){.layout{grid-template-columns:176px 1fr}.nav-item{font-size:12.5px;padding:7px 12px}.brand__name{font-size:13px}}@media (min-height: 800px){.view{display:flex;flex-direction:column}}@media (max-width: 760px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;bottom:0;top:auto;left:0;right:0;height:auto;width:100%;flex-direction:row;overflow-x:auto;padding:4px;z-index:20;border-right:0;border-top:1px solid var(--e1);padding-bottom:calc(4px + env(safe-area-inset-bottom))}.brand,.nav-group__label,.sidebar__foot,.nav-item__badge{display:none}.nav{flex-direction:row;gap:2px;margin:0}.nav-group{display:flex}.nav-item{flex-direction:column;gap:2px;font-size:10.5px;padding:6px 10px;box-shadow:inset 0 2px 0 transparent}.nav-item:hover{box-shadow:inset 0 2px 0 var(--accent)}.nav-item.is-active{box-shadow:inset 0 2px 0 var(--signal)}.main{padding-bottom:62px}.ct-hud{padding:0 12px}.view{padding:12px}}@media print{.sidebar,.topbar,.ct-hud{display:none!important}.layout{display:block}body{background:#fff;color:#1a1714}.view{background:#fff;background-image:none;padding:0}.card,.ct-card{border-color:#cfc7bf;background:#fff;box-shadow:none}}.db-open,.bl-open,.op-open,.embed__open{font:inherit;cursor:pointer}button.db-open,button.bl-open,button.op-open,button.embed__open{-webkit-appearance:none;-moz-appearance:none;appearance:none}button.db-open[disabled],button.bl-open[disabled],button.op-open[disabled],button.embed__open[disabled]{opacity:.6;cursor:default}[data-theme=light]{--bg: #f5f4f1;--grid: #eceae5;--card: #ffffff;--head: #edece8;--text: #26333d;--muted: #736963;--faint: #c8c2ba;--kpi-idle: #c9d4de;--e1: rgba(40, 105, 200, .34);--e2: rgba(40, 105, 200, .2);--e3: rgba(40, 105, 200, .12);--pos: #0a7450;--neg: #c52230;--signal: color-mix(in srgb, var(--accent) 75%, #000);--hilite: rgba(40, 105, 200, .07);--hover: rgba(40, 105, 200, .06);--wash: rgba(40, 105, 200, .09)}[data-theme=light] .ct-kpi,[data-theme=light] .ct-panel,[data-theme=light] .btn:not(.btn--primary),[data-theme=light] .dp-sec{background:var(--card)}
