@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f5f0;--card:#fffefa;--text:#30352d;--muted:#85887b;--border:#e6e6dc;--accent:#e45d45;--soft:#f3f2eb;--ball:#e8ad4c;--stage:#faf9f4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:transparent;transition:background .2s,transform .2s}button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.header{height:100px;border-bottom:1px solid var(--border);padding:0 4.4%;display:flex;align-items:center;justify-content:space-between;background:var(--card)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text);font-family:Manrope,sans-serif;font-size:22px;letter-spacing:-1px}.brand-bold{font-weight:800}.brand small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:2.25px;margin-top:5px;color:var(--muted)}.brand-icon{position:relative;background:var(--accent);width:43px;height:43px;border-radius:13px;color:#fff;font-size:39px;font-weight:800;line-height:42px;text-align:center;letter-spacing:-6px;padding-right:10px}.brand-icon span{font-size:13px;position:absolute;top:-6px;right:8px}nav{display:flex;gap:9px;align-items:center}nav button{padding:11px 14px;border-radius:9px;font-weight:550}nav button span{margin-left:5px}.nav-divider{height:23px;width:1px;background:var(--border);margin:0 4px}nav .custom-btn{border:1px solid var(--border);background:var(--card);margin-left:5px;padding:12px 18px}main{max-width:1440px;margin:auto;padding:39px 4.4% 0}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--muted);display:flex;align-items:center;gap:8px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#829276}.page-heading h1{font-family:Manrope,sans-serif;font-size:32px;letter-spacing:-1.25px;margin:13px 0 8px;line-height:1.3;font-weight:750}.page-heading h1>span{color:var(--accent)}p{line-height:1.6}.page-heading p{color:var(--muted);margin:0;font-size:13px}.local-badge{font-size:11px;display:flex;gap:7px;color:var(--muted);padding-top:35px}.local-badge>span:first-child{border:1px solid #a4b39a;border-radius:50%;width:14px;height:14px;line-height:12px;text-align:center;color:#778d65}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:23px}.stage{position:relative;background:var(--stage);border:1px solid var(--border);border-radius:18px;overflow:hidden;min-width:0;display:flex;flex-direction:column;min-height:633px;background-image:radial-gradient(var(--border) .65px,transparent .65px);background-size:18px 18px}.stage-top{display:flex;justify-content:space-between;align-items:center;padding:17px 22px}.stage-label{font-size:9px;letter-spacing:1.8px;display:flex;gap:8px;align-items:center}.stage-label .live-dot{background:var(--accent)}.icon-btn{width:30px;height:30px;border-radius:6px;font-size:21px}.raffle-title{display:flex;align-items:center;justify-content:center;gap:6px;position:relative;z-index:1}.raffle-title input{font-family:Manrope,sans-serif;font-weight:700;font-size:23px;color:var(--text);text-align:center;width:min(80%,350px);border:0;background:transparent;outline:none;text-overflow:ellipsis}.raffle-title input:focus{border-bottom:1px dashed var(--accent)}.raffle-title>span{font-size:13px;color:var(--muted);margin-left:-6px}.cage-wrap{height:342px;position:relative;margin-top:2px}canvas{width:100%;height:100%;display:block}.cage-caption{position:absolute;bottom:7px;width:100%;text-align:center;font-size:8px;letter-spacing:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 20px}.spin-zone{text-align:center;padding:16px 0 23px}.spin-btn{background:var(--accent);color:#fff;border-radius:12px;padding:17px 27px;min-width:230px;display:inline-flex;justify-content:space-between;align-items:center;font-size:17px;font-weight:600;box-shadow:0 4px 0 #00000012,0 7px 20px #df60401a}.spin-btn:hover{background:var(--accent);filter:brightness(1.05);transform:translateY(-2px)}.spin-btn>span:first-child{font-size:22px}.spin-meta{font-size:10px;color:var(--muted);margin-top:17px}.meta-dot{margin:0 8px}.keyboard-tip{font-size:9px;color:var(--muted);margin-top:12px}kbd{border:1px solid var(--border);border-radius:4px;padding:1px 5px;font:9px inherit;background:var(--card)}.stage-bottom{margin-top:auto;border-top:1px solid var(--border);padding:15px 22px;background:var(--stage);display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.stage-bottom>span:last-child{letter-spacing:1px}.entries-card{border:1px solid var(--border);background:var(--card);border-radius:16px;overflow:hidden;min-width:0}.tabs{display:flex;border-bottom:1px solid var(--border);padding:0 20px;gap:22px;height:65px}.tab{position:relative;font-weight:600;font-size:13px;padding:0 0 0 1px;display:flex;align-items:center;gap:9px;color:var(--muted)}.tab.active{color:var(--text)}.tab.active:after{position:absolute;bottom:0;height:2px;background:var(--accent);width:100%;content:''}.tab span{font-size:10px;border-radius:5px;background:var(--soft);padding:3px 6px}.tab.active span{background:#e45d4512;color:var(--accent)}.entries-intro{padding:23px 22px 15px}.entries-intro h2{font-size:14px;margin:0 0 7px;font-weight:650}.entries-intro p{margin:0;font-size:10px;color:var(--muted)}.entry-tools{display:flex;padding:0 20px;gap:8px;margin-bottom:13px}.entry-tools>button:not(.icon-btn){font-size:10px;border:1px solid var(--border);padding:7px 11px;border-radius:6px}.entry-tools .icon-btn{margin-left:auto;font-size:16px;color:var(--muted)}.editor-wrap{height:280px;display:flex;margin:0 21px;background:var(--card);overflow:hidden;border:1px solid var(--border);border-radius:8px;padding:11px 0}.editor-wrap:focus-within{border-color:#aaa997}.editor-wrap textarea{resize:none;border:0;outline:none;background:transparent;color:var(--text);padding:0 12px 0 8px;flex:1;min-width:0;font-size:12px;line-height:27px;white-space:pre;overflow:auto}.editor-wrap #lineNumbers{width:34px;flex-shrink:0;color:#b1b2a8;font-size:10px;line-height:27px;text-align:center;overflow:hidden;white-space:pre;user-select:none}.entry-bottom{display:flex;gap:6px;align-items:center;margin:12px 23px;font-size:9px;color:var(--muted)}.entry-bottom b{font-weight:500;color:var(--text)}.entry-bottom .small-dot{margin-left:auto;width:4px;height:4px;background:#93a37d;border-radius:50%}.import-card{border:1px dashed #d9dbcf;border-radius:8px;margin:20px 21px 0;padding:14px 12px;display:flex;align-items:center;gap:11px;width:calc(100% - 42px);text-align:left}.import-icon{font-size:20px;width:29px;height:29px;background:var(--soft);border-radius:7px;text-align:center;line-height:29px}.import-card strong{font-size:10px;display:block;font-weight:550}.import-card small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.import-card>span:last-child{margin-left:auto;color:var(--muted)}.entry-note{font-size:9px;color:var(--muted);line-height:1.8;margin:15px 23px}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:24px 0 26px}footer>span:first-child{display:flex;gap:9px;align-items:center}.mini-star{font-size:21px;color:#969e80}#winnerList{padding:0 20px;max-height:405px;overflow:auto}.winner-row{padding:15px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.winner-row .place{width:29px;height:29px;border-radius:50%;background:#edb84e22;color:#b78026;display:grid;place-items:center;font-size:12px}.winner-row strong{display:block;overflow-wrap:anywhere}.winner-row small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.empty{text-align:center;padding:60px 15px;color:var(--muted);font-size:12px}.empty span{font-size:38px;display:block;margin-bottom:16px}dialog{border:1px solid var(--border);border-radius:18px;background:var(--card);color:var(--text);padding:27px;max-width:510px;width:calc(100% - 30px);max-height:90vh;box-shadow:0 20px 100px #27261d25}dialog::backdrop{background:#23261e55;backdrop-filter:blur(5px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-heading h2{font-family:Manrope,sans-serif;font-size:22px;letter-spacing:-.6px;margin:8px 0 0}.close{font-size:26px;color:var(--muted)}.setting-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:22px}.setting-tabs button{flex:1;padding:12px 4px;font-size:12px;color:var(--muted)}.setting-tabs .selected{color:var(--accent);border-bottom:2px solid var(--accent)}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:550;margin-bottom:18px}.field input,.field select,.field textarea{padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--stage);color:var(--text);width:100%;min-width:0}.field input[type=color]{height:42px;padding:4px}.field small,.check small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.6}.input-row{display:flex;gap:10px}.input-row>*{flex:1}.check{display:flex;gap:9px;align-items:flex-start;margin-bottom:17px;font-size:12px}.check input{accent-color:var(--accent)}.check small{display:block;margin-top:4px}.modal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:18px;margin-top:24px;gap:10px}.modal-footer>span{font-size:10px;color:var(--muted)}.primary,.secondary{padding:11px 18px;border-radius:8px;font-weight:550;font-size:12px;text-decoration:none;display:inline-block}.primary{background:var(--accent);color:white}.primary:hover{background:var(--accent);filter:brightness(1.05)}.secondary{border:1px solid var(--border);color:var(--text);background:var(--card)}.wide{display:block;width:100%;margin-top:20px}#exportWinners{width:calc(100% - 40px);margin:20px}.info-box{border:1px solid var(--border);background:var(--soft);padding:16px;border-radius:10px;color:var(--muted);font-size:12px;line-height:1.8;overflow-wrap:anywhere}.save-options{display:grid;gap:10px}.save-options button{display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--border);border-radius:10px;padding:18px}.save-options button>span{font-size:22px;color:var(--accent)}.save-options button>span:last-child{margin-left:auto}.save-options strong{font-size:13px}.save-options small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:5px}.winner-dialog{text-align:center;padding:38px 25px;border:1px solid #e8bc66}.winner-dialog .eyebrow{justify-content:center;font-size:8px}.winner-dialog h2{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:-1px}.winner-spark{font-size:32px;color:var(--accent);margin-bottom:14px}.winner-ball{width:90px;height:90px;margin:24px auto 18px;border:7px solid #f6d385;border-radius:50%;background:radial-gradient(circle at 32% 22%,#ffedb1,#e4a132);box-shadow:0 8px 25px #d6a44c33;font-size:36px;line-height:76px;color:#a3691d}.winner-dialog h3{font-size:28px;margin:10px 0;overflow-wrap:anywhere}.winner-dialog p{color:var(--muted);font-size:12px}.winner-dialog small{display:block;margin-top:16px;color:var(--muted);font-size:10px}#countdown{display:inline-block;background:#ffffff26;border-radius:4px;margin-left:12px;padding:2px 6px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#30352d;color:white;box-shadow:0 5px 20px #0002;padding:13px 23px;border-radius:9px;z-index:10000;max-width:90vw;transition:.2s;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}#confetti{position:fixed;inset:0;pointer-events:none;z-index:1000;overflow:hidden}#confetti i{position:absolute;top:-20px;width:8px;height:13px;animation:confetti-fall 3s ease-in forwards}@keyframes confetti-fall{to{transform:translateY(105vh) rotate(720deg)}}#sharedView{max-width:650px;margin:65px auto;padding:25px}.shared-heading{text-align:center}.shared-heading .eyebrow{justify-content:center}.shared-heading h1{font:750 36px Manrope,sans-serif;overflow-wrap:anywhere}.share-disclaimer{font-size:11px;color:var(--muted);margin:30px 0}.stage:fullscreen{border-radius:0;justify-content:center;min-height:100vh}.stage:fullscreen .cage-wrap{height:55vh}.stage:fullscreen .stage-top{position:absolute;top:0;width:100%}.stage:fullscreen .stage-bottom{position:absolute;bottom:0;width:100%}body[data-theme=dark]{--bg:#1f2421;--card:#292e29;--stage:#242a25;--text:#f1f0e6;--muted:#a1aa9b;--border:#3e463d;--soft:#333c32}body[data-theme=gold]{--accent:#b78836;--bg:#f7f3e9;--stage:#fcf8ed}body[data-theme=light]{--bg:#f4f6f8;--card:#fff;--stage:#fff;--border:#e5e8eb;--soft:#f2f4f6}
@media(min-width:1500px){main{padding-top:45px}.stage{min-height:690px}.cage-wrap{height:392px}.editor-wrap{height:335px}}@media(max-width:1000px){.header{padding:0 24px}.workspace{grid-template-columns:minmax(0,1fr) 310px;gap:16px}main{padding:30px 24px 0}nav{gap:0}nav button{padding:10px}.page-heading h1{font-size:27px}.stage-bottom{padding:15px 14px;font-size:8px}.brand{font-size:19px}.brand small{font-size:7px;letter-spacing:1.8px}}@media(max-width:760px){.header{height:auto;min-height:85px;padding:18px 20px;flex-wrap:wrap;gap:20px}.brand{font-size:21px}nav{width:100%;justify-content:space-between}nav button{font-size:12px;padding:9px 6px}nav .custom-btn{padding:9px}.nav-divider{display:none}main{padding:27px 16px 0}.page-heading{margin-bottom:24px}.page-heading h1{font-size:25px;letter-spacing:-1px}.eyebrow{font-size:8px;letter-spacing:1.3px}.local-badge{display:none}.workspace{grid-template-columns:1fr}.stage{min-height:590px}.cage-wrap{height:305px}.entries-card{margin-top:5px}.editor-wrap{height:290px}.entry-note{margin-bottom:23px}footer{font-size:9px}footer>span:last-child{display:none}.raffle-title input{font-size:22px}.stage-bottom{font-size:8px}.page-heading p{font-size:12px}dialog{padding:22px}.modal-footer>span{max-width:150px}.winner-dialog h2{font-size:23px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}#confetti i{animation:none;display:none}}

.winner-order{margin:0 20px 16px;}

.draw-plan{margin:0 20px 22px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--stage)}.draw-plan h3{font-size:13px;margin:0 0 15px}.draw-plan .field{margin-bottom:12px}.draw-plan p,.draw-plan small{font-size:10px;color:var(--muted);line-height:1.6}.draw-plan small{display:block;margin-top:12px}.draw-plan .wide{margin-top:12px}.rank-status{display:block;max-width:90%;margin:0 auto 14px;font-size:11px;color:var(--accent);border:1px solid var(--border);background:var(--card);border-radius:20px;padding:8px 13px}.winner-row .place{min-width:34px;width:auto;padding:0 5px;flex-shrink:0}.winner-row>div{min-width:0}.winner-row small{line-height:1.6}.winner-ball{font-size:28px}

.winner-actions{max-width:330px;margin:24px auto 0;display:flex;flex-direction:column;gap:8px}.winner-actions button{width:100%}.winner-actions small{margin:0;font-size:10px;line-height:1.6}.winner-actions .secondary{margin-top:10px}.winner-dialog .winner-waiting{font-size:10px;margin:20px 0 0;color:var(--muted)}

.language-control{display:flex;align-items:center;gap:7px;font-size:11px;margin-left:12px}.language-control select{padding:7px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text)}.header nav{margin-left:auto}.language-control span{display:none}@media(max-width:760px){.language-control{order:1;margin-left:auto}.header nav{order:2}.header{gap:14px}}

.elimination-toggle{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto 12px;font-size:13px;cursor:pointer}.elimination-toggle input{width:18px;height:18px;accent-color:var(--accent)}.elimination-help{max-width:380px;margin:0 auto 16px;padding:0 16px;font-size:12px;line-height:1.6;color:var(--muted)}
