:root{--background:#f9f9f7;--foreground:#1a1a2e;--card:#fff;--primary:#c8353c;--primary-dark:#a82d33;--secondary:#fceeed;--muted:#8a8a9a;--muted-bg:#f3f3f0;--border:#e8e8e4;--status-done:#16a34a;--status-done-bg:#f0fdf4;--status-partial:#d97706;--status-partial-bg:#fffbeb;--status-missed:#991b1b;--status-missed-bg:#fef2f2;--radius:12px;--shadow:0 1px 2px #1a1a2e0a, 0 2px 8px #1a1a2e08;--shadow-hover:0 2px 4px #1a1a2e0f, 0 6px 16px #1a1a2e0f;--brand:#c8353c;--brand2:#c8353c;--brand-soft:#fceeed;--bg:#f9f9f7;--line:#e8e8e4;--text:#1a1a2e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1;align-items:stretch;min-height:100vh;margin:0;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,system-ui,sans-serif;font-size:15px;line-height:1.6;display:flex}body>*{min-width:0}body>:not(.sb){flex:1}main{width:100%;max-width:1080px;margin:0 auto;padding:24px 30px 70px}.sb{background:var(--card);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex:0 0 220px;align-self:flex-start;width:220px;height:100vh;transition:width .2s,flex-basis .2s;display:flex;position:sticky;top:0}.sb.closed{flex-basis:64px;width:64px}.sb-logo{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;height:60px;padding:0 16px;display:flex}.sb.closed .sb-logo{justify-content:center;padding:0 8px}.sb-logo img{object-fit:contain;object-position:left;width:88px;height:28px;display:block}.sb.closed .sb-logo img{object-fit:cover;width:34px}.sb-toggle{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;margin-left:auto;padding:4px;display:flex}.sb.closed .sb-toggle{margin-left:0}.sb-toggle:hover{background:var(--muted-bg)}.sb-nav{flex:1;padding:12px 8px;overflow-y:auto}.sb-item{width:100%;color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;margin-bottom:2px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4;text-decoration:none;transition:background .12s,color .12s;display:flex}.sb-item:hover{background:var(--muted-bg)}.sb-item.on{background:var(--secondary);color:var(--primary);font-weight:600}.sb-item svg{opacity:.65;flex-shrink:0}.sb-item.on svg{opacity:1}.sb.closed .sb-item{justify-content:center;padding:10px 0}.sb.closed .sb-item span.lab{display:none}.sb-item .ext{opacity:.5;margin-left:auto}.sb-xsec{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.sb-prof{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:12px;display:flex}.sb-avatar{background:var(--secondary);width:36px;height:36px;color:var(--primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.sb-prof .nm{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.sb-prof .rl{color:var(--muted);font-size:12px}.sb.closed .sb-prof{justify-content:center;padding:12px 6px}.sb.closed .sb-prof>div:not(.sb-avatar){display:none}.sb-logout{border-top:1px solid var(--border);color:var(--muted);cursor:pointer;text-align:left;background:0 0;border-bottom:0;border-left:0;border-right:0;flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:14px;display:flex}.sb-logout:hover{color:var(--primary);background:var(--muted-bg)}.sb.closed .sb-logout{justify-content:center;padding:12px 6px}.sb.closed .sb-logout span{display:none}@media print{.sb{display:none}}h1{color:var(--foreground);letter-spacing:-.2px;margin:8px 0 4px;font-size:22px;font-weight:700}.page-sub{color:var(--muted);margin:0 0 20px;font-size:13.5px}h1+form,h1+.stat-row,h1+.card,h1+table{margin-top:16px}h2{color:var(--foreground);margin:28px 0 10px;font-size:16.5px;font-weight:700}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:18px 20px}table.grid{border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}table.grid th{color:var(--muted);text-align:left;border-bottom:1px solid var(--border);letter-spacing:.2px;white-space:nowrap;background:#fafaf8;padding:9px 12px;font-size:12.5px;font-weight:600}table.grid td{border-top:1px solid #f1f1ee;padding:9px 12px;font-size:14px}table.grid tr:first-child td{border-top:0}table.grid tbody tr{transition:background .12s}table.grid tbody tr:hover td{background:#fafaf8}table.grid a{color:var(--primary);font-weight:500;text-decoration:none}table.grid a:hover{text-decoration:underline}.badge{background:var(--muted-bg);color:#55556a;border-radius:999px;margin-right:4px;padding:2px 9px;font-size:12px;font-weight:600;line-height:1.5;display:inline-block}.badge.lv1{background:var(--status-done-bg);color:var(--status-done)}.badge.lv2{background:var(--status-partial-bg);color:var(--status-partial)}.badge.lv3{background:var(--status-missed-bg);color:var(--status-missed)}.badge.dp1{color:#1d5c8a;background:#eaf3fb}.badge.dp2{background:var(--status-done-bg);color:var(--status-done)}.badge.dp3{background:var(--status-partial-bg);color:var(--status-partial)}.badge.dp4{color:#6d3ba0;background:#f0e7fb}.badge.st-초안{background:var(--muted-bg);color:#55556a}.badge.st-승인대기{background:var(--status-partial-bg);color:var(--status-partial)}.badge.st-승인{background:var(--status-done-bg);color:var(--status-done)}.badge.st-반려{background:var(--status-missed-bg);color:var(--status-missed)}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filters select,.filters input[type=text],.filters input[type=number],.field-row input,.field-row select{border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:9px;padding:8px 11px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.filters select:focus,.filters input:focus,.field-row input:focus,.field-row select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #c8353c1f}.filters select:disabled{background:var(--muted-bg);color:var(--muted)}.btn{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:9px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,transform 50ms,box-shadow .15s;display:inline-block;box-shadow:0 1px 3px #c8353c40}.btn:hover{background:var(--primary-dark);box-shadow:0 2px 6px #c8353c4d}.btn:disabled,.btn[aria-busy=true]{opacity:.65;cursor:progress;box-shadow:none;pointer-events:none;transform:none}.btn:active{transform:translateY(1px)}.btn.sub{background:var(--card);color:var(--primary);box-shadow:none;border:1px solid #f0c9cb}.btn.sub:hover{background:var(--secondary)}.btn.small{padding:5px 12px;font-size:13px}.btn.danger{background:var(--status-missed)}.btn.danger:hover{background:#7f1616}button.linklike{color:var(--primary);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;font-family:inherit}button.linklike:hover{text-decoration:underline}.problem-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:16px 18px;transition:box-shadow .15s}.problem-card:hover{box-shadow:var(--shadow-hover)}.problem-card .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:9px;font-size:12.5px;display:flex}.problem-card .meta a{color:var(--primary);font-weight:600;text-decoration:none}.qbody{overflow-x:auto}.qbody img{max-width:100%;height:auto}.answer-line{border-top:1px dashed var(--border);margin-top:12px;padding-top:9px;font-size:14px}.answer-line b{color:var(--primary)}details.ans>summary,details.sol>summary{cursor:pointer;color:var(--primary);-webkit-user-select:none;user-select:none;font-size:13.5px;font-weight:600}.pagination{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.pagination a,.pagination span{border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:8px;padding:6px 12px;font-size:13.5px;text-decoration:none;transition:background .12s}.pagination a:hover{background:var(--secondary)}.pagination .cur{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700}.stat-row{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.stat{background:var(--card);border:1px solid var(--border);min-width:140px;box-shadow:var(--shadow);border-radius:14px;padding:14px 20px}.stat .num{color:var(--foreground);letter-spacing:-.5px;font-size:26px;font-weight:800}.stat .lab{color:var(--muted);margin-top:2px;font-size:12.5px}.stat.tint-red{background:var(--secondary);border-color:#f5d9da}.stat.tint-red .num{color:var(--primary)}.stat.tint-amber{background:var(--status-partial-bg);border-color:#f1e2be}.stat.tint-amber .num{color:var(--status-partial)}.stat.tint-green{background:var(--status-done-bg);border-color:#cdebd6}.stat.tint-green .num{color:var(--status-done)}.operation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 22px;display:grid}.operation-card{min-width:0;min-height:178px;color:var(--foreground);flex-direction:column;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.operation-card:hover{box-shadow:var(--shadow-hover);border-color:#d8d8d2;transform:translateY(-1px)}.operation-card:focus-visible{outline-offset:2px;outline:3px solid #c8353c40}.operation-card .operation-scope{color:var(--muted);letter-spacing:.2px;margin-bottom:5px;font-size:11.5px;font-weight:700}.operation-card .num{line-height:1.15}.operation-card .num .unit{letter-spacing:0;margin-left:3px;font-size:13px;font-weight:700}.operation-card .lab{color:var(--foreground);margin-top:4px;font-size:14px;font-weight:700}.operation-card .operation-meta{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.45}.operation-card .operation-go{color:var(--primary);margin-top:auto;padding-top:10px;font-size:12px;font-weight:600}.table-scroll{border-radius:var(--radius);overflow-x:auto}.section-subtitle{margin:20px 0 2px;font-size:15px}.section-help{color:var(--muted);margin:0 0 8px;font-size:12.5px}.bank-summary{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.bank-summary>div{min-width:0;padding:4px 8px}.bank-summary b{color:var(--foreground);font-size:19px;line-height:1.25;display:block}.bank-summary span{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.bank-matrix th:not(:first-child),.bank-matrix td{text-align:center}.bank-matrix td a{display:block}.bank-matrix .empty-bank-cell{background:var(--status-missed-bg)}.bank-matrix .needs-classification{background:var(--status-partial-bg)}@media (max-width:900px){.operation-grid,.bank-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.operation-grid,.bank-summary{grid-template-columns:1fr}.operation-card{min-height:156px}}.err{background:var(--status-missed-bg);color:var(--status-missed);border:1px solid #f2caca;border-radius:10px;margin-bottom:14px;padding:11px 15px;font-size:14px}.note{background:var(--status-partial-bg);border:1px solid #f0e2b6;border-radius:10px;margin-bottom:12px;padding:9px 13px;font-size:13.5px}.foot{text-align:center;color:var(--muted);padding:20px;font-size:12px}form.inline{display:inline}.field-row{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.field-row label{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.unit-checks{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:7px;margin:8px 0 14px;display:grid}.unit-checks label{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:9px;padding:8px 11px;font-size:13.5px;transition:border-color .12s,background .12s}.unit-checks label:hover{border-color:var(--primary);background:#fffdfc}.unit-checks input{accent-color:var(--primary);margin-right:6px}details>summary{-webkit-user-select:none;user-select:none}details>summary:hover{color:var(--primary)}.mq-math-mode{font-size:105%}.qbody p{margin:.35em 0}.login-wrap{background:var(--background);flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:100vh;padding:20px;display:flex}.login-logo{object-fit:contain;width:160px;height:40px;margin-bottom:14px;display:block}.login-eyebrow{color:var(--primary-dark);background:var(--secondary);letter-spacing:.02em;border-radius:999px;margin:0 0 8px;padding:4px 10px;font-size:11.5px;font-weight:700}.login-title{color:var(--foreground);text-align:center;letter-spacing:.02em;margin:0 0 7px;font-size:21px;font-weight:750}.login-tag{color:var(--foreground);text-align:center;margin:0 0 22px;line-height:1.55}.login-tag strong{font-size:14px;font-weight:700;display:block}.login-tag span{max-width:360px;color:var(--muted);margin-top:3px;font-size:12.5px;font-weight:450;display:block}.login-tag em{color:var(--primary);letter-spacing:.035em;margin-top:6px;font-size:11.5px;font-style:normal;font-weight:650;display:block}.login-card{background:var(--card);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:18px;padding:28px}.login-card label{color:var(--foreground);margin:12px 0 6px;font-size:13px;font-weight:600;display:block}.login-card label:first-of-type{margin-top:0}.login-card input{border:1px solid var(--border);background:var(--card);width:100%;height:48px;color:var(--foreground);border-radius:12px;padding:0 14px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #c8353c1f}.login-card button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:12px;width:100%;height:48px;margin-top:20px;font-family:inherit;font-size:15px;font-weight:700;transition:background .15s}.login-card button:hover{background:var(--primary-dark)}.login-card button:disabled{opacity:.7;cursor:default}.s-main{width:100%;max-width:560px;margin:0 auto;padding:16px 14px 80px}.qno{color:var(--primary);font-weight:700}.meta{color:var(--muted);font-size:12.5px}.mcrow{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.mcrow label{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:9px;align-items:center;gap:6px;padding:9px 15px;transition:border-color .12s,background .12s;display:flex}.mcrow label:hover{border-color:var(--primary)}.mcrow input{accent-color:var(--primary)}.partrow{align-items:center;gap:8px;margin-top:8px;display:flex}.partrow .lab{color:var(--muted);min-width:34px;font-size:13.5px}.partrow input{border:1px solid var(--border);border-radius:9px;flex:1;padding:10px 12px;font-size:15px}.tagopt{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:9px;margin-top:6px;padding:10px 13px;font-size:14px;transition:border-color .12s,background .12s;display:block}.tagopt:hover{border-color:var(--primary);background:#fffdfc}.tagopt input{accent-color:var(--primary);margin-right:6px}.codebox{letter-spacing:8px;text-align:center;border:1.5px solid var(--primary);border-radius:12px;width:100%;padding:13px;font-size:28px}
