:root{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#0c111f;color:#e6ebf5;font-family:system-ui,-apple-system,Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}.app{max-width:1200px;margin:0 auto;padding:20px}.app-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.app-header h1{font-size:20px;margin:0}.app-header .sub{font-size:13px;color:#8b98b8;font-weight:400}.badge{font-size:11px;padding:3px 8px;border-radius:999px;margin-left:auto;white-space:nowrap}.badge-local{background:#3a2030;color:#ffb3c6;border:1px solid #e0556b}.badge-sample{background:#1c2740;color:#8fb4ff;border:1px solid #3a5a9c}.kpi-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.kpi{background:#141b2e;border:1px solid #2a3550;border-radius:10px;padding:14px}.kpi-label{font-size:12px;color:#8b98b8;margin-bottom:6px}.kpi-value{font-size:24px;font-weight:700}.kpi-sub{font-size:11px;font-weight:400;color:#8b98b8;margin-left:8px}.kpi-ok .kpi-value{color:#3ec98a}.kpi-bad .kpi-value{color:#e0556b}.card{background:#141b2e;border:1px solid #2a3550;border-radius:12px;padding:16px}.card h2{font-size:14px;margin:0 0 10px}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px;margin-bottom:14px}.ctrl{display:flex;flex-direction:column;gap:6px}.ctrl label{font-size:12px;color:#b8c2dc}.ctrl b{color:#fff}.ctrl input[type=range]{width:100%;accent-color:#5b8def}.ctrl .derived{display:block;font-size:11px;color:#8b98b8;margin-top:2px}.alloc-card{margin-bottom:14px}.alloc{overflow-x:auto}.alloc-table{width:100%;border-collapse:collapse;font-size:12px}.alloc-table th{text-align:left;color:#8b98b8;font-weight:400;padding:4px 10px 6px 0;border-bottom:1px solid #2a3550;white-space:nowrap}.alloc-table td{padding:3px 10px 3px 0;border-bottom:1px solid #1c2740;white-space:nowrap}.alloc-table tfoot td{border-bottom:none;padding-top:8px;color:#b8c2dc}.alloc-table input[type=number]{width:76px;background:#0c111f;color:#e6ebf5;border:1px solid #2a3550;border-radius:6px;padding:3px 6px;font-size:12px}.alloc-table .unit{margin-left:4px;color:#8b98b8}.alloc-table .wret{color:#8b98b8;font-size:11px}.alloc-table .share{color:#8b98b8;font-size:11px;margin-left:6px}.mini-bar{display:inline-block;vertical-align:middle;width:90px;height:8px;background:#1c2740;border-radius:4px;overflow:hidden}.mini-bar span{display:block;height:100%;background:#5b8def;border-radius:4px}.alloc-table .reset{background:#1c2740;color:#b8c2dc;border:1px solid #2a3550;border-radius:6px;padding:4px 10px;font-size:11px;cursor:pointer}.alloc-table .reset:hover{background:#22304e}.ideco-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:10px;padding-top:10px;border-top:1px solid #2a3550;font-size:12px;color:#b8c2dc}.ideco-line .ideco-title{color:#8b98b8}.ideco-line input[type=number]{width:76px;background:#0c111f;color:#e6ebf5;border:1px solid #2a3550;border-radius:6px;padding:3px 6px;font-size:12px}.ideco-line input[type=number].narrow{width:52px}.ideco-line .unit{margin-left:4px;color:#8b98b8}.ideco-line .wret{color:#8b98b8;font-size:11px}.ctrl-toggle{justify-content:center}.ctrl-toggle label{display:flex;align-items:center;gap:8px;font-size:13px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.span2{grid-column:span 2}.span3{grid-column:span 3}.empty{color:#8b98b8;font-size:13px;padding:40px;text-align:center}.app-footer{margin-top:16px;font-size:11px;color:#6b7799;line-height:1.7}.app-footer code{background:#1c2740;padding:1px 5px;border-radius:4px}@media (max-width: 800px){.kpi-bar,.controls,.grid{grid-template-columns:1fr}.span2,.span3{grid-column:span 1}}.chart-note{margin:6px 2px 0;font-size:12px;color:#8b98b8}.mc-tabs{display:flex;gap:8px;margin:10px 0}.mc-tabs button{background:#1c2740;color:#b8c2dc;border:1px solid #2a3550;border-radius:6px;padding:4px 10px;font-size:11px;cursor:pointer}.mc-tabs button:hover{background:#22304e}.mc-tabs button.active{background:#0c111f;font-weight:600}.mc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
