:root{--pine:#234d35;--deep:#153424;--red:#bd1724;--gold:#d9ac55;--cream:#fffdf7;--paper:#f7f6f0;--ink:#20342b;--muted:#718078;--border:#e3e8e1;--shadow:0 14px 36px rgba(33,53,39,.065)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}button,input,textarea,select{font:inherit}a{color:var(--pine)}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,Consolas,monospace}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;color:#9a7838}.stack{display:flex;flex-direction:column;gap:13px}.stack label,label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:650}input:not([type=hidden]),textarea{background:white;border:1px solid #d2ddd3;border-radius:9px;padding:11px 12px;width:100%;color:var(--ink);min-width:0}input:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #d4a63f;outline-offset:2px}input[type=search]{appearance:none}
.btn{border:1px solid #c8d4c7;border-radius:9px;background:#fff;padding:10px 14px;color:var(--pine);font-size:13px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:normal;text-align:center;min-height:40px}.btn-primary{background:var(--pine);border-color:var(--pine);color:#fff}.btn-light{background:#f4f7f1}.btn-danger{color:#a72529;border-color:#edd1d0;background:#fff7f6}.btn-small{padding:6px 9px;min-height:32px;font-size:12px}.btn.wide{width:100%}.button-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.alert{padding:12px 15px;border-radius:9px;font-size:14px;margin:11px 0}.alert.error{color:#9c2930;background:#fcf0ef;border:1px solid #f4d2d0}.alert.ok{color:#216342;background:#ecf7ec;border:1px solid #c9e7ce}
.admin-bg{background:linear-gradient(180deg,#eff4ee,#f7f6ef 40%,#f2f2ea);min-height:100vh}.app-shell{max-width:1240px;margin:auto;padding:0 20px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 3px;border-bottom:1px solid #dbe3da}.brandmark{font-weight:900;color:#a1792e;letter-spacing:.035em;font-size:18px}.brandmark span{color:var(--pine)}.public-link{font-size:13px;font-weight:700;text-decoration:none}.tabs{display:flex;gap:5px;margin:18px 0;overflow:auto;padding-bottom:2px}.tab{padding:10px 15px;border-radius:9px;text-decoration:none;white-space:nowrap;font-size:13px;font-weight:700;color:#657c6c}.tab:hover,.tab.selected{background:var(--pine);color:white}.admin-main{padding:3px 0 50px}.heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.heading h1{font:800 32px/1.1 system-ui;margin:6px 0 0}.logout{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 19px}.stat,.panel{background:white;border:1px solid #e3e9df;border-radius:15px;box-shadow:var(--shadow)}.stat{padding:18px}.stat strong{display:block;font-size:35px;line-height:1.3;color:var(--pine);letter-spacing:-.03em;margin:5px 0}.stat strong small,.big-number small{font-size:15px;color:#819188;font-weight:600}.meter{height:7px;background:#e6ece5;border-radius:20px;overflow:hidden;margin-top:12px}.meter span{display:block;height:100%;background:#ba933a;border-radius:20px}.two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 18px}.two-cols.unequal{grid-template-columns:1.3fr 1fr}.panel{padding:22px;min-width:0;margin-bottom:18px}.panel h2{font-size:18px;margin:0 0 13px;line-height:1.3}.panel p{margin-top:8px}.checkrow{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f0f2ec;font-size:14px}.checkrow .good{color:#1b8152;font-weight:900}.checkrow .warn{color:#ce8a34;font-weight:900}.audit{padding:0;list-style:none}.audit li{padding:9px 0;border-bottom:1px solid #edf1ec;display:flex;justify-content:space-between;gap:12px;font-size:13px}.audit small{color:var(--muted)}.app-footer{text-align:center;padding:22px 0;font-size:12px;color:#88978b}.input-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.big-number{color:var(--pine);font-size:42px;font-weight:800}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}.search{max-width:260px}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#f4f7f2;color:#647769;white-space:nowrap;font-size:11px;text-transform:uppercase;letter-spacing:.06em}th,td{padding:11px 10px;border-bottom:1px solid #e8eee6;vertical-align:middle}tbody tr:hover{background:#fafbf8}tr[hidden]{display:none!important}.table-input{max-width:280px;padding:7px 8px!important;display:block;margin-bottom:4px;font-size:13px}.table-input.notes{font-size:12px;opacity:.8}.short-input{width:95px!important;padding:8px!important}.actions-cell{display:flex;gap:6px;align-items:center}.actions-cell form{margin:0}.pill{display:inline-flex;border-radius:30px;padding:4px 9px;background:#e9efe6;color:#426a3f;font-size:11px;font-weight:700;white-space:nowrap}.pill.done{background:#e0f5e6;color:#187349}.pill.waiting{background:#fff0db;color:#99672d}.empty{padding:18px;text-align:center;color:#89968d}.start-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.number-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.number-chip{text-align:center;background:#f3f7f1;border:1px solid #e0e8dc;border-radius:10px;padding:9px}.number-chip strong{display:block;font-size:23px;color:var(--pine)}.number-chip small{display:block;font-size:10px;color:#8a968e}.verify-form{display:flex;gap:7px}.proof{text-transform:uppercase}.topgap{margin-top:20px}.login-panel{background:#fff;border:1px solid #e4e8df;box-shadow:var(--shadow);border-radius:18px;padding:32px;max-width:460px;margin:9vh auto}.login-panel h1{margin-bottom:7px}.login-panel p{color:var(--muted)}
/* Web účastníka. */
.public-body{min-height:100dvh;background:radial-gradient(circle at 50% 20%,#fffefa 0,#f6f3e9 70%,#ebe4d6 100%);overflow-x:hidden}.public-layout{max-width:920px;min-height:100dvh;padding:20px 20px 24px;margin:auto;display:flex;align-items:center;gap:25px;justify-content:center}.ticket-scene{width:min(45%,395px);flex:0 0 auto;display:flex;align-items:center;justify-content:center}.ticket-visual{position:relative;aspect-ratio:467/660;width:100%;max-height:calc(100dvh - 40px);box-shadow:0 16px 45px #382c1622;overflow:hidden;background:#fffefa}.ticket-art{width:100%;height:100%;display:block;object-fit:fill}.reveal-slot{position:absolute;left:30%;top:34.5%;width:46%;height:37%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:3px}.loading-number{color:#4f604b;font-size:10px;font-weight:800;letter-spacing:.04em;line-height:1.4}.winner-number{opacity:0;color:#b40813;font:900 clamp(50px,8vw,90px)/1 Georgia,"Times New Roman",serif;text-shadow:0 3px 4px #d9aba76e;transform:scale(.05);filter:blur(12px)}.winner-number.arrive{animation:number-arrive 1.8s cubic-bezier(.15,.75,.18,1.05) forwards}.good-luck{opacity:0;color:#294e2d;font:bold clamp(16px,3vw,25px)/1.15 Georgia,serif}.good-luck.show{animation:show-wish .6s ease forwards}@keyframes number-arrive{0%{opacity:0;transform:scale(.04) rotate(-8deg);filter:blur(13px)}60%{opacity:1;transform:scale(1.22);filter:blur(0)}100%{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes show-wish{to{opacity:1}}
.reveal-btn{position:absolute;inset:auto 0;top:34%;background:var(--pine);color:white;border:0;border-radius:30px;padding:10px 8px;font:700 12px system-ui;box-shadow:0 5px 10px #17352633}.star-field{position:absolute;inset:0;pointer-events:none}.star-field span{position:absolute;color:#ecc159;text-shadow:0 0 7px #ffeb9a;opacity:0;animation:glimmer 2.9s ease-in-out infinite;font:25px/1 Georgia}.star-field span:nth-child(1){left:79%;top:8%}.star-field span:nth-child(2){left:94%;top:19%;animation-delay:-1.3s}.star-field span:nth-child(3){left:90%;top:45%;animation-delay:-.7s}.star-field span:nth-child(4){left:12%;top:61%;animation-delay:-2s}.star-field span:nth-child(5){left:26%;top:73%;animation-delay:-1.6s}.star-field span:nth-child(6){left:86%;top:73%;animation-delay:-2.4s}@keyframes glimmer{0%,100%{opacity:.03;transform:scale(.55)}45%,55%{opacity:1;transform:scale(1.15)}}
.wallet-panel{flex:1;max-width:440px;background:#fffefbdc;border:1px solid #eee8db;border-radius:16px;box-shadow:0 10px 30px #3b2c1420;padding:22px}.wallet-panel h1{margin:4px 0;font-size:28px;color:var(--pine)}.wallet-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.wallet-count{background:#edf4e9;color:var(--pine);font-size:12px;font-weight:700;padding:7px 9px;border-radius:40px;white-space:nowrap}.wallet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.wallet-ticket{border-radius:12px;padding:13px 6px;background:#f7f9f1;border:1px solid #dde9d9;min-width:0;text-align:center}.wallet-ticket strong{display:block;font-size:31px;color:var(--pine)}.wallet-ticket small{display:block;color:#829585;font-size:10px}.wallet-ticket code{display:block;font-size:10px;font-weight:700;margin-top:8px;color:#a36a28;letter-spacing:.04em}.wallet-ticket.called{background:#fff4da;border-color:#e3ba6e}.wallet-ticket.handed{opacity:.7;background:#e9f0e7}.wallet-tools{border-top:1px solid #ecece7;margin-top:12px;padding-top:7px}.wallet-tools details{border-bottom:1px solid #eeeeea;padding:10px 0}.wallet-tools summary{font-size:13px;font-weight:650;cursor:pointer}.wallet-tools details[open] summary{color:var(--pine)}.backup-code{font:700 12px/1.5 ui-monospace,monospace;word-break:break-word;margin-top:10px;color:#9b6329;background:#fff4d9;padding:10px}.wallet-tools .stack{margin-top:12px}.wallet-tools .btn{margin-top:7px}#fireworks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}
@media(max-width:850px){.stats-grid{grid-template-columns:repeat(2,1fr)}.two-cols,.two-cols.unequal{grid-template-columns:1fr}.start-panel{align-items:flex-start;flex-direction:column}.public-layout{max-width:560px;display:flex;flex-direction:column;padding:10px;gap:10px}.ticket-scene{width:min(92vw,calc(62dvh * 467 / 660));max-width:400px}.ticket-visual{max-height:62dvh}.wallet-panel{width:100%;max-width:none}.winner-number{font-size:clamp(48px,15vw,80px)}.good-luck{font-size:clamp(14px,5vw,23px)}}
@media(max-width:550px){.app-shell{padding:0 11px}.topbar{padding:14px 2px}.brandmark{font-size:14px}.public-link{font-size:11px}.tabs{gap:2px;margin:11px 0}.tab{padding:9px 10px;font-size:12px}.heading h1{font-size:25px}.stat{padding:13px}.stat strong{font-size:28px}.panel{padding:16px}.number-grid{grid-template-columns:repeat(3,1fr)}.input-cols{grid-template-columns:1fr}.section-head{display:block}.section-head .search{margin:10px 0 0;max-width:100%}.table-input{min-width:135px}.verify-form{flex-wrap:wrap}.wallet-panel{padding:16px}.wallet-grid{gap:7px}.wallet-ticket{padding:11px 4px}.ticket-scene{width:min(96vw,calc(58dvh * 467 / 660))}.ticket-visual{max-height:58dvh}.wallet-panel h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){.star-field span{animation:none;opacity:.6}.winner-number.arrive{animation:none;transform:none;filter:none;opacity:1}.good-luck.show{animation:none;opacity:1}}

/* Potvrzení restartu testovací sady: běžná velikost checkboxu i na iPhone. */
.panel input[type="checkbox"]{width:18px!important;height:18px!important;padding:0!important;flex:0 0 18px;accent-color:var(--pine)}

/* v1.7 — veřejná část: číslo nejdřív na celé pozvánce, historie pouze po otevření panelu. */
.public-layout{position:relative;padding-bottom:92px;align-items:center}
.public-actions{position:fixed;z-index:9;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),590px);display:flex;gap:9px;justify-content:center;pointer-events:auto}
.public-action{appearance:none;border:1px solid #e6d5ad;border-radius:999px;padding:12px 17px;min-height:48px;background:#fffdf5f2;color:#21482b;font:750 14px/1.2 system-ui,-apple-system,BlinkMacSystemFont,sans-serif;box-shadow:0 6px 25px #322d2333;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;backdrop-filter:blur(12px)}
.action-scan{background:#274e31;color:#fff;border-color:#285130;flex:1}
.action-wallet{flex:1}
.public-action:focus-visible,.sheet-close:focus-visible{outline:3px solid #d5a93c;outline-offset:3px}
.public-action[disabled]{opacity:.55;cursor:wait}
.wallet-pill{display:inline-flex;min-width:22px;height:22px;padding:0 5px;align-items:center;justify-content:center;background:#e9efe2;border-radius:99px;font-size:12px;color:#264629}
.wallet-dialog,.scanner-dialog{box-sizing:border-box;position:fixed;inset:auto 0 0;max-width:640px;width:min(100%,640px);max-height:85dvh;overflow-y:auto;background:#fffefa;border:1px solid #d6d0c2;border-bottom:0;border-radius:22px 22px 0 0;padding:12px 16px max(20px,env(safe-area-inset-bottom));box-shadow:0 -8px 50px #1a2e233d;color:var(--ink);}
.wallet-dialog:not([open]),.scanner-dialog:not([open]){display:none!important}
.wallet-dialog::backdrop,.scanner-dialog::backdrop{background:rgba(16,26,19,.57)}
.sheet-grip{width:44px;height:5px;border-radius:20px;background:#cad1c9;margin:1px auto 12px}
.sheet-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:8px}
.sheet-title strong{font-size:21px;color:#244d33}
.sheet-close{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:0;background:#f0f2eb;color:#314737;font:700 17px system-ui;cursor:pointer}
.wallet-dialog .wallet-panel{display:block!important;max-width:none;width:100%;padding:8px 0 10px;margin:0;flex:auto;border:0;background:transparent;box-shadow:none}
.wallet-dialog .wallet-panel .wallet-head h1{display:none}
.wallet-dialog .wallet-panel .wallet-head .eyebrow{font-size:11px}
.wallet-dialog .wallet-panel .wallet-grid{margin:14px 0}
.scanner-intro{margin:0 0 14px;font-size:14px;line-height:1.45;color:#5d6d60}
.scanner-reader{min-height:250px;background:#eff1e8;border-radius:14px;overflow:hidden;display:grid;place-items:center}
.scanner-reader video{max-height:47dvh;object-fit:cover}
.scanner-status{min-height:20px;margin:11px 0;color:#405644;font-size:13px}
.scanner-alternative{border-top:1px solid #eee9dd;padding-top:13px}
.scanner-alternative p{line-height:1.5;margin:9px 0}
.upload-qr{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.upload-qr input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;left:0;bottom:0}
.upload-qr:focus-within{outline:3px solid #bfa05a;outline-offset:2px}
@media (min-width:851px){
 .public-layout{flex-direction:column;gap:12px;padding:25px 20px 100px}
 .ticket-scene{width:min(100%,450px)}
 .wallet-dialog,.scanner-dialog{inset:auto 0 0;max-width:540px}
}
@media (max-width:850px){
 html:has(.public-body),body.public-body{margin:0;height:100%;overscroll-behavior:none}
 .public-body{height:100dvh;min-height:100dvh;overflow:hidden;background:#fffefa}
 .public-layout{display:block;max-width:none;width:100%;height:100dvh;min-height:100dvh;margin:0;padding:0;overflow:hidden}
 .ticket-scene{display:block;width:100%;max-width:none;height:100dvh;max-height:none}
 .ticket-visual{height:100dvh;max-height:none;max-width:560px;margin:0 auto;width:100%;aspect-ratio:auto;overflow:hidden;border:0;box-shadow:none;background:#fffefa}
 .ticket-art{display:none}
 .ticket-mobile-top,.ticket-mobile-bottom{position:absolute;display:block;left:0;width:100%;background-image:url('tombola-template.png');background-repeat:no-repeat;background-size:100% auto;pointer-events:none}
 .ticket-mobile-top{top:0;height:min(96vw,410px);background-position:center top}
 .ticket-mobile-bottom{bottom:0;height:min(42vw,190px);background-position:center bottom}
 .reveal-slot{left:12%;top:36%;width:76%;height:27%;gap:10px}
 .loading-number{font-size:clamp(13px,3.5vw,16px);letter-spacing:.07em}
 .winner-number{font-size:clamp(92px,28vw,150px);line-height:1}
 .good-luck{font-size:clamp(22px,6vw,32px)}
 .reveal-btn{font-size:clamp(13px,3.4vw,16px);padding:14px 20px;top:35%;inset-inline:5%}
 .star-field span:nth-child(1){left:79%;top:7%}
 .star-field span:nth-child(2){left:94%;top:19%}
 .star-field span:nth-child(3){left:90%;top:41%}
 .star-field span:nth-child(4){left:12%;top:61%}
 .star-field span:nth-child(5){left:26%;top:73%}
 .star-field span:nth-child(6){left:86%;top:73%}
 .wallet-dialog,.scanner-dialog{margin:0 auto;}
}
@media (max-width:360px){
 .public-actions{width:calc(100% - 18px);gap:6px}
 .public-action{font-size:12px;padding:11px 9px;min-height:44px}
 .ticket-mobile-top{height:97vw}
 .ticket-mobile-bottom{height:45vw}
}
@media (prefers-reduced-motion:reduce){.wallet-dialog,.scanner-dialog{scroll-behavior:auto}}

.scene-error{color:#8d2631;background:#fff7f4f0;border:1px solid #f3c5c1;border-radius:9px;padding:10px;font-size:13px;max-width:100%;line-height:1.35}
.scene-error[hidden]{display:none}

/* v1.9: Stabilní skener na iOS Safari i Android Chrome. Beze změny grafiky losu. */
.scanner-camera-shell{
  position:relative; flex:0 0 auto; width:100%; min-width:0;
  height:clamp(220px,44dvh,380px); max-height:44dvh;
  background:#16251c; border-radius:15px; overflow:hidden;
}
.scanner-reader{
  display:block!important; position:absolute!important; inset:0!important;
  width:100%!important;height:100%!important;min-height:0!important;
  max-width:100%!important;max-height:100%!important;
  border:0!important;padding:0!important;margin:0!important;
  background:#16251c;overflow:hidden!important;
}
.scanner-reader video,
.scanner-reader canvas,
.scanner-reader #qr-shaded-region{
  max-width:100%!important;max-height:100%!important;
}
.scanner-reader video{
  position:relative!important;width:100%!important;height:100%!important;
  object-fit:contain!important;display:block!important;
}
.scanner-reader img { max-width:100%!important; max-height:100%!important; }
.scanner-target{
  pointer-events:none;position:absolute;z-index:2;top:50%;left:50%;
  width:min(64%,245px);aspect-ratio:1;transform:translate(-50%,-50%);
  border:3px solid rgba(247,202,101,.85);border-radius:15px;
  box-shadow:0 0 0 999px rgba(7,16,9,.10),inset 0 0 18px rgba(255,245,198,.1);
}
.scanner-target span{position:absolute;left:8%;right:8%;top:50%;height:1px;background:#f8dc8f66}
.scanner-dialog .scanner-status{flex:0 0 auto;min-height:32px;margin:9px 0 5px;font-weight:650;overflow-wrap:anywhere}
@media (max-width:850px){
  html:has(.scanner-dialog[open]), body:has(.scanner-dialog[open]){overflow:hidden!important}
  .scanner-dialog[open]{
    position:fixed!important; inset:0!important; left:0!important;right:0!important;top:0!important;bottom:0!important;
    margin:0!important;padding:calc(9px + env(safe-area-inset-top,0px)) 14px calc(12px + env(safe-area-inset-bottom,0px))!important;
    width:100vw!important;height:100dvh!important;min-height:0!important;max-height:none!important;
    max-width:none!important;border:0!important;border-radius:0!important;
    overflow:hidden!important;display:flex!important;flex-direction:column;gap:0;
    overscroll-behavior:contain;transform:none!important;
  }
  .scanner-dialog .sheet-grip{display:none}
  .scanner-dialog .sheet-title{flex:0 0 auto;margin-bottom:6px}
  .scanner-dialog .scanner-intro{flex:0 0 auto;margin:0 0 10px;line-height:1.35;font-size:13px}
  .scanner-camera-shell{flex:1 1 auto;min-height:160px;max-height:none;height:auto}
  .scanner-dialog .scanner-alternative{flex:0 0 auto;margin-top:3px;padding-top:8px}
  .scanner-dialog .scanner-alternative p{margin:5px 0 0;font-size:11px}
  .scanner-dialog .upload-qr{min-height:36px}
}

/* v2.0: synchronizace bez zásahu do schválené vánoční grafiky */
.live-sync{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#52634f;font-size:12px;margin:0 0 15px}
.live-sync .btn{font-size:12px;padding:5px 10px;min-height:30px}
.wallet-empty-actions{border-top:1px solid #e6e3db;padding-top:12px;margin:12px 0}
.wallet-empty-actions[hidden]{display:none!important}
.ticket-live-state{margin:2px 0 0;font:650 clamp(10px,2.7vw,13px)/1.2 Arial,sans-serif;color:#295235;background:#fffdf1da;padding:3px 7px;border-radius:9px;white-space:nowrap}
.ticket-live-state[hidden]{display:none!important}


/* v2.1: Pouze vítěz se shodným číslem uvidí výrazné upozornění. */
.wallet-ticket.win-called{
  background:linear-gradient(150deg,#fff3bf,#fffaf0 60%,#f2f8ed);
  border:2px solid #c89933;
  box-shadow:0 0 0 2px #ffe6a8 inset,0 4px 16px #b58d2b3a;
}
.wallet-ticket.win-called strong{font-size:clamp(37px,10vw,51px);color:#a4000b;line-height:1.12}
.wallet-win-label{display:block;color:#a3000b;font-weight:900;font-size:11px;letter-spacing:.04em}
.win-dialog{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  box-sizing:border-box;min-width:0;width:min(93vw,450px);
  max-height:90dvh;max-width:450px;overflow:auto;margin:0;
  padding:0;border:3px solid #d5a74e;border-radius:24px;
  box-shadow:0 22px 90px #1c241f98;
  color:#203c27;background:radial-gradient(circle at 50% 20%,#fff6cb,#fffdfa 55%,#f8f1df);
  text-align:center;z-index:30;
}
.win-dialog::backdrop{background:rgba(14,33,19,.72);backdrop-filter:blur(3px)}
.win-dialog-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(23px,5dvh,43px) 19px;min-height:min(74dvh,570px);gap:15px}
.win-decoration{font-size:32px;color:#caa047;letter-spacing:.33em}
.win-dialog h2{font:900 clamp(38px,11vw,63px)/1.03 Georgia,serif;color:#ab0911;text-shadow:0 1px 0 #fff;letter-spacing:.012em;margin:0}
.win-info{font-size:clamp(14px,3.9vw,18px);margin:0}
.win-number{font:900 clamp(98px,34vw,165px)/1 Georgia,serif;min-height:1em;color:#bc0817;text-shadow:0 5px 9px #b35c4770;transform:scale(.15);opacity:0;filter:blur(10px)}
.win-visible .win-number{animation:win-pulse-in 1.6s cubic-bezier(.18,.8,.25,1.1) forwards}
@keyframes win-pulse-in{
  0%{opacity:0;transform:scale(.09);filter:blur(12px)}
  65%{opacity:1;transform:scale(1.19);filter:blur(0)}
  100%{opacity:1;transform:scale(1);filter:blur(0)}
}
.win-instruction{margin:0;color:#254d29;font-weight:700;font-size:clamp(13px,3.5vw,17px)}
.win-dismiss,.win-my-tickets{width:100%;max-width:300px;min-height:48px;border-radius:11px;font-size:16px;font-weight:750;cursor:pointer}
.win-dismiss{border:0;background:#254d30;color:white}
.win-my-tickets{border:1px solid #c7aa64;background:#fff9e6;color:#3e4c2d}
.win-dismiss:focus-visible,.win-my-tickets:focus-visible{outline:3px solid #c3942a;outline-offset:2px}
@media(max-height:590px){.win-dialog-content{min-height:0;gap:9px;padding:14px}.win-decoration{font-size:22px}.win-dialog h2{font-size:37px}.win-number{font-size:85px}.win-dismiss,.win-my-tickets{min-height:40px}}
@media(prefers-reduced-motion:reduce){.win-visible .win-number{animation:none;transform:none;opacity:1;filter:none}}

/* v2.2: Cena útěchy je vidět již při prvním skenování; hlavní cena má ohňostroj nad dialogem. */
.wallet-ticket.consolation{background:linear-gradient(145deg,#f3f0fb,#fffefa);border:1px solid #b8a1c4}
.wallet-ticket.consolation strong{color:#784c88}
.wallet-ticket.consolation.handed{opacity:.68;background:#edf2e9}
.wallet-kind-label{display:block;font-size:11px!important;font-weight:800;color:#714878!important;letter-spacing:.045em}
.ticket-visual.consolation-reveal #status-message{display:block;color:#8a4e87;font-size:clamp(13px,3.2vw,16px)}
.ticket-visual.consolation-reveal #winner-number{color:#8a4e87}
.ticket-visual.consolation-reveal #good-luck{font-size:clamp(12px,2.8vw,16px)}
.win-dialog{isolation:isolate}
#win-fireworks{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
.win-dialog-content{position:relative;z-index:2}

.ticket-visual.consolation-reveal .ticket-live-state{white-space:normal;text-align:center;max-width:85%;line-height:1.2}
