:root{--ink:#172e49;--muted:#53677d;--blue:#1767c5;--line:#dce5ef}*{box-sizing:border-box}body{margin:0;background:#f2f5f9;color:var(--ink);font:16px/1.65 'Yu Gothic UI',Meiryo,sans-serif;display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}aside{background:#10273f;padding:32px 22px;color:white}aside b{font-size:34px;letter-spacing:.14em}aside small{display:block;color:#a8c8e7;font-size:11px;letter-spacing:.08em}nav{display:grid;gap:8px;margin-top:45px}button,input,select{font:inherit}button{cursor:pointer}nav button{border:0;background:none;color:#c8d6e5;padding:13px 10px;text-align:left;border-radius:7px;font-size:14px}nav button.active{background:#24517c;color:white}nav button:hover{background:#1d4163}aside p{font-size:12px;color:#b6c9da;margin-top:60px}main{padding:30px 36px;min-width:0;width:100%;max-width:1550px}header{margin-bottom:24px}header small{letter-spacing:.13em;color:var(--muted);font-size:12px}h1{font-size:28px;margin:6px 0}h2{font-size:19px;margin:0 0 16px}h3{font-size:16px;margin:8px 0}.controls,#controls{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:20px}label{display:grid;gap:5px;font-size:13px;color:var(--muted)}select,input{background:white;border:1px solid #b5c4d5;border-radius:7px;padding:10px 12px;color:var(--ink);min-height:44px;max-width:100%}input{width:300px}select{min-width:195px}:focus-visible{outline:3px solid #62a3f0;outline-offset:3px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:23px}.panel{margin-bottom:20px}.label,.note{color:var(--muted);font-size:13px}.metric{font-size:32px;line-height:1.4;font-weight:700;margin:8px 0}.metric small{font-size:15px;font-weight:400;margin-left:6px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}dl{display:grid;grid-template-columns:90px 1fr;gap:14px}dt{font-size:14px;color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}ul{padding-left:20px;margin:0}li{margin-bottom:7px}.alert{background:#fff5df;border-left:4px solid #c78c21;padding:14px 17px;margin-bottom:20px;border-radius:3px;color:#684911;font-size:14px}.bars{display:grid;gap:17px;margin-top:20px}.bar{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(100px,2fr) 110px;align-items:center;gap:12px;font-size:14px}.track{height:13px;background:#eaf0f6;position:relative;border-radius:3px}.range,.fill{height:100%;border-radius:3px;position:absolute;left:0;top:0}.range{background:#aecded}.fill{background:#1767c5}.highlight .fill{background:#c47a22}.value{text-align:right;font-variant-numeric:tabular-nums}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{background:#eef3f8;color:#3f5570}td,th{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.tag{font-size:12px;color:var(--muted)}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:13px}.dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}.stack{display:flex;height:38px;overflow:hidden;border-radius:4px;margin:20px 0 10px}.item{padding:17px 0;border-top:1px solid var(--line)}.item p{margin:7px 0}.badge{display:inline-block;font-size:12px;background:#eaf0f7;color:#3d5774;padding:3px 8px;border-radius:4px}.empty{padding:30px;text-align:center;color:var(--muted)}footer{color:var(--muted);font-size:12px;margin:28px 0}details{font-size:14px;margin:20px 0}summary{cursor:pointer;color:#735414}@media(max-width:1050px){body{grid-template-columns:190px minmax(0,1fr)}aside{padding:24px 14px}main{padding:25px}.grid{grid-template-columns:1fr}.cards{gap:10px}.card{padding:16px}.metric{font-size:26px}}@media(max-width:650px){body{display:block}aside{padding:16px}aside b{font-size:24px}aside small,aside p{display:none}nav{grid-template-columns:1fr 1fr;margin-top:12px;gap:5px}nav button{font-size:13px;padding:9px}main{padding:20px 15px}.cards{grid-template-columns:1fr}.metric{font-size:30px}.panel{padding:18px}.bar{grid-template-columns:1fr 90px;gap:5px}.bar .track{grid-row:2;grid-column:1/3}.bar .value{grid-row:1;grid-column:2}label,input,select{width:100%;min-width:0}h1{font-size:24px}}
