:root{--hh-bg:#f5f9ff;--hh-card:#fff;--hh-border:#dbe8f7;--hh-text:#142b50;--hh-muted:#62738c;--hh-brand:#1769ff;--hh-brand-dark:#0f4fd2;--hh-sidebar:#102a56;--hh-sidebar-2:#0b1d3d;--hh-success:#138a50;--hh-warning:#c57a00;--hh-danger:#c73a3a;--hh-shadow:0 8px 28px rgba(26,77,142,.09)}*{box-sizing:border-box}body{background:#f5f9ff;color:var(--hh-text)}a{color:#1769ff}.hero{background:linear-gradient(135deg,#eaf4ff,#f3fff8)}.service-card{display:block;background:#fff;border:1px solid #dbe8f7;padding:1.25rem;border-radius:1rem;min-height:130px}.service-card:hover{box-shadow:0 8px 24px rgba(26,77,142,.10);transform:translateY(-1px)}.auth-card{max-width:560px;margin:2rem auto;background:#fff;border:1px solid #dbe8f7;padding:2rem;border-radius:1rem}.metric{background:#fff;border:1px solid #dbe8f7;border-radius:1rem;padding:1.25rem;display:flex;flex-direction:column}.metric strong{font-size:1.7rem}.card{border-color:#dbe8f7;border-radius:1rem}.public-nav{min-height:64px}

/* Shared provider/customer application shell */
.portal-body{margin:0;background:linear-gradient(135deg,#f4f9ff,#f7fffc);min-height:100vh}.app-shell{min-height:100vh;display:flex}.app-sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:linear-gradient(180deg,#fff,#eef6ff);border-right:1px solid var(--hh-border);color:var(--hh-text);padding:20px 14px;display:flex;flex-direction:column;z-index:1040;overflow-y:auto}.app-brand{padding:2px 8px 22px}.app-brand a{text-decoration:none;color:var(--hh-text);display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#2d7cff,#175be0);display:grid;place-items:center;font-weight:800;font-size:19px;box-shadow:0 8px 18px rgba(23,105,255,.28)}.app-brand strong{display:block;font-size:19px;line-height:1.05}.app-brand small{display:block;color:#62738c;font-size:10px;letter-spacing:1.8px;margin-top:5px}.app-nav{display:flex;flex-direction:column;gap:4px}.app-nav a{color:#294565;text-decoration:none;padding:10px 12px;border-radius:10px;display:flex;align-items:center;gap:11px;font-size:14px;font-weight:600;transition:.15s}.app-nav a span{width:19px;text-align:center;color:#4073b6;font-size:14px}.app-nav a:hover{background:#edf6ff;color:#1458d4}.app-nav a.active{background:#e1efff;color:#1458d4;box-shadow:inset 0 0 0 1px #cde2fb}.app-nav a.active span{color:#1458d4}.sidebar-help{margin-top:auto;border-top:1px solid #dce9f8;padding:18px 10px 6px;display:flex;flex-direction:column;gap:5px}.sidebar-help strong{font-size:13px;color:#142b50}.sidebar-help small{font-size:11px;color:#62738c;line-height:1.4}.sidebar-help a{font-size:12px;color:#1769ff;text-decoration:none;margin-top:3px}.app-main{margin-left:252px;min-width:0;flex:1}.app-topbar{height:66px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--hh-border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:1020}.app-topbar>div:first-child>div{display:flex;flex-direction:column}.app-topbar>div:first-child strong{font-size:15px}.app-topbar>div:first-child small{font-size:12px;color:var(--hh-muted)}.topbar-actions{display:flex;align-items:center;gap:12px}.account-chip{display:flex;align-items:center;gap:8px;color:#334155;font-size:13px}.account-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:#1458d4;font-weight:700}.account-email{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-toggle{display:none;border:0;background:transparent;font-size:22px;color:#344054}.app-content{padding:30px;max-width:1540px;margin:0 auto}.sidebar-backdrop{display:none}

.portal-page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:24px}.portal-page-head h1{font-size:30px;line-height:1.15;margin:0 0 6px;font-weight:750;letter-spacing:-.4px}.portal-page-head p{margin:0;color:var(--hh-muted);font-size:14px}.portal-card{background:var(--hh-card);border:1px solid var(--hh-border);border-radius:15px;padding:20px;box-shadow:0 1px 2px rgba(16,24,40,.015)}.portal-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}.portal-card-head h2{font-size:17px;margin:0 0 3px;font-weight:700}.portal-card-head p{font-size:12px;color:var(--hh-muted);margin:0}.portal-card-head>a{font-size:12px;text-decoration:none;white-space:nowrap}.portal-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.portal-kpi-grid.compact .portal-stat{min-height:100px}.portal-stat{background:#fff;border:1px solid var(--hh-border);border-radius:14px;padding:17px;display:flex;gap:13px;align-items:flex-start;text-decoration:none;color:var(--hh-text);min-height:116px}.portal-stat:hover{border-color:#bfd1f5;box-shadow:var(--hh-shadow);color:var(--hh-text)}.stat-icon{width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:#eef4ff;color:#1758d3;display:grid;place-items:center;font-weight:800;font-size:13px}.portal-stat span{font-size:12px;color:var(--hh-muted);display:block;margin-bottom:4px}.portal-stat strong{font-size:22px;display:block;line-height:1.2}.portal-stat small{font-size:11px;color:#8a94a6;display:block;margin-top:5px}.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap;background:#edf1f5;color:#465365}.status-Approved,.status-Completed,.status-Paid,.status-Succeeded,.status-Resolved,.status-Closed{background:#e8f7ef;color:#0d7a43}.status-Requested,.status-PendingVerification,.status-Pending,.status-Held,.status-Processing,.status-New,.status-WaitingOnUser{background:#fff3d7;color:#9a6100}.status-Confirmed{background:#eaf2ff;color:#1458d4}.status-InProgress,.status-Open{background:#e8f1ff;color:#125ac6}.status-Cancelled,.status-Rejected,.status-Failed,.status-Expired{background:#fdeaea;color:#b42318}.status-Limited,.status-Suspended{background:#f2ecff;color:#6941c6}.count-badge{background:#f1f4f8;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.empty-friendly{min-height:135px;border:1px dashed #d9e1eb;border-radius:12px;background:#fafcff;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px;color:var(--hh-muted)}.empty-friendly strong{color:#344054;margin-bottom:5px}.success-callout,.warning-callout{border-radius:10px;padding:11px 12px;font-size:12px}.success-callout{background:#eaf8f0;color:#0d7040;border:1px solid #cbead8}.warning-callout{background:#fff6df;color:#8d5c00;border:1px solid #f0dda4}.info-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #edf0f4;font-size:13px}.info-row:last-child{border-bottom:0}.info-row span{color:var(--hh-muted)}

.onboarding-card{background:linear-gradient(135deg,#f7fbff,#f8fff9)}.setup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.setup-step{border:1px solid var(--hh-border);background:#fff;border-radius:11px;padding:12px;text-decoration:none;color:var(--hh-text);display:flex;gap:9px}.setup-step>span{width:25px;height:25px;border-radius:7px;background:#edf3ff;color:#155bd5;display:grid;place-items:center;font-weight:700;font-size:12px}.setup-step strong{display:block;font-size:12px}.setup-step small{display:block;color:var(--hh-muted);font-size:10px;line-height:1.35;margin-top:2px}.job-card{padding:16px;background:#fcfdff;box-shadow:none}.job-actions .form-control{max-width:360px}.rating-summary{display:flex;align-items:end;gap:10px}.rating-summary strong{font-size:31px}.rating-summary span{font-size:12px;color:var(--hh-muted);padding-bottom:5px}.review-snippet{margin-top:15px;padding-top:15px;border-top:1px solid #edf0f4}.review-snippet>div,.stars{color:#e6a700;letter-spacing:1px}.review-snippet p{font-size:13px;margin:7px 0}.review-snippet small{color:var(--hh-muted)}

.portal-table{margin-bottom:0;font-size:13px}.portal-table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#667085;background:#fafbfc;border-bottom-color:#e8ebef;padding:11px}.portal-table td{padding:12px 11px;border-color:#edf0f4}.module-sticky{top:86px}.service-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.service-manage-card{border:1px solid var(--hh-border);border-radius:12px;padding:16px;background:#fcfdff}.selected-service-card{border-color:#a9c6ff;background:#f8fbff}.service-manage-card small{color:var(--hh-muted)}.service-manage-card h3{font-size:16px;margin:3px 0 0}.service-price{font-weight:700;margin:13px 0}.service-price span{font-weight:400;color:var(--hh-muted);font-size:12px}.availability-row{border:1px solid var(--hh-border);border-radius:11px;padding:12px;margin-bottom:10px;background:#fcfdff}.schedule-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #edf0f4}.schedule-row:last-child{border-bottom:0}.schedule-date{width:46px;height:49px;border-radius:10px;background:#eef4ff;color:#155bd5;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.schedule-date strong{font-size:18px}.schedule-date span{font-size:10px;text-transform:uppercase;margin-top:3px}.trust-banner{display:flex;align-items:center;gap:13px}.trust-icon{width:42px;height:42px;border-radius:50%;background:#e8f7ef;color:#0d7a43;display:grid;place-items:center;font-weight:800;font-size:19px}.trust-banner strong,.trust-banner span{display:block}.trust-banner span{font-size:12px;color:var(--hh-muted);margin-top:3px}.verification-grid{display:grid;gap:14px}.verification-card h2{font-size:16px;margin:0}.verification-card p{font-size:12px;color:var(--hh-muted);margin:4px 0 0}.document-current{font-size:12px;background:#f7f9fc;border-radius:8px;padding:9px;margin-top:12px}.profile-account{text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px}.avatar-lg{width:62px;height:62px;border-radius:18px;background:#eaf1ff;color:#1458d4;display:grid;place-items:center;font-weight:800;font-size:25px;margin-bottom:8px}.profile-account span{font-size:12px;color:var(--hh-muted)}.rating-hero{display:flex;justify-content:space-between;align-items:center;gap:20px}.rating-hero>div{display:flex;align-items:end;gap:10px}.rating-hero strong{font-size:34px}.rating-hero span,.rating-hero p{color:var(--hh-muted);font-size:12px;margin:0}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-card p{font-size:14px;margin:14px 0}.review-card h3{font-size:15px;margin:12px 0 2px}

/* Customer portal */
.customer-next-booking{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border:1px solid #e6ebf2;border-radius:12px;padding:18px;text-decoration:none;color:var(--hh-text);background:#fcfdff}.customer-next-booking:hover{color:var(--hh-text);border-color:#bfd1f5}.customer-next-booking h3{font-size:18px;margin:10px 0 4px}.customer-next-booking p{margin:0 0 3px;color:#475467}.quick-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-action-grid a{border:1px solid var(--hh-border);border-radius:11px;padding:13px;text-decoration:none;color:var(--hh-text);min-height:104px}.quick-action-grid a:hover{border-color:#bfd1f5;background:#fbfdff}.quick-action-grid span{font-size:17px;color:#1769ff;display:block}.quick-action-grid strong{font-size:12px;display:block;margin:7px 0 2px}.quick-action-grid small{font-size:10px;color:var(--hh-muted);line-height:1.35}.provider-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.provider-result h2{font-size:18px}.provider-result p{font-size:13px;color:#475467}.verified-text{color:#0f8a4d;font-size:13px}.support-form{max-width:820px}.ticket-message{border-bottom:1px solid #edf0f4;padding:15px 0}.ticket-message:first-child{padding-top:0}.ticket-message:last-child{border-bottom:0}.ticket-message strong,.ticket-message small{display:block}.ticket-message small{color:var(--hh-muted);font-size:11px}.ticket-message p{margin:8px 0 0;font-size:14px}.ticket-message.support{padding-left:14px;border-left:3px solid #dce8ff}

/* Existing marketplace pages harmonized with portal */
.provider-dashboard-shell{max-width:1500px;margin:0 auto}.provider-job-card{background:#fff}.provider-job-card .badge{white-space:nowrap}.portal-body .container{max-width:none}.portal-body footer{display:none}.portal-body .card{box-shadow:none}.portal-body .btn-primary{background:var(--hh-brand);border-color:var(--hh-brand)}.portal-body .btn-primary:hover{background:var(--hh-brand-dark);border-color:var(--hh-brand-dark)}

@media(max-width:1200px){.portal-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.service-manage-grid{grid-template-columns:1fr}.app-sidebar{transform:translateX(-100%);transition:.2s}.app-main{margin-left:0}.sidebar-toggle{display:block}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1030}.app-topbar{padding:0 15px}.app-content{padding:20px 15px}.account-email{display:none}.module-sticky{position:static!important}.review-grid,.provider-result-grid{grid-template-columns:1fr}}
@media(max-width:640px){.portal-kpi-grid,.setup-grid{grid-template-columns:1fr}.portal-page-head{flex-direction:column}.topbar-actions{gap:6px}.topbar-actions .btn{font-size:0}.topbar-actions .btn:after{content:'↪';font-size:14px}.app-topbar select{max-width:115px}.app-content{padding:16px 12px}.portal-card{padding:15px}.quick-action-grid{grid-template-columns:1fr 1fr}.customer-next-booking{flex-direction:column}.rating-hero{align-items:flex-start;flex-direction:column}}
.info-callout{display:flex;flex-direction:column;gap:3px;background:#f5f8fe;border:1px solid #dfe8f8;border-radius:10px;padding:12px 14px;font-size:12px}.info-callout span{color:#526174}.booking-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-detail-grid>div{border:1px solid #edf0f4;border-radius:10px;padding:13px}.booking-detail-grid span{display:block;font-size:11px;color:var(--hh-muted);margin-bottom:4px}.booking-detail-grid strong{font-size:13px}.total-row strong{font-size:18px}.timeline{padding-left:3px}.timeline-item{position:relative;display:flex;gap:12px;padding:0 0 18px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:5px;top:12px;bottom:0;border-left:1px solid #dfe5ed}.timeline-item:last-child:before{display:none}.timeline-dot{width:11px;height:11px;border-radius:50%;background:#1769ff;flex:0 0 11px;margin-top:4px;z-index:1}.timeline-item strong,.timeline-item small{display:block}.timeline-item small{color:var(--hh-muted);font-size:11px;margin-top:3px}.provider-profile-intro{display:flex;gap:14px;align-items:flex-start}.verification-summary{display:grid;gap:8px;font-size:13px;color:#1d6f45}
.address-results{position:absolute;z-index:1050;left:0;right:0;top:100%;background:#fff;border:1px solid var(--hh-border);border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.14);overflow:hidden}.address-results:empty{display:none}.address-option{display:block;width:100%;border:0;border-bottom:1px solid #eef1f4;background:#fff;text-align:left;padding:10px 12px;font-size:13px}.address-option:hover,.address-option:focus{background:#eef4ff;outline:0}.legal-page{max-width:850px;margin:0 auto}.legal-page h1{margin-bottom:6px}.legal-page h2{font-size:1.2rem;margin-top:2rem}.legal-page p,.legal-page li{line-height:1.7}
@media(max-width:640px){.booking-detail-grid{grid-template-columns:1fr}}
.app-brand{padding-bottom:24px}.app-brand a{flex-direction:column;align-items:flex-start;gap:8px}.app-brand a>span{display:none}.brand-logo{width:218px;height:78px;object-fit:contain;object-position:left center;background:transparent;border-radius:0;padding:0;box-shadow:none}.public-brand-logo{width:190px;height:60px;object-fit:contain;object-position:left center}.public-nav .navbar-brand>span{display:none}.brand-preview{min-height:108px;display:flex;align-items:center}.brand-preview img{max-width:320px;max-height:104px;object-fit:contain}.status-Authorized{background:#eaf2ff;color:#1458d4}
@media(max-width:767.98px){.public-nav .navbar-collapse{padding:14px 0}.public-nav .navbar-collapse>div{align-items:stretch!important;flex-direction:column}.public-nav .navbar-collapse form,.public-nav .navbar-collapse select,.public-nav .navbar-collapse a{width:100%}.portal-card .d-flex:not(.flex-column){flex-wrap:wrap}.job-actions form{width:100%}.job-actions .form-control{max-width:none}.table-responsive{border-radius:10px}.portal-table{min-width:720px}.auth-card{padding:1.25rem;margin:1rem auto}}
@media(max-width:420px){.app-topbar{height:auto;min-height:66px;padding-top:8px;padding-bottom:8px}.topbar-actions form:first-child{max-width:108px}.portal-page-head h1{font-size:25px}.quick-action-grid{grid-template-columns:1fr}.brand-logo{width:190px;height:68px}.public-brand-logo{width:150px;height:48px}}
.skip-link{position:fixed;left:12px;top:8px;z-index:2000;transform:translateY(-160%);background:#fff;color:#0f4fd2;padding:9px 12px;border:2px solid #0f4fd2;border-radius:7px}.skip-link:focus{transform:none}
.status-Accepted,.status-CompletionPending{background:#fff6db;color:#76500a}
