:root{--bg:#fff;--surface:#f3f4f6;--text:#1a1a1a;--muted:#555;--border:#c8cbd1;--accent:#1f6f3f;--accent-text:#fff;--error:#b42318;--warning-bg:#fff4d6;--warning-text:#5c4400;--test:#c0162c;--frame:#999762;--content-width:min(97%, 1440px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--frame);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#16171d;--surface:#23252d;--text:#f3f4f6;--muted:#b0b3bb;--border:#454955;--accent:#3fa564;--accent-text:#0b1a10;--error:#ff8a80;--warning-bg:#3a3014;--warning-text:#ffe08a;--test:#ff6b7d}}body{background:var(--frame);box-sizing:border-box;min-height:100vh;margin:0;padding:.75rem 0 2rem}a{color:var(--accent)}.app-header{width:var(--content-width);margin:0 auto .75rem}.home-logo{border-radius:.5rem;display:inline-block}.home-logo img{width:7.5rem;height:auto;display:block}.home-logo:focus-visible{outline-offset:4px;outline:3px solid #fff}@media (width>=40rem){.home-logo img{width:9rem}}.page{width:var(--content-width);background:var(--bg);box-sizing:border-box;border-radius:.75rem;margin:0 auto;padding:1.5rem 1rem 3rem}@media (width>=40rem){body{padding:1.5rem 0 3rem}.page{padding:2rem 2rem 3rem}}.page.narrow{width:var(--content-width)}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}input{font:inherit;border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.75rem}:where(input:not([type=checkbox],[type=radio],[type=date]),textarea),.stack>button,.stack>.button,.yes-no{box-sizing:border-box;width:100%;max-width:30rem}input.short{width:6rem}button,.button{font:inherit;border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:center;border-radius:.5rem;padding:.5rem 1rem;text-decoration:none}button.big,.button.big{background:var(--accent);border-color:var(--accent);min-height:3.5rem;color:var(--accent-text);padding:.75rem 1.5rem;font-weight:700}button:disabled{opacity:.6;cursor:default}.error{color:var(--error);font-weight:600}.warning{background:var(--warning-bg);color:var(--warning-text);border-radius:.5rem;padding:.75rem 1rem}.footer-link{margin-top:3rem;font-size:.9rem}select{font:inherit;border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;min-width:14rem;max-width:min(100%,30rem);padding:.75rem}button.danger{background:var(--error);border-color:var(--error);color:var(--bg)}.task-card{border:2px solid var(--border);color:#1a1a1a;text-align:center;break-inside:avoid;background:#fff;border-radius:.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex}.task-card img{width:100%;max-width:12rem}.task-card-location{font-size:1.2rem}.task-card button{margin-top:.5rem}button.big.secondary,.button.big.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.hint{color:var(--muted);font-size:.9rem;font-weight:400}.ok{color:var(--accent);font-weight:600}input.number-input{letter-spacing:.3em;text-align:center;max-width:12rem;font-size:2rem}.big.choice{text-align:left;font-size:1.2rem}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.location-line{font-size:1.2rem}.summary{background:var(--surface);border-radius:.5rem;padding:.75rem 1rem}.summary h2{margin:0 0 .25rem;font-size:1rem}.summary p{margin:.25rem 0}.summary ul{margin:.25rem 0;padding-left:1.25rem}.summary li.issue{color:var(--error)}.check-item{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.75rem 0;display:flex}.check-label{font-size:1.2rem;font-weight:700}.yes-no{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.yes-no button{min-height:4rem;font-size:1.3rem;font-weight:700}.yes-no button.yes.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.yes-no button.no.selected{background:var(--error);border-color:var(--error);color:var(--bg)}.check-item.problem .check-label{color:var(--error)}h2.form-section{border-bottom:2px solid var(--accent);margin:1.25rem 0 0;padding-bottom:.25rem;font-size:1.15rem}.form-section-row{margin:.75rem 0 .25rem -1.25rem;list-style:none}.check-item.follow-up{border-left:3px solid var(--border);margin-left:1rem;padding-left:.75rem}.choices{flex-direction:column;gap:.5rem;max-width:30rem;display:flex}.choice-button{text-align:left;min-height:3.25rem;font-weight:600}.choice-button.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.trap-grid{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem;max-width:40rem;display:grid}.trap{min-height:3.25rem;font-weight:600}.trap.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.file-button{cursor:pointer;box-sizing:border-box;max-width:30rem;display:inline-block}.number-answer{align-items:center;gap:.5rem;display:flex}.number-answer input{text-align:center;width:8rem;font-size:1.6rem}.number-answer button.sign{min-width:3.5rem;min-height:3.5rem;font-size:1.6rem;font-weight:700}.number-answer .unit{font-size:1.3rem;font-weight:700}.person.inactive{opacity:.6}textarea{font:inherit;border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.75rem}.saved{color:var(--accent);font-size:1.5rem;font-weight:800}.filters{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.filters select,.filters input[type=date]{min-width:10rem}label.check{flex-direction:row;align-items:center;gap:.4rem;font-weight:400}.table-wrap{overflow-x:auto}table.records{border-collapse:collapse;width:100%;font-size:.95rem}table.records th,table.records td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem}table.records tr.issue td{color:var(--error)}table.records tr.voided td{color:var(--muted);text-decoration:line-through}.record-facts{grid-template-columns:max-content 1fr;gap:.25rem 1rem;display:grid}.record-facts dt{font-weight:700}.record-facts dd{margin:0}.answers,.history{padding-left:1.25rem}.answers li,.history li{margin-bottom:.5rem}.answers li.issue>strong{color:var(--error)}.edit-box{border:2px solid var(--border);border-radius:.5rem;margin:.5rem 0;padding:.75rem}.alerts{background:var(--surface);border-radius:.5rem;margin:1rem 0 1.5rem;padding:.75rem 1rem}.alerts h2{margin:0 0 .5rem}.alerts h3{margin:.75rem 0 .25rem;font-size:1rem}.alert-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.alert-line{border-left:4px solid var(--border);background:var(--bg);border-radius:.25rem;flex-direction:column;padding:.4rem .75rem;display:flex}.alert-line.overdue,.alert-line.missed{border-left-color:var(--error)}.alert-line details summary,.duty>details>summary{cursor:pointer;padding:.25rem 0}button.compact,.button.compact{background:var(--accent);border-color:var(--accent);color:var(--accent-text);white-space:nowrap;padding:.3rem .8rem;font-weight:600}button.compact.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.place-rows{margin:.25rem 0 0;padding:0;list-style:none}.place-row{border-top:1px solid var(--border);padding:.3rem 0}.place-row-line{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.alert-places{margin:.25rem 0 0;padding-left:1.25rem}.alert-line.due_soon{border-left-color:#c08a00}fieldset.plain{border:none;flex-direction:column;gap:.4rem;margin:0;padding:0;display:flex}fieldset.plain legend{margin-bottom:.25rem;padding:0;font-weight:600}.form-button{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:start;column-gap:.75rem;display:grid}.form-button-title{grid-area:1/1/span 2;align-self:center}.form-button-admin{background:var(--accent-text);color:var(--accent);white-space:nowrap;border-radius:.25rem;grid-area:1/2;justify-self:end;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.form-button-gap{opacity:.85;white-space:nowrap;grid-area:2/2;place-self:end;font-size:.75rem;font-weight:600}.button.secondary .form-button-admin{background:var(--accent);color:var(--accent-text)}.form-intro{border-left:4px solid var(--accent);background:var(--surface);border-radius:.25rem;padding:.5rem .75rem}.admin-tag{background:var(--accent);color:var(--accent-text);margin-left:.5rem}.gap-cell div+div{margin-top:.2rem}.toggles{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.toggle{opacity:.55;border-radius:2rem;text-decoration:line-through}.toggle.on{opacity:1;border-color:var(--text);text-decoration:none}.toggle.late.on{border-color:var(--error);color:var(--error)}.toggle.due_soon.on{border-color:#c08a00}.duty.done{opacity:.75}.readiness{align-items:center;gap:.75rem;display:flex}.meter{background:var(--surface);border-radius:1rem;flex:1;height:.75rem;overflow:hidden}.meter span{background:var(--accent);height:100%;display:block}.season-title{align-self:center;min-width:10rem}details>summary{cursor:pointer;font-weight:600}.scanner{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.scanner-view{aspect-ratio:1;background:#000;border-radius:.75rem;width:100%;max-width:28rem;position:relative;overflow:hidden}.scanner-view video{object-fit:cover;width:100%;height:100%}.test-banner{width:var(--content-width);box-sizing:border-box;z-index:10;color:#fff;text-align:center;letter-spacing:.03em;background:#c0162c;border-radius:.5rem;margin:0 auto .5rem;padding:.5rem 1rem;font-weight:800;position:sticky;top:0}.no-signal{width:var(--content-width);box-sizing:border-box;background:var(--warning-bg);color:var(--warning-text);text-align:center;border-radius:.5rem;margin:0 auto .5rem;padding:.5rem 1rem;font-weight:700}.test-tag{color:#fff;background:#c0162c;border-radius:.25rem;align-self:flex-start;padding:.1rem .5rem;font-size:.8rem;font-weight:700}code.scanned{word-break:break-all}.people{flex-direction:column;gap:1rem;padding:0;list-style:none;display:flex}.person{border:2px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.25rem;padding:1rem;display:flex}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;display:grid}.badge-card{color:#1a1a1a;border:3px dashed var(--test);background:#fff;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex}.badge-card img{width:100%;max-width:12rem}.badge-title{color:var(--test);letter-spacing:.05em;font-weight:800}.badge-card .badge-title{color:#c0162c}.badge-title-other{color:#c0162c;font-size:.8rem;font-weight:700}.badge-meta{font-size:.8rem}.overlay{color:#1a1a1a;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex;position:fixed;inset:0}.overlay .badge-title{color:#c0162c;font-size:1.5rem}.overlay img{width:min(90vw,80vh);max-width:100%}.print-area{display:none}@media print{@page{size:landscape;margin:1cm}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--text:#000;--border:#999;--error:#b42318;--muted:#555}body{background:#fff;min-height:0;padding:0}.page{border-radius:0}.print-area{display:block}.print-form{break-inside:auto;margin-bottom:1cm}.print-form h2{margin:0 0 .25cm;font-size:14pt}table.print-table{font-size:8pt}table.print-table th,table.print-table td{white-space:normal;vertical-align:top;border:1px solid #999;padding:2pt 4pt}table.print-table thead{display:table-header-group}table.print-table tr{break-inside:avoid}.no-print{display:none!important}.page{padding:0}.badge-grid{grid-template-columns:repeat(3,6cm);gap:.5cm}.badge-card{break-inside:avoid}}
