:root{--bg: #0e1013;--panel: #171a1f;--panel-2: #1e222a;--line: #2a2f38;--fg: #e8ebf0;--muted: #97a0ae;--accent: #3b82f6;--danger: #ef4444;--ok: #22c55e;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,-apple-system,Noto Sans KR,sans-serif;-webkit-text-size-adjust:100%}body.player-mode{overflow:hidden;background:#000;cursor:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button{font:inherit;color:var(--fg);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:#3d4450}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent)}button.danger{color:#fff;background:transparent;border-color:#5a2b2b}button.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger)}button.ghost{background:transparent}button.on{background:var(--accent);border-color:var(--accent)}input,select,textarea{font:inherit;color:var(--fg);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:6px 9px}input[type=color]{padding:2px;width:44px;height:32px}input[type=range]{padding:0}code{font-family:ui-monospace,SF Mono,Menlo,monospace}.muted{color:var(--muted)}.spacer{flex:1}.stage-root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#000}.stage{overflow:hidden}.slide{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;transition:opacity .4s ease}.slide img,.slide video,.slide iframe{width:100%;height:100%;border:0;display:block}.text-slide{padding:6vmin;text-align:center;font-weight:700;line-height:1.25;word-break:keep-all}.clock{text-align:center;font-variant-numeric:tabular-nums}.clock-time{font-weight:800;line-height:1;letter-spacing:-.02em}.clock-date{font-size:.22em;margin-top:.35em;opacity:.75}.clock-note{font-size:.18em;margin-top:.6em;opacity:.9}.notice{display:grid;place-items:center;color:#6b7280;font-size:4vmin}.admin{display:flex;flex-direction:column;height:100%}.admin-loading{display:grid;place-items:center;height:100%;color:var(--muted)}.admin-top{display:flex;gap:16px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.admin-top h1{font-size:15px;margin:0;letter-spacing:.04em}.admin-top nav{display:flex;gap:6px}.admin-top>button:last-child{margin-left:auto}.admin-error{padding:8px 16px;background:#3a1d1d;border-bottom:1px solid #5a2b2b;color:#fecaca}.admin-body{display:flex;flex:1;min-height:0}.screen-list{width:280px;flex:none;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto;padding:12px}.new-screen{display:flex;gap:6px;margin-bottom:12px}.new-screen input{flex:1;min-width:0}.screen-list ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.screen-list li>button{width:100%;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;text-align:left;background:transparent;border-color:transparent;padding:8px 10px}.screen-list li>button:hover{background:var(--panel-2)}.screen-list li>button.on{background:var(--panel-2);border-color:var(--accent)}.screen-list .nm{font-weight:600}.screen-list .sub{grid-column:2;color:var(--muted);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;background:#4b5563;align-self:center}.dot.online{background:var(--ok);box-shadow:0 0 0 3px #22c55e2e}.empty,.empty-note{color:var(--muted);padding:24px}.empty{flex:1;display:grid;place-items:center}.editor{flex:1;min-width:0;overflow-y:auto;padding:16px 20px 60px}.editor-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.editor-head .title{font-size:18px;font-weight:700;flex:1;max-width:420px}.player-url{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;flex-wrap:wrap}.player-url code{color:#93c5fd}.player-url a{color:var(--fg)}.settings{display:flex;flex-wrap:wrap;gap:14px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px}.settings label,.item-body label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}label.chk{cursor:pointer}.add-bar{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.items{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:it}.items li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.items li.off{opacity:.5}.item-head{display:flex;align-items:center;gap:8px}.item-head:before{counter-increment:it;content:counter(it);color:var(--muted);font-variant-numeric:tabular-nums;min-width:18px}.badge{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}.thumb{width:56px;height:32px;object-fit:cover;border-radius:4px}.thumb.file{display:grid;place-items:center;background:var(--panel-2)}.thumb-text{color:var(--muted);font-size:12px}.item-body{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.item-body label.wide{flex:1 1 320px;align-items:flex-start;flex-direction:column}.item-body label.wide textarea,.item-body label.wide input{width:100%}.item-body input[type=number]{width:84px}.danger-zone{display:flex;gap:8px;margin-top:28px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}.media{flex:1;overflow-y:auto;padding:16px 20px 60px}.media.drag{outline:2px dashed var(--accent);outline-offset:-12px}.media-top{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.grid li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.grid img,.grid video{width:100%;height:120px;object-fit:cover;background:#000;display:block}.grid .meta{padding:8px 10px;display:grid;gap:2px;min-width:0}.grid .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid .sub{color:var(--muted);font-size:12px}.grid li>button{margin:0 10px 10px}.login{height:100%;display:grid;align-content:center;justify-items:center;gap:10px;padding:24px}.login h1{margin:0;letter-spacing:.08em}.login p{color:var(--muted);margin:0}.login input{width:min(320px,90vw)}.login button{width:min(320px,90vw);background:var(--accent);border-color:var(--accent)}
