.kiosk-page{--kiosk-bg: radial-gradient(ellipse at 25% 0%, rgba(90,120,255,.22), rgba(0,0,0,.94) 55%);--kiosk-text: rgba(255,255,255,.92);--kiosk-muted: rgba(255,255,255,.55);--kiosk-border: rgba(255,255,255,.1);--kiosk-surface: rgba(255,255,255,.06);--kiosk-surface-md: rgba(255,255,255,.09);--kiosk-overlay-bg: rgba(0,0,0,.72);--kiosk-primary-bg: rgba(255,255,255,.92);--kiosk-primary-text: rgba(15,23,42,.95);--kiosk-primary-border: rgba(255,255,255,.18);--kiosk-secondary-bg: rgba(255,255,255,.1);--kiosk-secondary-text: rgba(255,255,255,.92);--kiosk-secondary-border: rgba(255,255,255,.14);--kiosk-modal-bg: rgba(18,20,30,.95);--kiosk-modal-border: rgba(255,255,255,.1);--kiosk-modal-shadow: 0 32px 100px rgba(0,0,0,.7);--kiosk-accent: #3b82f6;--kiosk-accent-glow: rgba(59,130,246,.35);--kiosk-success: #22c55e;--kiosk-danger: #ef4444;--kiosk-card-bg: rgba(255,255,255,.04);--kiosk-card-border: rgba(255,255,255,.08);--kiosk-card-bg-soft: rgba(255,255,255,.03);--kiosk-row-bg: rgba(255,255,255,.04);--kiosk-row-border: rgba(255,255,255,.07)}.kiosk-page.kiosk-theme-light{--kiosk-bg: radial-gradient(ellipse at 25% 0%, rgba(90,120,255,.12), rgba(245,247,255,.97) 55%);--kiosk-text: rgba(15,23,42,.92);--kiosk-muted: rgba(15,23,42,.52);--kiosk-border: rgba(0,0,0,.1);--kiosk-surface: rgba(255,255,255,.85);--kiosk-surface-md: rgba(255,255,255,.95);--kiosk-overlay-bg: rgba(0,0,0,.4);--kiosk-primary-bg: #0A84FF;--kiosk-primary-text: #fff;--kiosk-primary-border: rgba(10,132,255,.45);--kiosk-secondary-bg: rgba(15,23,42,.07);--kiosk-secondary-text: rgba(15,23,42,.92);--kiosk-secondary-border: rgba(0,0,0,.12);--kiosk-modal-bg: rgba(255,255,255,.97);--kiosk-modal-border: rgba(0,0,0,.1);--kiosk-modal-shadow: 0 32px 100px rgba(0,0,0,.18);--kiosk-card-bg: rgba(0,0,0,.04);--kiosk-card-border: rgba(0,0,0,.08);--kiosk-card-bg-soft: rgba(0,0,0,.03);--kiosk-row-bg: rgba(0,0,0,.03);--kiosk-row-border: rgba(0,0,0,.07)}.kiosk-page{position:fixed;inset:0;width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--kiosk-bg);color:var(--kiosk-text);font-family:inherit;overflow:hidden}.kiosk-page button,.kiosk-page .button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}.kiosk-topbar{flex:0 0 auto;height:60px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--kiosk-border);background:var(--kiosk-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20}.kiosk-brand{font-size:20px;font-weight:900;letter-spacing:.4px;color:var(--kiosk-text);white-space:nowrap}.kiosk-clock{display:flex;flex-direction:column;align-items:center;line-height:1.2}.kiosk-clock-time{font-size:22px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--kiosk-text)}.kiosk-clock-date{font-size:11px;font-weight:600;color:var(--kiosk-muted);text-transform:uppercase;letter-spacing:.5px}.kiosk-topbar-btn{font-size:13px;font-weight:700;padding:6px 14px;border-radius:999px;border:1px solid var(--kiosk-border);background:var(--kiosk-surface);color:var(--kiosk-text);height:36px}.kiosk-topbar-btn:hover{filter:brightness(1.1)}.kiosk-sidenav{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;gap:10px}.kiosk-nav-btn{display:block;width:80px;padding:10px 0;font-size:13px;font-weight:800;text-align:center;border-radius:16px;border:1px solid var(--kiosk-border);background:var(--kiosk-surface);color:var(--kiosk-text);transition:background .15s,color .15s}.kiosk-nav-btn:hover{background:var(--kiosk-surface-md)}.kiosk-nav-btn--armed{background:#ef444426;border-color:#ef444466;color:var(--kiosk-danger)}.kiosk-main{flex:1 1 0;display:flex;flex-direction:column;overflow:hidden;min-height:0}.kiosk-camera-zone{flex:1 1 0;position:relative;overflow:hidden;background:#000;min-height:0}.kiosk-video{width:100%;height:100%;object-fit:cover;display:block}.kiosk-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.kiosk-scan-frame{position:absolute;inset:0;pointer-events:none}.kiosk-corner{position:absolute;width:32px;height:32px;border-color:#ffffff8c;border-style:solid}.kiosk-corner--tl{top:24px;left:24px;border-width:3px 0 0 3px;border-radius:4px 0 0}.kiosk-corner--tr{top:24px;right:24px;border-width:3px 3px 0 0;border-radius:0 4px 0 0}.kiosk-corner--bl{bottom:24px;left:24px;border-width:0 0 3px 3px;border-radius:0 0 0 4px}.kiosk-corner--br{bottom:24px;right:24px;border-width:0 3px 3px 0;border-radius:0 0 4px}.kiosk-autoscan-bar-wrap{position:absolute;bottom:0;left:0;right:0;height:6px;background:#0000004d;overflow:hidden}.kiosk-autoscan-bar{height:100%;background:var(--kiosk-accent);transition:width .9s linear;box-shadow:0 0 8px var(--kiosk-accent-glow)}.kiosk-autoscan-label{position:absolute;right:10px;top:-22px;font-size:11px;font-weight:700;color:var(--kiosk-muted);pointer-events:none}.kiosk-bottom-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:18px;padding:14px 100px;border-top:1px solid var(--kiosk-border);background:var(--kiosk-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap}.kiosk-scan-btn{min-width:240px;height:56px;font-size:18px;font-weight:900;border-radius:999px;background:var(--kiosk-primary-bg);color:var(--kiosk-primary-text);border:1px solid var(--kiosk-primary-border)}.kiosk-scan-btn:disabled{opacity:.65;cursor:not-allowed}.kiosk-status-line{font-size:14px;font-weight:600;color:var(--kiosk-muted);min-width:160px;text-align:center}.kiosk-status--scanning{color:var(--kiosk-accent)}.kiosk-status--error{color:var(--kiosk-danger)}.kiosk-autoscan-toggle{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--kiosk-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.kiosk-autoscan-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer}.kiosk-result-overlay{position:fixed;inset:0;background:var(--kiosk-overlay-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.kiosk-result-card{width:min(94vw,760px);max-height:92vh;border-radius:28px;background:var(--kiosk-modal-bg);border:1px solid var(--kiosk-modal-border);box-shadow:var(--kiosk-modal-shadow);padding:24px;display:flex;flex-direction:column;gap:16px;overflow:hidden;color:var(--kiosk-text)}.kiosk-result-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--kiosk-card-border)}.kiosk-result-welcome{font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--kiosk-muted)}.kiosk-result-name{font-size:38px;font-weight:900;line-height:1.1;margin-top:2px;color:var(--kiosk-text)}.kiosk-result-meta{font-size:14px;font-weight:600;color:var(--kiosk-muted);margin-top:6px}.kiosk-result-check{flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:#22c55e26;border:1px solid rgba(34,197,94,.3);position:relative}.kiosk-result-check:after{content:"";position:absolute;inset:0;background:var(--kiosk-success);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/60% no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/60% no-repeat}.kiosk-result-schedule{flex:1 1 0;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.kiosk-result-schedule-hd{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:800}.kiosk-result-count{font-size:12px;font-weight:700;color:var(--kiosk-muted);background:var(--kiosk-card-bg);border:1px solid var(--kiosk-card-border);border-radius:999px;padding:2px 10px}.kiosk-result-schedule-body{overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.kiosk-schedule-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:var(--kiosk-row-bg);border:1px solid var(--kiosk-row-border)}.kiosk-schedule-info{flex:1 1 0;min-width:0}.kiosk-schedule-title{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kiosk-schedule-loc{font-size:12px;color:var(--kiosk-muted);margin-top:2px}.kiosk-schedule-time{flex:0 0 auto;font-size:14px;font-weight:900;text-align:right;white-space:nowrap;color:var(--kiosk-text)}.kiosk-schedule-empty{font-size:14px;color:var(--kiosk-muted);padding:8px 0}.kiosk-dismiss-wrap{position:relative;height:4px;background:var(--kiosk-card-bg);border-radius:999px;overflow:visible}.kiosk-dismiss-bar{height:100%;background:var(--kiosk-danger);border-radius:999px;transition:width .9s linear;opacity:.7}.kiosk-dismiss-label{position:absolute;right:0;top:8px;font-size:11px;font-weight:700;color:var(--kiosk-muted)}.kiosk-result-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;align-items:center}.kiosk-action-btn{height:46px;font-size:15px;font-weight:800;border-radius:999px;min-width:130px}.kiosk-modal-overlay{position:fixed;inset:0;background:var(--kiosk-overlay-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:60;padding:18px}.kiosk-modal{width:min(94vw,820px);max-height:92vh;border-radius:28px;background:var(--kiosk-modal-bg);border:1px solid var(--kiosk-modal-border);box-shadow:var(--kiosk-modal-shadow);padding:22px;display:flex;flex-direction:column;gap:16px;overflow:hidden;color:var(--kiosk-text)}.kiosk-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kiosk-modal-label{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--kiosk-muted)}.kiosk-modal-title{margin:4px 0 0;font-size:24px;font-weight:900}.kiosk-iframe-wrap{width:100%;height:min(70vh,560px);border-radius:18px;overflow:hidden;border:1px solid var(--kiosk-card-border);background:var(--kiosk-card-bg-soft)}.kiosk-iframe{width:100%;height:100%;border:0}.kiosk-page .button.primary{background:var(--kiosk-primary-bg);color:var(--kiosk-primary-text);border:1px solid var(--kiosk-primary-border)}.kiosk-page .button.primary:hover{filter:brightness(.97)}.kiosk-page .button.primary:active{filter:brightness(.94)}.kiosk-page .button.secondary{background:var(--kiosk-secondary-bg);color:var(--kiosk-secondary-text);border:1px solid var(--kiosk-secondary-border)}.kiosk-page .button.secondary:hover{filter:brightness(1.08)}.kiosk-page .button.secondary:active{filter:brightness(.95)}.kiosk-page .button.ghost{background:transparent;color:var(--kiosk-muted);border:1px solid var(--kiosk-border)}.kiosk-page .button.ghost:hover{background:var(--kiosk-surface)}.kiosk-card{background:var(--kiosk-card-bg);border:1px solid var(--kiosk-card-border);border-radius:18px;padding:14px}.kiosk-muted{color:var(--kiosk-muted)}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,system-ui,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root,:root[data-theme=dark]{color-scheme:dark;--bg0: #050a14;--bg1: #071024;--body-gradient: radial-gradient(1000px 700px at 20% -10%, rgba(124,92,255,.25), transparent 55%), radial-gradient(900px 600px at 85% 10%, rgba(34,197,94,.1), transparent 50%), linear-gradient(180deg, #071024, #050a14);--panel: rgba(255,255,255,.06);--panel2: rgba(255,255,255,.08);--panel3: rgba(255,255,255,.04);--surface-overlay: rgba(0,0,0,.1);--surface-overlay2: rgba(0,0,0,.25);--border: rgba(255,255,255,.1);--border2: rgba(255,255,255,.14);--text: #eaf0ff;--muted: rgba(234,240,255,.72);--muted2: rgba(234,240,255,.52);--brand: #7c5cff;--ok: #22c55e;--danger: #ff4d4f;--shadow: 0 12px 40px rgba(0,0,0,.35);--radius: 16px;--btn-primary-bg: rgba(255,255,255,.92);--btn-primary-text: #0b1220;--btn-secondary-bg: rgba(255,255,255,.06);--btn-ghost-bg: rgba(255,255,255,.04);--input-bg: rgba(255,255,255,.05);--input-border: rgba(255,255,255,.1);--select-bg: rgba(0,0,0,.65);--modal-overlay: rgba(0,0,0,.78);--modal-surface: rgba(18,18,20,.92);--modal-text: rgba(255,255,255,.92);--modal-muted: rgba(255,255,255,.7);--modal-input-bg: rgba(255,255,255,.06);--modal-input-border: 1px solid rgba(255,255,255,.14);--modal-divider: 1px solid rgba(255,255,255,.1);--sidebar-bg: rgba(5,8,18,.97);--nav-active-bg: rgba(124,92,255,.16);--nav-hover-bg: rgba(124,92,255,.08)}:root[data-theme=light]{color-scheme:light;--bg0: #f5f7ff;--bg1: #edf0ff;--body-gradient: radial-gradient(1000px 700px at 20% -10%, rgba(124,92,255,.12), transparent 55%), radial-gradient(900px 600px at 85% 10%, rgba(34,197,94,.08), transparent 50%), linear-gradient(180deg, #edf0ff, #f5f7ff);--panel: rgba(255,255,255,.82);--panel2: rgba(255,255,255,.92);--panel3: rgba(255,255,255,.65);--surface-overlay: rgba(0,0,0,.04);--surface-overlay2: rgba(0,0,0,.08);--border: rgba(0,0,0,.1);--border2: rgba(0,0,0,.16);--text: #0f172a;--muted: rgba(15,23,42,.62);--muted2: rgba(15,23,42,.42);--brand: #6d48f5;--ok: #16a34a;--danger: #dc2626;--shadow: 0 4px 24px rgba(0,0,0,.1);--radius: 16px;--btn-primary-bg: #0f172a;--btn-primary-text: #ffffff;--btn-secondary-bg: rgba(0,0,0,.07);--btn-ghost-bg: rgba(0,0,0,.03);--input-bg: rgba(255,255,255,.9);--input-border: rgba(0,0,0,.12);--select-bg: rgba(255,255,255,.9);--modal-overlay: rgba(0,0,0,.55);--modal-surface: rgba(255,255,255,.97);--modal-text: #0f172a;--modal-muted: rgba(15,23,42,.65);--modal-input-bg: rgba(0,0,0,.04);--modal-input-border: 1px solid rgba(0,0,0,.14);--modal-divider: 1px solid rgba(0,0,0,.08);--sidebar-bg: rgba(255,255,255,.98);--nav-active-bg: rgba(124,92,255,.12);--nav-hover-bg: rgba(124,92,255,.06)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}#root{height:100%;display:flex;flex-direction:column}body{margin:0;min-width:320px;color:var(--text);background:var(--body-gradient);background-attachment:fixed;overflow:hidden}h1{font-size:2.2rem;line-height:1.15;letter-spacing:-.03em;margin:0}a{font-weight:600;color:var(--brand);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}button{border-radius:14px;border:1px solid var(--border2);padding:.65em 1.1em;font-size:1em;font-weight:800;font-family:inherit;background:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;transition:transform .06s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px);border-color:#7c5cff59}button:active{transform:translateY(0)}button:focus-visible{outline:none;box-shadow:0 0 0 6px #7c5cff2e}.select{min-width:200px;padding:10px 14px;border-radius:12px;background:var(--select-bg);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);appearance:none;-webkit-appearance:none;outline:none}.select:hover{border-color:var(--border2)}.select:focus{border-color:#7c5cff73;box-shadow:0 0 0 3px #7c5cff24}.select option{background:var(--bg0);color:var(--text)}.app-shell{display:flex;height:100vh;width:100%;overflow:hidden}.app-sidebar{width:224px;flex-shrink:0;height:100vh;display:flex;flex-direction:column;background:var(--sidebar-bg);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden}.app-sidebar button{all:unset;box-sizing:border-box;cursor:pointer;font-family:inherit}.app-sidebar button:hover{transform:none}.app-main{flex:1;min-width:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.page-body{flex:1;padding:24px;max-width:1240px;width:100%;margin:0 auto}.container{max-width:1200px;margin:0 auto 48px;padding:0}.header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.title{font-weight:900;letter-spacing:-.02em;margin:0;font-size:clamp(22px,3.5vw,32px);background:linear-gradient(90deg,var(--text),var(--muted));-webkit-background-clip:text;background-clip:text;color:transparent}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:12px;background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dot{width:8px;height:8px;border-radius:999px;background:var(--ok)}.dot.pulse{animation:pulse 1.2s infinite}@keyframes pulse{0%{box-shadow:0 0 #22c55e66}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.card{background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow);overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--border);background:var(--surface-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.group{display:flex;gap:10px;align-items:center}.label{font-size:13px;color:var(--muted)}.input,.button{appearance:none;border:1px solid var(--border);padding:10px 12px;border-radius:12px;outline:none;transition:box-shadow .15s ease,transform .06s ease,border-color .15s ease,background .15s ease}.input{background:var(--input-bg);color:var(--text);min-height:40px;font-size:14px;font-family:inherit}.input::placeholder{color:var(--muted2)}.input:focus{box-shadow:0 0 0 5px #7c5cff26;border-color:#7c5cff73}.button{background:var(--panel);color:var(--text);font-weight:800;font-size:14px;font-family:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.button:hover{transform:translateY(-1px);border-color:var(--border2)}.button:active{transform:translateY(0)}.button[disabled]{opacity:.55;cursor:not-allowed;transform:none}.button.primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:transparent}.button.primary:hover{opacity:.92}.button.secondary{background:var(--btn-secondary-bg)}.button.ghost{background:var(--btn-ghost-bg)}.viewer{position:relative;width:100%;max-width:720px;margin:0 auto;background:#000;border-radius:20px;overflow:hidden;aspect-ratio:16 / 9;box-shadow:0 8px 24px #00000040;border:1px solid var(--border)}.video{width:100%;height:auto;display:block}.overlay{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}.panel{display:flex;gap:10px;align-items:center;padding:14px;border-top:1px solid var(--border);background:var(--surface-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.flex{display:flex;gap:10px}.spacer{flex:1}.help{margin-top:14px;color:var(--muted2);font-size:13px}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--panel2);border:1px solid var(--border);padding:2px 6px;border-radius:8px;color:var(--text);font-size:12px}.tabs-scroll{scrollbar-width:thin;scrollbar-color:var(--border2) transparent;overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs-scroll::-webkit-scrollbar{height:5px}.tabs-scroll::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.tabs-scroll::-webkit-scrollbar-track{background:transparent}.theme-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--text);display:grid;place-items:center;cursor:pointer;font-size:17px;flex-shrink:0;transition:background .2s,border-color .2s,transform .1s}.theme-toggle:hover{background:var(--panel2);border-color:var(--border2);transform:rotate(20deg) scale(1.08)}@keyframes newPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:900;background:var(--danger);color:#fff;margin-left:6px;animation:newPop .3s ease both}.kiosk-shell{max-width:100%;margin:0;padding:0}body.kiosk-mode{overflow:hidden}@media (max-width: 600px){.container{padding:0}.toolbar{padding:10px;gap:8px}}
