:root{--bg: #f5f6f8;--surface: #fff;--text: #1c2230;--muted: #5d6779;--line: #e1e5ec;--brand: #2b59c3;--brand-soft: #e8eefb;--ok: #1e7a4c;--ok-bg: #e3f4ea;--warn: #93600a;--warn-bg: #fdf0d5;--bad: #b3261e;--bad-bg: #fbe4e2;--info: #22599e;--info-bg: #e3eefb;--waive: #6a3fa0;--waive-bg: #efe6fa;--c1: #2b59c3;--c2: #d9822b;--c3: #2a9d8f;--sample: #b45309;--sample-bg: #fff4d6}@media (prefers-color-scheme: dark){:root{--bg: #12151c;--surface: #1a1f2a;--text: #e8ebf1;--muted: #9aa5b8;--line: #2b3342;--brand: #7ea3ff;--brand-soft: #232d47;--ok: #6fd3a0;--ok-bg: #163427;--warn: #f2c26b;--warn-bg: #3a2d12;--bad: #ff8f86;--bad-bg: #3d1c1a;--info: #86b8f5;--info-bg: #17293f;--waive: #c4a3ee;--waive-bg: #2c2140;--c1: #7ea3ff;--c2: #f0a860;--c3: #5fd0c2;--sample: #f5c060;--sample-bg: #3a2f10}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif}h1{font-size:22px;margin:0}h3{font-size:16px;margin:0}h4{font-size:14px;margin:18px 0 6px}p{margin:6px 0}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:13px}.up{color:var(--ok)}.down{color:var(--bad)}.sample-bar{background:var(--sample-bg);color:var(--sample);padding:6px 16px;font-size:13px;text-align:center;border-bottom:1px solid var(--line)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:700;font-size:17px}.top-right{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}.user{white-space:nowrap}.login{max-width:440px;width:100%;margin:0 auto;padding:28px 16px 40px}label.inline{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}select,input,textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px}textarea{width:100%;resize:vertical}.layout{display:grid;grid-template-columns:236px 1fr;gap:20px;max-width:1240px;margin:0 auto;padding:20px 16px 40px}.side{align-self:start;position:sticky;top:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.side-head{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:8px}.side ul{display:flex;flex-direction:column;gap:2px}.side a{display:block;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none}.side a:hover{background:var(--brand-soft)}.side a.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.side{min-width:0}main{min-width:0;display:flex;flex-direction:column;gap:16px}.page-head{display:flex;align-items:center;gap:10px}.foot{text-align:center;color:var(--muted);font-size:12px;padding:0 16px 24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start}.grid-report{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:start}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpi-grid.four{grid-template-columns:repeat(4,1fr)}.kpi{display:flex;flex-direction:column;gap:2px}.kpi strong{font-size:20px}.kpi-label{font-size:12px;color:var(--muted)}.kpi-row{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:4px}.tag{font-size:12px;padding:2px 8px;border-radius:999px;font-weight:600}.tag-sample{background:var(--sample-bg);color:var(--sample);border:1px solid var(--sample)}.badge{display:inline-block;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}.badge-neutral{background:var(--line);color:var(--muted)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-waive{background:var(--waive-bg);color:var(--waive)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.chip{font-size:12px;padding:2px 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand)}.chip-min{background:var(--waive-bg);color:var(--waive)}.note{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:8px 12px;font-size:13px;margin:8px 0}.note.strong{background:var(--info-bg);color:var(--info)}.note.bad{background:var(--bad-bg);color:var(--bad)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:3px}.seg button{border:0;background:none;padding:6px 12px;border-radius:8px;cursor:pointer;color:var(--muted)}.seg button.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.btn{border:1px solid var(--line);background:var(--surface);padding:7px 14px;border-radius:8px;cursor:pointer}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}@media (prefers-color-scheme: dark){.btn.primary{color:#0e1422}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-link{border:0;background:none;color:var(--brand);cursor:pointer;padding:2px 0;text-decoration:underline}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.list{display:flex;flex-direction:column;gap:8px}.list-item{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);background:var(--surface);padding:9px 12px;border-radius:8px;cursor:pointer}.list-item.on{border-color:var(--brand);background:var(--brand-soft)}.entry{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.entry-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.reply{background:var(--brand-soft);border-radius:8px;padding:6px 10px;font-size:14px}.steps{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0}.steps li{font-size:12px;padding:2px 8px;border-radius:6px;background:var(--line);color:var(--muted)}.steps li.done{background:var(--ok-bg);color:var(--ok)}.details,.definition{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;margin:10px 0 0}.details div,.definition div{display:flex;flex-direction:column}.details dt,.definition dt{font-size:12px;color:var(--muted)}.details dd,.definition dd{margin:0}.definition{grid-template-columns:1fr;background:var(--bg);border-radius:8px;padding:10px 12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.split-col{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}.bar{background:var(--line);border-radius:6px;height:10px;min-width:90px}.bar i{display:block;height:100%;border-radius:6px;background:var(--c1)}.bar i.late{background:var(--bad)}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line)}.chart .axis{fill:var(--muted);font-size:11px}.chart .gap{fill:var(--line);opacity:.6}.chart .cursor{stroke:var(--muted);stroke-dasharray:3 3}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;margin-top:4px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.gap-swatch{background:var(--line)!important}.report section{margin-top:12px}@media print{.sample-bar~*{visibility:visible}.side,.topbar,.grid-report>:first-child,.foot,.card-right{display:none!important}.grid-report{display:block}}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:16px;align-items:stretch}.metric-grid .metric{display:flex;flex-direction:column}.metric-grid .metric.wide{grid-column:1 / -1}.metric-body{flex:1;display:flex;flex-direction:column}.metric-chart{flex:1;display:flex;flex-direction:column;justify-content:center}.metric.wide .metric-body{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.metric.wide .metric-info h4:first-child{margin-top:0}.metric .chart{flex:1;display:flex;flex-direction:column;justify-content:center}.actions.push{margin-top:auto;padding-top:10px}.grid2>.card{height:100%}.grid2{align-items:stretch}@media (max-width: 900px){.layout{grid-template-columns:minmax(0,1fr);padding-top:12px}.side{position:static}.side ul{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}.side a{white-space:nowrap}.grid-report,.split{grid-template-columns:1fr}.kpi-grid,.kpi-grid.four{grid-template-columns:repeat(2,1fr)}.grid2,.metric-grid{grid-template-columns:1fr}.metric-grid .metric.wide{grid-column:auto}.metric.wide .metric-body{grid-template-columns:1fr;gap:0}}@media (max-width: 560px){.layout{padding:10px 12px 28px;gap:12px}h1{font-size:19px}.card{padding:12px}.topbar{padding:8px 12px}.topbar .switch,.topbar select,.top-right{width:100%}.topbar .switch{justify-content:space-between}.login{padding:16px 12px 28px}.sample-bar{font-size:12px;padding:6px 12px}.toolbar{flex-direction:column;align-items:stretch}.toolbar select,.seg{width:100%}.seg button{flex:1;padding:6px 8px;white-space:nowrap}.kpi-row{gap:16px}.kpi strong{font-size:18px}.chart .axis{font-size:17px}.entry-head{flex-direction:column;align-items:flex-start}.details{grid-template-columns:1fr 1fr}table thead{display:none}table,tbody{display:block;width:100%}td{width:auto}tr{border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin-bottom:8px;display:grid;grid-template-columns:1fr 1fr;column-gap:12px}td:first-child,td:last-child{grid-column:1 / -1}td:first-child{font-weight:600}td{border:0;padding:5px 0;display:block;text-align:left;word-break:keep-all;overflow-wrap:anywhere}td:before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;margin-bottom:1px}}
