:root{--ink:#17263c;--muted:#6e7b8f;--line:#e7ebf1;--navy:#12315c;--blue:#1877e8;--surface:#fff;--bg:#f5f8fc;--shadow:0 18px 45px rgba(34,63,99,.10)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 26%,#e6f1ff 0,transparent 30rem),var(--bg);color:var(--ink);font-family:Sarabun,system-ui,sans-serif;min-height:100vh}.app-shell{max-width:1440px;margin:auto;padding:22px 32px 42px}.topbar{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:9px;align-items:center;text-decoration:none;color:var(--navy);font:700 25px Kanit,sans-serif}.brand-mark{border-radius:8px;background:var(--navy);color:#fff;font-size:14px;padding:5px 7px;letter-spacing:.7px}.topbar-actions,.entry-actions,.result-footer{display:flex;align-items:center;gap:10px}.intro{text-align:center;margin:38px 0 24px}.eyebrow{letter-spacing:2px;font-weight:700;font-size:12px;color:var(--blue);margin:0}.intro h1{font:700 38px Kanit,sans-serif;line-height:1.2;margin:7px 0}.intro p:not(.eyebrow){margin:0;color:var(--muted);font-size:17px}.wheel-layout{display:grid;grid-template-columns:292px minmax(460px,1fr) 292px;gap:28px;align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.panel h2{font:600 20px Kanit,sans-serif;margin:0}.panel p{color:var(--muted);font-size:13px;margin:2px 0 0}.icon-button,.text-button{border:0;background:transparent;color:var(--blue);font:600 14px Sarabun,sans-serif;cursor:pointer}.icon-button{font-size:23px;line-height:1;padding:0 2px}.text-button.danger{color:#cc3c4a}.primary-button,.secondary-button{border-radius:10px;font:600 15px Sarabun,sans-serif;cursor:pointer;padding:10px 14px;transition:.2s}.primary-button{color:#fff;border:1px solid var(--blue);background:var(--blue);box-shadow:0 7px 14px rgba(24,119,232,.18)}.primary-button:hover{background:#0966cf}.primary-button.compact{padding:8px 12px}.secondary-button{background:#f2f7fe;border:1px solid #d8e7fa;color:#1d67bd}.secondary-button:hover{background:#e8f2ff}textarea{width:100%;height:252px;resize:vertical;border:1px solid #dfe5ed;border-radius:11px;padding:12px;font:15px/1.55 Sarabun,sans-serif;color:var(--ink);outline:none;background:#fcfdff}textarea:focus{border-color:#77b2f4;box-shadow:0 0 0 3px #e4f1ff}.entry-actions{justify-content:space-between;margin-top:12px}.toggle-row{display:flex;align-items:center;gap:10px;cursor:pointer;margin-top:23px;border-top:1px solid var(--line);padding-top:18px;font-size:14px}.toggle-row input{display:none}.toggle{width:38px;height:22px;background:#cbd5e1;border-radius:20px;position:relative;transition:.2s;flex:none}.toggle:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;top:3px;left:3px;background:#fff;box-shadow:0 1px 2px #94a3b8;transition:.2s}.toggle-row input:checked+.toggle{background:var(--blue)}.toggle-row input:checked+.toggle:after{left:19px}.toggle-row small{display:block;color:var(--muted);font-size:12px}.wheel-stage{text-align:center;position:relative}.wheel-wrap{position:relative;width:min(100%,610px);aspect-ratio:1;margin:auto;border-radius:50%;padding:11px;background:#fff;box-shadow:0 24px 55px rgba(32,63,105,.18)}canvas{display:block;width:100%;height:100%;border-radius:50%}#spinButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:105px;height:105px;border-radius:50%;border:8px solid #fff;background:var(--navy);color:#fff;cursor:pointer;box-shadow:0 4px 0 #092247,0 9px 22px #34506f;z-index:2;font:600 19px Kanit,sans-serif}#spinButton:after{content:"";position:absolute;right:-29px;top:34px;border-top:18px solid transparent;border-bottom:18px solid transparent;border-left:32px solid var(--navy);transform:rotate(0deg);z-index:-1}#spinButton small{font:600 10px Sarabun,sans-serif;letter-spacing:1px;display:block;opacity:.7}.pointer{position:absolute;left:50%;top:-13px;transform:translateX(-50%);width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:43px solid #ef465b;z-index:3;filter:drop-shadow(0 3px 2px #b32738)}.spin-hint{color:var(--muted);font-size:14px;margin:18px 0 0}.results-list{list-style:none;margin:0;padding:0;min-height:252px;max-height:330px;overflow:auto;counter-reset:result}.results-list li{counter-increment:result;display:flex;gap:9px;padding:10px 1px;border-bottom:1px solid var(--line);font-weight:600;font-size:15px}.results-list li:before{content:counter(result);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf5ff;color:var(--blue);font-size:12px;flex:none}.results-list .empty{display:block;text-align:center;color:var(--muted);font-weight:400;padding:44px 8px;border:0}.results-list .empty:before{display:none}.result-footer{justify-content:space-between;margin-top:14px}.winner-modal{position:fixed;inset:0;background:rgba(11,28,52,.57);display:grid;place-items:center;z-index:10;opacity:0;pointer-events:none;transition:.2s;padding:20px}.winner-modal.show{opacity:1;pointer-events:auto}.modal-card{width:min(440px,100%);text-align:center;background:#fff;padding:36px;border-radius:22px;box-shadow:0 25px 70px rgba(0,0,0,.25);transform:translateY(12px);transition:.25s}.winner-modal.show .modal-card{transform:none}.modal-card p{color:var(--blue);margin:0;font-size:16px}.modal-card h2{font:700 31px Kanit,sans-serif;margin:10px 0 0;line-height:1.25}.modal-card span{color:var(--muted);display:block;margin:6px 0 25px}.modal-card button{width:100%}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1100px){.wheel-layout{grid-template-columns:260px minmax(390px,1fr) 260px;gap:16px}.app-shell{padding-inline:18px}}@media(max-width:820px){.wheel-layout{grid-template-columns:1fr}.wheel-stage{grid-row:1}.entry-panel{grid-row:2}.result-panel{grid-row:3}.wheel-wrap{max-width:510px}.intro{margin-top:25px}.intro h1{font-size:32px}.panel{max-width:510px;width:100%;margin:auto}textarea{height:180px}}@media(max-width:480px){.app-shell{padding:14px}.topbar-actions .text-button{display:none}.intro h1{font-size:28px}.wheel-wrap{padding:7px}#spinButton{width:82px;height:82px;font-size:16px;border-width:6px}.pointer{top:-9px}.modal-card{padding:28px 20px}}
