:root{color-scheme:dark;--bg: #0f1115;--panel: #181b22;--panel-2: #20242d;--border: #2a2f3a;--text: #e6e8ee;--muted: #9aa3b2;--accent: #ff3b3b;--ok: #38d27a;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.topbar h1{font-size:16px;margin:0;letter-spacing:.04em}.topbar-spacer{flex:1}.topbar-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;text-decoration:none}.topbar-btn:hover{background:var(--border)}body.locked .layout,body.locked .topbar .status,body.locked .topbar-btn{display:none}.login-overlay{position:fixed;inset:0;background:#0f1115f5;display:none;align-items:center;justify-content:center;z-index:1000;padding:24px}body.locked .login-overlay{display:flex}.login-overlay form{background:var(--panel);padding:28px;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;gap:14px;width:100%;max-width:340px}.login-overlay h2{margin:0 0 4px;font-size:16px;letter-spacing:.04em}.login-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.login-field input{padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px}.login-field input:focus{outline:none;border-color:var(--accent)}#login-submit{padding:10px;background:var(--accent);color:#fff;border:0;border-radius:6px;font-weight:700;cursor:pointer;margin-top:4px}#login-submit:disabled{background:var(--panel-2);color:var(--muted);cursor:default}.login-error{margin:0;color:var(--accent);font-size:12px;min-height:16px}.login-invite-note{margin:0;padding:8px 10px;background:#38d27a1f;border:1px solid rgba(56,210,122,.35);color:var(--ok);border-radius:6px;font-size:12px;line-height:1.5}.login-field input.readonly{background:var(--panel);color:var(--muted);cursor:not-allowed}.share-modal{position:fixed;inset:0;background:#0f1115b3;display:flex;align-items:center;justify-content:center;z-index:900;padding:24px}.share-modal[hidden]{display:none}.share-modal__panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px;width:100%;max-width:480px;display:flex;flex-direction:column;gap:10px}.share-modal h3{margin:0;font-size:14px;letter-spacing:.06em;color:var(--text)}.share-modal input[type=text]{width:100%;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.share-modal__exp{margin:0;font-size:11px;color:var(--muted)}.share-modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.share-modal__actions button{padding:8px 14px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);font-size:13px;cursor:pointer}.share-modal__actions #share-copy{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.status{font-size:12px;padding:4px 8px;border-radius:4px;background:var(--panel-2);color:var(--muted)}.status--live{background:#ff3b3b26;color:var(--accent);font-weight:700}.status--offline{background:var(--panel-2);color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px 320px;gap:12px;padding:12px;height:calc(100vh - 49px)}@media (max-width: 1100px){.layout{grid-template-columns:1fr;height:auto}}.stream-panel,.controls-panel,.chat-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.stream-panel .player{width:100%;aspect-ratio:16 / 9;background:#000;border-radius:4px;object-fit:contain}.primer{margin-top:10px}.primer button{width:100%;font-size:15px;padding:12px;background:var(--accent);color:#fff;border:0;border-radius:6px;cursor:pointer}.primer button:disabled{background:var(--panel-2);color:var(--muted);cursor:default}.hint{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.5}.ios-note{margin:8px 0 0;padding:8px 10px;font-size:12px;line-height:1.5;color:#f5c878;background:#f5c87814;border:1px solid rgba(245,200,120,.3);border-radius:6px}.flash-overlay{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .2s ease-out;background:radial-gradient(circle at 50% 50%,rgba(255,70,90,.45) 0%,rgba(255,70,90,.18) 35%,transparent 70%);mix-blend-mode:screen}body.vj-on .flash-overlay{opacity:calc(var(--flash, 0) * .9);transition:none}.heat-meter{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;font-size:11px;color:var(--muted)}.heat-meter__label{font-size:13px;line-height:1}.heat-meter__bar{position:relative;width:96px;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.heat-meter__fill{position:absolute;inset:0 auto 0 0;width:0%;background:#306ee8;transition:width .4s ease-out,background .4s linear}.heat-meter__val{font-variant-numeric:tabular-nums;min-width:22px;text-align:right;color:var(--text)}.toggle-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:8px 0;font-size:12px;color:var(--text)}.toggle-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.controls-panel h2,.chat-panel h2{margin:0 0 10px;font-size:14px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}fieldset{border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin:0 0 10px}legend{font-size:12px;color:var(--muted);padding:0 4px}fieldset label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;margin:8px 0;font-size:12px}fieldset label>span{grid-column:1 / -1;color:var(--muted)}fieldset label input[type=range]{width:100%}fieldset label output{font-variant-numeric:tabular-nums;font-size:11px;color:var(--text);min-width:48px;text-align:right}#eq-reset{margin-top:4px;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer}.chat-panel{min-height:0}#messages{flex:1;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px;font-size:13px;line-height:1.5;min-height:200px}.msg{padding:2px 0;word-break:break-word}.msg--system{color:var(--muted);font-style:italic;font-size:12px}#chat-form{display:flex;gap:6px;margin-top:8px}#chat-input{flex:1;padding:8px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text)}#chat-form button{padding:8px 14px;background:var(--ok);color:#061a10;border:0;border-radius:6px;font-weight:700;cursor:pointer}.se-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.se-buttons button{flex:1 0 30%;padding:10px 8px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer}.se-buttons button:active{transform:translateY(1px);background:var(--accent);color:#fff}.nav-hamburger{display:none;width:36px;height:32px;padding:6px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;cursor:pointer;flex-direction:column;justify-content:space-between;align-items:stretch}.nav-hamburger>span{display:block;height:2px;background:var(--text);border-radius:1px}.nav-drawer{display:contents}body.locked .nav-hamburger,body.locked .nav-drawer{display:none}@media (max-width: 700px){.topbar{gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));flex-wrap:nowrap}.topbar h1{font-size:14px}.topbar .status{font-size:11px;padding:3px 6px}.heat-meter__bar{width:56px}.nav-hamburger{display:flex}.nav-drawer{display:none;position:absolute;top:100%;right:8px;min-width:180px;max-width:calc(100vw - 16px);flex-direction:column;align-items:stretch;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:100}.nav-drawer.open{display:flex}.topbar{position:relative}.nav-drawer .topbar-btn,.nav-drawer .status{width:100%;justify-content:center;padding:10px 12px;font-size:13px}}html.drawer-open .layout{pointer-events:none}
