:root{--brand-primary: #1e2a5e;--brand-primary-dark: #131c42;--brand-accent: #e0245e;--brand-success: #1a7f4e;--brand-warning: #b7791f;--brand-error: #c0392b;--surface: #ffffff;--surface-alt: #f4f5f8;--surface-border: #dde1ea;--text-primary: #14161f;--text-secondary: #565c6e;--text-on-brand: #ffffff;--brand-primary-on-surface: var(--brand-primary);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--touch-target-min: 44px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);color-scheme:light}@media (prefers-color-scheme: dark){:root{--surface: #14161f;--surface-alt: #1c1f2b;--surface-border: #2c3040;--text-primary: #f2f3f7;--text-secondary: #a7acc0;--brand-primary-on-surface: #8ab4f8}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--surface-alt);color:var(--text-primary);-webkit-tap-highlight-color:transparent}button,input{font-family:inherit}.screen{min-height:100%;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));display:flex;flex-direction:column;gap:16px}.screen--centered{align-items:center;justify-content:center;text-align:center}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative}.app-header h1{margin:4px 0 0;font-size:22px}.app-header-sub{margin:2px 0 0;color:var(--text-secondary);font-size:14px}.app-header-actions{display:flex;align-items:center;gap:8px;position:relative}.back-link{color:var(--brand-primary-on-surface);text-decoration:none;font-size:14px;font-weight:600}.btn{min-height:var(--touch-target-min);min-width:var(--touch-target-min);border-radius:var(--radius-sm);border:1px solid var(--surface-border);background:var(--surface);color:var(--text-primary);font-size:15px;font-weight:600;padding:0 16px;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--text-on-brand)}.btn--large{min-height:56px;font-size:17px;width:100%;border-radius:var(--radius-md)}.btn--ghost{background:transparent;border-color:transparent;color:var(--brand-primary-on-surface)}.btn--icon{padding:0;border-radius:50%}.btn--tiny{min-height:36px;font-size:13px;padding:0 10px}.btn--nav{flex:1;min-height:56px}.btn--complete{flex:2;min-height:64px;background:var(--brand-primary);color:var(--text-on-brand);border-color:var(--brand-primary);font-size:17px}.btn--complete-active{background:var(--brand-success);border-color:var(--brand-success)}.fab{position:fixed;right:calc(20px + var(--safe-right));bottom:calc(20px + var(--safe-bottom));width:56px;height:56px;border-radius:50%;background:var(--brand-accent);color:var(--text-on-brand);display:flex;align-items:center;justify-content:center;font-size:28px;text-decoration:none;box-shadow:0 4px 14px #00000040}.signin-card{max-width:360px;width:100%;background:var(--surface);border-radius:var(--radius-lg);padding:32px 24px;box-shadow:0 2px 20px #00000014}.signin-logo{width:56px;height:56px;margin-bottom:8px}.signin-sub{color:var(--text-secondary);margin-top:4px}.signin-form{display:flex;flex-direction:column;gap:10px;margin-top:20px;text-align:left}.signin-form label{font-size:13px;font-weight:600;color:var(--text-secondary)}.signin-form input{min-height:var(--touch-target-min);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:0 12px;font-size:16px;margin-top:4px}.signin-note{font-size:12px;color:var(--text-secondary);margin-top:20px}.form-error{color:var(--brand-error);font-size:14px}.online-pill{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}.online-pill--online{background:#e4f6ec;color:var(--brand-success)}.online-pill--offline{background:#fbe9e7;color:var(--brand-error)}.job-list,.group-list,.subject-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.job-card,.group-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border-radius:var(--radius-md);padding:14px 16px;text-decoration:none;color:inherit;border:1px solid var(--surface-border);min-height:64px}.job-card h2,.group-card-name{margin:0 0 4px;font-size:16px}.job-card-meta{margin:0;font-size:13px;color:var(--text-secondary)}.badge{font-size:12px;padding:4px 8px;border-radius:999px;background:var(--surface-alt);color:var(--text-secondary);white-space:nowrap}.badge--success{background:#e4f6ec;color:var(--brand-success)}.badge--warning{background:#fdf3e0;color:var(--brand-warning)}.empty-state{text-align:center;padding:40px 16px;color:var(--text-secondary)}.empty-state-inline{color:var(--text-secondary);text-align:center;padding:20px}.section-heading{margin:8px 0 0;font-size:16px}.checkbox-row{cursor:pointer}.checkbox-row input[type=checkbox]{width:22px;height:22px;flex-shrink:0}.sync-status{margin:-8px 0 0;font-size:13px;color:var(--text-secondary)}.progress-bar{display:flex;align-items:center;gap:8px;min-width:120px}.progress-bar-track{flex:1;height:8px;border-radius:999px;background:var(--surface-alt);overflow:hidden}.progress-bar-fill{height:100%;background:var(--brand-primary);border-radius:999px}.progress-bar-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.search-bar{display:flex;align-items:center;background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:0 12px;min-height:52px}.search-bar-icon{color:var(--text-secondary);margin-right:8px}.search-bar-input{flex:1;border:none;outline:none;font-size:16px;background:transparent;color:var(--text-primary);min-height:var(--touch-target-min)}.search-bar-clear{border:none;background:transparent;font-size:22px;color:var(--text-secondary);cursor:pointer;min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.continue-btn{margin-top:4px}.filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.filter-chip{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--surface-border);background:var(--surface);color:var(--text-secondary);font-size:13px;white-space:nowrap;cursor:pointer}.filter-chip--active{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--text-on-brand)}.subject-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:12px 14px;min-height:var(--touch-target-min);text-decoration:none;color:inherit}.subject-row--large{min-height:56px;padding:14px 16px}.subject-row-name{font-weight:600;font-size:15px}.subject-row-meta{color:var(--text-secondary);font-size:13px}.subject-row-tags{display:flex;align-items:center;gap:8px}.tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}.tag--error{background:#fbe9e7;color:var(--brand-error)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.status-badge-icon{font-weight:700}.status-badge--photographed{color:var(--brand-success)}.status-badge--warning .status-badge-icon,.status-badge--warning{color:var(--brand-warning)}.import-form{display:flex;flex-direction:column;gap:14px}.import-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.import-form input{min-height:var(--touch-target-min);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:0 12px;font-size:16px;color:var(--text-primary);background:var(--surface)}.import-form input[type=file]{padding:8px}.field-hint{font-weight:400;font-size:12px}.segmented{display:flex;border:1px solid var(--surface-border);border-radius:var(--radius-sm);overflow:hidden}.segmented button{flex:1;min-height:var(--touch-target-min);border:none;background:var(--surface);color:var(--text-secondary);font-weight:600;cursor:pointer}.segmented-active{background:var(--brand-primary)!important;color:var(--text-on-brand)!important}.import-progress{color:var(--text-secondary);font-size:14px}.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.summary-stat{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:10px;text-align:center}.summary-stat--warn{border-color:var(--brand-error)}.summary-stat-value{display:block;font-size:20px;font-weight:700}.summary-stat-label{font-size:11px;color:var(--text-secondary)}.import-export-actions{display:flex;gap:8px}.import-review-table-wrap{overflow-x:auto;border:1px solid var(--surface-border);border-radius:var(--radius-sm)}.import-review-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}.import-review-table th,.import-review-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--surface-border);white-space:nowrap}.row--error{background:#fdf1ef}.row--excluded{opacity:.5}.import-review-row-actions{display:flex;gap:6px}.import-review-details{padding:10px;font-size:13px;background:var(--surface-alt)}.import-review-details ul{margin:8px 0 0;padding-left:18px}.import-review-footer{display:flex;gap:10px;position:sticky;bottom:0;background:var(--surface-alt);padding-top:8px}.import-review-footer .btn--primary{flex:1}.info-list{display:grid;grid-template-columns:140px 1fr;row-gap:10px;column-gap:12px;margin:0}.info-list dt{color:var(--text-secondary);font-size:13px}.info-list dd{margin:0;font-size:14px}.overflow-menu{position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;display:flex;flex-direction:column;min-width:180px;z-index:10}.overflow-menu button{min-height:var(--touch-target-min);border:none;background:transparent;text-align:left;padding:0 14px;font-size:14px;cursor:pointer}.overflow-menu button:hover{background:var(--surface-alt)}.qr-card-screen{min-height:100%;display:flex;flex-direction:column;background:#fff;color:#111;padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left))}.qr-card-header{display:flex;justify-content:space-between;align-items:center}.qr-card-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.qr-card-name{font-size:26px;font-weight:800;margin:0}.qr-card-group{font-size:16px;color:#444;margin:0 0 12px}.qr-card-code{font-size:20px;font-weight:700;letter-spacing:2px;margin-top:12px}.qr-canvas-wrap canvas{display:block;image-rendering:pixelated}.qr-canvas-error{margin-top:12px;color:var(--brand-error);font-weight:700;max-width:320px}.qr-card-blocked{color:var(--brand-error);font-weight:600;max-width:320px}.qr-card-controls{display:flex;gap:10px;padding-top:12px}.qr-card-autoadvance{display:flex;align-items:center;gap:8px;justify-content:center;font-size:13px;color:var(--text-secondary);padding-top:10px}.qr-card-screen--distraction-free .qr-card-controls,.qr-card-screen--distraction-free .qr-card-autoadvance{display:none}.qr-card-exit-df{position:fixed;top:calc(10px + var(--safe-top));right:calc(10px + var(--safe-right));width:44px;height:44px;border-radius:50%;border:none;background:#0000000f;font-size:22px}@media (min-width: 480px){.signin-card{margin:auto}}
