:root{--bg: #f5f5f5;--elevated: #ffffff;--login-start: #667eea;--login-end: #764ba2;--appbar-start: #e53935;--appbar-mid: #9c27b0;--appbar-end: #1a237e;--live-start: #00c6ff;--live-end: #0072ff;--accent: #1976d2;--text: #1a1a2e;--muted: #888888;--danger: #f44336;--on-primary: #ffffff;--card-border: #e0e0e0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;background:var(--bg);color:var(--text)}button,input{font:inherit}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,var(--login-start),var(--login-end))}.login-card{width:min(320px,100%);background:var(--elevated);border-radius:12px;box-shadow:0 12px 40px #00000040;padding:20px 24px}.login-card img.logo{display:block;width:52px;height:52px;margin:0 auto}.login-card h1{margin:8px 0 0;text-align:center;font-size:24px}.login-card .subtitle{margin:2px 0 10px;text-align:center;color:var(--muted);font-size:12px}.login-card label{display:block;font-size:12px;color:#555;margin-top:8px}.login-card input[type=text],.login-card input[type=password]{width:100%;height:40px;margin-top:4px;padding:0 12px;border:1.5px solid #ddd;border-radius:6px;background:#fff}.pw-wrap{position:relative}.pw-wrap input{padding-right:44px}.pw-wrap .toggle{position:absolute;right:2px;top:2px;height:36px;width:40px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.pw-wrap .toggle img{display:block;opacity:.85}.remember{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted);font-size:13px}.login-error{color:var(--danger);font-size:12px;margin-top:4px}.btn-primary{width:100%;height:48px;margin-top:8px;border:none;border-radius:8px;background:var(--accent);color:var(--on-primary);font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:default}.home{display:flex;flex-direction:column;min-height:100%}.appbar{display:flex;align-items:center;gap:6px;min-height:48px;padding:4px 12px 4px 8px;color:var(--on-primary);background:linear-gradient(90deg,var(--appbar-start),var(--appbar-mid),var(--appbar-end));box-shadow:0 4px 12px #0003}.appbar .days{min-width:72px;font-size:13px;font-weight:700}.appbar .brand{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:16px}.appbar .brand img{width:28px;height:28px}.appbar .icon-btn{width:40px;height:40px;padding:8px;border:none;border-radius:50%;background:transparent;color:var(--on-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.appbar .icon-btn:hover,.appbar .icon-btn:focus-visible{background:#ffffff38}.appbar .icon-btn img{display:block;width:22px;height:22px}.home-body{flex:1;padding:10px;display:flex;flex-direction:column;gap:8px}.card{background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000014;padding:10px}.card h2{margin:0 0 8px;font-size:16px}.live-card{height:48px;margin:4px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--live-start),var(--live-end));color:#fff;font-size:16px;font-weight:700;width:calc(100% - 8px);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.live-card img.dot{position:absolute;right:15px;width:18px;height:18px}.live-card:disabled{opacity:.7}.upcoming-item{height:48px;margin:4px;border-radius:12px;border:1.5px solid var(--card-border);display:flex;align-items:center;justify-content:center;font-weight:700;color:#555}.schedules-card{flex:1;min-height:220px;display:flex;flex-direction:column;border-radius:8px}.schedules-card iframe{flex:1;width:100%;border:none;min-height:280px}.version{text-align:center;color:var(--muted);font-size:11px;padding:6px 0 2px}.expired{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e14cc;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;padding:32px;text-align:center;z-index:20}.expired p{color:#ccc}.meeting{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;color:#fff;display:flex;flex-direction:column}.meeting-grid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden}.meeting-grid.portrait{flex-direction:column}.meeting-grid .row{display:flex;align-items:center;justify-content:center;width:100%}.tile{background:#111;display:flex;align-items:center;justify-content:center;overflow:hidden}.tile video{width:100%;height:100%;object-fit:contain;background:#000}.meeting-fs{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.meeting-fs .tile{width:100%;height:100%}.waiting{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;font-size:18px;z-index:5;pointer-events:none}.toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:10;transition:opacity .3s;padding:4px 8px;border-radius:10px;background:#00000059}.toolbar.hidden{opacity:0;pointer-events:none}.toolbar .tb-btn{width:40px;height:40px;min-width:40px;border:none;border-radius:50%;background:transparent;cursor:pointer;padding:8px;display:inline-flex;align-items:center;justify-content:center;outline:none;-webkit-tap-highlight-color:transparent}.toolbar.touch .tb-btn:focus,.toolbar.touch .tb-btn:focus-visible,.toolbar.touch .tb-btn:hover{outline:none;background:transparent;box-shadow:none}.toolbar.touch .tb-btn:active{background:#ffffff1f}.toolbar .tb-btn.mode-on{opacity:1}.toolbar .tb-btn:not(.mode-on){opacity:.92}.toolbar.tv .tb-btn.tv-focused{background:#fff6;box-shadow:none;outline:none}.toolbar .tb-btn img{display:block;width:24px;height:24px;object-fit:contain}.toolbar.tv .tb-btn.leave.tv-focused{background:#e5393573}.settings-menu{position:absolute;right:12px;top:52px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;z-index:30;overflow:hidden}.settings-menu button{display:block;width:100%;text-align:left;border:none;background:#fff;padding:12px 16px;cursor:pointer}.settings-menu button:hover{background:#f0f0f0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:#fff;border-radius:12px;padding:20px;width:min(360px,92vw)}.modal h3{margin:0 0 12px}.modal input{width:100%;height:40px;margin:6px 0;padding:0 10px;border:1px solid #ddd;border-radius:6px}.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.modal .actions button{border:none;background:transparent;color:var(--accent);cursor:pointer;padding:8px 12px}
