@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0F1923;--ink-soft: #3D5166;--ink-muted: #7A95AE;--bg: #F8FAFC;--surface: #FFFFFF;--border: rgba(15,25,35,.1);--border-focus: #0EA5E9;--accent: #0EA5E9;--accent-bg: rgba(14,165,233,.08);--accent-glow: rgba(14,165,233,.2);--green: #10B981;--green-bg: rgba(16,185,129,.08);--amber: #F59E0B;--amber-bg: rgba(245,158,11,.1);--red: #EF4444;--red-bg: rgba(239,68,68,.08);--shadow-sm: 0 1px 3px rgba(15,25,35,.06), 0 1px 2px rgba(15,25,35,.04);--shadow-md: 0 4px 16px rgba(15,25,35,.08), 0 2px 6px rgba(15,25,35,.05);--shadow-lg: 0 12px 40px rgba(15,25,35,.12), 0 4px 12px rgba(15,25,35,.06);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}.page-shell{min-height:100vh;display:flex;flex-direction:column;width:100%;overflow-x:hidden}.portal-banner{background:var(--ink);padding:24px 24px 32px;text-align:center}.portal-logo-img{height:28px;width:auto;margin-bottom:8px}.portal-tagline{font-size:12px;color:#ffffff73;letter-spacing:.06em;text-transform:uppercase;font-weight:500}.portal-nav{display:flex;justify-content:center;gap:8px;margin-top:16px}.container{width:100%;max-width:600px;margin:-16px auto 0;padding:0 16px 80px;position:relative;z-index:1;box-sizing:border-box}.station-rail{display:flex;align-items:center;margin-bottom:28px;padding:0 4px}.station{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;position:relative}.station:not(:last-child):after{content:"";position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:1.5px;background:var(--border);transition:background .4s}.station.done:not(:last-child):after{background:var(--accent)}.station-dot{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--ink-muted);transition:all .3s;position:relative;z-index:1}.station.done .station-dot{background:var(--accent);border-color:var(--accent);color:#fff}.station.active .station-dot{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 0 0 4px var(--accent-glow)}.station-label{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}.station.active .station-label{color:var(--ink);font-weight:700}.station.done .station-label{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-md);margin-bottom:12px;width:100%;box-sizing:border-box}.card-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.card-title{font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}.card-subtitle{font-size:13px;color:var(--ink-muted);margin-bottom:24px}.field{margin-bottom:16px}.field label{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:Inter,sans-serif;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s;outline:none;line-height:1.4}.field input:hover,.field select:hover{border-color:#0f192340}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.field input::placeholder{color:var(--ink-muted)}.field input.auto-filled{background:var(--green-bg);border-color:var(--green)}.field-hint{font-size:11px;color:var(--ink-muted);margin-top:5px;line-height:1.4}.req{color:var(--red)}.verify-field input{font-family:SF Mono,JetBrains Mono,Courier New,monospace;font-size:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase;flex:1}.condition-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:16px}.condition-panel-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.slot-btn{padding:14px 8px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:var(--ink);transition:all .15s;text-align:center;line-height:1}.slot-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg);color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.slot-btn.selected{border-color:var(--accent);background:var(--ink);color:#fff;box-shadow:0 4px 12px #0ea5e940}.slot-btn:disabled{opacity:.38;cursor:not-allowed;background:var(--bg)}.slot-count{display:block;font-size:10px;font-weight:500;margin-top:4px;opacity:.65}.slot-btn.selected .slot-count{opacity:.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 22px;border-radius:var(--radius-sm);font-family:Inter,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;border:none;letter-spacing:-.01em;white-space:nowrap}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:#1a2d3d;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:#0284c7;box-shadow:0 4px 12px #0ea5e94d;transform:translateY(-1px)}.btn-accent:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--ink-soft);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--bg);border-color:#0f192333}.btn-ghost{background:transparent;color:var(--ink-soft);border:none}.btn-ghost:hover{color:var(--ink);background:var(--bg)}.btn-danger{background:var(--red-bg);color:var(--red);border:1.5px solid rgba(239,68,68,.25)}.btn-danger:hover{background:#ef444426}.btn-sm{padding:8px 14px;font-size:12px;border-radius:7px}.btn-lg{padding:15px 28px;font-size:15px}.btn-block{width:100%}.banner{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45;margin-bottom:16px}.banner-success{background:var(--green-bg);border:1px solid rgba(16,185,129,.2);color:#047857}.banner-error{background:var(--red-bg);border:1px solid rgba(239,68,68,.2);color:#b91c1c}.banner-warning{background:var(--amber-bg);border:1px solid rgba(245,158,11,.2);color:#b45309}.banner-info{background:var(--accent-bg);border:1px solid rgba(14,165,233,.2);color:#0369a1}.date-warning{margin-top:10px;padding:12px 14px;background:var(--red-bg);border:1.5px solid rgba(239,68,68,.25);border-radius:var(--radius-sm);font-size:13px;color:#b91c1c;display:flex;align-items:flex-start;gap:8px}.quick-dates{display:flex;gap:6px;margin-bottom:10px}.confirm-row{display:flex;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--border)}.confirm-label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);width:130px;flex-shrink:0}.confirm-value{font-size:14px;font-weight:500;color:var(--ink)}.container-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:16px}.container-preview-num{font-family:SF Mono,JetBrains Mono,monospace;font-size:16px;font-weight:700;letter-spacing:1px;color:var(--ink);margin-bottom:4px}.confirmation-number-box{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-only-logo{display:none}.receipt-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;text-align:left;margin-bottom:24px}.receipt-detail-item.full{grid-column:1 / -1}.receipt-detail-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:3px}.receipt-detail-value{font-size:14px;font-weight:600;color:var(--ink)}.receipt-qr-section{padding-top:20px;margin-bottom:20px;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:10px}.receipt-qr-wrap{background:#fff;padding:12px;border-radius:14px;border:1px solid var(--border)}.receipt-qr-label{font-size:11px;color:var(--ink-muted);text-align:center}.receipt-footer-note{padding:10px 16px;background:var(--bg);border-radius:10px;font-size:12px;color:var(--ink-muted);border:1px solid var(--border)}.status-pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.status-confirmed{background:var(--green-bg);color:#047857}.status-checked_in{background:var(--amber-bg);color:#92400e}.status-completed{background:var(--bg);color:var(--ink-muted);border:1px solid var(--border)}.status-cancelled,.status-rejected{background:var(--red-bg);color:#b91c1c}.status-no_show{background:#fff7ed;color:#9a3412}.status-rescheduled{background:#f5f3ff;color:#6d28d9}.lookup-result{border:1.5px solid var(--border);border-radius:var(--radius-md);padding:20px;background:var(--surface);margin-top:12px}.lookup-appt-num{font-family:SF Mono,JetBrains Mono,monospace;font-size:18px;font-weight:700;letter-spacing:1px;color:var(--ink);margin-bottom:6px}.action-group{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.divider{height:1px;background:var(--border);margin:20px 0}.success-icon{width:64px;height:64px;border-radius:50%;background:var(--green-bg);border:2px solid rgba(16,185,129,.2);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 16px}.btn-nav{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.15);padding:7px 14px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;font-family:Inter,sans-serif}.btn-nav:hover{background:#ffffff2e;color:#fff}.btn-nav.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-nav.accent:hover{background:#0284c7}@media (max-width: 520px){.field-row{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,1fr)}.card{padding:20px;border-radius:var(--radius-md)}.portal-banner{padding:20px 16px 28px}}@media print{.portal-banner,.station-rail,.btn,.btn-nav,.portal-nav,.action-group,.card:not(.print-receipt){display:none!important}.print-receipt{display:block!important;box-shadow:none!important;border:1px solid #ddd!important;margin:0!important;padding:20px!important;max-width:100%!important}.container{padding:0!important;margin:0!important;max-width:100%!important}body{background:#fff!important}.no-print{display:none!important}.print-only-logo{display:block!important;margin:0 auto 16px;max-width:220px;height:auto}}.card{min-height:540px;display:flex;flex-direction:column;width:100%;max-width:100%;box-sizing:border-box}.card-actions{margin-top:auto;padding-top:20px;display:flex;width:100%;box-sizing:border-box}.card>.field,.card>.field-row,.card>.condition-panel,.card>.banner,.card>.container-preview{width:100%;box-sizing:border-box}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;box-sizing:border-box}.field-row>.field{width:100%;min-width:0;box-sizing:border-box}.field>input,.field>select,.field>textarea,.field>.verify-field{width:100%;box-sizing:border-box}.verify-field{display:flex;gap:8px;align-items:flex-start}.verify-field>input{flex:1;min-width:0}.card{animation:fadeIn .18s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.card.print-receipt,.lookup-result{min-height:unset;width:100%;box-sizing:border-box}@keyframes spin{to{transform:rotate(360deg)}}.slot-pager .slot-btn{transition:none}.slot-btn.selected:hover{border-color:var(--accent);background:var(--ink);color:#fff;box-shadow:0 4px 12px #0ea5e940}.slot-btn.selected:focus{border-color:var(--accent);background:var(--ink);color:#fff;box-shadow:0 4px 12px #0ea5e940}.slot-btn.selected:hover .slot-count{opacity:.7}.slot-btn.selected:focus .slot-count{opacity:.7}
