:root{font-family:Inter,Noto Sans Thai,Segoe UI,ui-sans-serif,system-ui,sans-serif;color:#15213d;background:#eef2f7;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #15213d;--muted: #66738f;--line: #dbe3ef;--surface: #ffffff;--surface-soft: #f5f8fc;--navy: #10244a;--blue: #2c63d6;--green: #0b8c78;--danger: #b33d4d;--shadow: 0 18px 50px rgba(28, 52, 92, .09)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#eef2f7}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 86% 4%,#f9fbff 0,#eef2f7 44rem)}body,button,input,select,textarea{font:inherit}a{color:inherit}button,a,select,input,textarea{-webkit-tap-highlight-color:transparent}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(44,99,214,.3);outline-offset:3px}input,select,textarea{width:100%;border:1px solid #cbd6e6;border-radius:12px;background:#fff;color:var(--ink);padding:11px 13px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input:hover,select:hover,textarea:hover{border-color:#9eb1ce}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #2c63d61a;outline:0}textarea{min-height:110px;resize:vertical}code{overflow-wrap:anywhere;color:#42526f}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{color:var(--ink)}p{color:var(--muted);line-height:1.65}ul{padding-left:1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;padding:24px clamp(20px,5vw,76px) 36px}.home-header,.home-layout,.workspace-panel,.home-footer{width:min(1180px,100%);margin-inline:auto}.home-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 0 28px}.brand-lockup{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand-lockup>span:last-child{color:var(--navy);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--navy);color:#fff;font-size:.72rem;font-weight:850;letter-spacing:.03em;box-shadow:0 8px 18px #10244a2e}.language-switcher{display:inline-flex;align-items:center}.language-switcher select{width:auto;min-width:92px;border-radius:999px;background:#ffffffb8;padding:8px 30px 8px 12px;font-size:.84rem;font-weight:700}.home-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:26px;align-items:stretch}.hero{min-height:370px;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,5vw,64px);border:1px solid rgba(255,255,255,.6);border-radius:28px;background:linear-gradient(135deg,#122952,#1d427b 65%,#2b6cc4);box-shadow:0 24px 55px #10244a2e}.hero .eyebrow{margin-bottom:18px;color:#b7d2ff}.eyebrow{margin:0 0 8px;color:#66738f;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.home-hero h1{max-width:760px;margin:0;color:#fff;font-size:clamp(3.4rem,8vw,7rem);letter-spacing:-.07em;line-height:.9}.home-hero .subtitle{max-width:680px;margin:22px 0 0;color:#d9e6ff;font-size:clamp(1rem,2vw,1.2rem);line-height:1.8}.hero-status{display:inline-flex;align-items:center;gap:9px;width:fit-content;margin-top:30px;border:1px solid rgba(183,210,255,.25);border-radius:999px;padding:8px 13px;color:#e9f1ff;font-size:.82rem;font-weight:750}.status-dot{width:8px;height:8px;border-radius:999px;background:#76e0bd;box-shadow:0 0 0 5px #76e0bd1f}.hero-visual{min-height:370px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:28px;border-radius:28px;background:#dff4f0;color:var(--navy);box-shadow:var(--shadow)}.hero-visual-label{font-size:.74rem;font-weight:850;letter-spacing:.12em}.hero-visual-code{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;align-items:end;height:150px;padding:20px;border-radius:24px;background:#b9e9df;transform:rotate(-6deg)}.hero-visual-code span{display:block;height:64%;border-radius:999px 999px 3px 3px;background:var(--green)}.hero-visual-code span:nth-child(2){height:92%;background:#1e5c71}.hero-visual-code span:nth-child(3){height:48%;background:#df9b34}.hero-visual-code span:nth-child(4){height:78%;background:var(--navy)}.hero-visual-footer{display:flex;justify-content:space-between;gap:8px;font-size:.7rem;font-weight:850;letter-spacing:.11em}.hero-visual-footer strong{color:var(--green)}.workspace-panel{margin-top:26px;padding:clamp(22px,4vw,36px);border:1px solid var(--line);border-radius:24px;background:#ffffffd1;box-shadow:var(--shadow)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.section-heading h2{margin:2px 0 0;font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.04em}.section-heading p:last-child{max-width:360px;margin:0;font-size:.9rem}.section-kicker{margin:0;color:var(--blue);font-size:.7rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.home-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.workspace-card{position:relative;min-height:168px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;overflow:hidden;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.workspace-card:after{position:absolute;right:-30px;bottom:-52px;width:120px;height:120px;border-radius:50%;background:var(--card-accent, #dce8ff);content:"";opacity:.55;transition:transform .2s ease}.workspace-card:hover{border-color:var(--card-accent, #9eb1ce);box-shadow:0 14px 28px #1c345c1a;transform:translateY(-4px)}.workspace-card:hover:after{transform:scale(1.18)}.workspace-card-blue{--card-accent: #bed2ff}.workspace-card-green{--card-accent: #b9e9df}.workspace-card-amber{--card-accent: #f5dfb5}.workspace-index{position:relative;z-index:1;color:var(--card-accent, #2c63d6);font-size:.76rem;font-weight:900;letter-spacing:.08em}.workspace-card-copy{position:relative;z-index:1;display:grid;gap:7px}.workspace-card-copy h3{margin:0;font-size:1.05rem;letter-spacing:-.02em}.workspace-card-copy span{max-width:22rem;color:var(--muted);font-size:.82rem;line-height:1.55}.workspace-arrow{position:absolute;z-index:2;right:18px;bottom:16px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;font-size:1rem}.home-footer{display:flex;justify-content:space-between;gap:18px;padding:18px 2px 0;color:#7886a0;font-size:.72rem;font-weight:700}.staff-gate{min-height:100vh;background:radial-gradient(circle at 90% 5%,#f9fbff 0,#eef2f7 36rem)}.staff-session-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;width:min(1240px,calc(100% - 40px));margin-inline:auto;padding:11px 0;color:#6d7b95;font-size:.76rem}.staff-session-bar button{padding:0;background:transparent;color:var(--blue);font-weight:800}.staff-shell{min-height:calc(100vh - 46px)}.staff-header{display:flex;align-items:center;gap:18px;width:min(1240px,calc(100% - 40px));margin-inline:auto;padding:20px 0 22px}.staff-header .brand-lockup{margin-right:auto}.staff-header .role-badge{border:1px solid #cbd6e6;border-radius:999px;background:#ffffffb3;padding:8px 12px;color:#55627b;font-size:.76rem;font-weight:750}.staff-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;width:min(1240px,calc(100% - 40px));margin-inline:auto}.staff-sidebar{position:sticky;top:18px;align-self:start;display:flex;flex-direction:column;min-height:430px;padding:18px 10px;border:1px solid var(--line);border-radius:20px;background:#ffffffb8;box-shadow:0 10px 28px #1c345c0d}.sidebar-kicker{margin:2px 12px 12px;color:#8793a8;font-size:.68rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.staff-nav{display:grid;gap:4px}.staff-nav-link{display:flex;align-items:center;gap:11px;min-height:48px;border-radius:12px;padding:10px 11px;color:#5d6b84;font-size:.86rem;font-weight:750;text-decoration:none;transition:background .18s ease,color .18s ease,transform .18s ease}.staff-nav-link:hover{background:#eef3fb;color:var(--navy);transform:translate(2px)}.staff-nav-link.is-active{background:var(--navy);color:#fff;box-shadow:0 10px 22px #10244a2e}.nav-index{width:22px;color:#8ea0bd;font-size:.68rem;font-weight:900}.staff-nav-link.is-active .nav-index{color:#a9c5ff}.sidebar-note{margin:auto 12px 4px;color:#9aa6b9;font-size:.7rem;line-height:1.55}.staff-content{min-width:0;padding-bottom:60px}.staff-page,.dashboard-page{width:100%;max-width:920px;margin:0 auto;padding:14px 0 24px}.staff-page>h1,.dashboard-page h1{margin:0 0 10px;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.06em;line-height:1}.staff-page>p:not(.eyebrow),.dashboard-page>header p{max-width:680px}.staff-page>section,.dashboard-page>section,.report-export-panel{margin-top:18px;padding:clamp(18px,3vw,26px);border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 10px 30px #1c345c0d}.staff-page>section>h2,.dashboard-page>section>h2{margin:0 0 15px;font-size:1.15rem;letter-spacing:-.025em}.staff-page form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px}.staff-page label,.auth-page label,.voter-page label{display:grid;gap:7px;color:#4d5a73;font-size:.8rem;font-weight:800}.staff-page button,.auth-page button,.voter-page button{border-radius:11px;background:var(--navy);padding:11px 15px;color:#fff;font-size:.82rem;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.staff-page button:hover:not(:disabled),.auth-page button:hover:not(:disabled),.voter-page button:hover:not(:disabled){background:#1b3970;box-shadow:0 8px 18px #10244a26;transform:translateY(-1px)}.staff-page section>select,.staff-page section>input[type=file]{max-width:520px}.staff-page section>p{margin:9px 0 0}.staff-page section>form+p,.staff-page section>form~p{margin-top:14px}.topic-card,.report-topic{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--surface-soft)}.topic-card>header{display:flex;justify-content:space-between;gap:12px;align-items:start}.topic-card>header span{border-radius:999px;background:#e5edf9;padding:4px 8px;color:var(--blue);font-size:.7rem;font-weight:800;white-space:nowrap}.topic-card ul,.report-topic ul{margin-block:12px;color:#63718a}.topic-actions,.dialog-actions,.report-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.topic-actions input{flex:1 1 220px}.topic-editor{display:grid;gap:12px;margin-top:14px}.roster-revision-control,.emergency-reset-control,.global-reset-control{border-color:#ead8b5!important;background:#fffaf0!important}.roster-revision-control strong{color:#92611c}.emergency-reset-control button,.global-reset-control button{background:var(--danger)}.error-list{margin:14px 0;border-left:3px solid #d45b6c;padding-left:16px;color:#a33447;font-size:.82rem}.runtime-error,.success-message{border-radius:12px;padding:12px 14px;font-size:.84rem;font-weight:700}.runtime-error{background:#fff0f2;color:#a33447}.success-message{background:#e8f8f3;color:#087363}.auth-screen{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;width:min(100%,1100px);margin:0 auto;padding:24px clamp(18px,5vw,52px) 22px}.auth-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.auth-back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:800;text-decoration:none}.auth-back-link:hover{color:var(--navy)}.auth-back-link span{color:var(--blue);font-size:1.1rem}.auth-card{align-self:center;justify-self:center;width:min(100%,440px);margin:clamp(28px,8vh,84px) 0;padding:clamp(24px,4vw,34px);border:1px solid var(--line);border-radius:24px;background:#ffffffe6;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:11px;padding-bottom:26px;border-bottom:1px solid #edf1f6}.auth-brand-copy{display:grid;gap:3px}.auth-brand-copy strong{color:var(--navy);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.auth-brand-copy span{color:#8b98ad;font-size:.72rem;font-weight:700}.auth-card-heading{padding-top:28px}.auth-card-heading .eyebrow{margin-bottom:9px;color:var(--blue)}.auth-card-title{margin:0;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.065em;line-height:1}.auth-card-heading>p:not(.eyebrow){margin:13px 0 0;font-size:.9rem;line-height:1.65}.auth-form{display:grid;gap:15px;margin-top:27px}.auth-form label{display:grid;gap:7px;color:#4d5a73;font-size:.78rem;font-weight:800}.auth-form input{min-height:48px}.auth-submit{width:100%;min-height:48px;margin-top:4px;border-radius:12px;background:var(--navy);color:#fff;font-size:.84rem;font-weight:850}.auth-submit:hover:not(:disabled){background:#1b3970;box-shadow:0 10px 22px #10244a29;transform:translateY(-1px)}.auth-error{margin:16px 0 0;border:1px solid #f2cbd1;border-radius:11px;background:#fff3f4;padding:11px 13px;color:#a33447;font-size:.8rem;line-height:1.5}.auth-hint{margin:20px 0 0;color:#8a97aa;font-size:.72rem;line-height:1.55;text-align:center}.auth-footer{margin:0;color:#7886a0;font-size:.72rem;font-weight:700;text-align:center}.dashboard-page,.presentation-page,.voter-page{min-height:100vh}.dashboard-page>header{margin-bottom:20px}.dashboard-page>header h2{margin:0;color:var(--muted);font-size:1.05rem;font-weight:650}.dashboard-page{padding-top:36px}.dashboard-metrics,.presentation-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dashboard-metrics article{display:grid;gap:9px;border:1px solid var(--line);border-radius:15px;padding:17px;background:#fff}.dashboard-metrics span,.presentation-metrics span{color:var(--muted);font-size:.77rem;font-weight:750}.dashboard-metrics strong{color:var(--navy);font-size:1.65rem;letter-spacing:-.05em}.dashboard-page>section>ul,.presentation-page>section>ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.dashboard-page>section>ul li,.presentation-page>section>ul li{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #edf1f6;padding:11px 0;color:#52617b}.participation-lists{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}.participation-lists article{min-height:160px;border:1px solid var(--line);border-radius:18px;padding:20px;background:#fff;box-shadow:0 10px 25px #1c345c0d}.participation-lists h2{margin:0;font-size:1rem}.presentation-page{position:relative;max-width:1050px;margin:auto;padding:34px 24px}.presentation-page>.language-switcher{position:absolute;top:28px;right:24px}.presentation-page>header{padding:42px 0 22px}.presentation-page h1{max-width:780px;margin:0 0 9px;font-size:clamp(2.3rem,6vw,5.6rem);letter-spacing:-.07em;line-height:.95}.presentation-page>section{margin-top:16px;border:1px solid var(--line);border-radius:22px;padding:22px;background:#fff}.presentation-metrics{grid-template-columns:1.3fr 1fr 1fr;align-items:center}.presentation-metrics strong{color:var(--navy);font-size:2.3rem;letter-spacing:-.06em}.voter-page{display:grid;place-content:center;gap:12px;width:min(620px,calc(100% - 32px));margin:auto;padding:28px 0}.voter-page>*{width:100%}.voter-page>.language-switcher{width:auto;justify-self:end}.voter-page h1{margin:0;font-size:clamp(2rem,7vw,3.9rem);letter-spacing:-.06em;line-height:1}.voter-page>p:not(.eyebrow),.voter-page>section{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff;box-shadow:var(--shadow)}.voter-page form{display:grid;gap:14px;border:1px solid var(--line);border-radius:18px;padding:20px;background:#fff;box-shadow:var(--shadow)}.vote-option{display:flex!important;align-items:center;gap:11px!important;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.vote-option:has(input:checked){border-color:var(--blue);background:#f0f5ff;box-shadow:0 0 0 3px #2c63d617}.vote-option input{width:auto;accent-color:var(--blue)}.recovery-page{max-width:540px}.report-summary{display:grid;gap:4px}.closure-window{display:grid;gap:4px;margin-top:10px;border-left:3px solid #9bb7ec;padding:10px 12px;background:#f8faff;color:#62718d;font-size:.8rem}.report-export-panel h2{margin-top:0}.dialog-actions{justify-content:flex-end}.vote-confirm-dialog{max-width:520px;margin:auto;border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff;box-shadow:var(--shadow)}@media(max-width:820px){.home-layout{grid-template-columns:1fr}.hero,.hero-visual{min-height:300px}.home-actions,.dashboard-metrics{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column;gap:8px}.staff-layout{grid-template-columns:1fr}.staff-sidebar{position:static;min-height:0;padding:12px}.staff-nav{grid-template-columns:repeat(3,1fr)}.staff-nav-link{justify-content:center;text-align:center}.nav-index{display:none}}@media(max-width:560px){.app-shell{padding-inline:14px}.home-header{padding-bottom:16px}.home-header .brand-lockup>span:last-child{font-size:.68rem}.brand-mark{width:34px;height:34px;border-radius:10px}.hero{min-height:330px;padding:28px 22px;border-radius:22px}.hero-visual{min-height:250px;border-radius:22px}.home-hero h1{font-size:clamp(3.1rem,18vw,5rem)}.workspace-panel{padding:18px;border-radius:19px}.home-footer{flex-direction:column;gap:4px}.staff-session-bar,.staff-header,.staff-layout{width:min(100% - 28px,1240px)}.staff-header{flex-wrap:wrap}.staff-header .role-badge{order:3;width:100%;text-align:center}.staff-nav{grid-template-columns:1fr}.staff-nav-link{justify-content:flex-start;text-align:left}.nav-index{display:inline-block}.staff-page form{grid-template-columns:1fr}.dashboard-page{padding-top:22px}.participation-lists,.presentation-metrics{grid-template-columns:1fr}.presentation-page{padding-inline:16px}.presentation-page>.language-switcher{right:16px}.auth-screen{padding-inline:14px}.auth-card{margin-block:26px;border-radius:20px}.auth-card-title{font-size:clamp(2rem,12vw,2.9rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.staff-header,.staff-sidebar,.staff-session-bar,.language-switcher,button{display:none!important}.staff-layout{display:block;width:100%}.staff-content,.staff-page{max-width:none;padding:0}.staff-page>section,.dashboard-page>section,.report-export-panel{box-shadow:none;break-inside:avoid}}
