:root{color:#1b1d18;font-synthesis:none;--paper:#eeebe2;--panel:#fffdf7;--ink:#1b1d18;--muted:#696b62;--line:#c8c3b6;--line-dark:#85877e;--signal:#f05a28;--signal-dark:#bd3516;--live:#17725a;--warning:#d59413;--danger:#a12f25;background:#eeebe2;font-family:Bahnschrift,DIN Alternate,Microsoft YaHei,PingFang SC,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;min-height:100%}body{background:linear-gradient(#1b1d180a 1px, transparent 1px), linear-gradient(90deg, #1b1d180a 1px, transparent 1px), var(--paper);background-size:28px 28px;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--ink)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #f05a2859}.wordmark{color:var(--ink);letter-spacing:.12em;align-items:center;gap:.45rem;font-size:1rem;font-weight:800;text-decoration:none;display:inline-flex}.wordmark b{color:var(--signal);font-size:1.5em}.wordmark--small{font-size:.78rem}.section-code{color:var(--signal-dark);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .45rem;font-family:Consolas,SFMono-Regular,monospace;font-size:.72rem;font-weight:700}.button{border:1px solid var(--ink);min-height:42px;color:var(--ink);letter-spacing:.03em;cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1rem;font-size:.82rem;font-weight:750;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.button:hover:not(:disabled){box-shadow:3px 3px 0 var(--ink);transform:translateY(-1px)}.button:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}.button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.45}.button--primary{border-color:var(--signal);color:#fff;background:var(--signal)}.button--warning{border-color:var(--warning);background:#f4d690}.button--danger{border-color:var(--danger);color:#fff;background:var(--danger)}.button--ink{border-color:var(--ink);color:var(--panel);background:var(--ink)}.button--quiet{background:var(--panel)}.button--wide{width:100%}.text-button,.text-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;font-size:.8rem;font-weight:750}.text-button--danger{color:var(--danger)}.field-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:750;display:block}.field-input{border:1px solid var(--line-dark);width:100%;min-height:42px;color:var(--ink);background:#fffef9;border-radius:0;padding:.68rem .75rem}textarea.field-input{resize:vertical}.field-input:disabled{color:var(--muted);background:#e5e1d7}.field-input--large{letter-spacing:.08em;min-height:54px;font-family:Consolas,monospace;font-size:1.1rem}.stack-form{gap:.65rem;display:grid}.center-stage{min-height:70vh;color:var(--muted);place-content:center;justify-items:center;gap:1rem;padding:2rem;display:grid}.center-stage--compact{min-height:45vh}.loader{border:3px solid var(--line);border-top-color:var(--signal);border-radius:50%;width:30px;height:30px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.home-shell{grid-template-rows:auto 1fr;width:min(100% - 2rem,1180px);min-height:100vh;margin:0 auto;display:grid}.home-header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;padding:1.5rem 0;display:flex}.home-login-stage{place-items:center;padding:3rem 0;display:grid}.home-login-panel{border:1px solid var(--ink);background:var(--panel);width:min(100%,420px);box-shadow:8px 8px 0 var(--ink);padding:clamp(1.5rem,5vw,2.5rem)}.home-login-panel h1{letter-spacing:-.05em;margin:0 0 1.5rem;font-size:clamp(2rem,8vw,3.5rem)}.home-login-error{color:var(--danger);margin:0;font-size:.82rem}.admin-shell{min-height:100vh}.admin-header{z-index:20;border-bottom:1px solid var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#eeebe2f0;justify-content:space-between;align-items:center;min-height:58px;padding:0 1.25rem;display:flex;position:sticky;top:0}.admin-session{color:var(--muted);align-items:center;gap:.65rem;font-size:.75rem;display:flex}.status-pip{border:1px solid var(--ink);border-radius:50%;width:8px;height:8px}.status-pip--live{background:var(--live);box-shadow:0 0 0 3px #17725a1f}.login-stage{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;width:min(100% - 2rem,920px);min-height:calc(100vh - 58px);margin:0 auto;display:grid}.login-index{color:var(--line-dark);letter-spacing:-.07em;writing-mode:vertical-rl;font-family:Consolas,monospace;font-size:clamp(3rem,7vw,6rem);font-weight:700}.login-panel{border:1px solid var(--ink);background:var(--panel);box-shadow:10px 10px 0 var(--ink);padding:clamp(1.5rem,5vw,3rem)}.login-panel h1{letter-spacing:-.06em;margin:0 0 2rem;font-size:clamp(2.2rem,6vw,4.5rem)}.login-panel .button{margin-top:.8rem}.error-banner,.top-alert{border-left:4px solid var(--danger);color:#6f201b;background:#f4d9d3}.error-banner{margin:1rem 0 0;padding:.75rem;font-size:.85rem}.top-alert{z-index:50;align-items:flex-start;gap:1rem;max-width:min(440px,100vw - 2rem);padding:.9rem 1rem;display:flex;position:fixed;top:72px;right:1rem;box-shadow:5px 5px #1b1d1840}.top-alert button{cursor:pointer;background:0 0;border:0}.admin-grid{grid-template-columns:310px minmax(0,1fr);min-height:calc(100vh - 58px);display:grid}.task-rail{border-right:1px solid var(--ink);background:#fffdf794;padding:1.25rem}.rail-heading,.panel-heading,.panel-heading--split{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.rail-heading h1,.panel-heading h3{letter-spacing:-.035em;margin:0}.rail-heading h1{font-size:1.7rem}.count-badge{border:1px solid var(--ink);text-align:center;min-width:2rem;padding:.25rem}.task-rail>.field-label{margin-top:1.5rem}.task-list{gap:.55rem;margin:1rem 0;display:grid}.task-row{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--panel);text-align:left;cursor:pointer;gap:.45rem;padding:.9rem;display:grid}.task-row:hover,.task-row--selected{border-color:var(--ink)}.task-row--selected{box-shadow:inset 4px 0 0 var(--signal)}.task-row__top{justify-content:space-between;align-items:center;display:flex}.task-row__count{font-family:Consolas,monospace;font-size:1.35rem;font-weight:800}.task-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-row small{color:var(--muted)}.status-tag{width:fit-content;color:var(--muted);letter-spacing:.05em;border:1px solid;padding:.18rem .4rem;font-size:.65rem;font-weight:800;display:inline-flex}.status-tag[data-status=active]{color:var(--live);background:#dbede6}.status-tag[data-status=draft],.status-tag[data-status=paused]{color:#8a5e09;background:#f5e8bd}.status-tag[data-status=closed]{color:#50534c;background:#e0ded6}.status-tag[data-status=archived],.status-tag[data-status=revoked]{color:var(--danger);background:#f2d9d5}.create-drawer{border-top:1px solid var(--line-dark);margin-top:1rem}.create-drawer summary{cursor:pointer;padding:1rem 0;font-weight:750;list-style:none}.admin-workspace{min-width:0;padding:clamp(1.25rem,3vw,3rem)}.workspace-empty{min-height:70vh;color:var(--muted);justify-content:center;align-items:center;gap:2rem;display:flex}.workspace-empty__number{color:var(--line);letter-spacing:-.12em;font-family:Consolas,monospace;font-size:clamp(6rem,15vw,13rem);font-weight:800}.workspace-empty h2{color:var(--ink);margin:0;font-size:2rem}.task-hero{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:2rem;padding-bottom:1.5rem;display:flex}.task-hero__meta{color:var(--muted);align-items:center;gap:.75rem;font-family:Consolas,monospace;font-size:.68rem;display:flex}.task-hero h2{letter-spacing:-.06em;margin:.7rem 0 .35rem;font-size:clamp(2rem,5vw,4.5rem);line-height:1}.task-hero p{max-width:50rem;color:var(--muted);white-space:pre-wrap;margin:0;line-height:1.6}.tally-block{justify-items:end;min-width:125px;font-family:Consolas,monospace;display:grid}.tally-block span,.tally-block small{color:var(--muted);letter-spacing:.08em;font-size:.65rem}.tally-block strong{letter-spacing:-.08em;font-size:3.6rem;line-height:1}.task-actions{flex-wrap:wrap;gap:.6rem;padding:1rem 0 1.5rem;display:flex}.workspace-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.control-panel{border:1px solid var(--line-dark);background:#fffdf7d1;min-width:0;padding:1.25rem}.control-panel--full{margin-top:1rem}.panel-heading{margin-bottom:1rem}.panel-heading--split>span{color:var(--muted);font-family:Consolas,monospace}.task-link{overflow-wrap:anywhere;border-left:4px solid var(--signal);background:#e9e5da;padding:.9rem;display:block}.task-link+.export-row{margin-top:1rem}.export-row,.row-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.code-generator{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;display:grid}.codes-reveal{border:2px solid var(--ink);background:#fff3c9;margin:1rem 0}.codes-reveal__warning{color:var(--panel);background:var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.8rem;display:grid}.codes-reveal__warning span{color:#cbc9c1;font-size:.78rem}.code-ticket{border-top:1px dashed var(--line-dark);grid-template-columns:minmax(100px,.4fr) 1fr;align-items:center;gap:1rem;padding:.85rem 1rem;display:grid}.code-ticket code{letter-spacing:.08em;font-size:1.1rem;font-weight:800}.participant-table,.record-table{border-top:1px solid var(--ink);overflow-x:auto}.table-row,.record-row{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;min-width:650px;padding:.72rem .4rem;font-size:.82rem;display:grid}.table-row{grid-template-columns:1.2fr .7fr .8fr 1fr}.record-row{grid-template-columns:minmax(200px,1.8fr) .8fr .9fr .55fr}.table-row--head,.record-row--head{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:800}.record-row code{overflow-wrap:anywhere}.record-row--deleted{color:var(--muted);opacity:.7}.deleted-mark{color:var(--danger)}.empty-note{color:var(--muted);margin:1rem 0;font-size:.85rem}.check-label{color:var(--muted);align-items:center;gap:.45rem;font-size:.78rem;display:inline-flex}.task-shell{min-height:100vh}.task-appbar{z-index:30;border-bottom:1px solid var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#eeebe2f0;justify-content:space-between;align-items:center;min-height:58px;padding:0 1.25rem;display:flex;position:sticky;top:0}.network-state{color:var(--danger);letter-spacing:.08em;align-items:center;gap:.5rem;font-family:Consolas,monospace;font-size:.72rem;font-weight:800;display:inline-flex}.network-state[data-online=true]{color:var(--live)}.task-error-stage{place-content:center;justify-items:start;width:min(100% - 2rem,620px);min-height:calc(100vh - 58px);margin:0 auto;display:grid}.task-error-stage h1{letter-spacing:-.07em;margin:0;font-size:clamp(3rem,9vw,7rem)}.task-error-stage p{color:var(--muted)}.error-code{color:var(--signal);letter-spacing:.1em;font-family:Consolas,monospace;font-size:.8rem}.participant-login{grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(2rem,8vw,7rem);width:min(100% - 2rem,1040px);min-height:calc(100vh - 58px);margin:0 auto;padding:3rem 0;display:grid}.participant-login__task h1{letter-spacing:-.07em;max-width:15ch;margin:0 0 1rem;font-size:clamp(3rem,8vw,7rem);line-height:.92}.participant-login__task>p:not(.section-code){max-width:36rem;color:var(--muted);white-space:pre-wrap;margin:0 0 1.3rem;line-height:1.7}.participant-login__form{border:1px solid var(--ink);background:var(--panel);box-shadow:10px 10px 0 var(--ink);padding:clamp(1.4rem,5vw,2.5rem);position:relative}.login-step{color:var(--line-dark);font-family:Consolas,monospace;font-size:2rem;font-weight:800;position:absolute;top:-2.8rem;right:0}.code-input{letter-spacing:.07em;text-transform:uppercase;min-height:58px;font-family:Consolas,monospace;font-size:clamp(1rem,4vw,1.35rem);font-weight:800}.participant-login__form .button{margin-top:1.2rem}.scan-dashboard{width:min(100% - 2rem,1320px);margin:0 auto;padding:clamp(1.25rem,3vw,2.5rem) 0 4rem}.scan-heading{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:2rem;padding-bottom:1.2rem;display:flex}.scan-heading h1{letter-spacing:-.065em;margin:0;font-size:clamp(2.2rem,6vw,5.5rem);line-height:1}.scan-heading p:not(.section-code){max-width:48rem;color:var(--muted);white-space:pre-wrap;margin:.6rem 0 0;line-height:1.55}.task-state-banner,.offline-banner{border-left:5px solid var(--warning);color:#684604;background:#f5e5b8;margin-top:1rem;padding:.75rem 1rem;font-size:.85rem;font-weight:700}.offline-banner{border-left-color:var(--danger);color:#70251e;background:#f1d8d3}.scan-metrics{border:1px solid var(--ink);background:var(--panel);grid-template-columns:1fr 1fr 1.35fr;margin:1rem 0;display:grid}.metric{border-right:1px solid var(--ink);align-content:space-between;min-height:120px;padding:1rem;display:grid}.metric:last-child{border-right:0}.metric span,.metric small{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-family:Consolas,monospace;font-size:.66rem;font-weight:700}.metric strong{letter-spacing:-.07em;font-family:Consolas,monospace;font-size:3rem;line-height:1}.metric--primary{color:var(--panel);background:var(--ink)}.metric--primary span,.metric--primary small{color:#bebdb5}.metric--primary strong{color:#fff}.metric--time strong{letter-spacing:-.03em;font-size:clamp(1rem,2.2vw,1.55rem)}.stale-text{color:var(--danger)!important}.scan-grid{grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr);align-items:start;gap:1rem;display:grid}.scanner-panel,.ledger-panel{border:1px solid var(--ink);background:var(--panel);min-width:0}.scanner-panel{padding:1rem;position:sticky;top:74px}.scanner-panel__head,.ledger-panel__head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.scanner-panel__head h2,.ledger-panel__head h2{letter-spacing:-.04em;margin:0;font-size:1.65rem}.scanner-format{border:1px solid var(--ink);padding:.25rem .4rem;font-family:Consolas,monospace;font-size:.65rem;font-weight:800}.length-selector{border:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 .8rem;padding:0;display:grid}.length-selector legend{color:var(--muted);padding:0 .4rem;font-size:.68rem;font-weight:700}.length-option{border:0;border-right:1px solid var(--ink);min-height:42px;color:var(--ink);background:var(--panel);cursor:pointer;font-size:.78rem;font-weight:800}.length-option:nth-of-type(3){border-right:0}.length-option--active{color:#fff;background:var(--signal)}.custom-length{border-top:1px solid var(--ink);color:var(--muted);grid-column:1/-1;align-items:center;gap:.7rem;padding:.5rem;font-size:.75rem;display:flex}.custom-length input{border:1px solid var(--line-dark);background:#fff;width:100%;min-height:38px}.inline-error{color:var(--danger);margin:-.25rem 0 .7rem;font-size:.75rem}.camera-frame{aspect-ratio:4/3;background:radial-gradient(circle,#30332d 0,#11130f 68%),#11130f;border:2px solid #090a08;position:relative;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%}.camera-reticle:before,.camera-reticle:after{content:"";pointer-events:none;width:42px;height:42px;position:absolute}.camera-reticle:before{border-top:3px solid var(--signal);border-left:3px solid var(--signal);top:15px;left:15px}.camera-reticle:after{border-right:3px solid var(--signal);border-bottom:3px solid var(--signal);bottom:15px;right:15px}.camera-scan-line{z-index:2;background:var(--signal);height:2px;box-shadow:0 0 14px var(--signal);animation:2.6s ease-in-out infinite camera-scan;position:absolute;top:20%;left:1rem;right:1rem}@keyframes camera-scan{0%,to{transform:translateY(0)}50%{transform:translateY(210px)}}.camera-placeholder{color:#a6a99e;letter-spacing:.08em;pointer-events:none;place-items:center;font-family:Consolas,monospace;font-size:.72rem;display:grid;position:absolute;inset:0}.camera-length{z-index:3;color:#fff;background:#000000b3;padding:.2rem .35rem;font-family:Consolas,monospace;font-size:.65rem;position:absolute;bottom:8px;right:10px}.scan-status{min-height:1.3rem;color:var(--muted);margin:.65rem 0;font-family:Consolas,monospace;font-size:.72rem}.failed-save{border:1px solid var(--warning);background:#f8e8b9;grid-template-columns:1fr auto;align-items:center;gap:.8rem;margin:.7rem 0;padding:.75rem;display:grid}.failed-save div{gap:.3rem;display:grid}.failed-save code{overflow-wrap:anywhere}.scanner-actions{margin-top:.8rem}.ledger-panel{padding:1rem}.notice-line{border-left:3px solid var(--live);color:#135843;background:#dcebe5;margin:0 0 .8rem;padding:.55rem .7rem;font-size:.78rem}.mobile-records{gap:.6rem;display:grid}.mobile-record{border:1px solid var(--line);background:#fffef9;padding:.85rem}.mobile-record__top,.mobile-record__meta,.mobile-record__actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.mobile-record__top code{overflow-wrap:anywhere;font-size:.9rem;font-weight:800}.mine-tag{color:var(--live);border:1px solid var(--live);flex:none;padding:.15rem .35rem;font-size:.62rem;font-weight:800}.mobile-record__meta{color:var(--muted);margin:.65rem 0;font-size:.74rem}.mobile-record__actions{border-top:1px dashed var(--line);padding-top:.55rem;font-size:.75rem}.local-queue-panel{border-top:1px solid var(--ink);margin-top:1rem}.local-queue-panel summary{cursor:pointer;padding:.85rem 0;font-size:.78rem;font-weight:800}.local-upload-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.local-upload-row div{gap:.25rem;min-width:0;display:grid}.local-upload-row code{overflow-wrap:anywhere}.local-upload-row small{color:var(--muted)}.blocking-modal{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f100db8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.blocking-modal__card{border:1px solid var(--ink);background:var(--panel);width:min(100%,320px);box-shadow:8px 8px 0 var(--signal);justify-items:center;gap:.85rem;padding:2rem;display:grid}.blocking-modal__card small{color:var(--muted)}@media (width<=900px){.admin-grid{grid-template-columns:1fr}.task-rail{border-right:0;border-bottom:1px solid var(--ink)}.task-list{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-columns{grid-template-columns:1fr}.participant-login{grid-template-columns:1fr;gap:3rem}.scan-grid{grid-template-columns:1fr}.scanner-panel{position:static}}@media (width<=600px){.home-header{gap:1rem}.login-stage{padding:3rem 0;display:block}.login-index{writing-mode:initial;margin-bottom:1rem;font-size:2rem}.task-list{grid-template-columns:1fr}.admin-workspace{padding:1rem}.task-hero{flex-direction:column}.tally-block{justify-items:start;width:100%}.code-generator,.codes-reveal__warning,.code-ticket{grid-template-columns:1fr}.workspace-empty{flex-direction:column;align-items:flex-start}.scan-heading{flex-direction:column}.scan-metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric--time{border-top:1px solid var(--ink);border-right:0;grid-column:1/-1}.failed-save{grid-template-columns:1fr}.ledger-panel__head{flex-direction:column;align-items:stretch}.mobile-record__actions{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
