*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-light:#eff6ff;--blue-mid:#3b82f6;--green:#16a34a;--green-bg:#f0fdf4;--green-text:#166534;--red:#dc2626;--red-bg:#fef2f2;--red-text:#991b1b;--amber:#d97706;--amber-bg:#fffbeb;--amber-text:#92400e;--purple:#7c3aed;--purple-light:#f5f3ff;--text:#111827;--text-muted:#6b7280;--text-subtle:#9ca3af;--bg:#fafaf9;--surface:#fff;--border:#e5e7eb;--border-focus:#2563eb;--gray-50:#f9fafb;--gray-100:#f3f4f6;--font:"Inter",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono","Fira Code",monospace;--font-size:14px;--line-height:1.6;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 3px #00000012,0 1px 2px #0000000a;--shadow:0 4px 12px #00000014,0 2px 4px #0000000a;--shadow-lg:0 10px 30px #0000001a,0 4px 8px #0000000d;--transition:0.15s ease}body{background:#fafaf9;background:var(--bg);color:#111827;color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font);font-size:14px;font-size:var(--font-size);line-height:1.6;line-height:var(--line-height)}.page{flex-direction:column}.page,.page-center{display:flex;min-height:100vh}.page-center{align-items:center;background:#fafaf9;background:var(--bg);justify-content:center;padding:1.5rem 1rem}.container{margin:0 auto;max-width:1100px;padding:0 clamp(1rem,3vw,2rem)}.container-sm{margin:0 auto;max-width:480px}.topnav{align-items:center;background:#fff;background:var(--surface);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #00000012,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);display:flex;height:56px;justify-content:space-between;padding:0 clamp(1rem,3vw,2rem);position:-webkit-sticky;position:sticky;top:0;z-index:40}.logo{color:#111827;color:var(--text);font-size:18px;font-weight:800;letter-spacing:-.5px}.logo span{color:#2563eb;color:var(--blue)}.card{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000012,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:1.25rem}.card+.card{margin-top:.75rem}.card-title{color:#111827;color:var(--text);font-size:15px;font-weight:600}.card-sub{color:#6b7280;color:var(--text-muted);font-size:13px;line-height:1.5}.btn{align-items:center;border:1.5px solid #0000;border-radius:8px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font);font-size:13px;font-weight:600;gap:6px;justify-content:center;line-height:1;padding:9px 18px;text-decoration:none;transition:all .15s ease;transition:all var(--transition);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none!important}.btn:not(:disabled):active{transform:scale(.98)}.btn-primary{background:#2563eb;background:var(--blue);border-color:#2563eb;border-color:var(--blue);color:#fff}.btn-primary:not(:disabled):hover{background:#1d4ed8;background:var(--blue-dark);border-color:#1d4ed8;border-color:var(--blue-dark)}.btn-secondary{background:#fff;background:var(--surface);border-color:#e5e7eb;border-color:var(--border);color:#111827;color:var(--text)}.btn-secondary:not(:disabled):hover{background:#f9fafb;background:var(--gray-50);border-color:#d1d5db}.btn-ghost{background:#0000;border-color:#0000;color:#6b7280;color:var(--text-muted)}.btn-ghost:not(:disabled):hover{background:#f3f4f6;background:var(--gray-100);color:#111827;color:var(--text)}.btn-success{background:#16a34a;background:var(--green);border-color:#16a34a;border-color:var(--green);color:#fff}.btn-success:not(:disabled):hover{background:#15803d}.btn-danger{background:#dc2626;background:var(--red);border-color:#dc2626;border-color:var(--red);color:#fff}.btn-danger:not(:disabled):hover{background:#b91c1c}.btn-purple{background:#7c3aed;background:var(--purple);border-color:#7c3aed;border-color:var(--purple);color:#fff}.btn-purple:not(:disabled):hover{background:#6d28d9}.btn-sm{font-size:12px;padding:6px 12px}.btn-full{width:100%}.btn-google{background:#fff;border:1.5px solid #e5e7eb;border:1.5px solid var(--border);box-shadow:0 1px 3px #00000012,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);color:#374151;font-size:14px;font-weight:600;padding:10px 20px;width:100%}.btn-google:not(:disabled):hover{background:#f9fafb;background:var(--gray-50);box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a;box-shadow:var(--shadow)}.btn-google svg{flex-shrink:0;height:18px;width:18px}.form-group{margin-bottom:1rem}.field-label{color:#111827;color:var(--text);display:block;font-size:12px;font-weight:600;letter-spacing:.01em;margin-bottom:5px}.field-hint{color:#6b7280;color:var(--text-muted);font-size:11px;line-height:1.5;margin-top:4px}.field-error{color:#dc2626;color:var(--red);font-size:12px;margin-top:4px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{background:#fff;background:var(--surface);border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:8px;border-radius:var(--radius);color:#111827;color:var(--text);display:block;font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font);font-size:13px;line-height:1.5;padding:9px 12px;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition),box-shadow var(--transition);width:100%}input:focus,select:focus,textarea:focus{border-color:#2563eb;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a;outline:none}input::placeholder,textarea::placeholder{color:#9ca3af;color:var(--text-subtle)}textarea{min-height:90px;resize:vertical}input[type=range]{accent-color:#2563eb;accent-color:var(--blue);border:none;box-shadow:none;padding:0}.grid-2{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:480px){.grid-2{grid-template-columns:1fr}}.tab-bar{background:#f3f4f6;background:var(--gray-100);border-radius:8px;border-radius:var(--radius);display:flex;gap:2px;margin-bottom:1.25rem;overflow-x:auto;padding:3px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{background:#0000;border:none;border-radius:6px;color:#6b7280;color:var(--text-muted);cursor:pointer;flex-shrink:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-family:var(--font);font-size:12.5px;font-weight:500;padding:7px 14px;transition:all .15s ease;transition:all var(--transition);white-space:nowrap}.tab-btn:hover{background:#fff9}.tab-btn.active,.tab-btn:hover{color:#111827;color:var(--text)}.tab-btn.active{background:#fff;background:var(--surface);box-shadow:0 1px 3px #00000012,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);font-weight:600}.alert{border-radius:8px;border-radius:var(--radius);font-size:13px;line-height:1.55;padding:10px 14px}.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.alert-success{background:#f0fdf4;background:var(--green-bg);border:1px solid #bbf7d0;color:#166534;color:var(--green-text)}.alert-error{background:#fef2f2;background:var(--red-bg);border:1px solid #fecaca;color:#991b1b;color:var(--red-text)}.alert-warning{background:#fffbeb;background:var(--amber-bg);border:1px solid #fde68a;color:#92400e;color:var(--amber-text)}.badge{align-items:center;border:1px solid #0000;border-radius:99px;display:inline-flex;font-size:11px;font-weight:600;line-height:1.5;padding:2px 8px}.badge-blue{background:#dbeafe;border-color:#bfdbfe;color:#1e40af}.badge-green{background:#dcfce7;border-color:#bbf7d0;color:#15803d}.badge-red{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.badge-amber{background:#fef3c7;border-color:#fde68a;color:#92400e}.badge-gray{background:#f3f4f6;background:var(--gray-100);border-color:#e5e7eb;border-color:var(--border);color:#6b7280;color:var(--text-muted)}.badge-purple{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}.table-wrap{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;font-size:13px;width:100%}thead{background:#f9fafb;background:var(--gray-50)}th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);color:#6b7280;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;padding:9px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}td{border-bottom:1px solid #f9fafb;border-bottom:1px solid var(--gray-50);padding:10px 12px;vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:#f9fafb;background:var(--gray-50)}.metric-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:1rem}.metric{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000012,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:1rem}.metric-val{font-size:26px;font-weight:800;letter-spacing:-1px;line-height:1;margin-bottom:4px}.metric-lbl{color:#6b7280;color:var(--text-muted);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}.modal{animation:modal-in .15s ease;background:#fff;background:var(--surface);border-radius:16px;border-radius:var(--radius-xl);box-shadow:0 10px 30px #0000001a,0 4px 8px #0000000d;box-shadow:var(--shadow-lg);max-height:90vh;max-width:500px;overflow-y:auto;padding:1.5rem;width:100%}@keyframes modal-in{0%{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-size:17px;font-weight:700;margin-bottom:2px}.modal-sub{color:#6b7280;color:var(--text-muted);font-size:13px;margin-bottom:1.25rem}.autocomplete-wrap{position:relative}.autocomplete-list{background:#fff;background:var(--surface);border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:8px;border-radius:var(--radius);box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a;box-shadow:var(--shadow);left:0;max-height:220px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:50}.autocomplete-item{align-items:center;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;padding:10px 12px;transition:background .15s ease;transition:background var(--transition)}.autocomplete-item:hover{background:#eff6ff;background:var(--blue-light)}.autocomplete-item-sub{color:#6b7280;color:var(--text-muted);font-size:11px}.checklist{display:flex;flex-direction:column;gap:8px;list-style:none}.checklist li{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:8px 0}.checklist li:last-child{border-bottom:none}.check-circle{align-items:center;border:2px solid #e5e7eb;border:2px solid var(--border);border-radius:50%;display:flex;flex-shrink:0;font-size:11px;height:20px;justify-content:center;transition:all .15s ease;transition:all var(--transition);width:20px}.check-circle.done{background:#2563eb;background:var(--blue);color:#fff}.check-circle.active,.check-circle.done{border-color:#2563eb;border-color:var(--blue)}.steps{align-items:center;display:flex;gap:0;justify-content:center;overflow:hidden}.step-item{gap:6px}.step-dot,.step-item{align-items:center;display:flex;flex-shrink:0}.step-dot{border-radius:50%;font-size:11px;font-weight:700;height:26px;justify-content:center;transition:all .15s ease;transition:all var(--transition);width:26px}.step-dot.current,.step-dot.done{background:#2563eb;background:var(--blue);color:#fff}.step-dot.current{box-shadow:0 0 0 3px #2563eb33}.step-dot.pending{background:#f3f4f6;background:var(--gray-100);border:1.5px solid #e5e7eb;border:1.5px solid var(--border)}.step-dot.pending,.step-label{color:#6b7280;color:var(--text-muted)}.step-label{font-size:11px;font-weight:500}.step-label.current{color:#2563eb;color:var(--blue);font-weight:600}.step-line{background:#e5e7eb;background:var(--border);flex-shrink:0;height:1.5px;margin:0 4px;width:24px}.day-pills{display:flex;flex-wrap:wrap;gap:6px}.day-pill{border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:99px;color:#6b7280;color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:500;padding:5px 10px;transition:all .15s ease;transition:all var(--transition);-webkit-user-select:none;user-select:none}.day-pill.selected{background:#2563eb;background:var(--blue);border-color:#2563eb;border-color:var(--blue);color:#fff}.day-pill:hover:not(.selected){border-color:#2563eb;border-color:var(--blue);color:#2563eb;color:var(--blue)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.text-center{text-align:center}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-muted{color:#6b7280;color:var(--text-muted)}.text-subtle{color:#9ca3af;color:var(--text-subtle)}.font-600{font-weight:600}.font-700{font-weight:700}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.divider{border:none;border-top:1px solid #e5e7eb;border-top:1px solid var(--border);margin:1rem 0}.spinner{animation:spin .7s linear infinite;border:2.5px solid #0000001a;border-radius:50%;border-top-color:initial;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.live-dot{animation:pulse-dot 2s infinite;background:#16a34a;background:var(--green);border-radius:50%;box-shadow:0 0 0 2px #f0fdf4;box-shadow:0 0 0 2px var(--green-bg);display:inline-block;height:7px;width:7px}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.gps-dot{background:#16a34a;background:var(--green);border-radius:50%;display:inline-block;height:7px;width:7px}.empty-state{padding:3rem 1rem;text-align:center}.empty-state-icon{font-size:36px;margin-bottom:12px}.empty-state-title{font-size:15px;font-weight:600;margin-bottom:6px}.empty-state-sub{color:#6b7280;color:var(--text-muted);font-size:13px;line-height:1.6}.fade-up{animation:fade-up .25s ease both}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.0c1a59a3.css.map*/