*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-background);min-height:100dvh;color:var(--color-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5}h1,h2{margin:0;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.25rem}p{margin:0}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.shell{background:var(--color-background);min-height:100dvh;color:var(--color-text)}.page{max-width:40rem;padding:1.5rem 1rem calc(2rem + env(safe-area-inset-bottom));flex-direction:column;gap:1.25rem;margin:0 auto;display:flex}.page-narrow{max-width:28rem;padding-top:3rem}.brand{color:var(--color-primary);text-align:center;font-size:2rem}.brand-small{color:var(--color-primary);margin-right:auto;font-size:1.125rem;font-weight:700}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.25rem}.stack{flex-direction:column;gap:1rem;display:flex}.muted{color:var(--color-text-muted)}.center{text-align:center}.eyebrow{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.field{flex-direction:column;gap:.375rem;display:flex}.field label{font-weight:600}input[type=email],input[type=text],select{min-height:44px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-text-muted);border-radius:8px;padding:.5rem .75rem;font-size:1rem}.check{align-items:center;gap:.625rem;min-height:44px;display:flex}.check input{width:1.25rem;height:1.25rem;accent-color:var(--color-primary)}.button{min-height:44px;font:inherit;border:1px solid var(--color-text-muted);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.button-small{padding:.375rem .75rem}.button-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.button-huge{width:100%;min-height:4.5rem;font-size:1.25rem}.button:disabled{background:var(--color-disabled-bg);border-color:var(--color-disabled-bg);color:var(--color-disabled-text);cursor:not-allowed}.message{background:var(--color-background);border-radius:8px;padding:.75rem}.message-error{color:var(--color-danger);border:1px solid var(--color-danger);background:var(--color-surface)}.topbar{padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:nowrap;align-items:center;gap:.5rem;display:flex}.switcher{flex:0 auto;align-items:center;gap:.25rem;min-width:0;display:flex}.switcher select{text-overflow:ellipsis;min-width:0;max-width:11rem}.counts{gap:.75rem;display:grid}.count{background:var(--color-surface);border:1px solid var(--color-border);border-left:6px solid var(--color-primary);border-radius:10px;padding:1rem;font-size:1.25rem;font-weight:600}@media (min-width:40rem){.counts{grid-template-columns:repeat(3,1fr)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.brand-small{flex:none;text-decoration:none}.signout{flex:none;margin-left:auto}.button-quiet{border-color:var(--color-border);font-weight:500}.stack-tight{flex-direction:column;gap:.5rem;display:flex}.back-link{color:var(--color-text);align-items:center;min-height:44px;font-weight:600;display:inline-flex}.error-text{color:var(--color-danger)}.job-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.job-link{background:var(--color-surface);border:1px solid var(--color-border);min-height:44px;color:var(--color-text);border-radius:10px;flex-direction:column;gap:.25rem;padding:.875rem 1rem;text-decoration:none;display:flex}.job-name{font-size:1.125rem;font-weight:600}.file-label{cursor:pointer}input[type=file]:focus-visible+.file-label,.file-label:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.upload-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.upload-row{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:.25rem .5rem;padding:.625rem .75rem;display:grid}.upload-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.upload-status{color:var(--color-text-muted);grid-column:1/-1}.upload-status.error-text{color:var(--color-danger)}.upload-row progress{width:100%;accent-color:var(--color-primary);grid-column:1/-1}.upload-row .button{grid-area:1/2}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:40rem){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tile{flex-direction:column;gap:.5rem;display:flex}.tile-image{aspect-ratio:1;background:var(--color-disabled-bg);border:1px solid var(--color-border);border-radius:10px;position:relative;overflow:hidden}.tile-image img{object-fit:cover;width:100%;height:100%;display:block}.tile-placeholder{text-align:center;color:var(--color-disabled-text);justify-content:center;align-items:center;padding:.5rem;font-size:.875rem;display:flex;position:absolute;inset:0}.badge{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:999px;padding:.125rem .5rem;font-size:.8125rem;font-weight:700;position:absolute;top:.375rem;left:.375rem}.badge-before,.badge-after,.badge-during{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.role-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;display:grid}.role-button{min-height:44px;font:inherit;cursor:pointer;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;font-size:.875rem;font-weight:600}.role-button[aria-pressed=true]{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}h3{margin:0;font-size:1.0625rem;line-height:1.3}.code-input{letter-spacing:.4em;font-variant-numeric:tabular-nums;max-width:12rem;font-size:1.5rem}
