:root{color-scheme:dark;--bg:#080a0d;--panel:#15191e;--line:#2b3139;--text:#f4f6f8;--muted:#9ca6b2;--accent:#f3c969;--danger:#ff7c7c}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:ui-sans-serif,system-ui,-apple-system,"Noto Sans KR",sans-serif;background:var(--bg);color:var(--text)}button,input{font:inherit}button{border:0;border-radius:12px;padding:.85rem 1.15rem;background:var(--accent);color:#18140a;font-weight:750;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#293142 0,#0b0e13 48%,#050607 100%)}.card{width:min(400px,100%);padding:36px;background:rgba(21,25,30,.92);border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 80px #0008}.brand{color:var(--accent);font-size:.85rem;font-weight:900;letter-spacing:.35em}.card h1{margin:.5rem 0}.card p{color:var(--muted)}label{display:grid;gap:7px;margin:18px 0;color:#d7dde4;font-size:.9rem}input{width:100%;border:1px solid var(--line);border-radius:12px;background:#0b0e12;color:var(--text);padding:.9rem 1rem;outline:none}input:focus{border-color:var(--accent)}.card button{width:100%;margin-top:8px}.error{min-height:1.2em;color:var(--danger)!important}.viewer{position:fixed;inset:0;background:#000;overflow:hidden}.media{width:100%;height:100%;object-fit:contain}.shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(#0008,transparent 18%,transparent 72%,#0009)}.top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:max(20px,env(safe-area-inset-top)) 24px;color:#fff}.icon{color:#fff;text-decoration:none;background:#111a;border:1px solid #fff4;padding:8px 12px;border-radius:999px}.controls{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:14px}.controls button{width:52px;height:52px;border-radius:50%;padding:0;font-size:1.7rem;background:#111b;color:#fff;border:1px solid #fff5;backdrop-filter:blur(12px)}.empty{height:100%;display:grid;place-content:center;text-align:center;color:var(--muted)}.empty h1{color:var(--text)}.start{position:absolute;inset:auto auto 50% 50%;transform:translate(-50%,50%);font-size:1.1rem}.admin-body{background:#0c0f13}.admin-header{height:72px;padding:0 max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0c0f13e8;backdrop-filter:blur(10px);z-index:2}.admin-header a{color:var(--accent);text-decoration:none}.admin-header h1{font-size:1.25rem;margin:0;flex:1}.admin-header span{color:var(--muted)}.admin-grid{max-width:1180px;margin:28px auto;padding:0 20px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px}.panel h2{margin:0 0 10px;font-size:1.15rem}.panel p{color:var(--muted)}.wide{grid-column:1/-1}.actions,.section-title{display:flex;gap:10px;align-items:center}.section-title{justify-content:space-between}.secondary{background:#29313a;color:var(--text)}.hint{font-size:.85rem}.notice{margin-top:16px;padding:12px;border-radius:10px;background:#23301e;color:#bfe9ac}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.list{display:grid;margin-top:14px}.list-row{display:flex;align-items:center;gap:10px;padding:12px 4px;border-top:1px solid var(--line)}.list-row span:first-child{flex:1}.tag{font-size:.75rem;color:var(--accent)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.media-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#090b0e}.thumb{aspect-ratio:4/3;width:100%;object-fit:cover;background:#050505}.media-meta{padding:10px}.filename{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.85rem}.media-meta small{color:var(--muted)}.media-meta button{margin-top:8px;width:100%;padding:.55rem}.off{opacity:.45}@media(max-width:760px){.admin-grid{grid-template-columns:1fr}.wide{grid-column:auto}.inline-form{grid-template-columns:1fr}.admin-header span{display:none}.media-grid{grid-template-columns:repeat(2,1fr)}}
