*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:#eee;background:#0e0a22;flex-direction:column;font:14px/1.3 system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.region{display:contents}[hidden]{display:none!important}.bar{white-space:nowrap;background:#1b1530;border-bottom:1px solid #2f2750;flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.bar .spacer{flex:1}.bar input,.bar select,.bar button{font:inherit;color:#eee;background:#120d29;border:1px solid #3c3366;border-radius:8px;padding:6px 10px}.bar button{color:#fff;cursor:pointer;background:#7b5cff;border-color:#7b5cff;font-weight:600}.bar button.secondary{background:0 0}.bar button.small{padding:2px 8px;font-size:12px}.bar button:disabled{opacity:.5}.roster{gap:6px;display:inline-flex}.chip{background:#2a2350;border-radius:999px;padding:3px 8px;font-size:12px}.chip[data-tone=good]{background:#1f5c3a}.chip[data-tone=wait]{background:#5c4a1f}.chip[data-tone=bad]{background:#6a1f2a}.chip.seat:before{content:"";vertical-align:1px;background:#8a83a8;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.chip.seat.here:before{background:#2fbf71}.chip.knock{background:#5c4a1f}.stage{flex:1;min-height:0;position:relative}.frame{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.dot{background:#c9a227;border-radius:50%;width:10px;height:10px;position:fixed;top:8px;right:8px}.dot.open{background:#2fbf71}.dot.closed,.dot.refused{background:#d9534f}.waiting{justify-content:center;align-items:center;gap:28px;display:flex;position:fixed;inset:0}.waiting span{background:#ffd84d;border-radius:50%;width:44px;height:44px;animation:1.2s ease-in-out infinite hop}.waiting span:nth-child(2){background:#7b5cff;animation-delay:.2s}.waiting span:nth-child(3){background:#2fbf71;animation-delay:.4s}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-36px)}}@media (prefers-reduced-motion:reduce){.waiting span{animation:none}}.notice{text-align:center;max-width:28em;margin:auto;padding:24px;font-size:18px}body.app{color:#1d1830;background:#f6f4fb;font-size:15px;line-height:1.45}.app h1{margin:0 0 8px;font-size:24px}.app h2{margin:0 0 10px;font-size:18px}.app p{margin:0 0 10px}.app input,.app select,.app textarea,.app button,.app .button{font:inherit;color:inherit;background:#fff;border:1px solid #cfc8e4;border-radius:10px;padding:8px 12px}.app textarea{resize:vertical;width:100%}.app button,.app .button{color:#fff;cursor:pointer;background:#6a4cf0;border-color:#6a4cf0;font-weight:600;text-decoration:none;display:inline-block}.app button:disabled{opacity:.5;cursor:default}.app button.secondary{color:#4a32c9;background:#fff}.app button.link{color:#4a32c9;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.app button.danger{color:#b3261e;background:#fff;border-color:#e3b6b3}.app button.tab{color:#4a4560;background:0 0;border:0;font-weight:600}.app button.tab.on{color:#4a32c9;border-radius:0;box-shadow:inset 0 -2px #6a4cf0}.top{background:#fff;border-bottom:1px solid #e4def3;align-items:center;gap:12px;padding:10px 20px;display:flex}.top .brand{color:#4a32c9;margin-right:12px;font-size:17px}.spacer{flex:1}.content{flex:1;padding:24px 20px;overflow:auto}.card{background:#fff;border:1px solid #e4def3;border-radius:16px;padding:24px}.narrow{width:100%;max-width:30em;margin:40px auto}.content .narrow{margin-top:0}.stack{flex-direction:column;gap:10px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>input:not([type=checkbox]):not([type=number]):not([type=time]){flex:1;min-width:10em}.field{flex-direction:column;gap:6px;margin:0 0 16px;display:flex}.field.row{flex-direction:row}.stack>label{flex-direction:column;gap:6px;display:flex}.field>label,.stack>label{color:#4a4560;font-size:13px;font-weight:600}.lead,.muted{color:#6d6785}.small{font-size:13px}.error{color:#b3261e}.or{text-align:center;color:#6d6785;margin:6px 0 0}.plain{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.workspace .columns{grid-template-columns:minmax(14em,1fr) 2.2fr;gap:24px;max-width:70em;margin:0 auto;display:grid}@media (width<=760px){.workspace .columns{grid-template-columns:1fr}}.today,.start,.students{background:#fff;border:1px solid #e4def3;border-radius:16px;margin-bottom:16px;padding:18px}.students details{border-top:1px solid #eee9f8}.students summary{cursor:pointer;align-items:center;gap:10px;padding:10px 2px;list-style:none;display:flex}.students summary::-webkit-details-marker{display:none}.students summary .name{flex:1;font-weight:600}.tag{color:#4a4560;background:#eee9f8;border-radius:6px;padding:1px 6px;font-size:12px}.when{color:#4a32c9;font-size:13px;font-weight:600}.students .body{padding:6px 2px 16px 30px}.students .join-link{flex:1;font-size:13px}.add{margin-top:14px}.slot input[type=number]{width:5em}.toast{color:#fff;z-index:10;background:#2b2540;border-radius:10px;max-width:32em;padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.chip .remove{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0 4px}.replaced{text-align:center;flex-direction:column;align-items:center;gap:12px;margin:auto;display:flex}
