:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f5f7fc;--surface:#fff;--surface2:#f1f3fa;--text:#202944;--muted:#69748a;--line:#e2e7f0;--purple:#6853db;--purple-bg:#efecff;--teal:#087d68;--teal-bg:#e9f8f2;--red:#ba3453;--red-bg:#fff0f3;--shadow:0 5px 25px #29395b06}
:root[data-theme=dark]{color-scheme:dark;--bg:#101624;--surface:#1a2235;--surface2:#212c42;--text:#edf1fb;--muted:#a4aec3;--line:#354159;--purple:#b5a5ff;--purple-bg:#302945;--teal:#73dec4;--teal-bg:#193e37;--red:#ff9eb1;--red-bg:#412b36;--shadow:0 5px 25px #0001}
*{box-sizing:border-box}body.cca-app{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:var(--purple);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(27px,3.2vw,40px);letter-spacing:-1.2px;line-height:1.2}h2{font-size:19px;letter-spacing:-.4px}h3{font-size:18px;line-height:1.35}p{color:var(--muted)}.app-shell{max-width:1470px;margin:auto;padding:0 40px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:94px;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-weight:750;font-size:21px;line-height:1.2;letter-spacing:-.5px}.brand small{display:block;font-size:8px;letter-spacing:1.8px;color:var(--muted);font-weight:600;margin-top:6px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;background:#7560e8;border-radius:13px;font-size:32px;color:white;flex-shrink:0}.top-actions,.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:11px 17px;font-size:13px;font-weight:650;line-height:1.4;color:var(--text);background:var(--surface2);min-height:42px}.button:hover:not(:disabled){filter:brightness(.96)}.primary{background:#6e57dc;color:#fff}.secondary{background:var(--surface);border-color:var(--line)}.ghost{background:transparent;border-color:var(--line)}.teal-btn{background:var(--teal-bg);color:var(--teal);border-color:var(--teal)}.danger{color:var(--red)}.active{color:var(--teal);border-color:var(--teal)}.icon-btn{padding:8px 11px;min-width:40px}.theme-toggle{width:42px;height:42px;padding:0;background:var(--surface);border-color:var(--line);font-size:25px;line-height:1}.connection{font-size:11px;color:var(--muted);white-space:nowrap}.connection.connected{color:var(--teal)}.role-label{font-size:10px;background:var(--purple-bg);color:var(--purple);padding:4px 8px;border-radius:6px}.logout{font-size:12px;color:var(--muted)}main{padding:33px 0;min-height:calc(100dvh - 167px)}.eyebrow{display:block;font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--purple);margin-bottom:10px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:25px}.page-heading p{margin-top:9px;font-size:13px}.compact h1{font-size:clamp(26px,2.7vw,35px)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.muted{color:var(--muted);font-size:12px}.text-button{background:none;border:0;padding:0;color:var(--purple);font-size:12px;font-weight:650}.back-link{display:inline-block;margin-bottom:18px}.pill{display:inline-block;font-size:10px;font-weight:650;white-space:nowrap;border:1px solid var(--line);background:var(--surface2);border-radius:7px;padding:4px 10px;color:var(--muted)}.pill.teal{background:var(--teal-bg);border-color:transparent;color:var(--teal)}.game-row{width:100%;display:flex;align-items:center;gap:18px;background:transparent;border:0;border-top:1px solid var(--line);padding:19px 0;text-align:left;color:var(--text)}.game-row:hover{background:var(--surface2)}.game-symbol{width:44px;height:44px;display:grid;place-items:center;background:var(--purple-bg);color:var(--purple);font-size:24px;border-radius:12px;flex-shrink:0}.game-info{flex:1}.game-info strong{display:block;font-size:16px}.game-info small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.row-arrow{font-size:12px;color:var(--purple);font-weight:650}.empty{text-align:center;padding:60px 20px}.empty p{margin:12px auto;max-width:430px}.narrow{max-width:650px;margin:auto}.control-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--surface);padding:17px 20px;border:1px solid var(--line);border-radius:14px;margin-bottom:20px}.control-label{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.segmented{display:flex;gap:4px;padding:4px;border-radius:10px;background:var(--surface2)}.segmented button{background:none;border:0;border-radius:7px;padding:9px 18px;color:var(--muted);font-size:12px;font-weight:650}.segmented .selected{background:var(--purple-bg);color:var(--purple);box-shadow:0 1px 4px #0001}.live-panel{display:flex;align-items:center;gap:20px;position:relative;background:var(--purple-bg);border:1px solid var(--line);border-radius:16px;padding:24px 28px;margin-bottom:25px;min-height:120px}.live-panel.ready,.live-panel.testing{background:var(--teal-bg)}.live-panel.won{border:2px solid var(--winner);background:var(--surface)}.live-panel h2{font-size:25px;line-height:1.3;letter-spacing:-.7px}.live-panel p{font-size:12px;margin-top:6px;letter-spacing:0}.live-panel .eyebrow{font-size:9px;margin-bottom:4px}.live-orb{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--purple);font-size:31px;flex-shrink:0}.ready .live-orb,.testing .live-orb{color:var(--teal)}.live-label{margin-left:auto;color:var(--teal);font-size:10px;letter-spacing:1px}.live-label i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-right:6px}.instruction{background:var(--teal-bg);padding:13px 18px;border-radius:10px;margin-bottom:23px;font-size:12px;color:var(--teal)}.teams-grid{display:grid;grid-template-columns:repeat(var(--team-count,4),minmax(0,1fr));gap:18px;margin-bottom:23px}.team-card{position:relative;overflow:hidden;min-width:0;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--team);padding:20px;border-radius:15px;text-align:center;box-shadow:var(--shadow)}.team-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:18px}.team-tag{font-size:9px;letter-spacing:.8px;color:var(--muted);font-weight:700}.rank{font-size:11px;font-weight:650;background:var(--surface2);padding:3px 8px;border-radius:6px;color:var(--muted)}.team-card h3{min-height:45px;overflow-wrap:anywhere}.team-score{font-size:clamp(40px,5.2vw,68px);font-weight:800;line-height:1.15;letter-spacing:-2.5px;font-variant-numeric:tabular-nums;color:var(--team);margin:7px 0}.score-caption{font-size:9px;letter-spacing:2px;color:var(--muted)}.score-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:19px}.score-minus{background:var(--red-bg);color:var(--red);font-size:16px}.score-plus{background:var(--teal-bg);color:var(--teal);font-size:16px}.manual-score{text-align:left;margin-top:15px}.manual-score label{font-size:10px;margin:0 0 6px}.input-button{display:flex;gap:6px}.input-button input{min-width:0;flex:1;margin:0!important;padding:10px 8px!important;font-size:12px!important}.input-button .button{font-size:11px;padding:8px 10px}.device-line{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;text-align:left;padding-top:15px;margin-top:17px;border-top:1px solid var(--line)}.device-line>span{font-size:10px}.device-line .text-button{font-size:10px}.text-teal{color:var(--teal)}.text-red{color:var(--red)}.test-result{border-radius:7px;padding:6px 8px;color:var(--muted);background:var(--surface2);font-size:10px;margin-top:12px}.test-result.passed{background:var(--teal-bg);color:var(--teal)}.is-winner{box-shadow:0 0 0 1px var(--team);padding-bottom:46px}.winner-ribbon{position:absolute;left:0;right:0;bottom:0;background:var(--team);color:#fff;font-size:10px;font-weight:750;letter-spacing:.5px;padding:5px}.game-bottom{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.history summary{cursor:pointer;font-weight:650}.history-list{margin-top:13px;max-height:290px;overflow:auto}.history-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:12px 0}.history-dot{width:7px;height:7px;background:var(--team);border-radius:50%;flex-shrink:0}.history-row>span:nth-child(2){flex:1}.history-row strong{font-size:12px}.history-row small{display:block;font-size:10px;color:var(--muted)}.history-row time{font-size:10px;color:var(--muted);white-space:nowrap}.history-row b{font-size:16px}.board-title{text-align:center;margin-bottom:27px}.board-title h1{font-size:clamp(32px,4vw,57px)}.board-title p{font-size:12px;margin-top:10px}.board-title .pill{margin-left:10px}.scoreboard .live-panel{justify-content:center}.scoreboard .live-label{position:absolute;right:25px}.scoreboard .team-card{padding:23px 17px 28px}.scoreboard .team-card h3{font-size:clamp(19px,2vw,29px);min-height:40px}.scoreboard .team-score{font-size:clamp(54px,7.6vw,110px);margin:20px 0 7px}.scoreboard .is-winner{padding-bottom:44px}.board-foot{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px}footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:23px 0;font-size:10px;color:var(--muted)}.welcome{max-width:890px;margin:auto;padding:65px 0 45px}.welcome-title{text-align:center;margin-bottom:34px}.welcome-title h1{font-size:43px}.welcome-title p{margin-top:13px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.entry-card{background:var(--surface);border:1px solid var(--line);border-radius:19px;padding:31px;color:var(--text);box-shadow:var(--shadow)}.entry-card:hover{border-color:var(--purple)}.entry-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;font-size:31px;margin-bottom:24px}.entry-icon.purple{color:var(--purple);background:var(--purple-bg)}.entry-icon.teal{color:var(--teal);background:var(--teal-bg)}.entry-card h2{font-size:23px}.entry-card p{font-size:13px;line-height:1.85;min-height:66px;margin-top:11px}.entry-card .button{margin-top:22px;width:100%}.welcome-note{text-align:center;font-size:12px;margin-top:25px}.login-wrap{padding-top:35px;max-width:510px}.login-panel{margin-top:20px;padding:30px}.login-panel h1{font-size:29px}.login-panel>p{font-size:12px;margin-top:13px}.error-notice{padding:12px 14px;background:var(--red-bg);border-radius:8px;color:var(--red)}label{display:block;margin-top:18px;font-size:11px;font-weight:650;color:var(--text)}input:not([type=range]):not([type=checkbox]),select{display:block;width:100%;min-height:44px;margin-top:7px;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:12px 13px;border-radius:9px;outline:none}input:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-bg)}input[type=color]{height:44px;padding:5px!important}input[type=range]{width:100%;margin-top:12px;accent-color:var(--purple)}.check-label{display:flex;gap:10px;align-items:center}input[type=checkbox]{width:17px;height:17px;accent-color:var(--purple)}.wide{width:100%;margin-top:17px}.small-note{font-size:11px;color:var(--muted);margin-top:19px;line-height:1.8}.names-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.hint{padding:14px;background:var(--surface2);border-radius:9px;font-size:11px;color:var(--muted);margin-top:20px}.join-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px;max-width:1000px;margin:auto;padding:65px 0}.join-intro h1{font-size:clamp(36px,4.3vw,55px);line-height:1.15}.join-intro h1>span{color:var(--purple)}.join-intro p{margin-top:22px;max-width:390px;line-height:1.9;font-size:13px}.decor-bell{font-size:105px;line-height:1;position:relative;width:150px;color:var(--purple);margin-top:25px}.decor-bell i{position:absolute;font-size:30px;right:0;top:0;font-style:normal}.join-panel{padding:31px}.step-number{font-size:9px;color:var(--purple);letter-spacing:1.2px}.join-panel h2{font-size:28px;margin-top:16px}.join-panel p{font-size:12px;margin-top:10px}.join-panel input{font-size:17px;letter-spacing:1.5px}.device-layout{text-align:center;max-width:650px;margin:auto}.device-title h1{font-size:37px;overflow-wrap:anywhere}.device-title p{margin-top:12px}.device-points{font-size:12px;margin-left:8px}.buzz-button{touch-action:manipulation;user-select:none;-webkit-user-select:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;aspect-ratio:1;width:min(330px,78vw);margin:35px auto 24px;border-radius:50%;border:9px solid #ffffff33;background:radial-gradient(circle at 40% 25%,var(--team),#493584);color:white;box-shadow:0 0 0 11px var(--purple-bg),0 15px 40px #3a2a541b,inset 0 -12px 30px #0002}.buzz-button:not(:disabled):active{transform:scale(.97)}.buzz-button:disabled{opacity:1;background:var(--surface2);border-color:var(--line);color:var(--muted);box-shadow:0 0 0 11px var(--surface),0 10px 40px #0001}.buzz-button.won{background:var(--team);color:#fff}.buzz-glyph{font-size:58px;line-height:1.3}.buzz-button strong{font-size:23px;letter-spacing:1px}.buzz-button small{font-size:10px;max-width:230px;padding:0 15px;line-height:1.7}.device-hint{font-size:12px;min-height:32px}.device-bottom{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:17px}.device-bottom .text-button{flex-basis:100%;margin:15px}.modal{width:min(540px,calc(100vw - 26px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:19px;background:var(--surface);color:var(--text);padding:27px;box-shadow:0 25px 100px #18243b33}.modal::backdrop{background:#121c3a66;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head .eyebrow{margin:0}.modal h2{font-size:24px;margin-bottom:8px}.modal p{font-size:12px;margin-bottom:15px}.modal-buttons{justify-content:flex-end;margin-top:25px}.divider{height:1px;background:var(--line);margin:22px 0}.toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:99999;max-width:calc(100vw - 24px);padding:14px 21px;background:var(--text);color:var(--bg);border-radius:10px;box-shadow:0 5px 30px #0002;font-size:12px;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{text-align:center;padding:35vh 20px;color:var(--muted)}.admin-nav{display:flex;gap:8px;padding:15px 0 0;overflow:auto}.admin-nav button{white-space:nowrap;padding:9px 14px;font-size:12px;border:0;border-radius:9px;background:transparent;color:var(--muted)}.admin-nav .selected{background:var(--purple-bg);color:var(--purple);font-weight:700}.account-row{display:flex;align-items:center;gap:16px;padding:17px 0;border-top:1px solid var(--line);font-size:12px}.account-row:first-child{border-top:0}.account-avatar{width:39px;height:39px;display:grid;place-items:center;background:var(--purple-bg);color:var(--purple);font-size:18px;border-radius:50%}.account-name{flex:1}.account-name strong,.account-name small{display:block}.account-name small{color:var(--muted);font-size:11px}.account-row>.muted{font-size:10px;min-width:100px;text-align:right}.system-status{padding:13px 16px;background:var(--red-bg);color:var(--red);border-radius:9px;font-weight:650}.system-status.passed{background:var(--teal-bg);color:var(--teal)}.system-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:13px;margin-top:23px}.system-list dt{color:var(--muted)}.system-list dd{text-align:right;margin:0}
@media(min-width:1101px){.compact-board{padding-top:23px}.compact-board .board-title{margin-bottom:18px}.compact-board .board-title h1{font-size:35px}.compact-board .board-title p{margin-top:6px}.compact-board .live-panel{min-height:90px;padding:15px 25px;margin-bottom:19px}.compact-board .live-orb{width:48px;height:48px;font-size:27px}.compact-board .team-card{padding:15px 15px 20px}.compact-board .team-card h3{font-size:21px;min-height:28px}.compact-board .team-top{margin-bottom:9px}.compact-board .team-score{font-size:68px;margin:8px 0 3px}.compact-board .teams-grid{gap:14px;margin-bottom:20px}.compact-board .team-card.is-winner{padding-bottom:35px}.many-teams .team-card{padding:10px 13px 15px}.many-teams .team-card h3{font-size:16px;min-height:22px}.many-teams .team-score{font-size:44px;letter-spacing:-1px;margin:4px 0}.many-teams .team-top{margin-bottom:5px}.many-teams .teams-grid{gap:10px}.many-teams .team-card.is-winner{padding-bottom:27px}.many-teams .winner-ribbon{font-size:8px;padding:3px}}
@media(max-width:1100px){.app-shell{padding:0 25px}.teams-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-strip{align-items:flex-end}.device-line{gap:8px}.input-button{flex-wrap:wrap}.input-button .button{width:100%}.join-layout{gap:35px}.top-actions{gap:7px}.topbar{gap:15px}.button{padding:10px 13px}}
@media(max-width:680px){.app-shell{padding:0 17px}.topbar{padding:16px 0;min-height:86px;flex-wrap:wrap;gap:12px}.brand{font-size:18px}.brand-mark{width:35px;height:35px;border-radius:10px;font-size:27px}.brand small{font-size:7px;letter-spacing:1.5px}.top-actions{gap:7px}.top-actions .button{font-size:10px;padding:8px 10px;min-height:35px}.top-actions .theme-toggle{font-size:23px;width:35px;height:35px;padding:0}.connection{font-size:9px}.role-label,.logout{font-size:9px}.page-heading{flex-direction:column;align-items:flex-start;gap:17px;margin-bottom:22px}.page-heading p{font-size:12px}main{padding-top:27px}.panel{padding:18px}.section-head h2{font-size:16px}.section-head .muted{font-size:10px;max-width:145px;text-align:right}.control-strip{flex-direction:column;align-items:stretch;gap:16px;padding:15px}.control-strip .button-row{gap:8px}.control-strip .button{font-size:11px}.segmented{width:100%}.segmented button{flex:1}.live-panel{padding:19px 16px;gap:13px;min-height:110px}.live-panel h2{font-size:21px}.live-panel p{font-size:10px}.live-panel .eyebrow{font-size:8px}.live-orb{width:43px;height:43px;font-size:26px}.live-label{display:none}.teams-grid{gap:12px}.team-card{padding:15px 12px;border-radius:12px}.team-tag{font-size:8px;letter-spacing:.2px}.team-top{margin-bottom:13px}.rank{font-size:9px}.team-card h3{font-size:15px;min-height:40px}.team-score{font-size:48px}.score-controls{gap:6px;margin-top:16px}.score-controls .button{font-size:14px;padding:9px 5px;min-height:38px}.manual-score label{font-size:9px}.input-button{gap:5px}.input-button input{font-size:11px!important}.input-button .button{min-height:33px;font-size:10px}.device-line>span,.device-line .text-button{font-size:9px}.game-bottom .button{font-size:10px}.game-row{gap:11px;padding:16px 0}.game-symbol{width:35px;height:35px;font-size:20px}.game-info strong{font-size:13px}.game-info small{font-size:10px}.row-arrow{font-size:10px}.game-row .pill{font-size:8px;padding:4px 7px}.instruction{font-size:11px}.history-row{gap:8px}.history-row strong{font-size:11px}.history-row time{font-size:9px}.board-title .eyebrow{font-size:8px;letter-spacing:1px}.scoreboard .team-card{padding:17px 12px 24px}.scoreboard .team-card h3{font-size:18px;min-height:40px}.scoreboard .team-score{font-size:57px;margin:10px 0}.board-foot{flex-direction:column;font-size:9px}.welcome{padding:35px 0}.welcome-title h1{font-size:32px}.welcome-title p{font-size:12px}.welcome-title{margin-bottom:25px}.entry-grid{grid-template-columns:1fr;gap:15px}.entry-card{padding:22px}.entry-card h2{font-size:21px}.entry-icon{width:45px;height:45px;font-size:25px;margin-bottom:16px}.entry-card p{font-size:12px;min-height:0}.entry-card .button{margin-top:17px}.login-panel{padding:24px}.login-panel h1{font-size:27px}.join-layout{display:block;padding:28px 0}.join-intro h1{font-size:34px}.join-intro p{font-size:12px;margin-top:15px}.decor-bell{display:none}.join-panel{margin-top:25px;padding:24px}.join-panel h2{font-size:25px}.device-title h1{font-size:31px}.buzz-button{width:min(305px,76vw);margin-top:30px}.buzz-button strong{font-size:21px}.buzz-glyph{font-size:52px}.device-hint{font-size:11px}.device-bottom .button{font-size:11px}.modal{padding:22px}.modal h2{font-size:22px}.account-row{gap:9px;flex-wrap:wrap}.account-avatar{width:33px;height:33px;font-size:15px}.account-name{min-width:130px}.account-row>.muted{font-size:9px;min-width:0}.account-row .button{font-size:10px;min-height:34px}.account-row .pill{font-size:9px}.admin-nav{gap:3px}.admin-nav button{font-size:11px;padding:8px 10px}footer{font-size:9px;padding:20px 0}.toast{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.is-saving .connection:after{content:' · Menyimpan…';color:var(--purple)}
