:root{--yellow:#ffdb00;--yellow-deep:#ffbc0b;--purple:#5112e8;--ink:#18063d;--night:#07030f;--white:#fff;--danger:#ff5050}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"degular",Arial,Helvetica,sans-serif}button,input{font:inherit}.public-body{background:#111}.game-screen{position:relative;width:min(100%,640px);min-height:100svh;margin:0 auto;overflow:hidden}.hidden{display:none!important}.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}

/* Registrace */
.registration-screen{min-height:max(100svh,960px);background:linear-gradient(180deg,var(--yellow) 0,var(--yellow-deep) 42%,var(--ink) 42%,var(--night) 100%);color:#fff}.registration-curve{position:absolute;z-index:0;top:34.5%;left:50%;width:145%;height:190px;transform:translateX(-50%);border-radius:50% 50% 0 0/70% 70% 0 0;background:var(--ink);border-top:3px solid var(--ink);box-shadow:0 -13px 0 var(--yellow),0 -16px 0 var(--ink),0 -21px 0 var(--yellow),0 -23px 0 var(--ink)}.registration-content{position:relative;z-index:1;width:min(100%,540px);min-height:max(100svh,960px);margin:auto;padding:clamp(68px,11svh,116px) 34px 58px}.game-heading{text-align:center;color:#2c0879}.live-pill{display:inline-block;border:3px solid var(--purple);border-radius:999px;padding:0 13px;font-size:17px;line-height:1.25;font-weight:800}.game-heading p{margin:13px 0 30px;font-weight:800;font-size:clamp(18px,4.6vw,25px)}.game-heading h1{margin:0;font-size:clamp(43px,11vw,67px);line-height:.88;letter-spacing:-.045em;font-weight:800}.game-heading h1 sup{font-size:.42em;vertical-align:top;letter-spacing:0}.registration-form{margin-top:clamp(142px,20vw,185px)}.phone-label{display:block;margin:0 0 15px;text-align:center;font-size:clamp(18px,4.6vw,25px);line-height:1;font-weight:800}.phone-entry{display:flex;width:100%;height:61px;border:3px solid #fff;border-radius:999px;overflow:hidden;background:rgba(9,2,25,.08)}.phone-prefix{position:relative;display:flex;flex:0 0 38%;border-right:3px solid #fff}.phone-prefix::after{content:"";position:absolute;right:13px;top:50%;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-70%) rotate(45deg);pointer-events:none}.phone-prefix select{width:100%;border:0;outline:0;appearance:none;background:transparent;color:#fff;padding:0 34px 0 17px;font:400 23px "degular",sans-serif;cursor:pointer}.phone-prefix select option{color:#18063d;background:#fff}.phone-entry input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#fff;padding:0 16px;font-size:28px;font-weight:800;letter-spacing:.025em}.phone-entry input::placeholder{color:#fff;opacity:1}.form-instructions{margin:26px 0 30px;font-size:13px;line-height:1.25;font-weight:800}.consents{display:grid;gap:11px}.game-check{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.25;cursor:pointer}.game-check:nth-child(-n+2){font-weight:700}.game-check input{appearance:none;width:18px;height:18px;flex:0 0 18px;margin:0;border:2px solid #fff;border-radius:1px;background:#fff}.game-check input:checked{background:var(--yellow);border-color:var(--yellow);position:relative}.game-check input:checked:after{content:"×";display:block;color:var(--ink);font-weight:800;font-size:19px;line-height:13px;text-align:center}.optional-check{font-weight:400}.optional-check strong{font-weight:700}.legal-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.legal-link:hover{color:var(--yellow)}.form-note{margin:30px 0 0;font-size:14px;line-height:1.3;font-weight:800}.legal-note{margin:18px 0 0;font-size:11px;line-height:1.28;font-weight:400}.form-error{min-height:26px;margin:16px 0 4px;color:var(--yellow);font-size:14px;font-weight:800}.game-button{width:100%;min-height:64px;margin-top:20px;border:0;border-radius:999px;background:var(--yellow);color:#050505;font-weight:800;font-size:clamp(23px,6vw,34px);cursor:pointer}.game-button:disabled{opacity:.65;cursor:wait}.closed-message{text-align:center;color:var(--yellow);padding:50px 0}.closed-message h2{font-size:28px}

/* Volba strany */
.choice-screen{min-height:max(100svh,960px);background:linear-gradient(150deg,#ffe000 0%,#ffcf06 72%,#ffbd0c 100%);color:#2c0879}.choice-content{position:relative;min-height:max(100svh,960px);isolation:isolate}.choice-heading{position:relative;z-index:4;padding:clamp(90px,13svh,145px) 38px 0;text-align:center}.choice-heading h1{margin:0;font-size:clamp(43px,11vw,68px);line-height:.9;letter-spacing:-.05em;font-weight:800}.choice-heading p{margin:20px 0 0;font-size:clamp(22px,5.2vw,31px);line-height:1.05;font-weight:800}.compass-art,.result-compass{position:absolute;background-position:center;background-repeat:no-repeat;background-size:contain;pointer-events:none}.compass-art{z-index:0;width:100%;height:auto;aspect-ratio:1080/1331;left:50%;top:39%;transform:translateX(-50%);background-image:url('/assets/compass-choice.webp')}.traitor-character{position:absolute;z-index:2;left:50%;top:27%;width:min(116%,710px);height:auto;transform:translateX(-50%);pointer-events:none}.choice-actions{position:absolute;z-index:5;top:53%;left:0;width:100%;display:flex;justify-content:space-between;gap:14px;padding:0 25px}.side-button{display:flex;align-items:center;justify-content:space-between;min-width:0;width:47%;min-height:66px;padding:0 13px 0 26px;border:0;border-radius:999px;font-size:clamp(25px,7vw,39px);line-height:1;font-weight:800;cursor:pointer}.side-button span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-size:35px;line-height:27px}.side-button.faithful{background:var(--yellow);color:#050505}.side-button.faithful span{background:#050505;color:var(--yellow)}.side-button.traitor{background:var(--purple);color:#fff}.side-button.traitor span{background:#fff;color:var(--purple)}.side-button:disabled{opacity:.65;cursor:wait}.choice-error{position:absolute;z-index:6;top:64%;left:10%;width:80%;text-align:center;color:var(--yellow);background:rgba(24,6,61,.88);border-radius:12px;font-weight:800;padding:0}.choice-error:not(:empty){padding:10px}.change-phone{position:absolute;z-index:5;top:72%;left:50%;transform:translateX(-50%);display:flex;align-items:center;white-space:nowrap;border-radius:999px;background:rgba(44,8,121,.92);padding:9px 16px;color:var(--yellow);font-size:16px;font-weight:800;text-decoration:none}.change-phone span{display:grid;place-items:center;width:25px;height:25px;margin-right:9px;border-radius:50%;background:var(--yellow);color:var(--purple);font-size:25px;line-height:20px}

/* Výsledek */
.result-screen{position:absolute;z-index:10;inset:0;min-height:max(100svh,960px);overflow:hidden}.faithful-result{background:linear-gradient(120deg,#ffbd0b,#ffe148);color:#331080}.traitor-result{background:linear-gradient(120deg,#230754,#07020e);color:#fff}.result-compass{z-index:0;width:min(92vw,620px);height:auto;aspect-ratio:1;left:50%;top:28%;transform:translateX(-50%)}.faithful-result .result-compass{background-image:url('/assets/compass-faithful.webp')}.traitor-result .result-compass{background-image:url('/assets/compass-traitor.webp')}.result-content{position:relative;z-index:1;padding:clamp(285px,37svh,380px) 25px 40px;text-align:center;font-weight:800}.result-pill{display:inline-block;border:3px solid currentColor;border-radius:999px;padding:1px 16px;font-size:16px}.result-content h1{margin:16px 0 58px;font-size:clamp(32px,8vw,46px);line-height:.95}.code-label{margin:0 0 4px;font-size:14px}.result-code{font-size:clamp(70px,18vw,106px);line-height:.9;letter-spacing:-.04em;color:var(--purple);white-space:nowrap}.traitor-result .result-code{color:var(--yellow)}.sms-note{min-height:21px;margin:20px 0 70px;font-size:13px}.result-note{font-size:clamp(16px,4vw,23px);line-height:1.15}

/* Administrace zůstává záměrně oddělená od kampaně */
.admin{width:min(1180px,100%);margin:auto;padding:28px 20px;color:#15171a}.admin-body{background:#eef0f2;font:16px/1.45 Arial,Helvetica,sans-serif}.admin header{display:flex;align-items:end;justify-content:space-between;gap:20px}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.stat,.panel{background:#fff;border:1px solid #d5d9dd;border-radius:14px;padding:18px}.stat strong{display:block;font-size:28px}.controls{display:flex;gap:12px}.controls button,.admin button{width:auto;margin:0;padding:15px;border:0;border-radius:12px;background:#d8ff3e;color:#0c0d0f;font-weight:800;cursor:pointer}.danger{background:#111!important;color:#fff!important}.winners{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.winner{background:#fff8d8;border-radius:10px;padding:14px}.winner strong{font-size:26px;display:block}table{width:100%;border-collapse:collapse;margin-top:20px;background:#fff}th,td{text-align:left;padding:13px;border-bottom:1px solid #e4e6e8}.error{min-height:24px;color:#b00020;font-weight:700;margin-top:12px}
.sms-status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.sms-status.success{background:#d8f5df;color:#176b2c}.sms-status.pending{background:#fff1c7;color:#805900}.sms-status.failed{background:#ffe0e0;color:#a11919}.sms-status.muted{background:#e8eaed;color:#5f6368}
.reset-panel{margin-top:16px;border-color:#e2a5a5;background:#fff6f6}.reset-panel h2{margin:0 0 6px;color:#8e1111}.reset-panel p{margin:0 0 16px}.reset-panel .danger{background:#b00020!important}
.winner-export{margin-top:22px;padding-top:20px;border-top:1px solid #e4e6e8}.winner-export label{display:block;margin-bottom:8px;font-weight:700}.winner-export textarea{display:block;width:100%;min-height:220px;padding:12px;border:1px solid #b9bec4;border-radius:10px;background:#f8f9fa;color:#15171a;font:700 18px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.winner-export button{margin-top:10px}.winner-export span{display:inline-block;margin-left:12px;color:#176b2c;font-weight:700}
.winner-phone{display:block;margin-top:9px;color:#321178;font-size:16px;font-weight:700;text-decoration:none}.winner-phone:hover{text-decoration:underline}

@media(max-width:420px){.registration-content{padding-left:23px;padding-right:23px}.game-heading p{margin-bottom:25px}.registration-form{margin-top:150px}.phone-entry{height:56px}.phone-prefix select{font-size:20px;padding-left:14px}.phone-prefix::after{right:11px}.phone-entry input{font-size:24px}.form-instructions{font-size:11px}.game-check{font-size:13px}.choice-heading{padding-left:25px;padding-right:25px}.traitor-character{top:31%;width:125%}.choice-actions{top:55%;padding:0 15px}.side-button{min-height:58px;padding-left:18px}.change-phone{top:73%;font-size:13px}.result-content{padding-top:33svh}.result-content h1{margin-bottom:48px}.sms-note{margin-bottom:58px}}

/* The exported figure deliberately extends below the first viewport, as in the approved artwork. */
.traitor-character{width:150%;max-width:none}
@media(max-width:420px){.traitor-character{width:150%}}
@media(max-width:700px){.admin-grid{grid-template-columns:1fr 1fr}.winners{grid-template-columns:1fr}.controls{flex-direction:column}.controls button{width:100%}table{font-size:13px}}

/* Fine alignment against the approved 9:20 mobile layouts. */
.registration-screen{background:linear-gradient(180deg,var(--yellow) 0,var(--yellow-deep) 45%,var(--ink) 45%,var(--night) 100%)}
.registration-curve{top:41%}
.registration-content{padding-top:15.5svh}
.registration-form{margin-top:15.5svh}
.choice-heading{padding-top:15.5svh}
.traitor-character{top:27%}
.result-content{padding-top:37svh}
@media(max-width:420px){
  .registration-content{padding-top:15.5svh}
  .registration-form{margin-top:12.5svh}
  .choice-heading{padding-top:15.5svh}
  .traitor-character{top:27%}
  .result-content{padding-top:37svh}
}
@media(max-width:480px){
  .registration-screen,.registration-content{min-height:1180px}
  .registration-screen{background:linear-gradient(180deg,var(--yellow) 0,var(--yellow-deep) 340px,var(--ink) 340px,var(--night) 100%)}
  .registration-content{padding-top:72px;padding-left:23px;padding-right:23px}
  .registration-curve{top:300px}
  .registration-form{margin-top:130px}
  .phone-entry{height:56px}
  .phone-entry input{font-size:24px}
  .form-instructions{margin:10px 0 24px;font-size:12px;line-height:1.2;font-weight:600;text-align:center}
  .consents{gap:8px}
  .game-check{font-size:13px}
  .form-note{margin-top:22px;font-size:12px;line-height:1.2;font-weight:600;text-align:center}
  .form-error:empty{min-height:0;margin:12px 0 4px}
  .game-button{min-height:58px}
  .choice-heading{padding-top:50px;padding-left:25px;padding-right:25px}
  .traitor-character{top:21.5%}
  .choice-actions{top:49%;padding:0 15px}
  .side-button{min-height:58px;padding-left:18px}
  .change-phone{top:67%;font-size:13px}
}
.phone-entry input::placeholder{opacity:.5;font-weight:400}
@media(max-width:480px){
  .game-check{min-height:32px;align-items:center}
  .game-check input{width:22px;height:22px;flex-basis:22px}
  .game-check input:checked:after{font-size:22px;line-height:17px}
}
.side-button span{font-size:0}
.side-button span::before{content:"";width:10px;height:10px;border-top:4px solid currentColor;border-right:4px solid currentColor;transform:translateX(-2px) rotate(45deg)}
.result-screen:not(.hidden){display:grid;place-items:center}
.result-compass{top:50%;transform:translate(-50%,-50%)}
.result-content{width:100%;padding:0 25px;transform:translateY(-1%)}
.side-button span{position:relative}
.side-button span::before,.side-button span::after{content:"";position:absolute;left:15px;width:4px;height:13px;border:0;border-radius:4px;background:currentColor;transform:none}
.side-button span::before{top:5px;transform:rotate(-42deg)}
.side-button span::after{bottom:5px;transform:rotate(42deg)}
.side-button span::before{left:50%;top:50%;width:14px;height:20px;border:0;border-radius:0;background:currentColor;clip-path:polygon(0 0,42% 0,100% 50%,42% 100%,0 100%,58% 50%);transform:translate(-50%,-50%)}
.side-button span::after{display:none}

/* Responsive choice and result layout for real mobile browser viewports. */
.choice-heading h1{font-size:clamp(35px,9vw,58px)}
.choice-heading p{font-size:clamp(18px,4.5vw,27px)}
.side-button{min-height:clamp(48px,8vw,60px);font-size:clamp(20px,5.5vw,34px)}
.side-button span{width:30px;height:30px}
.side-button span::before{width:12px;height:17px}
.result-screen{position:fixed;inset:0 auto auto 50%;width:min(100%,640px);height:100dvh;min-height:0;transform:translateX(-50%)}
.result-compass{width:min(92vw,620px)}
.result-pill{font-size:clamp(11px,3.4vw,16px)}
.result-content h1{margin:clamp(10px,2dvh,16px) 0 clamp(28px,5dvh,58px);font-size:clamp(27px,7.5vw,46px)}
.code-label{font-size:clamp(11px,3vw,14px)}
.result-code{font-size:clamp(56px,17vw,106px)}
.sms-note{margin:clamp(12px,2dvh,20px) 0 clamp(34px,6dvh,70px);font-size:clamp(11px,2.8vw,13px)}
.result-note{font-size:clamp(13px,3.7vw,23px)}
@media(max-height:700px){
  .result-content{transform:none}
  .result-content h1{margin-bottom:22px}
  .sms-note{margin-bottom:24px}
}

/* Original compass artwork exported directly from the approved Illustrator file. */
.choice-screen{background:#ffdb00 url('/assets/choice-background.webp') center top/100% auto no-repeat}
.compass-art{display:none}

/* Keep both registration helper texts visually consistent at every viewport. */
.form-instructions,.form-note{font-size:14px;line-height:1.2;font-weight:600;text-align:center}
.form-note{font-size:13px;text-transform:uppercase}
.form-error{font-size:14px;text-align:center}
@media(max-width:480px){.form-note{margin:22px -16px 0}}

/* Draw the back arrow geometrically so it stays centered in its circle. */
.change-phone span{position:relative;font-size:0;line-height:1}
.change-phone span::before{content:"";position:absolute;left:50%;top:50%;width:12px;height:16px;border:0;background:currentColor;clip-path:polygon(100% 0,38% 50%,100% 100%,62% 100%,0 50%,62% 0);transform:translate(-50%,-50%)}

/* Choice buttons matched to the final artwork. */
.side-button.faithful{background:var(--yellow-deep);color:#fff}
.side-button.faithful span{background:#fff;color:var(--yellow-deep)}
.choice-actions{padding-inline:clamp(15px,4vw,25px);transform:translateY(-12px)}
.side-button{flex:0 0 auto;width:auto;justify-content:flex-start;gap:clamp(12px,3vw,19px);padding:0 clamp(10px,2.2vw,14px) 0 clamp(19px,4.5vw,28px)}

/* Read-only mobile live report. */
.live-body{min-height:100vh;margin:0;background:radial-gradient(circle at 70% 0,#321178 0,#14042f 36%,#07020f 100%);color:#fff;font-family:"degular",Arial,sans-serif}.live-dashboard{width:min(100%,720px);margin:auto;padding:max(24px,env(safe-area-inset-top)) 16px max(36px,env(safe-area-inset-bottom))}.live-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.live-kicker{color:#ffdb00;font-size:13px;font-weight:800;letter-spacing:.12em}.live-header h1{margin:1px 0 0;font-size:34px;line-height:1}.live-login{width:auto;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:10px 15px;background:rgba(255,255,255,.08);color:#fff;font:700 14px "degular",sans-serif}.live-error{min-height:0;margin:8px 0;color:#ff8585;font-weight:700}.live-status-card,.live-card,.live-panel{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);box-shadow:0 18px 55px rgba(0,0,0,.18);backdrop-filter:blur(12px)}.live-status-card{display:flex;align-items:center;justify-content:space-between;border-radius:14px;padding:13px 15px;margin-bottom:12px}.live-health{display:flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.04em}.live-health i{width:10px;height:10px;border-radius:50%;background:#8c839d;box-shadow:0 0 0 5px rgba(140,131,157,.13)}.live-health i.ok{background:#54ee82;box-shadow:0 0 0 5px rgba(84,238,130,.13)}.live-health i.warning{background:#ffce3a;box-shadow:0 0 0 5px rgba(255,206,58,.13)}.live-status-card>span{color:#afa6c2;font-size:12px}.live-grid{display:grid;gap:10px}.live-grid-main{grid-template-columns:1fr 1fr}.live-card{min-width:0;border-radius:16px;padding:15px}.live-card span,.live-card small{display:block;color:#b9afca}.live-card span{font-size:13px;font-weight:600}.live-card strong{display:block;margin:5px 0 1px;font-size:32px;line-height:1}.live-card small{min-height:16px;font-size:11px}.live-total{background:linear-gradient(135deg,rgba(255,219,0,.23),rgba(255,219,0,.07))}.live-total strong{color:#ffdb00}.live-panel{border-radius:16px;margin-top:10px;padding:16px}.live-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.live-section-head h2{margin:0;font-size:20px}.live-section-head span{color:#a99fbb;font-size:10px;text-align:right}.live-chart{display:flex;align-items:flex-end;gap:5px;height:134px;margin-top:16px;padding-top:18px;border-bottom:1px solid rgba(255,255,255,.15)}.live-bar-wrap{position:relative;display:flex;align-items:flex-end;flex:1;height:100%}.live-bar-wrap i{display:block;width:100%;min-height:2px;border-radius:4px 4px 0 0;background:linear-gradient(#ffdb00,#7b4cff)}.live-bar-wrap>span{position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);font-size:9px}.live-bar-wrap small{position:absolute;top:calc(100% + 5px);left:0;color:#8f84a4;font-size:8px}.live-sides{grid-template-columns:1fr 1fr;margin-top:10px}.faithful-live{background:linear-gradient(135deg,rgba(255,219,0,.3),rgba(255,219,0,.08))}.faithful-live strong{color:#ffdb00}.traitor-live{background:linear-gradient(135deg,rgba(116,32,255,.4),rgba(116,32,255,.1))}.traitor-live strong{color:#ad7cff}.sms-live-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:17px}.sms-live-grid div{text-align:center}.sms-live-grid strong{display:block;font-size:23px}.sms-live-grid span{display:block;color:#aaa0bd;font-size:9px}.live-feed{margin-top:9px}.live-feed>div{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid rgba(255,255,255,.08)}.feed-dot{width:9px;height:9px;border-radius:50%}.feed-dot.faithful{background:#ffdb00}.feed-dot.traitor{background:#7b36ff}.live-feed span{display:flex;flex:1;flex-direction:column}.live-feed strong{font-size:14px}.live-feed small,.live-feed time{color:#a99fbb;font-size:11px}.live-empty{color:#a99fbb}.hidden{display:none!important}
@media(min-width:620px){.live-grid-main{grid-template-columns:repeat(4,1fr)}}

/* Keep the country prefix and its dropdown arrow visually together. */
.phone-prefix select{padding-left:8px;padding-right:28px;text-align:center;text-align-last:center}
.phone-prefix::after{right:10px}

/* Compact destructive action for a single registration row. */
.admin button.delete-entry{padding:7px 10px;border:1px solid #d59a9a;background:#fff6f6;color:#9c1515;font-size:13px;white-space:nowrap}.admin button.delete-entry:hover{background:#ffe5e5}.admin button.delete-entry:disabled{opacity:.55;cursor:wait}
.admin-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat small{display:block;margin-top:7px;color:#666;font-size:11px;line-height:1.25}

/* Final client copy and CZ-only phone entry. */
.game-heading h1{letter-spacing:-.015em;transform:scaleX(1.05);transform-origin:center}
.static-prefix{align-items:center;justify-content:center;font:400 23px "degular",sans-serif}
.static-prefix::after{display:none}
.prize-note{margin:16px 0 0;text-align:center;font-size:11px;line-height:1.28;font-weight:400}
