:root{--bg:#f4f6fa;--panel:#fff;--border:#e3e7ef;--text:#1c2433;--muted:#6b7486;--primary:#2f6fed;--primary-soft:#e8f0ff;--ok:#17915a;--ok-soft:#e3f6ec;--warn:#b7791f;--warn-soft:#fdf3e1;--danger:#d33c3c;--danger-soft:#fdeaea;--sidebar:#141b2d;--radius:10px;color:var(--text);background:var(--bg);font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body,pre{margin:0}a{color:var(--primary);text-decoration:none}h1{margin:0 0 4px;font-size:22px}h2{margin:0 0 12px;font-size:16px}h3{margin:0 0 8px;font-size:14px}.mono,code,pre{font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);color:#c9d1e3;flex-direction:column;flex-shrink:0;width:220px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.brand{color:#fff;padding:0 10px 18px;font-size:20px;font-weight:800}.brand small{color:#8a96b0;margin-left:4px;font-size:12px;font-weight:500}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-group{text-transform:uppercase;letter-spacing:.06em;color:#6d7994;padding:14px 10px 4px;font-size:11px}.health{background:#1f2940;border-radius:8px;padding:8px 10px;font-size:12px}.health:before{content:"●";color:#8a96b0;margin-right:6px}.health.ok:before{color:#3ddc84}.health.down:before{color:#ff6b6b}.content{flex:1;min-width:0;padding:28px 32px 60px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--muted);margin:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card+.card{margin-top:16px}.grid>.card+.card,.stack>.card+.card{margin-top:0}.grid,.split{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.split{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start}@media (width<=1100px){.split{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.shell{flex-direction:column}.content{padding:16px 14px 48px}.page-head{flex-wrap:wrap;align-items:flex-start;margin-bottom:14px}.page-h1,.page-head h1{display:none}.card{padding:14px}.table-wrap{-webkit-overflow-scrolling:touch}.table-wrap table{min-width:640px}.tabs{white-space:nowrap;scrollbar-width:none;overflow-x:auto}.tabs button{flex:none}}@media (width<=560px){.grid-2{grid-template-columns:1fr}.content{padding:12px 10px 40px}.btn{padding:7px 12px}.thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}.kv{grid-template-columns:minmax(90px,max-content) 1fr}}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.empty,.muted,.stat .label,.stat .sub{color:var(--muted)}.small,.stat .label{font-size:12px}.mt{margin-top:16px}.empty{text-align:center;padding:28px 0}.stat .value{margin-top:4px;font-size:24px;font-weight:700}.stat .sub{margin-top:2px;font-size:12px}.btn{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:7px 14px}.btn:hover:not(:disabled){background:#f8f9fc;border-color:#c4cbd8}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:#245ed1;border-color:#245ed1}.btn-danger{color:var(--danger)}.btn-sm{padding:4px 10px;font-size:12px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}input[type=date],input[type=number],input[type=password],input[type=text],select,textarea{border:1px solid var(--border);font:inherit;color:var(--text);background:#fff;border-radius:8px;min-width:0;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=range],table{width:100%}.check{align-items:center;gap:6px;font-size:13px;display:inline-flex}.badge{color:var(--muted);background:#eef1f6;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.primary{background:var(--primary-soft);color:var(--primary)}table{border-collapse:collapse}td,th{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}th{color:var(--muted);background:#fafbfd;font-size:12px;font-weight:600}.drop,.tabs button,.thumb,tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f7f9fd}tr.selected td{background:var(--primary-soft)}.table-wrap{border:1px solid var(--border);border-radius:8px;overflow:auto}.table-wrap table td:first-child,.table-wrap table th:first-child{padding-left:12px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tabs button{font:inherit;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.drop{border-radius:var(--radius);text-align:center;background:#fafbfd;border:2px dashed #c9d1df;flex-direction:column;gap:4px;padding:22px;transition:all .15s;display:flex}.drop.dragging,.drop:hover{border-color:var(--primary);background:var(--primary-soft)}.drop.filled{border-style:solid;border-color:#b8c7e8}.img-box{background:#0d1117;border-radius:8px;justify-content:center;align-items:center;min-height:220px;display:flex;overflow:hidden}.img-box img{max-width:100%;max-height:560px;display:block}.thumbs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.thumb{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden}.thumb:hover{border-color:var(--primary)}.thumb.selected{outline:2px solid var(--primary)}.thumb .pic{aspect-ratio:1;background:#0d1117;justify-content:center;align-items:center;display:flex}.thumb .pic img{max-width:100%;max-height:100%}.thumb .info{justify-content:space-between;align-items:center;gap:4px;padding:6px 8px;font-size:12px;display:flex}.prob{grid-template-columns:110px 1fr 56px;align-items:center;gap:8px;font-size:13px;display:grid}.prob .bar{background:#eef1f6;border-radius:999px;height:10px;overflow:hidden}.prob .bar span{background:var(--primary);border-radius:999px;height:100%;display:block}.prob.top .bar span{background:var(--ok)}.overlay-wrap{max-width:100%;display:inline-block;position:relative}.overlay-wrap img{max-width:100%;max-height:520px;display:block}.overlay-wrap svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.json{color:#cfe0ff;background:#0f1522;border-radius:8px;max-height:420px;padding:12px;overflow:auto}.kv{grid-template-columns:max-content 1fr;gap:6px 14px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{word-break:break-all;margin:0}.cm td,.cm th{text-align:center}.cm td.diag{background:var(--ok-soft);font-weight:700}.toasts{z-index:100;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#fff;background:#34405a;border-radius:8px;padding:10px 14px;box-shadow:0 6px 24px #0000002e}.toast.ok{background:var(--ok)}.toast.error{background:var(--danger)}@media print{@page{size:A4;margin:12mm 12mm 14mm;@bottom-center{content:counter(page) " / " counter(pages);font-size:9px;color:#6b7280}}body,html{width:auto}:root,body{background:#fff}.no-print,.sidebar,.toasts{display:none!important}.content{padding:0}}.disclaimer{color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:8px 10px;font-size:12px}.score-track{background:#eef1f6;border-radius:999px;height:14px;position:relative}.score-track .fill{background:var(--primary);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.score-track .marker{background:var(--danger);width:2px;position:absolute;top:-4px;bottom:-4px}
