[hidden]{display:none!important}
:root{--blue:#071a86;--cyan:#18aeea;--pink:#e40058;--ink:#10162d;--muted:#667085;--line:#dfe5ef;--bg:#f3f6fb;--white:#fff;--danger:#b42318;--shadow:0 12px 34px rgba(12,31,95,.10)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--cyan);margin:0 0 .35rem}.message{min-height:1.25rem;color:var(--danger);margin:.35rem 0 0}.message.ok{color:#067647}.dashboard-notice{margin:0 0 1rem;padding:.85rem 1rem;border:1px solid #f5c2c7;border-radius:12px;background:#fff1f2;color:#9f1239;font-weight:700}.button{border:0;border-radius:12px;padding:.78rem 1rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;text-decoration:none}.button.primary{background:var(--blue);color:#fff}.button.secondary{background:#e9eefb;color:var(--blue)}.button.danger{background:#fee4e2;color:#b42318}.button.ghost{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.25)}.button.small{padding:.5rem .7rem;font-size:.88rem}.link-button{border:0;background:none;color:var(--blue);text-decoration:underline;padding:.4rem}.stack{display:grid;gap:1rem}label{display:grid;gap:.4rem;font-weight:700}input,select,textarea{border:1px solid #cfd7e6;border-radius:11px;background:#fff;padding:.76rem .8rem;color:var(--ink);min-width:0}input:focus,select:focus{outline:3px solid rgba(24,174,234,.18);border-color:var(--cyan)}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem;box-shadow:var(--shadow)}.panel.inset{box-shadow:none;margin-top:1rem;background:#f8faff}.button-row{display:flex;gap:.65rem;flex-wrap:wrap}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(280px,520px) minmax(300px,440px);align-items:center;justify-content:center;gap:2rem;padding:2rem;background:radial-gradient(circle at 20% 20%,rgba(24,174,234,.18),transparent 32%),radial-gradient(circle at 80% 80%,rgba(228,0,88,.12),transparent 28%),#eef3ff}.auth-card{background:#fff;border-radius:24px;padding:2rem;box-shadow:var(--shadow)}.brand-card{background:#020618;color:#fff;min-height:430px;display:flex;flex-direction:column;justify-content:center}.brand-card img{max-width:340px;width:90%;margin-bottom:2rem}.brand-card h1{font-size:3.1rem;margin:.2rem 0}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:272px;background:#020618;color:#fff;padding:1.1rem;display:flex;flex-direction:column;z-index:20}.side-brand{display:flex;align-items:center;gap:.8rem;padding:.4rem .35rem 1.3rem}.side-brand img{width:58px;height:58px;object-fit:contain}.side-brand strong{display:block;font-size:1.15rem}.side-brand span{font-size:.72rem;color:#a8b3d8}.sidebar nav{display:grid;gap:.28rem}.sidebar nav button{border:0;text-align:left;border-radius:11px;background:transparent;color:#d8def4;padding:.82rem .9rem;font-weight:750}.sidebar nav button:hover,.sidebar nav button.active{background:#102581;color:#fff}.side-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;font-size:.9rem}.main{margin-left:272px;padding:2rem;min-height:100vh}.page{display:none}.page.active{display:block}.page-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.2rem}.page-head h1{font-size:2.25rem;margin:.1rem 0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.stat{background:#fff;border-radius:16px;border:1px solid var(--line);padding:1.1rem;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:.85rem}.stat strong{font-size:2rem;color:var(--blue)}.list-row{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid var(--line);background:#fff;padding:1rem;text-align:left}.list-row span:first-child{display:grid}.list-row small{color:var(--muted);margin-top:.2rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem}.race-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem;box-shadow:var(--shadow)}.race-card h2{margin:.9rem 0 .3rem}.race-card-head,.race-progress{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.race-progress{font-size:.9rem;color:var(--muted);margin:1rem 0}.grade-badge{background:#e2f5fd;color:#006b9a;font-weight:900;border-radius:999px;padding:.35rem .65rem}.status{display:inline-block;border-radius:999px;padding:.28rem .55rem;font-size:.78rem;font-weight:800}.status.live{background:#ecfdf3;color:#067647}.status.done{background:#eef2ff;color:#3730a3}.status.warn{background:#fff4e5;color:#b54708}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:.75rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#667085}.table-tools{display:flex;gap:1rem;justify-content:space-between;align-items:end;margin-bottom:1rem}.table-tools label{display:flex;align-items:center;gap:.5rem}.table-tools input{min-width:280px}.filter-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem}.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.55rem .8rem;font-weight:800;color:var(--blue)}.filter.active{background:var(--blue);color:#fff}.narrow{max-width:560px}.mobile-header{display:none}.capture-page.active{display:block}.capture-shell,.finish-shell{min-height:calc(100vh - 4rem);display:flex;flex-direction:column;gap:1rem}.capture-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.capture-top h1{margin:.15rem 0}.capture-top select{min-width:320px}.timer-card{display:grid;justify-items:center;gap:.2rem}.timer-caption{font-size:.82rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.timer-display{font-variant-numeric:tabular-nums;font-size:clamp(3.4rem,9vw,8rem);font-weight:900;letter-spacing:-.05em;text-align:center;color:var(--blue);line-height:1}.timing-sync{align-self:center;border-radius:999px;padding:.45rem .8rem;font-size:.82rem;font-weight:850;border:1px solid transparent;text-align:center}.timing-sync.synced{background:#ecfdf3;color:#067647;border-color:#abefc6}.timing-sync.pending{background:#fff7ed;color:#b54708;border-color:#fed7aa}.timing-sync.offline{background:#fff1f2;color:#b42318;border-color:#fecdd3}.capture-count{text-align:center}.capture-count span{display:block;color:var(--muted);font-weight:700}.capture-count strong{font-size:2.5rem}.capture-main{flex:1;min-height:230px;border:0;border-radius:32px;font-size:clamp(2.2rem,7vw,5.5rem);font-weight:1000;letter-spacing:.03em;color:#fff;box-shadow:0 18px 50px rgba(4,20,95,.2)}.capture-main.start{background:var(--blue)}.capture-main.hit{background:var(--cyan)}.capture-main.ended{flex:0 0 auto;align-self:center;width:min(100%,360px);min-height:72px;height:72px;border-radius:18px;background:var(--blue);font-size:1.35rem;box-shadow:0 10px 26px rgba(4,20,95,.14);cursor:default}.capture-main:active{transform:scale(.995)}.capture-shell.timing-ended .timer-card{align-self:center;width:min(100%,620px);padding:1.15rem 1rem 1.25rem;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.capture-shell.timing-ended .timer-caption{font-size:.9rem;color:var(--blue)}.capture-shell.timing-ended .timer-display{font-size:clamp(4.2rem,11vw,8.4rem)}.capture-shell.timing-ended .capture-count{margin:.1rem 0}.capture-shell.timing-ended .capture-main:disabled{opacity:1}.capture-actions{display:flex;gap:.75rem;justify-content:center}.finish-status{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}.bib-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));grid-auto-rows:minmax(74px,1fr);gap:.55rem;align-content:stretch;min-height:0}.bib-button{border:2px solid #d9e1f2;background:#fff;color:var(--blue);border-radius:16px;min-height:72px;font-weight:900;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(12,31,95,.06)}.bib-button strong{font-size:1.65rem;line-height:1}.bib-button small{font-size:.72rem;color:var(--muted);margin-top:.28rem}.bib-button.used{background:#e6e9f2;color:#9098aa;border-color:#e6e9f2}.certificate-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1rem}.certificate-layout iframe{width:100%;height:72vh;border:1px solid var(--line);border-radius:18px;background:#fff}.grade-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.grade-choice{border:2px solid var(--line);border-radius:15px;padding:1rem;text-align:center;display:grid;cursor:pointer}.grade-choice:has(input:checked){border-color:var(--blue);background:#f0f3ff}.grade-choice input{position:absolute;opacity:0;pointer-events:none}.grade-choice strong{font-size:2rem;color:var(--blue)}.grade-choice span{color:var(--muted);font-size:.8rem}dialog{border:0;border-radius:20px;padding:0;max-width:min(92vw,720px);width:100%;box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(4,9,31,.55)}.dialog-card{padding:1.4rem;display:grid;gap:1rem}.dialog-card.wide{max-height:88vh;overflow:auto}.check{display:flex;align-items:center;gap:.6rem}.check input{width:auto}.bib-form{display:flex;gap:.5rem}.bib-form input{width:90px}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.mobile-header{display:flex;position:sticky;top:0;z-index:15;background:#020618;color:#fff;padding:.8rem 1rem;align-items:center;gap:1rem}.mobile-header button{background:none;color:#fff;border:0;font-size:1.5rem}.main{margin-left:0;padding:1rem}.auth-shell{grid-template-columns:1fr}.brand-card{display:none}.certificate-layout{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr 1fr}.capture-shell,.finish-shell{min-height:calc(100dvh - 78px - 2rem)}.capture-top{align-items:flex-start}.capture-top select{min-width:0;width:45%}.bib-grid{grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.4rem}.bib-button{min-height:62px;border-radius:12px}.bib-button strong{font-size:1.4rem}}
@media(max-width:600px){body:has(.capture-page.active){overflow:hidden}.main{padding:.65rem}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:1.8rem}.stats{grid-template-columns:1fr}.capture-shell,.finish-shell{height:calc(100dvh - 58px - 1.3rem);min-height:0;overflow:hidden;gap:.55rem}.capture-top{min-height:54px}.capture-top h1{font-size:1.35rem}.capture-top .eyebrow{font-size:.62rem}.capture-top select{width:52%;padding:.55rem;font-size:.8rem}.timer-display{font-size:12vw}.timing-sync{font-size:.68rem;padding:.32rem .55rem}.capture-count strong{font-size:1.8rem}.capture-main{min-height:0;border-radius:24px}.capture-main.ended{flex:0 0 58px;min-height:58px;height:58px;border-radius:16px;font-size:1.05rem}.capture-shell.timing-ended .timer-card{padding:.9rem .65rem 1rem;border-radius:18px}.capture-shell.timing-ended .timer-display{font-size:15vw}.capture-shell.timing-ended .timer-caption{font-size:.72rem}.capture-actions .button{padding:.6rem .7rem;font-size:.8rem}.finish-status{padding:.55rem .65rem;font-size:.78rem;gap:.5rem}.bib-grid{overflow:hidden;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));grid-auto-rows:minmax(48px,1fr);gap:.3rem}.bib-button{min-height:45px;padding:.2rem}.bib-button strong{font-size:1.15rem}.bib-button small{font-size:.58rem}.table-tools{align-items:stretch;flex-direction:column}.table-tools input{min-width:0;width:100%}.grade-choices{grid-template-columns:1fr 1fr 1fr}}
.guest-simple{max-width:1200px;margin:auto;padding:1rem;min-height:100dvh}.guest-brand{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.guest-brand img{width:120px;height:70px;object-fit:contain}.guest-brand strong,.guest-brand span{display:block}.guest-brand strong{font-size:1.4rem;color:var(--blue)}.guest-auth-tabs{display:flex;gap:.5rem;margin-bottom:1rem}@media(max-width:600px){.guest-simple{height:100dvh;overflow:hidden;padding:.6rem}.guest-simple .finish-shell{height:calc(100dvh - .8rem)}}

.bib-grid.fitted{grid-template-columns:repeat(var(--bib-cols),minmax(0,1fr));grid-template-rows:repeat(var(--bib-rows),minmax(0,1fr));grid-auto-rows:unset}.bib-grid.fitted .bib-button{min-height:0;height:100%;padding:.1rem}.bib-grid.fitted .bib-button strong{font-size:clamp(.78rem,2.8vw,1.65rem)}.bib-grid.fitted .bib-button small{font-size:clamp(.48rem,1.4vw,.72rem)}
.certificate-controls{align-content:start}.certificate-section{display:grid;gap:.8rem}.certificate-section h2{margin:0;font-size:1.06rem;color:var(--blue)}.certificate-range-card{display:grid;gap:.75rem;padding:.95rem;border:1px solid var(--line);border-radius:18px;background:#f8faff}.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .9rem}.checkbox-grid .check,.certificate-range-card .check{padding:.25rem 0}.certificate-preview-stack{display:grid;gap:.75rem}.certificate-preview-frame{position:relative;overflow:hidden;min-height:220px;border:1px solid var(--line);border-radius:18px;background:#eef2ff;box-shadow:var(--shadow);transition:height .18s ease}.certificate-preview-canvas{position:absolute;top:12px;left:50%;width:794px;height:1123px;margin-left:-397px;transform-origin:top center;will-change:transform}.certificate-preview-frame iframe{display:block;width:794px;height:1123px;min-height:0;border:0;border-radius:10px;background:#fff;pointer-events:auto}.certificate-preview-toggles .button.active{background:var(--blue);color:#fff}.certificate-layout .message{margin-top:0}.certificate-section .muted{margin:0}.certificate-range-card input[type="number"]{width:100%}
@media(max-width:900px){.checkbox-grid,.range-grid{grid-template-columns:1fr}.certificate-preview-frame{min-height:180px}}
/* Pascalmeile 1.0.8: Wettkampf- und Schülerverwaltung */
.race-management{margin-top:1.25rem;scroll-margin-top:1rem}.race-management-head,.race-group-head,.race-participants-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.race-management-head h2,.race-group-head h3,.race-participants-head h3{margin:.15rem 0}.race-edit-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(160px,1fr) minmax(130px,.7fr) auto;gap:.75rem;align-items:end;margin:1rem 0}.race-edit-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:end}.race-group-editor{border-top:1px solid var(--line);padding-top:1rem;margin-top:.25rem}.race-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.5rem;margin-top:.75rem}.race-class-choice{display:flex;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem;background:#fff;cursor:pointer;font-weight:600}.race-class-choice:has(input:checked){border-color:var(--blue);background:#f0f3ff}.race-class-choice:has(input:disabled){opacity:.65;cursor:not-allowed}.race-class-choice input{width:18px;height:18px;margin:0;flex:0 0 auto}.race-class-choice span{min-width:0;display:grid;gap:.08rem}.race-class-choice small{color:var(--muted);font-weight:500;white-space:normal}.race-participants-head{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}.race-table-wrap{margin-top:.55rem}.race-student-table th,.race-student-table td,.compact-table th,.compact-table td{padding:.38rem .5rem}.race-student-table td{vertical-align:middle}.race-student-table .bib-form{display:flex;align-items:center;gap:.35rem}.race-student-table .bib-form input{width:78px;padding:.42rem .5rem;border-radius:8px}.race-student-table .bib-form .button{padding:.42rem .58rem}.selection-pill{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);border-radius:999px;padding:.55rem .8rem;background:#fff;cursor:pointer}.selection-pill:has(input:checked){background:#eef2ff;border-color:var(--blue);color:var(--blue)}.selection-pill input{width:auto;margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.manual-import-panel{max-width:900px}.manual-import-panel textarea{resize:vertical;min-height:220px;line-height:1.45}.settings-grid{display:grid;grid-template-columns:minmax(280px,520px) minmax(320px,1fr);gap:1rem;align-items:start}.student-tools{flex-wrap:wrap}.student-tools label:first-child{min-width:min(100%,360px)}.student-tools input{min-width:0}.filter-row{align-items:center}.filter-row .filter{white-space:normal}.race-selection-mode{margin-bottom:.25rem}
@media(max-width:1050px){.race-edit-grid{grid-template-columns:1fr 1fr}.race-edit-actions{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}}
@media(max-width:700px){.race-management{padding:.9rem}.race-management-head,.race-group-head,.race-participants-head{align-items:stretch;flex-direction:column}.race-edit-grid,.two-col{grid-template-columns:1fr}.race-edit-actions{grid-column:auto}.race-class-grid{grid-template-columns:1fr}.race-student-table{min-width:660px}.race-student-table th,.race-student-table td{padding:.3rem .4rem}.race-student-table .bib-form input{width:68px}.manual-import-panel textarea{min-height:260px}}
/* Pascalmeile 1.0.10: flexible Klassenstufen, Schülerfilter und Export */
.export-panel{gap:1.25rem}.export-section{display:grid;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.export-section:last-of-type{border-bottom:0;padding-bottom:0}.export-section h2{margin:0;font-size:1.08rem;color:var(--blue)}.export-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.export-section-head p{margin:.25rem 0 0}.export-grade-filters{margin-bottom:.15rem}.export-class-filters{margin-bottom:0}.export-class-filter{display:inline-grid;gap:.08rem;text-align:left;justify-items:start}.export-class-filter strong{font-size:.9rem}.export-class-filter small{font-size:.7rem;font-weight:600;color:var(--muted)}.export-class-filter.active small{color:rgba(255,255,255,.78)}.export-field-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.export-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.button.disabled,.button[aria-disabled="true"]{opacity:.45;pointer-events:none}.export-actions .muted{margin:0}.export-panel .table-wrap table{min-width:560px}
@media(max-width:700px){.export-section-head{flex-direction:column}.export-field-grid{grid-template-columns:1fr 1fr}.export-class-filter{max-width:100%}}
.capture-sync-row{display:flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap}.capture-sync-row .timing-sync{align-self:auto}.bib-button.pending-local{outline:3px solid rgba(24,174,234,.32);outline-offset:-3px;background:#eefbff;color:var(--blue)}#recoveryDialog{max-width:min(94vw,760px)}#recoveryDialog .page-head{margin-bottom:0}#recoveryDialog table{min-width:560px}.recovery-pending{font-weight:800;color:#b54708}.recovery-synced{font-weight:800;color:#067647}.recovery-cancelled{color:var(--muted)}
@media(max-width:600px){.capture-sync-row{gap:.35rem}.capture-sync-row .button{padding:.38rem .55rem;font-size:.68rem}.finish-shell>.timing-sync{font-size:.64rem;padding:.3rem .5rem}.finish-status .button{padding:.42rem .55rem;font-size:.68rem}}

/* 1.0.12 timing list */
.timing-history-panel{display:flex;flex-direction:column;gap:.45rem;min-height:150px;flex:1 1 170px;padding:.85rem 1rem;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}
.timing-history-head{display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem;flex-wrap:wrap}
.timing-history-head h2{margin:0;font-size:1rem;color:var(--blue)}
.timing-history-meta{font-size:.8rem;color:var(--muted);font-weight:700}
.timing-history{--timing-cols:2;--timing-font:.94rem;display:grid;grid-template-columns:repeat(var(--timing-cols),minmax(0,1fr));gap:.35rem;align-content:start;min-height:0;flex:1 1 auto;overflow:hidden}
.timing-chip{display:flex;align-items:center;gap:.38rem;min-width:0;padding:.26rem .42rem;border-radius:11px;background:#f8faff;border:1px solid #dfe5ef;font-size:var(--timing-font);line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}
.timing-chip .seq{flex:0 0 auto;min-width:2.25em;color:var(--blue);font-weight:900}
.timing-chip .value{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:800}
.timing-chip.pending{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.timing-chip.pending .seq{color:#b54708}
.timing-history.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;background:#f8faff;border:1px dashed #dfe5ef;border-radius:14px;padding:1rem}

@media(max-width:900px){
  .timing-history-panel{min-height:170px}
}
@media(max-width:600px){
  .capture-main.hit{flex:0 0 clamp(132px,23dvh,210px)}
  .capture-main.start{flex:1 1 auto}
  .timing-history-panel{flex:1 1 0;min-height:130px;padding:.7rem .75rem;border-radius:16px}
  .timing-history-head h2{font-size:.92rem}
  .timing-history-meta{font-size:.72rem}
  .timing-history{gap:.24rem}
  .timing-chip{padding:.18rem .3rem;border-radius:9px}
}

/* 1.0.13 Etiketten */
.labels-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:1rem;align-items:start}
.labels-preview-frame{min-height:76vh;border:1px solid var(--line);border-radius:18px;background:#e9edf7;overflow:hidden;box-shadow:var(--shadow)}
.labels-preview-frame iframe{display:block;width:100%;height:76vh;border:0;background:#e9edf7}
.label-format-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.label-format-facts div{padding:.7rem .55rem;border:1px solid var(--line);border-radius:14px;background:#f8faff;text-align:center}
.label-format-facts span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.label-format-facts strong{display:block;margin-top:.2rem;color:var(--blue);font-size:1rem}
.small-note{font-size:.82rem;line-height:1.45;margin:0}
@media(max-width:900px){.labels-layout{grid-template-columns:1fr}.labels-preview-frame,.labels-preview-frame iframe{min-height:70vh;height:70vh}}
.gender-filter{margin-bottom:.45rem}.gender-filter-note{margin:.1rem 0 1rem;font-size:.86rem}

/* 1.0.16: mobiles Menü durch Klick außerhalb schließen */
.sidebar-backdrop{display:none}
@media(max-width:900px){
  .sidebar{z-index:30}
  .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:29;border:0;padding:0;background:rgba(2,6,24,.42);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
  .sidebar-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
  body.sidebar-open{overflow:hidden}
}


/* 1.0.17 Gastlink-Verwaltung */
#guestAccessBox{min-width:0}
.guest-access-card{display:grid;gap:.9rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:18px;background:#fff}
.guest-access-card.guest-access-empty{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.guest-access-card p{margin:.25rem 0 0;line-height:1.45}
.guest-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;min-width:0}
.guest-access-head>div{min-width:0}
.guest-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:stretch;min-width:0}
.guest-link-input{width:100%;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f8faff}
.guest-copy-button{min-width:118px}
.guest-copy-msg{min-height:1.15rem;margin:0;font-size:.82rem;color:var(--danger)}
.guest-copy-msg.ok{color:#067647}
.guest-access-actions{align-items:center}
@media(max-width:600px){
  .guest-access-card.guest-access-empty{grid-template-columns:1fr}
  .guest-access-head{align-items:flex-start;flex-direction:column}
  .guest-link-row{grid-template-columns:1fr}
  .guest-copy-button{width:100%}
  .guest-access-actions{display:grid;grid-template-columns:1fr}
  .guest-access-actions .button{width:100%}
}

/* 1.0.18: Gastzugang kompakt + QR-Code */
.guest-access-main{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:1rem;align-items:start;min-width:0}
.guest-access-linkblock{display:grid;gap:.65rem;min-width:0}
.guest-qr-card{display:grid;justify-items:center;gap:.35rem;padding:.8rem;border:1px solid var(--line);border-radius:16px;background:#f8faff;text-align:center;min-width:0}
.guest-qr-code{display:grid;place-items:center;width:180px;height:180px;max-width:100%;background:#fff;border-radius:12px;padding:6px}
.guest-qr-code svg{display:block;width:100%!important;height:100%!important}
.guest-qr-card strong{font-size:.9rem;color:var(--blue)}
.guest-qr-card span{font-size:.75rem;line-height:1.35;color:var(--muted)}

.guest-simple{display:flex;flex-direction:column;max-width:1200px;margin:auto;min-height:100dvh;padding:1rem;padding-bottom:calc(1rem + max(24px,env(safe-area-inset-bottom)))}
.guest-brand{flex:0 0 auto}
.guest-auth-panel{max-width:620px;width:100%;margin:0 auto}
.guest-auth-meta{margin:.1rem 0 1rem;color:var(--muted);font-weight:700}
body.guest-workspace-open{overflow:hidden}
body.guest-workspace-open .guest-simple{height:100dvh;min-height:0;padding:.35rem .55rem calc(.45rem + max(30px,env(safe-area-inset-bottom)))}
body.guest-workspace-open .guest-brand{height:38px;margin:0 0 .3rem;gap:.45rem;align-items:center}
body.guest-workspace-open .guest-brand img{width:44px;height:32px}
body.guest-workspace-open .guest-brand strong{font-size:1rem;line-height:1.05}
body.guest-workspace-open .guest-brand span{font-size:.68rem;line-height:1.1;color:var(--muted)}
.guest-workspace{flex:1 1 auto;min-height:0;height:auto!important;gap:.35rem!important;overflow:hidden}
.guest-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:.65rem;flex:0 0 auto;padding:.35rem .15rem}
.guest-workspace-title{display:flex;align-items:baseline;gap:.55rem;min-width:0;overflow:hidden}
.guest-workspace-title strong{font-size:1rem;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guest-workspace-title span{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guest-workspace .finish-status{flex:0 0 auto;margin:0;padding:.4rem .55rem;border-radius:12px;gap:.45rem;font-size:.74rem}
.guest-workspace .finish-status .button{padding:.38rem .52rem;font-size:.7rem}
.guest-workspace .bib-grid{flex:1 1 auto;min-height:0;overflow:hidden;gap:.3rem}
.guest-bib-button{padding:.2rem .22rem!important;overflow:hidden}
.guest-bib-button strong{font-size:clamp(1.05rem,4.2vw,1.55rem)!important;line-height:1!important}
.guest-bib-button small{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;white-space:normal!important;line-height:1.08!important;text-align:center;font-size:clamp(.48rem,1.7vw,.68rem)!important;margin-top:.18rem!important;width:100%;max-height:2.2em;color:var(--muted)}
.guest-workspace .message{flex:0 0 auto;margin:0;min-height:0;font-size:.7rem}

@media(max-width:700px){
  .guest-access-main{grid-template-columns:1fr}
  .guest-qr-card{justify-self:stretch}
  .guest-qr-code{width:170px;height:170px}
}
@media(max-width:600px){
  .guest-simple{padding:.55rem .55rem calc(.55rem + max(28px,env(safe-area-inset-bottom)))}
  .guest-brand{gap:.55rem;margin-bottom:.55rem}
  .guest-brand img{width:78px;height:46px}
  .guest-brand strong{font-size:1.15rem}
  body.guest-workspace-open .guest-simple{padding:.25rem .45rem calc(.35rem + max(48px,env(safe-area-inset-bottom)))}
  body.guest-workspace-open .guest-brand{height:32px;margin-bottom:.15rem}
  body.guest-workspace-open .guest-brand img{width:38px;height:28px}
  body.guest-workspace-open .guest-brand strong{font-size:.9rem}
  body.guest-workspace-open .guest-brand span{font-size:.58rem}
  .guest-workspace-head{padding:.18rem 0;min-height:34px}
  .guest-workspace-title{gap:.35rem}
  .guest-workspace-title strong{font-size:.9rem}
  .guest-workspace-title span{font-size:.63rem}
  .guest-workspace-head .button{padding:.36rem .5rem;font-size:.68rem}
  .guest-workspace .finish-status{padding:.3rem .4rem;font-size:.68rem}
  .guest-workspace .bib-grid{grid-template-columns:repeat(auto-fit,minmax(50px,1fr));grid-auto-rows:minmax(46px,1fr)}
}

/* 1.0.18 final guest layout overrides */
.guest-event-card{display:grid;gap:.15rem;margin:0 0 .85rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:16px;background:#f8faff}
.guest-event-card>strong{font-size:1.18rem;color:var(--blue)}
.guest-event-card .muted{font-weight:700}
body.guest-workspace-open .guest-brand{display:none}
.guest-workspace{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.3rem;overflow:hidden}
.guest-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex:0 0 auto;min-height:34px;padding:.2rem 0}
.guest-race-ident{display:flex;align-items:baseline;gap:.45rem;min-width:0;overflow:hidden}
.guest-race-ident strong{font-size:.94rem;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guest-race-ident span{font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guest-finish-status{display:flex;align-items:center;gap:.55rem;flex:0 0 auto;padding:.34rem .45rem;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.7rem}
.guest-finish-status span{display:flex;align-items:baseline;gap:.2rem;white-space:nowrap}
.guest-finish-status strong{color:var(--blue);font-size:.9rem}
.guest-finish-status .button{margin-left:auto;padding:.34rem .5rem;font-size:.68rem}
.guest-bib-grid{--guest-bib-cols:6;--guest-bib-rows:1;display:grid;grid-template-columns:repeat(var(--guest-bib-cols),minmax(0,1fr));grid-template-rows:repeat(var(--guest-bib-rows),minmax(0,1fr));gap:.28rem;flex:1 1 auto;min-height:0;overflow:hidden;align-content:stretch}
.guest-bib-button{border:2px solid #d9e1f2;background:#fff;color:var(--blue);border-radius:12px;min-width:0;min-height:0;padding:.18rem;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;box-shadow:0 3px 10px rgba(12,31,95,.05);overflow:hidden}
.guest-bib-button strong{font-size:clamp(1rem,4.2vw,1.55rem);line-height:1}
.guest-bib-button small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;width:100%;margin-top:.18rem;color:var(--muted);font-size:clamp(.46rem,1.7vw,.68rem);font-weight:700;line-height:1.08;text-align:center;white-space:normal;overflow-wrap:anywhere}
.guest-bib-button.used{background:#e6e9f2;color:#8c94a5;border-color:#e6e9f2}
.guest-work-message{flex:0 0 auto;min-height:0;margin:0;font-size:.68rem}
body.guest-workspace-open .guest-simple{height:100dvh;min-height:0;overflow:hidden;padding:.28rem .45rem calc(.32rem + max(48px,env(safe-area-inset-bottom)))}

@media(max-width:600px){
  .guest-auth-panel{padding:1rem}
  .guest-event-card{padding:.65rem .75rem}
  .guest-event-card>strong{font-size:1.05rem}
  .guest-workspace-head{min-height:30px;padding:.08rem 0}
  .guest-race-ident{gap:.3rem}
  .guest-race-ident strong{font-size:.84rem}
  .guest-race-ident span{font-size:.58rem}
  .guest-workspace-head .button{padding:.3rem .42rem;font-size:.62rem}
  .guest-finish-status{gap:.38rem;padding:.26rem .34rem;font-size:.62rem}
  .guest-finish-status strong{font-size:.8rem}
  .guest-finish-status .button{padding:.3rem .4rem;font-size:.62rem}
  .guest-bib-grid{gap:.22rem}
  .guest-bib-button{border-radius:9px;padding:.12rem}
  .guest-bib-button strong{font-size:clamp(.95rem,4vw,1.35rem)}
  .guest-bib-button small{font-size:clamp(.42rem,1.55vw,.6rem)}
}

/* 1.0.19: kein doppelter Kopf im Gastzugang */
.guest-body .guest-brand{display:none!important}
.guest-body .guest-simple{padding-top:.55rem}
body.guest-workspace-open .guest-simple{padding-top:.28rem}

/* 1.0.20: Gast-Zieleinlauf mit lesbaren Namen + letzten fünf Trikotnummern */
body.guest-workspace-open{overflow:auto!important}
body.guest-workspace-open .guest-simple{height:auto!important;min-height:100dvh!important;overflow:visible!important;padding:.28rem .45rem calc(.8rem + max(56px,env(safe-area-inset-bottom)))!important}
.guest-workspace{display:flex;flex-direction:column;min-height:100%;height:auto!important;overflow:visible!important;gap:.38rem!important}
.guest-workspace-controls{position:sticky;top:0;z-index:8;display:grid;gap:.3rem;padding:.12rem 0 .28rem;background:linear-gradient(180deg,var(--bg) 0%,var(--bg) 88%,rgba(243,246,251,.92) 100%)}
.guest-workspace-head{background:var(--bg)}
.guest-recent-strip{display:flex;align-items:center;gap:.45rem;min-width:0;padding:.35rem .45rem;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(12,31,95,.04)}
.guest-recent-label{flex:0 0 auto;font-size:.68rem;font-weight:850;color:var(--muted);white-space:nowrap}
.guest-recent-bibs{display:flex;align-items:center;justify-content:flex-end;gap:.28rem;min-width:0;flex:1 1 auto}
.guest-recent-bib{display:grid;place-items:center;min-width:2.2rem;height:2rem;padding:0 .4rem;border:1px solid #cfd7e6;border-radius:9px;background:#f8faff;color:var(--blue);font-size:.82rem;font-weight:950;font-variant-numeric:tabular-nums}
.guest-recent-bib.latest{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 10px rgba(7,26,134,.18)}
.guest-recent-empty{font-size:.7rem;color:var(--muted);font-weight:700}
.guest-bib-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(108px,1fr))!important;grid-template-rows:none!important;grid-auto-rows:minmax(108px,auto)!important;gap:.36rem!important;flex:0 0 auto!important;min-height:0!important;overflow:visible!important;align-content:start!important;padding-bottom:.25rem}
.guest-bib-button{min-height:108px!important;height:auto!important;padding:.42rem .32rem!important;border-radius:12px!important;justify-content:flex-start!important;overflow:visible!important}
.guest-bib-button strong{font-size:1.35rem!important;line-height:1!important;margin-bottom:.28rem;flex:0 0 auto}
.guest-bib-name{display:block;width:100%;font-size:.68rem;font-weight:850;line-height:1.12;color:var(--ink);text-align:center;white-space:normal;overflow-wrap:anywhere;hyphens:auto}
.guest-bib-class{display:block;width:100%;margin-top:.24rem;font-size:.58rem;font-weight:750;line-height:1.05;color:var(--muted);text-align:center;white-space:normal;overflow-wrap:anywhere}
.guest-bib-button.used .guest-bib-name,.guest-bib-button.used .guest-bib-class{color:#8c94a5}
.guest-work-message{min-height:1.2rem!important;padding-bottom:.2rem}

@media(max-width:600px){
  .guest-workspace-controls{gap:.24rem;padding-top:.04rem}
  .guest-recent-strip{gap:.3rem;padding:.28rem .32rem;border-radius:10px}
  .guest-recent-label{font-size:.58rem}
  .guest-recent-bibs{gap:.2rem}
  .guest-recent-bib{min-width:1.9rem;height:1.8rem;padding:0 .28rem;border-radius:8px;font-size:.72rem}
  .guest-recent-empty{font-size:.62rem}
  .guest-bib-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:minmax(104px,auto)!important;gap:.28rem!important}
  .guest-bib-button{min-height:104px!important;padding:.34rem .22rem!important;border-radius:10px!important}
  .guest-bib-button strong{font-size:1.18rem!important;margin-bottom:.22rem}
  .guest-bib-name{font-size:.62rem;line-height:1.1}
  .guest-bib-class{font-size:.52rem;margin-top:.2rem}
}

@media(max-width:370px){
  .guest-recent-label{display:none}
  .guest-bib-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .guest-bib-name{font-size:.58rem}
}
.guest-recent-bib{cursor:default}

/* 1.0.21: kompakter Gast-Zieleinlauf */
.guest-latest-card{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-width:0;padding:.32rem .5rem;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(12,31,95,.04)}
.guest-latest-card[hidden]{display:none!important}
.guest-latest-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:850;color:var(--ink);text-align:left}
.guest-latest-bib{flex:0 0 auto;color:var(--blue);font-size:.95rem;font-weight:950;font-variant-numeric:tabular-nums;text-align:right}

@media(max-width:600px){
  .guest-bib-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;grid-auto-rows:minmax(46px,auto)!important;gap:.18rem!important}
  .guest-bib-button{min-height:46px!important;height:auto!important;padding:.12rem .08rem!important;border-width:1px!important;border-radius:7px!important;justify-content:flex-start!important}
  .guest-bib-button strong{font-size:.92rem!important;line-height:.95!important;margin:0 0 .08rem!important}
  .guest-bib-name{font-size:.42rem!important;line-height:1.02!important;font-weight:850!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important;hyphens:auto!important;margin:0!important}
  .guest-bib-class{font-size:.38rem!important;line-height:1!important;margin-top:.07rem!important;white-space:normal!important}
  .guest-latest-card{padding:.25rem .42rem;border-radius:9px}
  .guest-latest-name{font-size:.66rem}
  .guest-latest-bib{font-size:.88rem}
}

@media(max-width:370px){
  .guest-bib-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .guest-bib-name{font-size:.39rem!important}
  .guest-bib-class{font-size:.35rem!important}
}
