@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800;900&family=M+PLUS+1p:wght@400;700;900&display=swap";.monitor-app[data-v-d6b6c5e1]{color:#fff;min-height:100vh;font-family:var(--font-body);background:#0d0d0d;flex-direction:column;display:flex;position:relative;overflow:hidden}.monitor-grid[data-v-d6b6c5e1]{flex:1;grid-template-columns:480px 1fr;gap:0;min-height:calc(100vh - 80px);display:grid}.monitor-timer-area[data-v-d6b6c5e1]{background:#ffffff08;border-right:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:center;padding:48px 40px;display:flex}.monitor-timer-label[data-v-d6b6c5e1]{letter-spacing:.14em;text-transform:uppercase;color:#ffffff80;margin-bottom:20px;font-size:14px;font-weight:600}.monitor-timer-display[data-v-d6b6c5e1]{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#fff;font-size:120px;font-weight:700;line-height:1;transition:color .5s}.monitor-timer--urgent[data-v-d6b6c5e1]{color:#f87171;animation:1s ease-in-out infinite urgent-pulse-d6b6c5e1}.monitor-timer--stopped[data-v-d6b6c5e1]{color:#ffffff4d}@keyframes urgent-pulse-d6b6c5e1{0%,to{opacity:1}50%{opacity:.65}}.monitor-timer-status[data-v-d6b6c5e1]{color:#ffffff80;align-items:center;gap:8px;margin-top:20px;font-size:13px;display:flex}.monitor-status-dot[data-v-d6b6c5e1]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.monitor-status-dot--running[data-v-d6b6c5e1]{background:#4ade80;animation:2s ease-in-out infinite dot-pulse-d6b6c5e1;box-shadow:0 0 8px #4ade80}.monitor-status-dot--stopped[data-v-d6b6c5e1]{background:#fff3}@keyframes dot-pulse-d6b6c5e1{0%,to{opacity:1}50%{opacity:.4}}.monitor-rank-area[data-v-d6b6c5e1]{flex-direction:column;padding:32px 40px;display:flex;overflow-y:auto}.monitor-rank-header[data-v-d6b6c5e1]{justify-content:space-between;align-items:baseline;margin-bottom:24px;display:flex}.monitor-rank-header__title[data-v-d6b6c5e1]{letter-spacing:.04em;font-size:20px;font-weight:700}.monitor-rank-header__meta[data-v-d6b6c5e1]{color:#ffffff4d;font-size:11px}.monitor-rank-list[data-v-d6b6c5e1]{flex-direction:column;gap:10px;display:flex}.monitor-rank-item[data-v-d6b6c5e1]{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;grid-template-columns:48px 4px 1fr auto auto;align-items:center;gap:16px;padding:18px 20px;transition:background .2s;display:grid}.monitor-rank-item[data-v-d6b6c5e1]:first-child{background:#ffffff14;border-color:#ffffff1f}.monitor-rank-pos[data-v-d6b6c5e1]{color:#ffffff4d;font-variant-numeric:tabular-nums;text-align:center;font-size:28px;font-weight:700}.monitor-rank-item:first-child .monitor-rank-pos[data-v-d6b6c5e1]{color:#fbbf24}.monitor-rank-bar[data-v-d6b6c5e1]{opacity:.9;border-radius:2px;width:4px;height:40px}.monitor-rank-name[data-v-d6b6c5e1]{font-size:22px;font-weight:700}.monitor-rank-solved[data-v-d6b6c5e1]{color:#ffffff73;white-space:nowrap;font-size:13px}.monitor-rank-points[data-v-d6b6c5e1]{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:32px;font-weight:700}.monitor-rank-unit[data-v-d6b6c5e1]{color:#ffffff80;margin-left:2px;font-size:14px;font-weight:600}.monitor-rank-empty[data-v-d6b6c5e1]{color:#ffffff4d;text-align:center;padding:24px 0;font-size:14px}.monitor-notification-strip[data-v-d6b6c5e1]{background:#00000080;border-top:1px solid #ffffff14;align-items:center;height:72px;display:flex;position:relative;overflow:hidden}.monitor-notification-card[data-v-d6b6c5e1]{white-space:nowrap;color:#ffffffe6;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;padding:10px 24px;font-size:15px;font-weight:500;animation:linear forwards card-scroll-d6b6c5e1;position:absolute;top:50%;transform:translateY(-50%)}@keyframes card-scroll-d6b6c5e1{0%{left:100vw}to{left:-800px}}.monitor-card-team[data-v-d6b6c5e1]{color:#fff;font-size:17px;font-weight:800}.monitor-card-question[data-v-d6b6c5e1]{color:#fbbf24;font-weight:700}.monitor-card-points[data-v-d6b6c5e1]{color:#4ade80;margin-left:8px;font-weight:800}.rank-move[data-v-d6b6c5e1]{transition:transform .6s cubic-bezier(.25,.8,.25,1)}.rank-enter-active[data-v-d6b6c5e1]{transition:all .5s cubic-bezier(.25,.8,.25,1)}.rank-leave-active[data-v-d6b6c5e1]{width:100%;transition:all .4s;position:absolute}.rank-enter-from[data-v-d6b6c5e1]{opacity:0;transform:translate(-24px)}.rank-leave-to[data-v-d6b6c5e1]{opacity:0;transform:translate(24px)}.monitor-connection[data-v-d6b6c5e1]{color:#ffffff4d;z-index:10;align-items:center;gap:6px;font-size:11px;display:flex;position:fixed;bottom:80px;right:16px}:root{--paper:#f5efe0;--paper-2:#ede6d2;--paper-3:#e0d8c0;--ink:#111;--ink-2:#333;--ink-muted:#666;--ink-faint:#999;--line:#d4c9a8;--line-strong:#bfb28a;--team-accent:#e91e8c;--team-accent-hover:#c2166f;--team-accent-soft:#fce4f0;--r-sm:2px;--r-md:2px;--r-lg:3px;--r-xl:4px;--font-body:"Barlow Condensed", "M PLUS 1p", -apple-system, BlinkMacSystemFont, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:#ede6d2;min-height:100%;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);letter-spacing:.01em;font-size:16px;overflow:hidden auto}.app{background:var(--paper);min-height:100dvh;position:relative;overflow:hidden}.screens-layer{position:absolute;inset:0}.screen{opacity:0;pointer-events:none;flex-direction:column;transition:opacity .22s,transform .25s;display:flex;position:absolute;inset:0;transform:translate(12px)}.screen.is-active{opacity:1;pointer-events:auto;z-index:2;transform:translate(0)}.screen-scroll{scrollbar-width:none;flex:1;padding:72px 20px;overflow:hidden auto}.screen-scroll::-webkit-scrollbar{display:none}.screen-scroll--join{padding-top:calc(env(safe-area-inset-top) + 32px)}.page-header{z-index:80;min-height:calc(env(safe-area-inset-top) + 72px);padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;-webkit-backdrop-filter:blur(14px);border-bottom:2px solid var(--line-strong);background:#f5efe0f2;grid-template-columns:88px 1fr 88px;align-items:center;gap:8px;display:grid;position:fixed;top:0;left:0;right:0}.page-header__side{align-items:center;min-width:0;display:flex}.page-header__side--right{justify-content:flex-end}.page-header__ghost{width:60px;height:36px;display:inline-block}.page-header__center{text-align:center;min-width:0}.page-header__text-anim{animation:.24s both headerSwap}@keyframes headerSwap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.eyebrow{letter-spacing:.16em;color:var(--ink-muted);text-transform:uppercase;font-family:Barlow Condensed,sans-serif;font-size:11px;font-weight:700;line-height:1.2}.title-lg{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:700;line-height:1.3;overflow:hidden}.title-md{font-size:16px;font-weight:700;line-height:1.35}.display-xl{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:48px;font-weight:700;line-height:1}.display-l{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1.05}.display-m{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.body{color:var(--ink-muted);font-size:14px;line-height:1.55}.body-ink{color:var(--ink);font-size:14px;line-height:1.55}.caption{color:var(--ink-muted);font-size:12px;line-height:1.45}.stack{flex-direction:column;display:flex}.stack-xs{gap:4px}.stack-sm{gap:8px}.stack-md{gap:14px}.stack-lg{gap:22px}.row{align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.grid-2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.btn{all:unset;box-sizing:border-box;border-radius:var(--r-lg);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:52px;padding:0 20px;font-size:15px;font-weight:700;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn--block{width:100%;display:flex}.btn--primary{background:var(--team-accent);color:var(--paper)}.btn--primary:hover{background:var(--team-accent-hover)}.btn--ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn--ghost:hover{background:var(--paper-2)}.btn--sm{height:36px;padding:0 12px;font-size:13px}.btn--lg{height:56px;font-size:16px}.btn[disabled]{background:var(--paper-3);color:var(--ink-faint);cursor:not-allowed}.field{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--paper);width:100%;height:56px;font-family:var(--font-body);color:var(--ink);outline:none;padding:0 16px;font-size:18px;transition:border-color .15s}.field:focus{border-color:var(--ink)}.field--hero{text-align:center;height:68px;font-size:26px;font-weight:600}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}.card--soft{background:var(--paper-2);border-radius:var(--r-lg);border:1px solid var(--line);padding:16px}.card--ink{background:var(--team-accent);color:var(--paper);border-radius:var(--r-lg);border:none;padding:20px}.card--action{text-align:left;cursor:pointer;width:100%;font:inherit;display:block}.chip{background:var(--paper-2);height:24px;color:var(--ink);white-space:nowrap;border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.chip--mono{letter-spacing:.04em}.hero-center{place-items:center;padding:12px 0 8px;display:grid}.home-hero-row{align-items:center;gap:16px;padding:8px 0;display:flex}.home-timer-col{flex-shrink:0}.home-stats-col{border:1px solid var(--line);border-radius:8px;flex:none;width:108px;overflow:hidden}.home-stat{padding:10px 14px}.home-stat+.home-stat{border-top:1px solid var(--line)}.stat-grid{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.stat-box{padding:18px 14px}.stat-box+.stat-box{border-left:1px solid var(--line)}.problem-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.problem-cell{aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink-muted);background:var(--paper);place-items:center;font-size:11px;font-weight:600;display:grid;position:relative}.problem-cell.is-solved{background:var(--team-accent);color:var(--paper);border-color:var(--team-accent)}.problem-cell.is-current{border:2px solid var(--team-accent);color:var(--team-accent);background:var(--paper)}.problem-cell.is-current:after{content:"";border:1px dashed var(--team-accent);pointer-events:none;border-radius:6px;position:absolute;inset:-5px}.problem-cell.is-disabled{opacity:.28}.rank-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.rank-item:last-child{border-bottom:none}.rank-item.is-me{background:var(--team-accent);color:var(--paper);border-radius:var(--r-sm);border-bottom:none;margin:0 -14px;padding:16px 14px}.acc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.acc+.acc{margin-top:8px}.acc__head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.acc__title{align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.acc__chev{border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);width:8px;height:8px;margin-right:4px;transition:transform .2s;transform:rotate(-45deg)}.acc.is-open .acc__chev{transform:rotate(45deg)}.acc__body{max-height:0;transition:max-height .28s;overflow:hidden}.acc.is-open .acc__body{max-height:2000px}.acc__body-inner{border-top:1px solid var(--line);padding:4px 16px 16px}.person{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.person:last-child{border-bottom:none}.person__photo{border-radius:var(--r-sm);background:var(--paper-2);width:40px;height:40px;color:var(--ink);border:1px solid var(--line);flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid;overflow:hidden}.person__photo-img{object-fit:cover;width:100%;height:100%}.person__meta{flex:1;min-width:0}.person__name{font-size:14px;font-weight:700;line-height:1.2}.person__sub{color:var(--ink-muted);align-items:center;gap:6px;margin-top:3px;font-size:11px;display:flex}.cam{border-radius:var(--r-lg);border:1px solid var(--line);background:#0a0a0a;place-items:center;min-height:520px;display:grid;position:relative;overflow:hidden}.cam__video{object-fit:cover;opacity:.92;width:100%;height:100%;position:absolute;inset:0}.cam__frame{width:220px;height:220px;position:relative}.cam__corner{border:2px solid #fff;width:24px;height:24px;position:absolute}.cam__corner--tl{border-bottom:none;border-right:none;top:0;left:0}.cam__corner--tr{border-bottom:none;border-left:none;top:0;right:0}.cam__corner--bl{border-top:none;border-right:none;bottom:0;left:0}.cam__corner--br{border-top:none;border-left:none;bottom:0;right:0}.cam__beam{background:#fff;height:1.5px;animation:2.4s ease-in-out infinite cam-sweep;position:absolute;top:50%;left:6px;right:6px}@keyframes cam-sweep{0%,to{opacity:.3;transform:translateY(-80px)}50%{opacity:1;transform:translateY(80px)}}.cam__caption{text-align:center;color:#ffffffb3;letter-spacing:.06em;font-size:11px;position:absolute;bottom:16px;left:0;right:0}.result-hero{border-radius:var(--r-lg);text-align:center;border:1px solid var(--line);place-items:center;min-height:320px;padding:40px 28px;display:grid}.result-hero--correct{background:var(--team-accent);color:var(--paper);border-color:var(--team-accent)}.result-hero--wrong{background:var(--paper);color:var(--ink)}.result-hero__mark{font-size:96px;font-weight:400;line-height:.9}.result-hero__label{letter-spacing:.02em;margin-top:4px;font-size:40px;font-weight:900;line-height:1}.tab-strip{border-bottom:1px solid var(--line);gap:0;display:flex}.tab-strip__btn{all:unset;text-align:center;color:var(--ink-faint);cursor:pointer;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:12px 8px;font-size:13px;font-weight:600}.tab-strip__btn.is-active{color:var(--team-accent);border-bottom-color:var(--team-accent)}.tabbar{height:calc(72px + env(safe-area-inset-bottom));background:var(--paper);border-top:2px solid var(--line-strong);z-index:90;box-shadow:0 -4px 0 var(--paper-3);grid-template-columns:repeat(4,1fr);padding:0;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar__btn{all:unset;cursor:pointer;color:var(--ink-faint);flex-direction:row;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;transition:color .15s,background .15s;display:flex}.tabbar__btn.is-active{color:var(--ink)}.tabbar__btn svg{flex-shrink:0}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:14px}.mt-24{margin-top:24px}.admin-app{background:#f7f7f7;min-height:100vh}.admin-shell{max-width:1080px;margin:0 auto;padding:32px 20px 56px}.toast-layer{z-index:120;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:16px;right:16px}.toast-item{border-radius:var(--r-lg);min-width:260px;max-width:min(420px,100vw - 32px);color:var(--paper);background:var(--ink);padding:14px 16px;font-size:13px;line-height:1.5;box-shadow:0 12px 28px #0000002e}.toast-item--success{background:#166534}.toast-item--error{background:#991b1b}.admin-hero,.admin-section{flex-direction:column;gap:18px;display:flex}.admin-hero{flex-direction:row;justify-content:space-between;align-items:center}.admin-status-group,.admin-actions,.admin-timer-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-section{margin-top:16px}.admin-section__head,.admin-team-row,.admin-team-create,.admin-question-head,.admin-question-row,.admin-scan-row,.admin-problem-row,.admin-problem-head{align-items:center;gap:10px;display:grid}.admin-section__head{grid-template-columns:1fr auto}.admin-team-create{grid-template-columns:110px minmax(0,1fr) 110px 88px 88px}.admin-team-row{grid-template-columns:110px minmax(0,1fr) 110px 104px 88px 88px}.admin-question-head,.admin-question-row{grid-template-columns:110px 160px minmax(0,1fr) 120px 104px 104px}.admin-scan-head,.admin-scan-row{grid-template-columns:110px 160px 120px 104px 104px}.admin-question-head{color:var(--ink-muted);padding:0 4px;font-size:12px}.admin-scan-head{color:var(--ink-muted);align-items:center;gap:10px;padding:0 4px;font-size:12px;display:grid}.admin-stack{flex-direction:column;gap:10px;display:flex}.admin-list-scroll{padding-bottom:4px;overflow-x:auto}.admin-question-table{min-width:820px}.admin-scan-table{min-width:620px}.admin-color-field{padding:4px}.admin-field-mono,.admin-qid-chip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.admin-qid-chip{border-radius:var(--r-md);justify-content:flex-start;width:100%;min-height:56px;padding:0 14px}.admin-team-create__spacer{display:block}.admin-delete-btn{color:#991b1b}.admin-section-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-section-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.chip--saved{color:#166534;background:#dcfce7;border-color:#86efac}.chip--unsaved{color:#713f12;background:#fef9c3;border-color:#fde047}.admin-message{color:#166534;margin:16px 0 0}.admin-error{color:#991b1b;margin:8px 0 0}@media (width>=768px){.app{max-width:480px;box-shadow:none;margin:0 auto}.page-header,.tabbar{width:480px;left:50%;transform:translate(-50%)}}.admin-timer-duration-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-timer-duration-input{flex-shrink:0;width:120px}.admin-url-list{flex-direction:column;gap:10px;display:flex}.admin-url-item{border-bottom:1px solid var(--line);grid-template-columns:260px 1fr;align-items:start;gap:12px;padding:12px 0;display:grid}.admin-url-item:last-child{border-bottom:none}.admin-url-item__path{padding-top:2px}.admin-url-item__title{margin-bottom:2px;font-size:14px;font-weight:700}@media (width<=767px){.admin-shell{padding:20px 16px 40px}.admin-hero{flex-direction:column;align-items:flex-start}.admin-section__head,.admin-team-create,.admin-team-row{grid-template-columns:1fr}.admin-team-create__spacer{display:none}.admin-url-item{grid-template-columns:1fr}}
