:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--moetado-purple:#9a5cff;--moetado-blue:#3d7bff}*{box-sizing:border-box}body{color:#f3eee6;background:#14121a;min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.placeholder{text-align:center;place-items:center;min-height:100vh;padding:24px;display:grid}.placeholder h1{margin:0 0 10px;font-size:clamp(22px,5vw,38px);font-weight:600}.placeholder p{opacity:.7;margin:0 0 6px}.placeholder code{color:var(--moetado-purple);background:#9a5cff2e;border-radius:4px;padding:2px 6px}.dashboard{flex-direction:column;align-items:center;gap:16px;min-height:100vh;padding:32px 24px;display:flex}.dashboard h1{margin:0;font-size:clamp(22px,4vw,32px)}.dashboard-layouts{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.layout-button{border:2px solid var(--moetado-purple);color:#f3eee6;cursor:pointer;background:0 0;border-radius:10px;padding:16px 28px;font-size:18px;font-weight:600}.layout-button.active{background:var(--moetado-purple);color:#14121a}.dashboard-hint{opacity:.7;text-align:center;margin:0}.dashboard-login{justify-content:center}.dashboard-login form{text-align:left;flex-direction:column;gap:12px;width:min(320px,100%);display:flex}.dashboard-login label{opacity:.8;font-size:14px}.dashboard-login input{color:#f3eee6;background:#1d1a26;border:1px solid #3a3645;border-radius:8px;padding:10px 12px;font-size:16px}.dashboard-login button{background:var(--moetado-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px;font-size:16px;font-weight:600}.dashboard-login button:disabled{opacity:.5;cursor:default}.dashboard-error{color:#ff6b6b;margin:0;font-size:14px}.dashboard-ddb-debug{background:#1a1722;border:1px solid #3a3645;border-radius:10px;width:min(420px,100%);padding:16px}.dashboard-ddb-debug h2{opacity:.8;margin:0 0 10px;font-size:16px}.dashboard-ddb-debug-row{gap:8px;display:flex}.dashboard-ddb-debug input{color:#f3eee6;background:#1d1a26;border:1px solid #3a3645;border-radius:8px;flex:1;padding:10px 12px;font-size:15px}.dashboard-ddb-debug button{background:var(--moetado-purple);color:#14121a;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-weight:600}.dashboard-ddb-debug button:disabled{opacity:.5;cursor:default}.dashboard-ddb-result{grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0 0;font-size:14px;display:grid}.dashboard-ddb-result dt{opacity:.6}.dashboard-ddb-result dd{margin:0}.dashboard-rolls{width:min(420px,100%)}.dashboard-roll-pending{background:#ffb3471f;border:1px solid #ffb347;border-radius:10px;padding:14px}.dashboard-roll-pending p{margin:0 0 8px}.dashboard-roll-pending button{color:#14121a;cursor:pointer;background:#ffb347;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.dashboard-cameras{width:min(960px,100%)}.dashboard-cameras h2{opacity:.8;margin:0 0 10px;font-size:16px}.dashboard-cameras-toggle{border:1px solid var(--moetado-purple);color:#f3eee6;cursor:pointer;background:0 0;border-radius:8px;margin-bottom:12px;padding:8px 14px}.camera-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;width:100%;display:grid}.camera-card{text-align:left;flex-direction:column;gap:6px;display:flex}.camera-card-own .camera-frame{border:2px dashed var(--moetado-purple)}.camera-name{opacity:.8;margin:0;font-size:13px}.camera-frame{aspect-ratio:16/9;background:#0d0b12;border:1px solid #3a3645;border-radius:8px;max-width:100%;overflow:hidden}.camera-frame iframe{border:0;width:100%;height:100%;display:block}.camera-frame-empty{text-align:center;opacity:.6;place-items:center;height:100%;padding:8px;font-size:13px;display:grid}.camera-push{gap:6px;display:flex}.camera-push input{color:#f3eee6;background:#1d1a26;border:1px solid #3a3645;border-radius:6px;flex:1;min-width:0;padding:6px 8px;font-size:12px}.camera-push button{background:var(--moetado-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 10px}.placeholder .camera-grid{width:min(1100px,92vw);margin-top:20px}.scene-backdrop{z-index:0;background:#14121a;position:fixed;inset:0;overflow:hidden}.scene-backdrop-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s ease-in-out;position:absolute;inset:0}.scene-backdrop-image.active{opacity:1}.stream-content{z-index:1;text-shadow:0 2px 8px #000c;position:relative}.status-bar{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.status-pill{background:#1a1722;border:1px solid #3a3645;border-radius:999px;padding:6px 14px;font-size:14px}.status-pill.ok{color:#3ecf8e;border-color:#3ecf8e}.status-pill.bad{color:#ff6b6b;border-color:#ff6b6b}.dashboard-main{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;width:min(1800px,100%);display:grid}@media (width<=1100px){.dashboard-main{grid-template-columns:minmax(0,1fr)}}.scene-panel,.preview-panel{background:#1a1722;border:1px solid #3a3645;border-radius:10px;padding:16px}.scene-panel h2,.preview-panel h2{opacity:.8;margin:0;font-size:16px}.preview-panel h2{margin-bottom:10px}.scene-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.scene-panel-actions{flex-wrap:wrap;gap:8px;display:flex}.scene-previous{border:1px solid var(--moetado-purple);color:#f3eee6;cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px;font-size:15px}.scene-previous:disabled{opacity:.4;cursor:default}.scene-panel-body{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;display:grid}@media (width<=700px){.scene-panel-body{grid-template-columns:minmax(0,1fr)}}.scene-list{gap:8px;max-height:60vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.scene-button{color:#f3eee6;text-align:left;cursor:pointer;background:#1d1a26;border:2px solid #3a3645;border-radius:10px;align-items:center;gap:12px;width:100%;padding:8px;font-size:18px;display:flex}.scene-button:hover{border-color:var(--moetado-blue)}.scene-button.active{border-color:var(--moetado-purple);background:#9a5cff2e}.scene-button img{aspect-ratio:16/9;object-fit:cover;background:#0d0b12;border-radius:6px;flex:none;width:128px}.scene-button-text{flex-direction:column;gap:2px;display:flex}.scene-button-chapter{opacity:.65;font-size:13px}.scene-notes{background:#14121a;border-radius:8px;min-height:120px;padding:12px}.scene-notes h3{opacity:.7;margin:0 0 8px;font-size:14px}.scene-notes p{white-space:pre-wrap;margin:0;line-height:1.45}.preview-box{background:#0d0b12;border:1px solid #3a3645;border-radius:8px;width:100%;position:relative;overflow:hidden}.preview-box iframe{transform-origin:0 0;pointer-events:none;border:0;position:absolute;top:0;left:0}.stage-viewport{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.stage{transform-origin:0 0;color:#f1ebdd;width:1920px;height:1080px;font-family:Inter,system-ui,sans-serif;position:absolute}.stream-roll{background:#101114d9;border-radius:999px;margin:0;padding:8px 20px;font:600 28px Inter,system-ui,sans-serif;position:absolute;top:40px;left:50%;transform:translate(-50%)}.stage-camera{background:#121016;border:2px solid #ffffff2e;border-radius:6px;position:absolute;overflow:hidden}.stage-camera iframe{border:0;width:100%;height:100%;display:block}.stage-camera-own{position:absolute}.stage-camera-setup{border:3px dashed #ffcf7acc;border-radius:6px;place-items:center;display:grid;position:absolute}.stage-camera-setup span{opacity:.85;font:600 24px Inter,system-ui,sans-serif}.stage-chat-area{border:2px dashed #ffcf7acc;border-radius:10px;position:absolute}.stage-chat-area span{opacity:.85;font:600 20px Inter,system-ui,sans-serif;position:absolute;top:10px;left:14px}.pc{color:#f1ebdd;background:linear-gradient(#3b3e44 0%,#2a2c31 100%);border:3px solid #14151a;border-radius:10px;grid-template-rows:auto auto 40px 1fr;gap:2px;padding:8px 16px;display:grid;position:absolute;box-shadow:inset 0 0 0 2px #55585f,inset 0 0 22px #0009,0 6px 14px #000000b3}.pc-name{white-space:nowrap;text-overflow:ellipsis;font:800 38px/1.05 Cinzel,Georgia,serif;overflow:hidden}.pc-class{color:#cbc4b4;white-space:nowrap;text-overflow:ellipsis;font:600 26px Cinzel,Georgia,serif;overflow:hidden}.pc-dm .pc-name{color:#d9a93a}.pc-own{outline-offset:1px;outline:3px solid #ffd35a}.pc-badges{align-items:center;gap:6px;display:flex;overflow:hidden}.pc-chip{text-overflow:ellipsis;color:#ffcf7a;white-space:nowrap;background:#101114;border:2px solid #ffffff59;border-radius:999px;flex:0 auto;min-width:0;padding:5px 12px;font:700 22px/1 Inter,system-ui,sans-serif;overflow:hidden}.pc-chip-more{flex:none}.pc-hp{background:#101114;border-radius:6px;align-self:end;height:38px;position:relative;overflow:hidden}.pc-hp-fill{position:absolute;inset:0 auto 0 0}.pc-hp-good .pc-hp-fill{background:linear-gradient(#4fb286,#2c7a58)}.pc-hp-warn .pc-hp-fill{background:linear-gradient(#f0a445,#b8701a)}.pc-hp-low .pc-hp-fill{background:linear-gradient(#e8704f,#a63a1f)}.pc-hp-temp{background:#4aa3e0;position:absolute;top:0;bottom:0}.pc-hp-num{color:#fff;text-shadow:0 1px 4px #000,0 0 2px #000;letter-spacing:.02em;place-items:center;font:800 28px Inter,system-ui,sans-serif;display:grid;position:absolute;inset:0}.pc-dead{filter:grayscale()brightness(.8)}.pc-dead .pc-hp-num{visibility:hidden}.pc-dead-band{color:#fff;letter-spacing:.06em;background:#000;place-items:center;font:800 28px Cinzel,Georgia,serif;display:grid;position:absolute;inset:0}.test-party-toggle{color:#f3eee6;cursor:pointer;background:#1a1722;border:1px solid #3a3645;border-radius:8px;padding:8px 16px;font-size:14px}.layout-fx{opacity:0;pointer-events:none;will-change:opacity;transition:opacity .8s ease-in-out;position:absolute;inset:0}.layout-fx.active{opacity:1}.layout-fx-table{background:linear-gradient(#00000059 0%,#0009 100%)}.layout-fx-story{background:linear-gradient(#0000 55%,#0000008c 100%)}.layout-fx-combat{background:radial-gradient(#780a0a00 55%,#780a0a73 100%),linear-gradient(#0000 55%,#0000008c 100%)}.stage-initiative-strip{opacity:0;background:linear-gradient(#0000008c,#0000004d);border:1px solid #ffffff1f;border-radius:10px;transition:opacity .8s ease-in-out;position:absolute}.stage-initiative-strip.on{opacity:1}.chapter-title{text-align:center;opacity:0;text-shadow:0 2px 14px #000000f2;pointer-events:none;width:800px;transition:opacity .8s ease-in-out,transform .8s ease-in-out;position:absolute;top:48px;left:560px;transform:translateY(-8px)}.chapter-title.visible{opacity:1;animation:.8s ease-in-out chapter-title-in;transform:translateY(0)}@keyframes chapter-title-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chapter-title-label{letter-spacing:.18em;text-transform:lowercase;color:#d9a93a;font:600 28px Cinzel,Georgia,serif}.chapter-title-name{color:#f6f0e2;white-space:nowrap;text-overflow:ellipsis;font:800 64px/1.1 Cinzel,Georgia,serif;overflow:hidden}.chapter-title-line{background:linear-gradient(90deg,#0000,#d9a93a,#0000);width:260px;height:3px;margin:10px auto 0}.scene-chapter-heading{letter-spacing:.08em;text-transform:lowercase;color:#d9a93a;opacity:.9;margin:10px 0 6px;font-size:13px}.scene-list-item:first-child .scene-chapter-heading{margin-top:0}.scene-button-title{font-size:18px}.scene-badge{opacity:.8;border:1px solid #55585f;border-radius:999px;align-self:flex-start;padding:1px 10px;font-size:12px}.scene-special-bar{background:#ffb34712;border:2px dashed #8a6a1f;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;display:flex}.scene-special-label{letter-spacing:.08em;color:#ffb347;margin-right:6px;font-size:13px}.scene-special-button{color:#ffd9a0;cursor:pointer;background:#ffb3471f;border:2px solid #8a6a1f;border-radius:8px;padding:10px 20px;font-size:16px;font-weight:600}.scene-special-button:hover{border-color:#ffb347}.scene-special-button.active{color:#fff;background:#ffb34759;border-color:#ffb347}.scene-notes{max-height:60vh;overflow-y:auto}.adventure-check{width:min(1800px,100%);font-size:14px}.adventure-check summary{cursor:pointer;opacity:.85;padding:8px 4px}.adventure-check-problems{color:#ffb3b3;background:#ff6b6b14;border:1px solid #ff6b6b;border-radius:8px;margin-bottom:8px;padding:10px 14px}.adventure-check-problems ul{margin:6px 0 0;padding-left:20px}.adventure-check-group h4{opacity:.7;margin:10px 0 4px;font-size:13px}.adventure-check-group ul{columns:3 280px;margin:0;padding-left:18px}.adventure-check-group code{color:#cbc4b4;font-size:13px}.adventure-check-label{opacity:.55;font-size:12px}.adventure-check-reload{color:#f3eee6;cursor:pointer;background:#1a1722;border:1px solid #3a3645;border-radius:8px;margin-top:10px;padding:6px 12px}
