@import"https://fonts.googleapis.com/css2?family=Bai+Jamjuree:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap";*{box-sizing:border-box}html{background:#f5f6f7}body{margin:0;background:#f5f6f7;color:#2f363e;font:14px Inter,Arial,sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}:root{--orange:#ff4000;--ink:#2f363e;--text:#414141;--muted:#7b838b;--line:#e4e7e9;--soft:#f6f7f8}.loading,.center-page,.login-page{min-height:100vh;display:grid;place-items:center;background:#fff}.loading{gap:18px;align-content:center;color:var(--muted)}.loading img{width:160px}.eyebrow{display:block;color:#e63a00;font-size:10px;font-weight:700;letter-spacing:2px}.primary{border:1px solid var(--orange)!important;background:var(--orange)!important;color:#fff!important}.login-card,.success-card{width:min(560px,calc(100% - 32px));text-align:center}.login-card img,.success-card img{width:170px;margin-bottom:55px}.login-card h1,.success-card h1{font:600 42px/1.1 Bai Jamjuree,sans-serif;letter-spacing:-1px;margin:18px 0}.login-card p,.success-card p{font-size:16px;color:var(--muted);line-height:1.7}.login-card button{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:6px;margin:28px 0}.login-card small{display:flex;justify-content:center;align-items:center;gap:7px;color:var(--muted)}.success-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 28px;border-radius:50%;background:#edf7f1;color:#24784e}.vote-shell{min-height:100vh;background:#fff}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 42px;gap:28px}.topbar img{width:130px}.topbar>span{border-left:1px solid var(--line);padding-left:28px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.identity{margin-left:auto;text-align:right}.identity b,.identity small{display:block}.identity small{color:var(--muted);font-size:11px;margin-top:3px}.vote-main{display:grid;grid-template-columns:300px minmax(0,760px);gap:70px;max-width:1200px;margin:0 auto;padding:55px 30px}.steps{padding:8px 0}.steps h2{font:600 25px/1.3 Bai Jamjuree,sans-serif;margin:15px 0 34px}.steps>button{border:0;background:transparent;width:100%;display:flex;align-items:center;gap:13px;text-align:left;color:#8a9197;padding:10px 0}.steps>button i{display:grid;place-items:center;width:27px;height:27px;border:1px solid #d9dde0;border-radius:50%;font-style:normal;font-size:11px}.steps>button.active{color:var(--ink);font-weight:600}.steps>button.active i{border-color:var(--orange);color:var(--orange)}.steps>button.done i{background:#edf7f1;border-color:#cfe9da;color:#25784f}.progress-copy{border-top:1px solid var(--line);margin-top:24px;padding-top:24px;color:var(--muted);font-size:11px}.progress-copy b{color:var(--ink)}.progress{height:4px;background:#eceff1;margin-top:12px}.progress i{display:block;height:4px;background:var(--orange);transition:width .25s}.ballot{border-left:1px solid var(--line);padding-left:55px}.ballot-head{display:flex;justify-content:space-between;gap:20px;min-height:130px}.ballot h1{font:600 34px Bai Jamjuree,sans-serif;margin:12px 0 8px}.ballot-head p{color:var(--muted);line-height:1.6;max-width:560px}.selected-mark{height:min-content;background:#edf7f1;color:#25784f;padding:8px 10px;border-radius:5px;font-size:11px;display:flex;align-items:center;gap:5px}.search{display:flex;align-items:center;gap:10px;border:1px solid #dfe3e6;border-radius:6px;padding:0 14px;margin:22px 0 14px;color:#92999f}.search input{border:0;padding:13px 0;width:100%;outline:0}.candidate-list{display:grid;gap:8px;max-height:410px;overflow:auto;padding-right:5px}.candidate-list>label{border:1px solid var(--line);padding:14px;border-radius:7px;display:flex;align-items:center;gap:13px;cursor:pointer}.candidate-list>label.selected{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}.candidate-list input{accent-color:var(--orange)}.candidate-list .avatar{width:38px;height:38px;border-radius:50%;background:#f0f2f4;display:grid;place-items:center;font-size:11px}.candidate-list b,.candidate-list small{display:block}.candidate-list small{font-size:10px;color:var(--muted);margin-top:4px}.candidate-list label>i{margin-left:auto;color:var(--orange)}.ballot>footer,.confirm-card>footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.ballot button,.confirm-card button,.admin-shell button,.export{border:1px solid #dfe3e6;background:#fff;color:var(--text);padding:11px 15px;border-radius:6px;display:inline-flex;align-items:center;gap:7px}.ballot button:disabled{opacity:.4}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#232930b8;display:grid;place-items:center;padding:20px;z-index:20}.confirm-card{background:#fff;width:min(620px,100%);padding:34px;border-radius:10px}.confirm-card h2{font:600 28px Bai Jamjuree,sans-serif;margin:12px 0}.confirm-card>p{color:var(--muted);line-height:1.6}.review{border-top:1px solid var(--line);margin-top:24px}.review div{padding:15px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.review span{color:var(--muted);font-size:12px}.error{color:#b42318!important;background:#fef3f2;padding:10px}.admin-shell{min-height:100vh;background:var(--soft);display:grid;grid-template-columns:230px 1fr}.admin-shell>aside{background:#fff;border-right:1px solid var(--line);padding:33px 22px;display:flex;flex-direction:column}.admin-shell>aside img{width:155px}.product{font-size:9px;letter-spacing:1.7px;color:var(--muted);margin:10px 5px 40px}.admin-shell nav{display:grid;gap:7px}.admin-shell nav button{text-align:left;border:0;background:transparent}.admin-shell nav button.active{background:#fff0e9;color:#e23b05}.admin-shell>aside small{margin-top:auto;color:var(--muted)}.admin-shell>main{padding:38px 48px;max-width:1500px}.admin-shell main>header{display:flex;justify-content:space-between;align-items:center}.admin-shell h1{font:600 34px Bai Jamjuree,sans-serif;margin:10px 0 4px}.admin-shell header p,.admin-actions p{color:var(--muted)}.export{text-decoration:none}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.admin-metrics>div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px}.admin-metrics span{display:block;color:var(--muted);font-size:11px}.admin-metrics strong{display:block;font:500 34px Bai Jamjuree,sans-serif;margin-top:12px}.admin-metrics .dark{background:var(--ink);color:#fff}.admin-metrics .dark span{color:#cbd0d3}.status-text{text-transform:uppercase;font-size:20px!important;color:var(--orange)}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-actions>div,.ranking{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px}.admin-actions h2,.ranking h2{font:600 19px Bai Jamjuree,sans-serif;margin:0}.upload{display:inline-flex;gap:7px;align-items:center;border:1px solid var(--orange);color:var(--orange);padding:10px;border-radius:5px;cursor:pointer}.upload input{display:none}.action-row{display:flex;gap:8px}.notice{background:#fff5ed;color:#974a20;padding:12px;border-radius:6px}.ranking{margin-top:15px}.ranking-head{display:flex;justify-content:space-between;gap:20px}.tabs{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.tabs button{font-size:10px;padding:7px 9px}.tabs button.active{border-color:var(--orange);color:var(--orange)}.rank-table{margin-top:24px}.rank-row{display:grid;grid-template-columns:80px 1fr 70px 70px 70px 70px;align-items:center;border-top:1px solid var(--line);padding:14px 10px;gap:10px}.rank-row.heading{font-size:9px;text-transform:uppercase;color:var(--muted);background:#fafbfb}.rank-row .position{font-weight:600}.rank-row.top .position{color:var(--orange)}.rank-row span:nth-child(2){position:relative}.rank-row span:nth-child(2) i{display:block;height:3px;background:#ffd8ca;margin-top:7px}.rank-row strong{font-size:17px}.empty{text-align:center;padding:25px;color:var(--muted)}@media (max-width:850px){.vote-main{grid-template-columns:1fr;padding-top:30px;gap:30px}.steps{display:none}.ballot{border:0;padding:0}.topbar{padding:0 18px}.topbar>span{display:none}.identity{max-width:180px}.admin-shell{grid-template-columns:1fr}.admin-shell>aside{display:none}.admin-shell>main{padding:25px 16px}.admin-shell main>header,.ranking-head{display:block}.export{margin-top:12px}.admin-metrics{grid-template-columns:1fr 1fr}.admin-actions{grid-template-columns:1fr}.rank-row{grid-template-columns:55px 1fr 45px 45px}.rank-row>*:nth-child(4),.rank-row>*:nth-child(5){display:none}}.setup-card{width:min(520px,calc(100% - 32px));display:grid;gap:16px;text-align:center}.setup-card img{width:160px;margin:0 auto 28px}.setup-card h1{font:600 36px Bai Jamjuree,sans-serif;margin:0}.setup-card p{color:var(--muted);line-height:1.6}.setup-card input{border:1px solid var(--line);border-radius:6px;padding:13px}.setup-card button{justify-content:center;padding:13px;border-radius:6px}.login-card .demo-actions{display:flex;justify-content:center;gap:18px;margin:-14px auto 28px}.login-card .demo-button{display:block;margin:0;border:0;background:transparent;color:var(--orange);padding:6px 10px;cursor:pointer}
