.bookings-page{padding-block:0 var(--spacing-16)}.bk-hero{background:linear-gradient(135deg, var(--color-primary) 0%, #0d4a7a 100%);color:#fff;padding:var(--spacing-10) 0 var(--spacing-8);margin-bottom:var(--spacing-8);position:relative;overflow:hidden}.bk-hero:before{content:"";background:radial-gradient(circle,#e8a8381f 0%,#0000 70%);border-radius:50%;width:300px;height:300px;position:absolute;top:-30%;right:-5%}.bk-hero-content{z-index:1;position:relative}.bk-hero-top{justify-content:space-between;align-items:center;gap:var(--spacing-4);flex-wrap:wrap;display:flex}.bk-hero-left{align-items:center;gap:var(--spacing-4);display:flex}.bk-hero-icon{border-radius:var(--radius-full);color:#fff;background:#ffffff26;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.bk-hero-text h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:#fff;margin:0}.bk-hero-text p{font-size:var(--font-size-sm);opacity:.85;color:#fff;margin:var(--spacing-1) 0 0}.hero-link{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-base);background:#ffffff26;border:1px solid #ffffff40;text-decoration:none;display:inline-flex}.hero-link:hover{background:#ffffff40}.auth-gate{align-items:center;gap:var(--spacing-3);padding:var(--spacing-16) var(--spacing-8);text-align:center;background:var(--color-background-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl);flex-direction:column;max-width:720px;margin:0 auto;display:flex}.auth-gate-icon{border-radius:var(--radius-full);background:var(--color-primary-light);width:72px;height:72px;color:var(--color-primary);justify-content:center;align-items:center;display:flex}.auth-gate-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.auth-gate-text{color:var(--color-text-secondary);margin:0}.bk-filters{gap:var(--spacing-2);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-1);display:flex;overflow-x:auto}.bk-filter{padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-background-elevated);border:1px solid var(--color-border-default);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.bk-filter:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.bk-filter.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.booking-card{background:var(--color-background-elevated);border:1.5px solid var(--color-border-default);border-radius:var(--radius-xl);margin-bottom:var(--spacing-6);transition:all var(--transition-base);position:relative;overflow:hidden;box-shadow:0 2px 8px #1a1a1a0f,0 1px 2px #1a1a1a0a}.booking-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px);box-shadow:0 8px 24px #1a1a1a1a,0 4px 8px #1a1a1a0f}.booking-card:before{content:"";z-index:1;height:4px;position:absolute;top:0;left:0;right:0}.booking-card[data-status=confirmed]:before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.booking-card[data-status=assigned]:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.booking-card[data-status=enroute]:before,.booking-card[data-status=arrived]:before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.booking-card[data-status=inprogress]:before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.booking-card[data-status=completed]:before,.booking-card[data-status=rated]:before{background:linear-gradient(90deg,#10b981,#34d399)}.booking-card[data-status=pendingpayment]:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.booking-card[data-status*=cancelled]:before,.booking-card[data-status=expired]:before,.booking-card[data-status=noshow]:before{background:linear-gradient(90deg,#ef4444,#f87171)}.booking-card:after{content:"";z-index:1;width:5px;position:absolute;top:0;bottom:0;left:0}.booking-card[data-status=confirmed]:after{background:#3b82f6}.booking-card[data-status=assigned]:after{background:#f59e0b}.booking-card[data-status=enroute]:after,.booking-card[data-status=arrived]:after{background:#8b5cf6}.booking-card[data-status=inprogress]:after{background:#3b82f6}.booking-card[data-status=completed]:after,.booking-card[data-status=rated]:after{background:#10b981}.booking-card[data-status=pendingpayment]:after{background:#f59e0b}.booking-card[data-status*=cancelled]:after,.booking-card[data-status=expired]:after,.booking-card[data-status=noshow]:after{background:#ef4444}.bk-card-head{padding:var(--spacing-4) var(--spacing-5);justify-content:space-between;align-items:center;gap:var(--spacing-3);background:var(--color-neutral-50);border-bottom:1px solid var(--color-border-default);display:flex}.bk-card-head-left{align-items:center;gap:var(--spacing-3);min-width:0;display:flex}.bk-card-head-right{align-items:center;gap:var(--spacing-3);flex-shrink:0;display:flex}.bk-booking-num{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);white-space:nowrap}.status-badge{padding:4px var(--spacing-3);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;align-items:center;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:6px}.status-badge--confirmed{color:#1e40af;background:#dbeafe}.status-badge--confirmed .status-dot{background:#3b82f6}.status-badge--assigned{color:#92400e;background:#fef3c7}.status-badge--assigned .status-dot{background:#f59e0b}.status-badge--enroute{color:#5b21b6;background:#ede9fe}.status-badge--enroute .status-dot{background:#8b5cf6}.status-badge--arrived{color:#5b21b6;background:#ede9fe}.status-badge--arrived .status-dot{background:#8b5cf6}.status-badge--inprogress{color:#1e40af;background:#dbeafe}.status-badge--inprogress .status-dot{background:#3b82f6}.status-badge--completed{color:#065f46;background:#d1fae5}.status-badge--completed .status-dot{background:#10b981}.status-badge--rated{color:#065f46;background:#d1fae5}.status-badge--rated .status-dot{background:#10b981}.status-badge--pendingpayment{color:#92400e;background:#fef3c7}.status-badge--pendingpayment .status-dot{background:#f59e0b}.status-badge--cancelledbycustomer,.status-badge--cancelledbypartner,.status-badge--cancelledbyadmin,.status-badge--cancelledbysystem{color:#991b1b;background:#fee2e2}.status-badge--cancelledbycustomer .status-dot,.status-badge--cancelledbypartner .status-dot,.status-badge--cancelledbyadmin .status-dot,.status-badge--cancelledbysystem .status-dot{background:#ef4444}.status-badge--expired,.status-badge--noshow{color:#6b7280;background:#f3f4f6}.status-badge--expired .status-dot,.status-badge--noshow .status-dot{background:#9ca3af}.bk-head-date{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.bk-card-body{padding:var(--spacing-5)}.bk-card-grid{gap:var(--spacing-4) var(--spacing-6);grid-template-columns:1fr 1fr;display:grid}@media (width<=540px){.bk-card-grid{grid-template-columns:1fr}}.bk-info-block{padding:var(--spacing-3);background:var(--color-neutral-50);border-radius:var(--radius-md)}.bk-info-label{font-size:11px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:var(--spacing-1);align-items:center;gap:5px;display:flex}.bk-info-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.bk-services-row{gap:var(--spacing-2);margin-top:var(--spacing-4);padding-top:var(--spacing-3);border-top:1px solid var(--color-border-default);flex-wrap:wrap;display:flex}.bk-services-label{font-size:11px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);width:100%;margin-bottom:var(--spacing-1)}.bk-svc-tag{padding:var(--spacing-1) var(--spacing-3);background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:1px solid #0a3d621a;align-items:center;gap:4px;display:inline-flex}.bk-card-foot{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--color-border-default);background:var(--color-neutral-50);justify-content:space-between;align-items:center;gap:var(--spacing-3);display:flex}.bk-price{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.bk-price-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-normal);margin-top:2px;display:block}.bk-card-actions{gap:var(--spacing-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.bk-rate-btn{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);color:#92400e;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);transition:all var(--transition-fast);white-space:nowrap;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:1.5px solid #f59e0b;text-decoration:none;display:inline-flex}.bk-rate-btn:hover{color:#78350f;background:linear-gradient(135deg,#fde68a 0%,#fbbf24 100%);transform:translateY(-1px);box-shadow:0 2px 8px #f59e0b59}.bk-empty{text-align:center;padding:var(--spacing-16) var(--spacing-8);background:var(--color-background-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-xl)}.bk-empty-icon{border-radius:var(--radius-full);background:var(--color-neutral-100);width:80px;height:80px;color:var(--color-text-muted);margin:0 auto var(--spacing-4);justify-content:center;align-items:center;display:flex}.bk-empty h3{font-size:var(--font-size-lg);margin:0 0 var(--spacing-2)}.bk-empty p{color:var(--color-text-secondary);margin:0 0 var(--spacing-5)}.bk-pagination{justify-content:center;align-items:center;gap:var(--spacing-4);margin-top:var(--spacing-8);display:flex}#page-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.btn-sm{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm)}@media (width<=640px){.bk-hero-top,.bk-card-head{flex-direction:column;align-items:flex-start}.bk-card-foot{flex-direction:column;align-items:stretch}.bk-card-actions{justify-content:stretch}.bk-card-actions .btn{flex:1}}
