:root{--paper:#f8f2fa;--panel:#ffffffcc;--orchid:#c895d7;--deep:#62416c;--ink:#2d2431;--line:#b995c34d}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font-family:Arial,"Noto Sans KR",sans-serif;background-image:radial-gradient(circle at 10% 5%,#fff 0 16%,transparent 40%),linear-gradient(135deg,#fff,#f3e7f6)}button,input{font:inherit}.adminHeader{height:88px;display:flex;align-items:center;padding:0 38px;border-bottom:1px solid var(--line);background:#ffffffa8;backdrop-filter:blur(14px)}.adminBrand{display:flex;width:148px;height:58px;align-items:center}.adminBrandLogo{display:block;width:148px;height:58px;background:url("assets/hades-header-logo-new.png") left center/contain no-repeat}.backLink{margin-left:auto;color:var(--deep);font-size:12px;font-weight:900;text-decoration:none;letter-spacing:.05em}.adminShell{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:58px 0 80px}.adminIntro>span{color:#a772b5;font-size:10px;font-weight:900;letter-spacing:.2em}.adminIntro h1{margin:8px 0 5px;font-size:clamp(42px,6vw,76px);letter-spacing:-.06em}.adminIntro p{margin:0;color:#826e87;font-size:13px}.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:38px}.adminPanel{min-width:0;padding:26px;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(12px);box-shadow:0 22px 60px #6b487414}.panelHead{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;padding-bottom:20px;border-bottom:1px solid var(--line)}.panelHead>span{color:#b37bc2;font-size:11px;font-weight:900}.panelHead h2{margin:0;font-size:25px;letter-spacing:-.04em}.panelHead p{margin:6px 0 0;color:#8b778f;font-size:11px;line-height:1.5}.adminForm{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.adminForm .wide{grid-column:1/-1}.adminForm label,.rowField{display:grid;gap:6px;color:#725a78;font-size:10px;font-weight:900}.adminForm input,.managerRow input{width:100%;min-width:0;padding:11px;border:1px solid var(--line);background:#fff;color:#35283a;outline:none}.adminForm input:focus,.managerRow input:focus{border-color:#b276c4;box-shadow:0 0 0 3px #c895d71f}.adminForm input.invalid,.managerRow input.invalid{border-color:#d56c88}.primaryAction,.rowSave{border:0;padding:12px;background:#9863a7;color:#fff;font-weight:900;cursor:pointer}.primaryAction:disabled,.rowSave:disabled,.rowDelete:disabled,.musicDelete:disabled{opacity:.55;cursor:wait}.formError{min-height:14px;margin:0;color:#bd4f6e;font-size:10px}.managerList,.musicManagerList{display:grid;gap:10px;margin-top:22px}.managerRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px;border:1px solid var(--line);background:#fff9}.managerRow .wide{grid-column:1/-1}.rowActions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:9px}.rowActions a{color:#76557f;font-size:10px;font-weight:900;text-decoration:none}.rowSave{min-width:66px;padding:9px}.rowDelete,.musicDelete{border:1px solid #c88a9b6b;background:#fff;color:#a64f69;font-size:10px;font-weight:900;cursor:pointer}.rowDelete{min-width:66px;padding:8px}.rowDelete.confirm,.musicDelete.confirm{border-color:#ad4965;background:#ad4965;color:#fff}.rowState{margin-right:auto;color:#7fba88;font-size:10px;opacity:0;transition:opacity .25s}.rowState.show{opacity:1}.managerRow.removing,.musicManagerItem.removing{opacity:.5;pointer-events:none}.musicManagerItem{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px;border-bottom:1px solid var(--line)}.musicManagerItem img{width:54px;height:54px;object-fit:cover}.musicManagerItem strong,.musicManagerItem small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.musicManagerItem strong{font-size:12px}.musicManagerItem small{margin-top:5px;color:#89758e;font-size:10px}.musicManagerItem a{color:#76557f;text-decoration:none}.musicDelete{padding:7px 9px}.emptyState{padding:18px 0;color:#947f99;font-size:11px}.dataNotice{margin:24px 0 0;color:#917e96;font-size:10px}.toast{position:fixed;z-index:100;left:50%;bottom:28px;max-width:min(420px,calc(100% - 32px));padding:12px 18px;background:#35243b;color:#fff;font-size:12px;box-shadow:0 15px 45px #321d3d38;opacity:0;transform:translate(-50%,14px);pointer-events:none;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#8d3e58}
.metadataStatus{min-height:14px;margin:0;color:#8b778f;font-size:10px}.metadataStatus.loading{color:#9a68a8}.metadataStatus.ready{color:#61916c}.metadataStatus.error{color:#bd4f6e}
.loginShell{display:grid;min-height:calc(100svh - 88px);place-items:center;padding:40px 20px}.loginPanel{width:min(460px,100%);padding:34px;border:1px solid var(--line);background:var(--panel);box-shadow:0 22px 60px #6b487414}.loginPanel>span{color:#a772b5;font-size:10px;font-weight:900;letter-spacing:.2em}.loginPanel h1{margin:9px 0 7px;font-size:38px;letter-spacing:-.05em}.loginPanel>p{margin:0;color:#826e87;font-size:12px;line-height:1.6}.loginForm{display:grid;gap:14px;margin-top:26px}.loginForm label{display:grid;gap:7px;color:#725a78;font-size:10px;font-weight:900}.loginForm input{width:100%;padding:12px;border:1px solid var(--line);background:#fff;outline:none}.loginForm input:focus{border-color:#b276c4;box-shadow:0 0 0 3px #c895d71f}.adminIntro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.logoutButton{border:1px solid var(--line);padding:10px 14px;background:#ffffffa8;color:#76557f;font-size:10px;font-weight:900;cursor:pointer}.loginShell[hidden],.adminShell[hidden]{display:none}
.memberAccessNotice{display:grid;gap:12px;margin-top:18px;padding:14px;border:1px solid #bd6d8352;background:#fff8fa}.memberAccessNotice[hidden]{display:none}.memberAccessNotice p{margin:0;color:#96566a;font-size:11px;line-height:1.55}.memberAccessNotice button{justify-self:start;border:1px solid #bd6d8370;padding:9px 11px;background:#fff;color:#9c5268;font-size:10px;font-weight:900;cursor:pointer}.memberPanel{margin-top:24px}.memberPanel[hidden]{display:none}.memberManagerList{display:grid;gap:9px;margin-top:20px}.memberRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);background:#fff9}.memberCopy{min-width:0}.memberCopy strong,.memberCopy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memberCopy strong{font-size:12px}.memberCopy small{margin-top:4px;color:#8a758f;font-size:10px}.memberVisits{color:#7b647f;font-size:10px;font-weight:900;white-space:nowrap}.memberRole{display:flex;align-items:center;gap:7px}.memberRole select{padding:8px;border:1px solid var(--line);background:#fff;color:#5f4964;font-size:10px;font-weight:900}.memberRole button{border:0;padding:9px;background:#9863a7;color:#fff;font-size:10px;font-weight:900;cursor:pointer}.memberRole button:disabled{opacity:.55}
@media(max-width:900px){.adminHeader{height:72px;padding:0 18px}.adminBrand{width:112px;height:46px}.adminShell{width:min(100% - 28px,680px);padding-top:38px}.adminGrid{grid-template-columns:1fr}.adminIntro h1{font-size:48px}}
@media(max-width:520px){.adminPanel{padding:19px}.adminForm,.managerRow{grid-template-columns:1fr}.adminForm .wide,.managerRow .wide,.rowActions{grid-column:1}.backLink{font-size:10px}.loginShell{min-height:calc(100svh - 72px);padding:24px 14px}.loginPanel{padding:24px}.loginPanel h1{font-size:32px}.adminIntro{align-items:flex-start}.logoutButton{margin-top:8px}.memberRow{grid-template-columns:1fr}.memberVisits{justify-self:start}.memberRole{justify-content:space-between}}
body{font-family:"Jua",sans-serif}button,input,select,textarea{font:inherit}

/* Readable admin UI scale */
.backLink{font-size:14px}.adminIntro p{font-size:14px;line-height:1.6}.logoutButton{min-height:40px;padding:9px 14px;border-radius:9px;font-size:14px;font-weight:400}.panelHead h2{font-size:25px;font-weight:400}.panelHead p{font-size:13px;line-height:1.6}.adminForm{gap:14px}.adminForm label,.rowField{gap:7px;font-size:14px;font-weight:400}.adminForm input,.adminForm select,.adminForm textarea,.managerRow input{min-height:46px;padding:12px 13px;border-radius:8px;font-family:Arial,"Noto Sans KR",sans-serif;font-size:15px;line-height:1.45}.primaryAction,.rowSave{min-height:42px;padding:10px 14px;border-radius:8px;font-size:14px;font-weight:400}.formError,.metadataStatus{min-height:18px;font-size:12px;line-height:1.5}.managerRow{gap:10px;padding:16px;border-radius:10px}.rowActions{gap:10px}.rowActions a{font-size:13px}.rowSave,.rowDelete{min-width:72px}.rowDelete,.musicDelete{min-height:38px;padding:8px 11px;border-radius:8px;font-size:13px;font-weight:400}.rowState{font-size:12px}.musicManagerItem{gap:12px;padding:13px}.musicManagerItem strong{font-size:14px;font-weight:400}.musicManagerItem small{font-size:12px}.musicManagerItem a{font-size:14px}.emptyState{font-size:13px;line-height:1.55}.dataNotice{font-size:12px;line-height:1.6}.toast{font-size:13px}.loginPanel>p{font-size:13px}.loginForm label{font-size:14px;font-weight:400}.loginForm input{min-height:46px;padding:12px 13px;border-radius:8px;font-family:Arial,"Noto Sans KR",sans-serif;font-size:15px}.memberAccessNotice p{font-size:13px}.memberAccessNotice button{min-height:39px;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:400}.memberRow{padding:15px}.memberCopy strong{font-size:14px;font-weight:400}.memberCopy small,.memberVisits{font-size:12px}.memberRole{gap:9px}.memberRole select{min-height:40px;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:400}.memberRole button{min-height:40px;padding:9px 11px;border-radius:8px;font-size:13px;font-weight:400}.adminScheduleEditor{margin-top:22px}
@media(max-width:520px){.backLink{font-size:12px}.adminIntro h1{font-size:42px}.adminPanel{padding:20px}.panelHead{grid-template-columns:30px 1fr}.panelHead h2{font-size:22px}.adminForm input,.adminForm select,.adminForm textarea,.managerRow input{font-size:16px}}
