:root{--brand:#c50e2f;--brand-dark:#8a0a20;--brand-darker:#5c0715;--brand-orange:#f4791f;--brand-gradient:linear-gradient(135deg, var(--brand-orange) 0%, var(--brand) 65%);--brand-gradient-dark:linear-gradient(180deg, var(--brand-darker) 0%, var(--brand) 100%);--color-bg:#f7f5f4;--color-surface:#fff;--color-border:#e7dfdd;--color-text:#221a1a;--color-muted:#6b6260;--color-primary:var(--brand);--color-primary-hover:var(--brand-dark);--color-danger:#b3261e;--color-danger-hover:#8c1e18;--color-success-bg:#eaf7ee;--color-success-border:#b7e4c4;--color-success-text:#1e7a3d;--color-error-bg:#fdecec;--color-error-border:#f3c2c2;--color-error-text:#96261f;--color-warning-bg:#fff4e8;--color-warning-border:#f6d6a8;--color-warning-text:#8a5210;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary)}.fullscreen-center{text-align:center;background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.error-screen h1{color:var(--color-error-text)}.page{max-width:1100px;margin:0 auto;padding:24px 20px 80px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.header-actions{align-items:center;gap:16px;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin-bottom:20px;padding:20px 24px;box-shadow:0 1px 2px #221a1a0a}.card h2{margin-top:0}.section-header-row{justify-content:space-between;align-items:center;display:flex}.login-card{border-top:4px solid #0000;border-image:var(--brand-gradient) 1;min-width:320px;max-width:380px}.subtitle{color:var(--color-muted);margin-top:-8px}.field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.field span{color:var(--color-muted);font-size:13px}.field input,.field select{border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;font-size:14px}.field input:focus,.field select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #c50e2f1f}.checkbox-field{align-items:center;gap:6px;font-size:14px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.button-row{flex-wrap:wrap;gap:12px;display:flex}.btn{cursor:pointer;background:var(--color-surface);color:var(--color-text);border:1px solid #0000;border-radius:8px;padding:8px 16px;font-size:14px;text-decoration:none;transition:filter .15s,background .15s;display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-gradient);color:#fff;border-color:#0000}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-small{padding:4px 10px;font-size:12px}.btn-link{color:var(--brand);cursor:pointer;background:0 0;border:none;margin-bottom:4px;padding:0;font-size:13px;text-decoration:underline;display:block}.link-list{flex-direction:column;display:flex}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 10px;font-size:14px}.table th{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.table-scroll{max-height:420px;overflow-y:auto}.clickable-row{cursor:pointer}.clickable-row:hover{background:var(--color-bg)}.muted{color:var(--color-muted)}.hint{color:var(--color-muted);margin-top:4px;font-size:12px}.badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-green{background:var(--color-success-bg);color:var(--color-success-text)}.badge-gray{color:var(--color-muted);background:#f1eeed}.badge-blue{color:var(--brand);background:#fbe9ec}.banner{border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:14px}.banner-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.banner-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.banner-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.banner-critical{border-width:2px;padding:20px 24px;font-size:18px}.session-type-badge{letter-spacing:.04em;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:700;display:inline-block}.session-type-production{background:var(--brand-darker);color:#fff}.session-type-rehearsal{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:20px;display:flex}.tab{cursor:pointer;color:var(--color-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 18px;font-size:14px}.tab-active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.progress-list{flex-direction:column;gap:14px;display:flex}.progress-item-header{justify-content:space-between;margin-bottom:4px;font-size:14px;display:flex}.progress-bar-track{background:#f1eeed;border-radius:999px;height:10px;overflow:hidden}.progress-bar-fill{background:var(--brand-gradient);height:100%;transition:width .3s}.results-controls{flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.results-session-group{margin-bottom:28px}.results-session-group h3{border-bottom:2px solid var(--brand);margin-bottom:10px;padding-bottom:6px;font-size:15px;font-weight:600}.results-session-group:last-child{margin-bottom:0}.admin-shell{min-height:100vh;display:flex}.admin-sidebar{background:var(--brand-gradient-dark);color:#fff;flex-direction:column;flex-shrink:0;width:236px;padding:20px 16px;display:flex}.admin-sidebar-brand{letter-spacing:.02em;align-items:center;gap:10px;padding:8px 8px 24px;font-size:15px;font-weight:700;display:flex}.admin-sidebar-logo{background:#ffffff29;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:flex}.admin-sidebar-nav{flex-direction:column;gap:2px;display:flex}.admin-sidebar-link{color:#ffffffd9;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex}.admin-sidebar-link:hover{color:#fff;background:#ffffff1a}.admin-sidebar-link.active{color:#fff;background:#ffffff2e;font-weight:600}.admin-sidebar-footer{color:#ffffff8c;align-items:center;gap:8px;margin-top:auto;padding:12px 8px 4px;font-size:11px;display:flex}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-topbar{border-bottom:1px solid var(--color-border);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex}.admin-breadcrumb{color:var(--color-muted);align-items:center;gap:6px;font-size:13px;display:flex}.admin-breadcrumb strong{color:var(--color-text);font-weight:600}.admin-topbar-actions{align-items:center;gap:14px;display:flex}.admin-content{flex:1;width:100%;max-width:1200px;padding:28px 32px 80px}.display-screen{color:#fdf3ef;background:radial-gradient(circle at 50% 20%,#2b0710 0%,#120207 60%,#05010a 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;font-family:inherit;display:flex;position:relative;overflow:hidden}.display-status-dot{z-index:20;position:fixed;top:14px;right:14px}.fullscreen-btn{z-index:20;color:#fdf3ef;background:#ffffff14;border-color:#fff3;position:fixed;bottom:20px;right:20px}.rehearsal-banner{z-index:10;background:var(--brand-gradient);color:#fff;text-align:center;letter-spacing:.1em;padding:10px 0;font-size:24px;font-weight:700;position:fixed;top:0;left:0;right:0}.display-brand{letter-spacing:.05em;color:#fdf3efa6;font-size:18px;position:absolute;top:20px;left:24px}.display-main{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:0 40px;display:flex}.display-idle-text{color:#fdf3efb3;font-size:clamp(28px,3vw,56px)}.display-prize-name{color:var(--brand-orange);margin:0;font-size:clamp(24px,2.5vw,48px);font-weight:700}.display-roulette{min-width:8ch;position:relative}.display-roll-name{margin:0;font-size:clamp(40px,6vw,100px);font-weight:700;line-height:1.3}.display-roll-dept{color:#fdf3efb3;margin:4px 0 0;font-size:clamp(20px,2vw,40px)}@keyframes roll-tick{0%{opacity:.4;transform:translateY(-14%)}to{opacity:1;transform:translateY(0)}}.display-roll-tick{animation:90ms ease-out roll-tick}.display-winner-name{background:var(--brand-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(56px,8vw,140px);font-weight:800}.display-winner-dept{color:#fdf3efe0;margin:0;font-size:clamp(28px,3.5vw,64px)}.display-remaining{color:#fdf3ef99;font-size:18px;position:fixed;bottom:20px;left:24px}.display-screen.effect-clock{color:#e8c39e;background:radial-gradient(circle at 50% 35%,#b8860b14 0%,#0000 55%),repeating-linear-gradient(115deg,#0d0d10 0 2px,#0a0a0c 2px 4px);transition:filter .6s,background-color .6s}.display-screen.effect-clock.clock-hushing{filter:brightness(.35)saturate(.7)}.display-screen.effect-clock.clock-hushing .clock-gear{filter:blur(3px);opacity:.25}.clock-frame{background:linear-gradient(160deg,#ffffff08,#0003);border:1px solid #e8c39e59;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:56px 88px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #e8c39e1f,inset 0 2px 18px #0009,0 0 60px #b8860b0f}.clock-gear{opacity:.5;pointer-events:none;border:10px dashed #e8c39e24;border-radius:50%;width:220px;height:220px;margin-top:-110px;transition:filter .6s,opacity .6s;position:absolute;top:50%}.clock-gear-left{animation:40s linear infinite clock-gear-spin;left:-140px}.clock-gear-right{animation:55s linear infinite reverse clock-gear-spin;right:-140px}@keyframes clock-gear-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clock-bezel-tick{opacity:.4;pointer-events:none;background-image:repeating-linear-gradient(90deg,#e8c39e8c 0 1px,#0000 1px 10px);background-size:200% 100%;height:6px;animation:6s linear infinite clock-bezel-flow;position:absolute;left:28px;right:28px}.clock-bezel-tick-top{top:10px}.clock-bezel-tick-bottom{bottom:10px}@keyframes clock-bezel-flow{0%{background-position:0 0}to{background-position:-200px 0}}.clock-subdial{pointer-events:none;background:radial-gradient(circle,#e8c39e0f,#0000 70%);border:1px solid #e8c39e4d;border-radius:50%;width:40px;height:40px;position:absolute;bottom:20px;right:20px}.clock-subdial-hand{transform-origin:bottom;background:#e8c39ea6;width:1px;height:15px;animation:60s linear infinite clock-subdial-spin;position:absolute;bottom:50%;left:50%}@keyframes clock-subdial-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clock-brand{letter-spacing:.35em;color:#e8c39eb3;background:#0a0a0c;margin:0;padding:2px 18px;font-family:Cinzel,Shippori Mincho,serif;font-size:14px;font-weight:700;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.clock-idle-text{letter-spacing:.1em;color:#e8c39e8c;margin:0;font-family:Shippori Mincho,serif;font-size:clamp(24px,2.5vw,44px)}.clock-dial{flex-direction:column;align-items:center;gap:12px;transition:opacity .5s;display:flex}.clock-dial-hushing{opacity:.85}.clock-prize-name{letter-spacing:.08em;color:#e8c39ed9;margin:0;font-family:Shippori Mincho,serif;font-size:clamp(20px,2.2vw,40px);font-weight:600}.clock-roulette{min-width:8ch;position:relative}.clock-roll-name{filter:drop-shadow(0 2px 3px #0009);margin:0;font-family:Cinzel,Shippori Mincho,serif;font-size:clamp(36px,5.5vw,96px);font-weight:700;line-height:1.3}.clock-reel-row{display:inline-flex}.clock-reel-char{text-align:center;background:linear-gradient(160deg,#f4e2c6 0%,#e8c39e 45%,#b8860b 100%);color:#0000;-webkit-background-clip:text;background-clip:text;min-width:.55em;display:inline-block}@keyframes clock-roll-tick{0%{opacity:.35;transform:translateY(-14%)}to{opacity:1;transform:translateY(0)}}.clock-reel-char-tick{animation:90ms ease-out clock-roll-tick}.clock-roll-dept{color:#e8c39e99;margin:0;font-family:Shippori Mincho,serif;font-size:clamp(18px,1.8vw,34px)}.clock-revealed{position:relative}.clock-ambient-glow{pointer-events:none;background:radial-gradient(circle,#e8c39e47 0%,#0000 70%);animation:1.2s ease-out clock-glow-in;position:absolute;inset:-60px}.clock-glare{pointer-events:none;position:absolute;inset:0;overflow:hidden}.clock-glare:before{content:"";background:linear-gradient(100deg,#0000 0%,#ffffff59 50%,#0000 100%);width:40%;height:200%;animation:.9s ease-out .15s both clock-glare-sweep;position:absolute;top:-50%;left:-60%;transform:rotate(12deg)}@keyframes clock-glare-sweep{0%{left:-60%}to{left:130%}}@keyframes clock-glow-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes clock-lock-in{0%{opacity:.6;transform:scale(.94)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.clock-winner-name{filter:drop-shadow(0 3px 6px #000000b3);margin:0;font-family:Cinzel,Shippori Mincho,serif;font-size:clamp(48px,7.5vw,128px);font-weight:800}.clock-reel-char-lock{animation:.5s cubic-bezier(.34,1.56,.64,1) both clock-lock-in}.clock-winner-dept{color:#e8c39ebf;margin:0;font-family:Shippori Mincho,serif;font-size:clamp(24px,3vw,56px)}.print-only{display:none}@media print{.no-print,.admin-sidebar,.admin-topbar{display:none!important}.print-only{display:block}body,.page{background:#fff;max-width:none;margin:0;padding:0}.print-title{margin:0 0 12px;font-size:18px;font-weight:700}.card{box-shadow:none;border:none;margin:0;padding:0}.table th,.table td{color:#000;border-bottom:1px solid #999}a[href]:after{content:""}}
