:root{--bg-primary:#0a0a0a;--bg-secondary:#141414;--bg-tertiary:#1c1c1c;--bg-elevated:#222;--text-primary:#f0ede8;--text-secondary:#9c9a92;--text-tertiary:#5a5855;--border-subtle:#f0ede814;--border-default:#f0ede824;--border-strong:#f0ede840;--accent-blue:#378add;--accent-blue-bg:#378add1f;--accent-green:#1d9e75;--accent-green-bg:#1d9e751f;--accent-amber:#ef9f27;--accent-amber-bg:#ef9f271f;--accent-red:#e24b4a;--accent-red-bg:#e24b4a1f;--accent-purple:#7f77dd;--accent-purple-bg:#7f77dd1f;--pill-pending-bg:#1e1e1a;--pill-pending-text:#888780;--pill-checkin-bg:#378add26;--pill-checkin-text:#7ab8f0;--pill-complete-bg:#7f77dd26;--pill-complete-text:#a8a2e8;--pill-upload-bg:#ef9f2726;--pill-upload-text:#f0b84a;--pill-valid-bg:#1d9e7526;--pill-valid-text:#4ec9a0;--pill-flagged-bg:#e24b4a26;--pill-flagged-text:#f07a79;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:99px}h1{color:var(--text-primary);font-size:28px;font-weight:500;line-height:1.2}h2{color:var(--text-primary);font-size:22px;font-weight:500;line-height:1.3}h3{color:var(--text-primary);font-size:17px;font-weight:500;line-height:1.4}p{color:var(--text-secondary);font-size:14px;line-height:1.6}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{background:var(--bg-tertiary);border:.5px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--border-strong)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}button{cursor:pointer;font-family:var(--font-sans);border-radius:var(--radius-md);border:.5px solid var(--border-default);background:var(--bg-tertiary);color:var(--text-primary);align-items:center;gap:7px;padding:10px 16px;font-size:14px;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}button:hover{background:var(--bg-elevated)}button:active{transform:scale(.98)}button:disabled{opacity:.35;pointer-events:none}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.pill-pending{background:var(--pill-pending-bg);color:var(--pill-pending-text)}.pill-checkedin{background:var(--pill-checkin-bg);color:var(--pill-checkin-text)}.pill-complete{background:var(--pill-complete-bg);color:var(--pill-complete-text)}.pill-uploaded{background:var(--pill-upload-bg);color:var(--pill-upload-text)}.pill-validated{background:var(--pill-valid-bg);color:var(--pill-valid-text)}.pill-flagged{background:var(--pill-flagged-bg);color:var(--pill-flagged-text)}.pill-wrapped{background:var(--pill-valid-bg);color:var(--pill-valid-text)}.card{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px}.section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:10px;font-size:11px;font-weight:500}.divider{background:var(--border-subtle);height:.5px;margin:1.5rem 0}.offline-banner{background:var(--accent-amber-bg);border-bottom:.5px solid var(--accent-amber);color:var(--accent-amber);align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.progress-track{background:var(--border-subtle);border-radius:99px;height:3px;overflow:hidden}.progress-fill{background:var(--accent-green);border-radius:99px;height:100%;transition:width .3s}.page{max-width:480px;min-height:100%;margin:0 auto;padding:0 16px 80px}.page-wide{min-height:100%;padding:0 24px 80px}.topbar{background:var(--bg-primary);z-index:10;border-bottom:.5px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 0 16px;display:flex;position:sticky;top:0}.logo{align-items:center;gap:10px;display:flex}.logo img{filter:invert();width:auto;height:32px}.logo-text{color:var(--text-primary);letter-spacing:.02em;font-size:14px;font-weight:500}.checklist-item{border-bottom:.5px solid var(--border-subtle);cursor:pointer;align-items:center;gap:12px;padding:12px 0;transition:opacity .15s;display:flex}.checklist-item:last-child{border-bottom:none}.checklist-item:hover{opacity:.8}.check-box{border:1.5px solid var(--border-default);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:background .15s,border-color .15s;display:flex}.check-box.checked{background:var(--accent-green);border-color:var(--accent-green)}.btn-primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;justify-content:center;width:100%;padding:13px;font-weight:500}.btn-primary:hover{background:#2a7acc;border-color:#2a7acc}.btn-green{background:var(--accent-green);border-color:var(--accent-green);color:#fff;justify-content:center;width:100%;padding:13px;font-weight:500}.btn-green:hover{background:#178a64;border-color:#178a64}.btn-danger{background:var(--accent-red-bg);border-color:var(--accent-red);color:var(--accent-red);justify-content:center;width:100%;padding:13px}.avatar{background:var(--accent-blue-bg);border:.5px solid var(--accent-blue);width:32px;height:32px;color:var(--accent-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:500;display:flex}.travel-gap{color:var(--text-tertiary);align-items:center;gap:10px;padding:6px 0;font-size:12px;display:flex}.travel-gap-line{border-top:1px dashed var(--border-subtle);flex:1;height:1px}.travel-gap.tight{color:var(--accent-amber)}.sync-dot{background:var(--accent-green);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.sync-dot.offline{background:var(--accent-amber);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}
