:root{
    --bg:#f4f6f8;
    --surface:#ffffff;
    --surface-soft:#f8fafb;
    --line:#e3e7eb;
    --line-strong:#d4dae0;
    --text:#20252b;
    --muted:#6b747e;
    --accent:#263746;
    --accent-soft:#edf2f6;
    --success:#237a48;
    --sidebar-width:236px;
    --topbar-height:62px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;}
@font-face{
    font-family:"Pretendard";
    src:url("/assets/fonts/pretendard/PretendardVariable.woff2") format("woff2");
    font-weight:100 900;
    font-style:normal;
    font-display:swap;
}
body,button,input,select,textarea,table{
    font-family:"Pretendard","Malgun Gothic","맑은 고딕",Arial,sans-serif;
    font-synthesis:none;
}
body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.55}
a{color:inherit}
button,input,select,textarea{font-size:inherit}

/* Login */
.auth-page{display:grid;place-items:center;min-height:100vh;padding:24px}
.login-box{width:min(380px,100%);background:#fff;padding:32px;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(30,40,50,.06)}
.login-box h1{margin:0 0 22px;font-size:25px;letter-spacing:-.02em}
.login-box label{display:block;margin:14px 0;font-weight:700}
.login-box input{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;outline:none}
.login-box input:focus{border-color:#758797;box-shadow:0 0 0 3px rgba(74,99,120,.10)}
.login-box button{width:100%;margin-top:8px;padding:12px;border:0;border-radius:7px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}
.alert{padding:11px 12px;background:#fff0f0;border:1px solid #f0cccc;border-radius:7px;color:#8b2f2f}

/* Admin shell */
.admin-page{min-height:100vh}
.topbar{height:var(--topbar-height);background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px 0 calc(var(--sidebar-width) + 24px);position:sticky;top:0;z-index:20}
.topbar-title{font-weight:800;letter-spacing:.02em}
.topbar-user{display:flex;align-items:center;gap:9px;color:#414a53;font-weight:700}
.user-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px}
.admin-layout{min-height:calc(100vh - var(--topbar-height))}

.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}
.sidebar-brand{height:var(--topbar-height);display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 20px}
.brand-link{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:18px;letter-spacing:.02em}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;font-size:14px}
.sidebar-nav{padding:16px 12px;overflow-y:auto;flex:1}
.nav-item,.nav-group summary{min-height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:7px;text-decoration:none;color:#3e4750;cursor:pointer;user-select:none}
.nav-item:hover,.nav-group summary:hover{background:var(--surface-soft)}
.nav-item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:800}
.nav-icon{width:18px;text-align:center;color:#73808b;font-size:14px}
.nav-group{margin-top:5px}
.nav-group summary{justify-content:space-between;list-style:none;font-weight:700}
.nav-group summary::-webkit-details-marker{display:none}
.nav-summary-label{display:flex;align-items:center;gap:10px}
.nav-chevron{font-size:21px;line-height:1;color:#929ba3;transition:transform .15s ease}
.nav-group[open] .nav-chevron{transform:rotate(90deg)}
.nav-submenu{padding:4px 0 5px 40px}
.nav-subitem{display:block;padding:8px 10px;margin:2px 0;border-radius:6px;text-decoration:none;color:#66717b;font-size:13px}
.nav-subitem:hover{background:var(--surface-soft);color:#2f3942}
.nav-subitem.is-active{background:var(--accent-soft);color:var(--accent);font-weight:800}
.sidebar-footer{border-top:1px solid var(--line);padding:12px}
.sidebar-footer form{margin:0}
.logout-button{width:100%;border:0;background:transparent;border-radius:7px;padding:10px 12px;text-align:left;color:#626c75;cursor:pointer}
.logout-button:hover{background:var(--surface-soft);color:#252d34}

.content{margin-left:var(--sidebar-width);padding:32px;min-height:calc(100vh - var(--topbar-height))}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}
.eyebrow{margin:0 0 5px;color:#85909a;font-size:11px;font-weight:800;letter-spacing:.11em}
.page-heading h1{margin:0;font-size:27px;letter-spacing:-.045em}
.page-description{margin:8px 0 0;color:var(--muted)}

.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.dashboard-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px;text-decoration:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.dashboard-card:hover{border-color:#bdc7cf;transform:translateY(-1px);box-shadow:0 8px 24px rgba(31,43,54,.05)}
.card-kicker{display:inline-block;color:#8b959e;font-size:10px;font-weight:800;letter-spacing:.12em}
.dashboard-card h2{margin:8px 0 7px;font-size:18px}
.dashboard-card p{min-height:44px;margin:0;color:var(--muted);font-size:13px}
.card-link{display:inline-block;margin-top:18px;font-size:12px;font-weight:800;color:#465969}

.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px}
.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid var(--line)}
.panel-header h2{margin:0;font-size:17px}
.panel-header p{margin:5px 0 0;color:var(--muted);font-size:13px}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;background:#edf7f1;color:var(--success);padding:5px 9px;font-size:11px;font-weight:800}
.status-list>div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:14px 2px;border-bottom:1px solid #eef1f3}
.status-list>div:last-child{border-bottom:0;padding-bottom:0}
.status-list span{color:var(--muted)}

.page-tabs{display:flex;gap:3px;padding:5px;background:#edf0f3;border-radius:8px;margin-bottom:16px;overflow-x:auto}
.page-tab{flex:0 0 auto;padding:8px 13px;border-radius:6px;color:#65707a;font-size:13px;font-weight:700}
.page-tab.is-active{background:#fff;color:#29343e;box-shadow:0 1px 2px rgba(20,30,40,.06)}
.empty-state{text-align:center;padding:54px 24px}
.empty-state-icon{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 13px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:21px}
.empty-state h2{margin:0 0 8px;font-size:18px}
.empty-state p{margin:0;color:var(--muted)}

@media(max-width:980px){
    :root{--sidebar-width:205px}
    .dashboard-grid{grid-template-columns:1fr}
    .dashboard-card p{min-height:0}
}
@media(max-width:720px){
    :root{--sidebar-width:0px}
    .sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line)}
    .sidebar-brand{display:none}
    .sidebar-nav{display:grid;grid-template-columns:1fr;padding:10px}
    .sidebar-footer{display:none}
    .topbar{padding:0 16px;position:static}
    .content{margin-left:0;padding:20px 16px}
    .admin-layout{display:block}
    .status-list>div{grid-template-columns:1fr;gap:3px}
}
