:root{--bg:#f2f0e8;--surface:#fffdf7;--ink:#1f2a2e;--muted:#607076;--line:#d9d5c6;--up:#0f9c6d;--down:#d64545;--accent:#c2712f}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 10% 10%,#faf8ef 0%,var(--bg)55%,#ece8db 100%);color:var(--ink);margin:0;padding:0;font-family:SUIT Variable,Pretendard Variable,Noto Sans KR,sans-serif}a{color:inherit;text-decoration:none}main{max-width:1600px;margin:0 auto;padding:24px 20px 32px}.page-header{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.header-nav{align-items:center;gap:8px;display:flex}.header-link{border:1px solid var(--line);color:#2e4952;background:#fff;border-radius:10px;justify-content:center;align-items:center;min-height:36px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.header-link:hover{background:#f7f4ea}.header-link.is-active{border-color:color-mix(in srgb,var(--accent)50%,var(--line));background:color-mix(in srgb,var(--accent)10%,white 90%);color:#7a4717}.page-title{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.page-subtitle{color:var(--muted);margin:6px 0 0;font-size:13px}.surface{background:color-mix(in srgb,var(--surface)94%,white 6%);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #1d23260f}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px;display:grid}.kpi-card{padding:12px}.kpi-label{color:var(--muted);margin-bottom:8px;font-size:12px}.kpi-value{font-size:20px;font-weight:700;line-height:1.1}.controls{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.controls select,.controls input,.controls button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-size:13px}.controls button{cursor:pointer}.table-link{color:#3c5a63;font-size:13px;text-decoration:underline}.error{color:#8f2c2c;background:#fff2f2;border:1px solid #f0c3c3;border-radius:10px;margin:12px 0;padding:10px;font-size:13px}@media (max-width:900px){main{padding:16px 12px 24px}.page-header{align-items:flex-start;gap:10px}.header-nav{flex-direction:column;align-items:stretch}.header-link{min-width:112px}.page-title{font-size:22px}}
