@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&display=swap";*,:before,:after{box-sizing:border-box}:root{--shph-primary:#63cbd6;--shph-primary-dark:#49b8c4;--shph-primary-text:#0d6d78;--shph-primary-light:#d4f0ef;--shph-on-primary:#0f172a;--shph-secondary:#39d2c0;--shph-tertiary:#ee8b60;--shph-primary-deep:#0d6d78;--shph-success:#249689;--shph-warning:#f9cf58;--shph-error:#dc2626;--shph-info:#63cbd6;--shph-gradient-cta:linear-gradient(180deg, #63cbd6, #49b8c4);--shph-gradient-hero:linear-gradient(125deg, #0d6d78, #63cbd6);--shph-gradient-urgent:linear-gradient(100deg, #dc2626, #e11d48);--shph-urgent-ink:#fff;--shph-star:#ffc107;--shph-gradient-warm:linear-gradient(135deg, #0d6d78, #49b8c4);--shph-gradient-aurora:linear-gradient(180deg, #d4f0ef 0%, #e8f8f7 60%, #fff 100%);--shph-aurora-top:#d4f0ef;--shph-warm-rose:#0d6d78;--shph-warm-amber:#49b8c4;--shph-warm-rose-light:#d4f0ef;--shph-warm-amber-light:#e8f8f7;--shph-shadow-warm:0 4px 14px -4px rgba(13,109,120,.25);--shph-ease:cubic-bezier(.22, .61, .36, 1);--shph-dur:.22s;--shph-dur-fast:.14s;--shph-bg-primary:#fff;--shph-bg-secondary:#f1f5f9;--shph-bg-page:#f8fafc;--shph-text-primary:#0f172a;--shph-text-secondary:#64748b;--shph-text-hint:#64748b;--shph-border:#e2e8f0;--shph-border-subtle:rgba(0,0,0,.06);--shph-warning-bg:#fef3c7;--shph-warning-text:#92400e;--shph-error-bg:#fee2e2;--shph-error-text:#991b1b;--shph-success-bg:#d1fae5;--shph-success-text:#065f46;--shph-input-border:#cbd5e1;--shph-border-radius-sm:10px;--shph-border-radius-md:14px;--shph-border-radius-lg:16px;--shph-border-radius-hero:24px;--shph-border-radius-pill:9999px;--shph-container-narrow:560px;--shph-container-readable:760px;--shph-container-wide:100%;--shph-container-dashboard:100%;--shph-shadow-xs:0 1px 2px rgba(16,24,40,.05);--shph-shadow-sm:0 1px 6px rgba(16,38,74,.06);--shph-shadow-md:0 3px 16px rgba(17,38,74,.07);--shph-shadow-lg:0 10px 26px -8px rgba(17,38,74,.18);--shph-shadow-section:0 1px 3px rgba(16,24,40,.07), 0 6px 16px -6px rgba(16,24,40,.06);--shph-shadow-cta:0 8px 18px -5px rgba(99,203,214,.45);--shph-radius-card:24px;--shph-radius-card-lg:28px;--shph-shadow-card:0 8px 24px rgba(16,24,40,.08);--shph-shadow-card-lg:0 12px 28px -6px rgba(16,24,40,.1);--shph-text-heading:#0f172a;--shph-status-confirmed:#0d6d78;--shph-status-confirmed-bg:#d4f0ef;--shph-status-active:#166534;--shph-status-active-bg:#e7f6ec;--shph-status-completed:#475569;--shph-status-completed-bg:#eef1f5;--shph-status-cancelled:#b91c1c;--shph-status-cancelled-bg:#fde9e9;--shph-status-pending:#92400e;--shph-status-pending-bg:#fdf0dd;--shph-gradient-profile-hero:linear-gradient(135deg, #0f8a6c, #17b890 55%, #73d8b4);--shph-surface-elevated:rgba(255,255,255,.95);--shph-backdrop-blur:8px;--shph-scrim:rgba(0,0,0,.55);--shph-overlay-on-dark-faint:rgba(255,255,255,.04);--shph-overlay-on-dark-low:rgba(255,255,255,.1);--shph-overlay-on-dark-mid:rgba(255,255,255,.18);--shph-overlay-on-dark-strong:rgba(255,255,255,.25);--shph-text-on-dark:rgba(255,255,255,.95);--shph-text-on-dark-muted:rgba(255,255,255,.7);--shph-text-on-dark-hint:rgba(255,255,255,.45);--shph-field-bg-on-dark:var(--shph-overlay-on-dark-faint);--shph-field-border-on-dark:var(--shph-overlay-on-dark-mid);--shph-cta-bar-min-height:48px;--shph-cta-bar-padding-y:12px;--shph-cta-bar-padding-x:16px;--shph-cta-bar-background:var(--shph-surface-elevated);--shph-cta-bar-border:var(--shph-border-subtle);--shph-color-destructive:#ff3b30;--shph-font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--ion-color-primary:#63cbd6;--ion-color-primary-rgb:99, 203, 214;--ion-color-primary-contrast:#0f172a;--ion-color-primary-contrast-rgb:15, 23, 42;--ion-color-primary-shade:#58b4bd;--ion-color-primary-tint:#73d0da;--ion-color-secondary:#39d2c0;--ion-color-secondary-rgb:57, 210, 192;--ion-color-secondary-contrast:#14181b;--ion-color-secondary-contrast-rgb:20, 24, 27;--ion-color-secondary-shade:#32b9a8;--ion-color-secondary-tint:#4dd7c6;--ion-color-tertiary:#ee8b60;--ion-color-tertiary-rgb:238, 139, 96;--ion-color-tertiary-contrast:#14181b;--ion-color-tertiary-contrast-rgb:20, 24, 27;--ion-color-tertiary-shade:#d17a54;--ion-color-tertiary-tint:#f09770;--ion-color-success:#249689;--ion-color-success-rgb:36, 150, 137;--ion-color-success-contrast:#fff;--ion-color-success-contrast-rgb:255, 255, 255;--ion-color-success-shade:#1f8478;--ion-color-success-tint:#3aa195;--ion-color-warning:#f9cf58;--ion-color-warning-rgb:249, 207, 88;--ion-color-warning-contrast:#14181b;--ion-color-warning-contrast-rgb:20, 24, 27;--ion-color-warning-shade:#dab64d;--ion-color-warning-tint:#fad469;--ion-color-danger:#dc2626;--ion-color-danger-rgb:220, 38, 38;--ion-color-danger-contrast:#fff;--ion-color-danger-contrast-rgb:255, 255, 255;--ion-color-danger-shade:#e04e57;--ion-color-danger-tint:#ff6a73;--ion-color-medium:#57636c;--ion-color-medium-rgb:87, 99, 108;--ion-color-medium-contrast:#fff;--ion-color-medium-contrast-rgb:255, 255, 255;--ion-color-medium-shade:#4d5860;--ion-color-medium-tint:#68737b;--ion-color-light:#f7f7f7;--ion-color-light-rgb:247, 247, 247;--ion-color-light-contrast:#14181b;--ion-color-light-contrast-rgb:20, 24, 27;--ion-color-light-shade:#d9d9d9;--ion-color-light-tint:#f8f8f8;--ion-background-color:#fff;--ion-background-color-rgb:255, 255, 255;--ion-text-color:#111a2e;--ion-text-color-rgb:20, 24, 27;--ion-font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--ion-toolbar-background:#fff;--ion-toolbar-color:#111a2e;--ion-toolbar-border-color:#e9eef7;--ion-item-background:#fff;--ion-item-border-color:#e9eef7;--ion-item-color:#111a2e;--ion-card-background:#fff;--ion-card-color:#111a2e}ion-content{--background:var(--shph-bg-page);--color:var(--shph-text-primary)}ion-toolbar{--background:var(--shph-bg-primary);--color:var(--shph-text-primary);--border-color:var(--shph-border)}ion-button{--border-radius:var(--shph-border-radius-md);font-family:var(--shph-font-family);letter-spacing:0;text-transform:none;font-weight:800}:where(ion-button:not([color]):not([fill=clear]):not([fill=outline])){--background:var(--shph-gradient-cta);--background-hover:var(--shph-gradient-cta);--background-focused:var(--shph-gradient-cta);--box-shadow:var(--shph-shadow-cta)}:where(ion-button[color=primary]:not([fill=clear]):not([fill=outline])){--background:var(--shph-gradient-cta);--background-hover:var(--shph-gradient-cta);--background-focused:var(--shph-gradient-cta);--box-shadow:var(--shph-shadow-cta)}ion-buttons ion-button:not([color]):not([fill=clear]):not([fill=outline]){--background:var(--shph-gradient-cta);--background-hover:var(--shph-gradient-cta);--background-focused:var(--shph-gradient-cta);--box-shadow:var(--shph-shadow-cta)}.shph-cta-pill{--border-radius:var(--shph-border-radius-pill)}ion-card{border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);border:1px solid var(--shph-border)}ion-input,ion-textarea,ion-searchbar{--background:#fff;--border-radius:var(--shph-border-radius-md);--border-color:var(--shph-input-border);--box-shadow:var(--shph-shadow-sm);--placeholder-color:var(--shph-text-hint);--color:var(--shph-text-primary);font-family:var(--shph-font-family);font-size:16px}ion-segment{--background:var(--shph-bg-secondary)}ion-segment-button{--color:var(--shph-text-secondary);--color-checked:var(--shph-text-primary);--indicator-color:var(--shph-primary);--min-height:auto;height:auto;min-height:auto;font-weight:600;font-family:var(--shph-font-family);text-transform:none;letter-spacing:0;min-width:0}ion-segment-button::part(indicator){min-width:0}ion-segment-button ion-label{text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}ion-item{--background:var(--shph-bg-primary);--color:var(--shph-text-primary);--border-color:var(--shph-border);font-family:var(--shph-font-family)}ion-badge{border-radius:var(--shph-border-radius-sm);font-family:var(--shph-font-family);font-weight:600}ion-modal{--border-radius:var(--shph-border-radius-lg) var(--shph-border-radius-lg) 0 0}ion-modal.sheet-modal{--safe-area-bottom:env(safe-area-inset-bottom)}ion-modal.sheet-modal ion-content{--padding-bottom:max(16px, env(safe-area-inset-bottom))}ion-modal.shph-modal-dialog{--width:92%;--max-width:520px;--height:86vh;--max-height:86vh;--border-radius:var(--shph-border-radius-lg)}ion-tab-bar{--background:var(--shph-bg-primary);--border:1px solid var(--shph-border);--color:var(--shph-text-secondary);--color-selected:var(--shph-primary)}ion-tab-button{--color:var(--shph-text-secondary);--color-selected:var(--shph-primary);font-family:var(--shph-font-family);font-size:11px;font-weight:500}ion-back-button{--color:var(--shph-primary)}ion-title{font-family:var(--shph-font-family);color:var(--shph-text-primary);font-weight:600}ion-spinner{--color:var(--shph-primary)}.shph-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);padding:16px}.shph-section-label{color:var(--shph-text-hint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:900}.shph-section-title{color:var(--shph-text-primary);margin:16px 0 10px;font-size:17px;font-weight:800}.shph-avatar{object-fit:cover;border:2px solid var(--shph-primary-light);border-radius:50%;width:40px;height:40px}.shph-avatar-placeholder{background:var(--shph-primary-light);color:var(--shph-primary);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--shph-primary:#63cbd6;--shph-primary-text:#63cbd6;--shph-primary-dark:#49b8c4;--shph-primary-light:#1a3d3c;--shph-success:#34d399;--shph-warning:#fbbf24;--shph-error:#f87171;--shph-warning-bg:#3a2f12;--shph-warning-text:#fcd34d;--shph-error-bg:#3d1f1f;--shph-error-text:#fca5a5;--shph-success-bg:#12332a;--shph-success-text:#6ee7b7;--shph-bg-primary:#1e1e2e;--shph-bg-secondary:#2a2a3c;--shph-bg-page:#12121a;--shph-text-primary:#f0f0f5;--shph-text-secondary:#b8b8c8;--shph-text-hint:#a0a0b0;--shph-border:#3a3a4e;--shph-input-border:#5c5c78;--shph-shadow-xs:0 1px 2px rgba(0,0,0,.22);--shph-shadow-sm:0 1px 6px rgba(0,0,0,.25);--shph-shadow-md:0 2px 12px rgba(0,0,0,.3);--shph-shadow-lg:0 4px 24px rgba(0,0,0,.35);--shph-shadow-section:0 1px 3px rgba(0,0,0,.25), 0 6px 16px -6px rgba(0,0,0,.24);--shph-shadow-card:0 2px 14px rgba(0,0,0,.28);--shph-shadow-card-lg:0 4px 22px rgba(0,0,0,.34);--shph-text-heading:#f5f7fa;--shph-scrim:rgba(0,0,0,.7);--shph-primary-deep:#0d6d78;--shph-gradient-cta:linear-gradient(180deg, #63cbd6, #49b8c4);--shph-gradient-hero:linear-gradient(125deg, #0d6d78, #63cbd6);--shph-shadow-cta:0 8px 18px -5px rgba(99,203,214,.45);--shph-gradient-urgent:linear-gradient(100deg, #b91c1c, #9f1239);--shph-urgent-ink:#fff;--shph-gradient-warm:linear-gradient(135deg, #0d6d78, #49b8c4);--shph-gradient-aurora:linear-gradient(180deg, #1a3d3c 0%, #1a2e2e 60%, #1e1e2e 100%);--shph-aurora-top:#1a3d3c;--shph-warm-rose:#63cbd6;--shph-warm-amber:#49b8c4;--shph-warm-rose-light:#1a3d3c;--shph-warm-amber-light:#1a2e2e;--shph-shadow-warm:0 4px 14px -4px rgba(99,203,214,.3);--ion-background-color:#1e1e2e;--ion-background-color-rgb:30, 30, 46;--ion-text-color:#f0f0f5;--ion-text-color-rgb:240, 240, 245;--ion-toolbar-background:#1e1e2e;--ion-toolbar-color:#f0f0f5;--ion-toolbar-border-color:#3a3a4e;--ion-item-background:#1e1e2e;--ion-item-border-color:#3a3a4e;--ion-item-color:#f0f0f5;--ion-card-background:#2a2a3c;--ion-card-color:#f0f0f5;--ion-color-light:#2a2a3c;--ion-color-light-rgb:42, 42, 60;--ion-color-light-contrast:#f0f0f5;--ion-color-light-contrast-rgb:240, 240, 245;--ion-color-light-shade:#252537;--ion-color-light-tint:#3f3f52;--ion-color-medium:#a0a0b0;--ion-color-medium-rgb:160, 160, 176;--ion-color-medium-contrast:#12121a;--ion-color-medium-contrast-rgb:18, 18, 26;--ion-color-medium-shade:#8d8d9b;--ion-color-medium-tint:#aaabba;--ion-tab-bar-background:#1e1e2e;--ion-tab-bar-border-color:#3a3a4e;--ion-color-dark:#d3d3d8;--ion-color-dark-rgb:211, 211, 216;--ion-color-dark-contrast:#12121a;--ion-color-dark-contrast-rgb:18, 18, 26;--ion-color-dark-shade:#bababe;--ion-color-dark-tint:#d7d7dc}:root:not([data-theme=light]) ion-searchbar{--background:#3a3a4e;--color:#f0f0f5;--placeholder-color:#6e6e80;--icon-color:#a0a0b0;--clear-button-color:#a0a0b0}}body.dark,:root.ion-palette-dark,:root[data-theme=dark]{--shph-primary:#63cbd6;--shph-primary-text:#63cbd6;--shph-primary-dark:#49b8c4;--shph-primary-light:#1a3d3c;--shph-success:#34d399;--shph-warning:#fbbf24;--shph-error:#f87171;--shph-warning-bg:#3a2f12;--shph-warning-text:#fcd34d;--shph-error-bg:#3d1f1f;--shph-error-text:#fca5a5;--shph-success-bg:#12332a;--shph-success-text:#6ee7b7;--shph-bg-primary:#1e1e2e;--shph-bg-secondary:#2a2a3c;--shph-bg-page:#12121a;--shph-text-primary:#f0f0f5;--shph-text-secondary:#b8b8c8;--shph-text-hint:#a0a0b0;--shph-border:#3a3a4e;--shph-input-border:#5c5c78;--shph-shadow-xs:0 1px 2px rgba(0,0,0,.22);--shph-shadow-sm:0 1px 6px rgba(0,0,0,.25);--shph-shadow-md:0 2px 12px rgba(0,0,0,.3);--shph-shadow-lg:0 4px 24px rgba(0,0,0,.35);--shph-shadow-section:0 1px 3px rgba(0,0,0,.25), 0 6px 16px -6px rgba(0,0,0,.24);--shph-shadow-card:0 2px 14px rgba(0,0,0,.28);--shph-shadow-card-lg:0 4px 22px rgba(0,0,0,.34);--shph-text-heading:#f5f7fa;--shph-primary-deep:#0d6d78;--shph-gradient-cta:linear-gradient(180deg, #63cbd6, #49b8c4);--shph-gradient-hero:linear-gradient(125deg, #0d6d78, #63cbd6);--shph-shadow-cta:0 8px 18px -5px rgba(99,203,214,.45);--shph-gradient-urgent:linear-gradient(100deg, #b91c1c, #9f1239);--shph-urgent-ink:#fff;--shph-scrim:rgba(0,0,0,.7);--shph-gradient-warm:linear-gradient(135deg, #0d6d78, #49b8c4);--shph-gradient-aurora:linear-gradient(180deg, #1a3d3c 0%, #1a2e2e 60%, #1e1e2e 100%);--shph-aurora-top:#1a3d3c;--shph-warm-rose:#63cbd6;--shph-warm-amber:#49b8c4;--shph-warm-rose-light:#1a3d3c;--shph-warm-amber-light:#1a2e2e;--shph-shadow-warm:0 4px 14px -4px rgba(99,203,214,.3);--ion-background-color:#1e1e2e;--ion-background-color-rgb:30, 30, 46;--ion-text-color:#f0f0f5;--ion-text-color-rgb:240, 240, 245;--ion-toolbar-background:#1e1e2e;--ion-toolbar-color:#f0f0f5;--ion-toolbar-border-color:#3a3a4e;--ion-item-background:#1e1e2e;--ion-item-border-color:#3a3a4e;--ion-item-color:#f0f0f5;--ion-card-background:#2a2a3c;--ion-card-color:#f0f0f5;--ion-color-light:#2a2a3c;--ion-color-light-rgb:42, 42, 60;--ion-color-light-contrast:#f0f0f5;--ion-color-light-contrast-rgb:240, 240, 245;--ion-color-light-shade:#252537;--ion-color-light-tint:#3f3f52;--ion-color-medium:#a0a0b0;--ion-color-medium-rgb:160, 160, 176;--ion-color-medium-contrast:#12121a;--ion-color-medium-contrast-rgb:18, 18, 26;--ion-color-medium-shade:#8d8d9b;--ion-color-medium-tint:#aaabba;--ion-tab-bar-background:#1e1e2e;--ion-tab-bar-border-color:#3a3a4e;--ion-color-dark:#d3d3d8;--ion-color-dark-rgb:211, 211, 216;--ion-color-dark-contrast:#12121a;--ion-color-dark-contrast-rgb:18, 18, 26;--ion-color-dark-shade:#bababe;--ion-color-dark-tint:#d7d7dc}body.dark ion-input,body.dark ion-textarea,body.dark ion-searchbar,:root.ion-palette-dark ion-input,:root.ion-palette-dark ion-textarea,:root.ion-palette-dark ion-searchbar,:root[data-theme=dark] ion-input,:root[data-theme=dark] ion-textarea,:root[data-theme=dark] ion-searchbar{--background:#2a2a3c;--color:#f0f0f5;--placeholder-color:#6e6e80}body.dark ion-searchbar,:root.ion-palette-dark ion-searchbar,:root[data-theme=dark] ion-searchbar{--background:#3a3a4e;--color:#f0f0f5;--placeholder-color:#6e6e80;--icon-color:#a0a0b0;--clear-button-color:#a0a0b0}body.dark ion-list-header,:root.ion-palette-dark ion-list-header,:root[data-theme=dark] ion-list-header{--color:#f0f0f5;color:#f0f0f5}body.dark ion-list-header ion-label,:root.ion-palette-dark ion-list-header ion-label,:root[data-theme=dark] ion-list-header ion-label{color:#f0f0f5}body.dark h3,body.dark h4,:root.ion-palette-dark h3,:root.ion-palette-dark h4,:root[data-theme=dark] h3,:root[data-theme=dark] h4{color:var(--ion-text-color)}body.dark ion-modal,:root.ion-palette-dark ion-modal,:root[data-theme=dark] ion-modal,body.dark ion-modal ion-content,:root.ion-palette-dark ion-modal ion-content,:root[data-theme=dark] ion-modal ion-content{--background:#1e1e2e}body{-webkit-tap-highlight-color:transparent;text-size-adjust:100%}img,ion-icon,ion-button,ion-card,ion-item,ion-chip,ion-badge,ion-thumbnail,.avatar,.cat-tile,.card--clickable{-webkit-touch-callout:none}ion-content{overscroll-behavior-y:none;scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom))}ion-button,ion-item,ion-chip,ion-segment-button,ion-card,.card--clickable,.cat-tile,.see-all-link{touch-action:manipulation}ion-header{padding-top:env(safe-area-inset-top)}ion-tab-bar,ion-footer{padding-bottom:env(safe-area-inset-bottom)}ion-content{--padding-start:max(16px, env(safe-area-inset-left));--padding-end:max(16px, env(safe-area-inset-right))}ion-datetime,ion-picker{--padding-bottom:env(safe-area-inset-bottom)}@media (max-width:359px){ion-content{--padding-start:max(12px, env(safe-area-inset-left));--padding-end:max(12px, env(safe-area-inset-right))}}@media (max-height:500px) and (orientation:landscape){ion-header{padding-top:0}}.horizontal-scroll,.pros-scroll,.top-scroll,.category-scroll{padding-left:max(16px, env(safe-area-inset-left))!important;padding-right:max(16px, env(safe-area-inset-right))!important}@media (max-width:359px){.horizontal-scroll,.pros-scroll,.top-scroll,.category-scroll{padding-left:max(12px, env(safe-area-inset-left))!important;padding-right:max(12px, env(safe-area-inset-right))!important}}ion-button{min-width:44px;min-height:44px}ion-button.button-small{min-width:44px!important;min-height:44px!important}body.provider-mode{--shph-primary:#f59e0b;--shph-primary-dark:#d97706;--shph-primary-text:#b45309;--shph-primary-light:#fef3c7;--ion-color-primary:#f59e0b;--ion-color-primary-rgb:245, 158, 11;--ion-color-primary-contrast:#0f172a;--ion-color-primary-contrast-rgb:15, 23, 42;--ion-color-primary-shade:#d97706;--ion-color-primary-tint:#fbbf24;--shph-primary-deep:#d97706;--shph-gradient-cta:linear-gradient(180deg, #d97706, #b45309);--shph-gradient-hero:linear-gradient(125deg, #d97706, #b45309);--shph-shadow-cta:0 8px 18px -5px rgba(245,158,11,.45)}body.provider-mode.dark{--shph-primary:#fbbf24;--shph-primary-dark:#f59e0b;--shph-primary-text:#fbbf24;--shph-primary-light:#451a03;--ion-color-primary:#fbbf24;--ion-color-primary-rgb:251, 191, 36;--ion-color-primary-contrast:#1a1a1a;--ion-color-primary-contrast-rgb:26, 26, 26;--ion-color-primary-shade:#f59e0b;--ion-color-primary-tint:#fcd34d;--shph-primary-deep:#d97706;--shph-gradient-cta:linear-gradient(180deg, #d97706, #b45309);--shph-gradient-hero:linear-gradient(125deg, #d97706, #b45309);--shph-shadow-cta:0 8px 18px -5px rgba(245,158,11,.45)}input:-webkit-autofill{transition:background-color 9999s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--ion-background-color,#fff) inset!important;-webkit-text-fill-color:var(--ion-text-color,#000)!important}input:-webkit-autofill:hover{transition:background-color 9999s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--ion-background-color,#fff) inset!important;-webkit-text-fill-color:var(--ion-text-color,#000)!important}input:-webkit-autofill:focus{transition:background-color 9999s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--ion-background-color,#fff) inset!important;-webkit-text-fill-color:var(--ion-text-color,#000)!important}input:-webkit-autofill:active{transition:background-color 9999s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--ion-background-color,#fff) inset!important;-webkit-text-fill-color:var(--ion-text-color,#000)!important}.m-0{margin:0}.m-1{margin:4px}.m-2{margin:8px}.m-3{margin:12px}.m-4{margin:16px}.m-5{margin:24px}.m-6{margin:32px}.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:24px}.mt-6{margin-top:32px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:24px}.mb-6{margin-bottom:32px}.ml-0{margin-left:0}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-3{margin-left:12px}.ml-4{margin-left:16px}.ml-5{margin-left:24px}.ml-6{margin-left:32px}.mr-0{margin-right:0}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}.mr-4{margin-right:16px}.mr-5{margin-right:24px}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:4px;margin-right:4px}.mx-2{margin-left:8px;margin-right:8px}.mx-3{margin-left:12px;margin-right:12px}.mx-4{margin-left:16px;margin-right:16px}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:4px;margin-bottom:4px}.my-2{margin-top:8px;margin-bottom:8px}.my-3{margin-top:12px;margin-bottom:12px}.my-4{margin-top:16px;margin-bottom:16px}.my-5{margin-top:24px;margin-bottom:24px}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:24px}.p-6{padding:32px}.pt-0{padding-top:0}.pt-1{padding-top:4px}.pt-2{padding-top:8px}.pt-3{padding-top:12px}.pt-4{padding-top:16px}.pt-5{padding-top:24px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:12px}.pb-4{padding-bottom:16px}.pb-5{padding-bottom:24px}.pl-0{padding-left:0}.pl-1{padding-left:4px}.pl-2{padding-left:8px}.pl-3{padding-left:12px}.pl-4{padding-left:16px}.pl-5{padding-left:24px}.pr-0{padding-right:0}.pr-1{padding-right:4px}.pr-2{padding-right:8px}.pr-3{padding-right:12px}.pr-4{padding-right:16px}.pr-5{padding-right:24px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:4px;padding-right:4px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:24px;padding-right:24px}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.py-4{padding-top:16px;padding-bottom:16px}.py-5{padding-top:24px;padding-bottom:24px}.text-xs{font-size:11px}.text-sm{font-size:13px}.text-base{font-size:14px}.text-md{font-size:15px}.text-lg{font-size:17px}.text-xl{font-size:20px}.text-2xl{font-size:24px}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.text-primary{color:var(--shph-text-primary)}.text-secondary{color:var(--shph-text-secondary)}.text-hint{color:var(--shph-text-hint)}.text-accent{color:var(--shph-primary-text)}.text-success{color:var(--ion-color-success)}.text-warning{color:var(--ion-color-warning)}.text-white{color:#fff}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-nowrap{white-space:nowrap}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-grid{display:grid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-stretch{align-items:stretch}.flex-grow-1{flex-grow:1}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:24px}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.inset-0{top:0;bottom:0;left:0;right:0}.w-50{width:50%}.h-full{height:100%}.min-w-0{min-width:0}.bg-primary{background:var(--shph-bg-primary)}.bg-secondary{background:var(--shph-bg-secondary)}.bg-page{background:var(--shph-bg-page)}.bg-card{background:var(--ion-card-background)}.bg-accent{background:var(--ion-color-primary)}.bg-transparent{background:0 0}.border{border:1px solid var(--shph-border)}.border-top{border-top:1px solid var(--shph-border)}.border-bottom{border-bottom:1px solid var(--shph-border)}.rounded-sm{border-radius:var(--shph-border-radius-sm)}.rounded-md{border-radius:var(--shph-border-radius-md)}.rounded-lg{border-radius:var(--shph-border-radius-lg)}.rounded-full{border-radius:9999px}.shadow-sm{box-shadow:var(--shph-shadow-sm)}.shadow-md{box-shadow:var(--shph-shadow-md)}.shadow-lg{box-shadow:var(--shph-shadow-lg)}.shadow-card{box-shadow:var(--shph-shadow-card)}.shadow-none{box-shadow:none}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-snap-x{scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.scroll-snap-x::-webkit-scrollbar{display:none}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}@media (min-width:480px){.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:grid-cols-5{grid-template-columns:repeat(5,1fr)}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.xl\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}}.shph-container-narrow,.shph-container-readable,.shph-container-wide,.shph-container-dashboard{width:100%;margin-left:auto;margin-right:auto}.shph-container-narrow{max-width:var(--shph-container-narrow)}.shph-container-readable{max-width:var(--shph-container-readable)}.shph-container-wide{max-width:var(--shph-container-wide)}.shph-container-dashboard{max-width:var(--shph-container-dashboard)}.shph-auto-grid{grid-template-columns:repeat(auto-fill, minmax(var(--shph-grid-min,260px), 1fr));gap:16px;display:grid}.shph-auto-grid--sm{--shph-grid-min:160px}.sk-w-full{width:100%}.sk-h-48{height:48px}.sk-h-56{height:56px}.sk-h-80{height:80px}.sk-h-100{height:100px}.sk-h-120{height:120px}.sk-h-140{height:140px}.sk-h-160{height:160px}.sk-mb-8{margin-bottom:8px}.sk-mb-12{margin-bottom:12px}.sk-avatar-sm{border-radius:12px;width:48px;height:48px;margin-bottom:8px}.sk-avatar-lg{border-radius:50%;width:80px;height:80px;margin:0 auto 12px}.sk-line-w60{width:60%;height:12px}.sk-line-w70{width:70%;height:14px;margin:0 auto 6px}.sk-line-w50{width:50%;height:12px;margin:0 auto}.sk-line-w40{width:40%;height:14px}.d-flex{display:flex}.flex-1{flex:1}.flex-column{flex-direction:column}.align-center{align-items:center}.justify-center{justify-content:center}.gap-8{gap:8px}.pointer-events-none{pointer-events:none}.w-full{width:100%}.h-24{height:24px}.h-48{height:48px}.h-auto{height:auto}.mt-16{margin-top:16px}.mx-auto{margin-left:auto;margin-right:auto}.vertical-align-middle{vertical-align:middle}.mr-6{margin-right:6px}.ml-8{margin-left:8px}.w-14{width:14px}.h-14{height:14px}.w-60{width:60px}.h-40{height:40px}.text-48{font-size:48px}.text-24{font-size:24px}.text-danger{color:var(--ion-color-danger)}.flex-shrink-0{flex-shrink:0}.section-header{justify-content:space-between;align-items:baseline;display:flex}.section-title{color:var(--shph-text-primary);margin:12px 0 8px;font-size:17px;font-weight:800}.see-all-link{color:var(--shph-primary-text);font-size:13px;font-weight:600;text-decoration:none}.card{background:var(--ion-card-background,var(--shph-bg-primary));border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card)}.card--clickable{cursor:pointer;transition:transform .1s,box-shadow .15s}.card--clickable:active{opacity:.9;transform:scale(.96)}.cat-tile{background:var(--ion-card-background,#fff);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:130px;padding:20px 12px;transition:transform .12s,box-shadow .12s;display:flex}.cat-tile:active{transform:scale(.96);box-shadow:0 2px 16px rgba(54,142,255,.15)}.cat-tile__icon{font-size:36px}.cat-tile__name{color:var(--shph-text-primary);text-align:center;word-break:break-word;overflow-wrap:break-word;hyphens:auto;width:100%;font-size:13px;font-weight:600;line-height:1.3}.cat-pill{background:var(--shph-bg-primary);border:1.5px solid var(--shph-border);cursor:pointer;scroll-snap-align:start;border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:6px;min-width:72px;max-width:90px;padding:10px 8px;transition:transform .1s,border-color .15s,box-shadow .15s;display:flex}.cat-pill:active{transform:scale(.95)}.cat-pill--active{border-color:var(--ion-color-primary,#63cbd6);background:rgba(54,142,255,.08);box-shadow:0 4px 16px rgba(54,142,255,.18)}.cat-pill__img{object-fit:contain;width:28px;height:28px}.cat-pill__icon{color:var(--ion-color-primary,#63cbd6);font-size:26px}.cat-pill__emoji{font-size:26px;line-height:1}.cat-pill__name{color:var(--shph-text-primary);text-align:center;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:11px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.cat-pill--active .cat-pill__name{color:var(--ion-color-primary,#63cbd6)}.cat-scroll{scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory;gap:10px;margin-bottom:16px;padding:8px 0 12px;display:flex;overflow-x:auto}.cat-scroll::-webkit-scrollbar{display:none}@media (min-width:1024px){.cat-scroll{scroll-snap-type:none;flex-wrap:wrap;overflow-x:visible}}.grid-2{grid-template-columns:repeat(2,1fr);gap:12px;padding:16px;display:grid}.grid-2--dense{padding:8px}.thread-row{--background:var(--ion-card-background,var(--shph-bg-primary));--padding-start:0;--inner-padding-end:0;border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);margin-bottom:8px;padding:12px 14px}.thread-row__avatar{object-fit:cover;border:2px solid var(--shph-primary-light,#e6f0ff);border-radius:50%;width:52px;height:52px}.thread-row__avatar--placeholder{background:var(--shph-primary-light,#e6f0ff);color:var(--shph-primary,#63cbd6);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.thread-row__name{color:var(--shph-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;font-weight:700;overflow:hidden}.thread-row__time{color:var(--shph-text-secondary);flex-shrink:0;font-size:11px}.thread-row__snippet{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:13px;overflow:hidden}.thread-row__snippet--unread{color:var(--shph-text-primary);font-weight:600}.thread-row__booking{color:var(--shph-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:11px;font-weight:500;overflow:hidden}.empty-state{flex-direction:column;align-items:center;padding:60px 24px 40px;display:flex}.empty-state__icon{color:var(--shph-border,#e0e3e7);margin-bottom:16px;font-size:56px}.empty-state__title{color:var(--shph-text-primary);text-align:center;margin:0 0 8px;font-size:17px;font-weight:600}.empty-state__sub{color:var(--shph-text-secondary);text-align:center;margin:0;font-size:14px;line-height:1.5}.settings-section{margin-bottom:24px}.settings-section__label{text-transform:uppercase;letter-spacing:.5px;color:var(--shph-text-secondary);margin:0 0 8px 16px;font-size:13px;font-weight:600}.settings-field{border-radius:var(--shph-border-radius-md);background:var(--ion-item-background,var(--shph-bg-primary));flex-direction:column;padding:12px 16px;display:flex}.settings-field__label{color:var(--shph-text-hint);margin-bottom:4px;font-size:13px}.settings-field__value{color:var(--shph-text-primary);font-size:15px}.settings-field--readonly{border-bottom:1px solid var(--shph-border);border-radius:0}.danger-actions{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:52px;height:52px}.avatar--sm{width:40px;height:40px}.avatar--lg{width:64px;height:64px}.avatar--placeholder{background:var(--shph-primary-light,#e6f0ff);color:var(--shph-primary,#63cbd6);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.unread-dot{background:var(--shph-primary,#63cbd6);border:2px solid var(--ion-card-background,var(--shph-bg-primary,#fff));border-radius:50%;width:12px;height:12px;position:absolute;top:0;right:0}.searchbar-clean{--border-radius:14px;--box-shadow:none;--background:var(--shph-bg-primary);--placeholder-color:var(--shph-text-hint);--color:var(--shph-text-primary);padding:0!important}.hero-section{background:var(--shph-primary-deep);background:var(--shph-gradient-hero);border-radius:var(--shph-border-radius-hero);color:#fff;padding:20px;position:relative;overflow:hidden}.hero-section__title{color:#fff;margin:0 0 4px;font-size:20px;font-weight:600}.hero-section__sub{color:rgba(255,255,255,.85);margin:0;font-size:13px}.h-scroll{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:none;scroll-snap-type:x proximity;gap:12px;padding:8px 0;display:flex;overflow-x:auto}.h-scroll::-webkit-scrollbar{display:none}.bottom-cta{z-index:100;background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.group-create-modal-content{--padding-bottom:160px}.badge-row{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.badge-row--center{justify-content:center}.review-card{background:var(--ion-card-background,var(--shph-bg-primary));border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);margin-bottom:12px;padding:16px}.review-card__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.review-card__avatar{object-fit:cover;border-radius:50%;width:40px;height:40px;margin-right:12px}.review-card__name{color:var(--shph-text-primary);font-size:15px;font-weight:600}.review-card__date{color:var(--shph-text-secondary);font-size:12px}.review-card__text{color:var(--shph-text-secondary);margin:0;font-size:14px;line-height:1.5}.shph-flush-toolbar{background:0 0}.shph-flush-toolbar ion-toolbar{--background:transparent;--border-width:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.share-card{background:var(--shph-primary-deep);border-radius:var(--shph-border-radius-lg,16px);align-items:center;gap:12px;margin:0 16px;padding:16px;display:flex;overflow:hidden}.share-card__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.share-card__title{color:var(--shph-text-on-dark);margin:0;font-size:15px;font-weight:800;line-height:1.3}.share-card__body{color:var(--shph-text-on-dark-muted);margin:0;font-size:12px;line-height:1.4}.share-card__cta{--color:var(--shph-text-on-dark);margin-top:4px;margin-left:0;margin-right:0;font-size:13px;font-weight:700}.share-card__graphic{color:var(--shph-text-on-dark-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:28px;display:flex}.share-card__graphic ion-icon{font-size:32px}.promo-card{background:var(--shph-primary);border-radius:var(--shph-border-radius-lg,16px);align-items:center;gap:12px;margin:0 16px;padding:16px;display:flex;overflow:hidden}.promo-card__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.promo-card__eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--shph-on-primary);opacity:.85;font-size:11px;font-weight:800}.promo-card__title{color:var(--shph-on-primary);margin:0;font-size:16px;font-weight:800;line-height:1.3}.promo-card__body{color:var(--shph-on-primary);opacity:.9;margin:0;font-size:13px;line-height:1.4}.promo-card__cta{--color:var(--shph-on-primary);margin-top:4px;margin-left:0;margin-right:0;font-size:13px;font-weight:700;text-decoration:underline}.promo-card__graphic{flex-shrink:0;justify-content:center;align-items:center;font-size:32px;display:flex}.rating-inline{color:var(--shph-text-primary);white-space:nowrap;align-items:center;gap:2px;font-weight:700;line-height:1.3;display:inline-flex}.rating-inline__star{color:var(--shph-star);flex-shrink:0;font-size:14px}.rating-inline--sm .rating-inline__star,.rating-inline--sm{font-size:12px}.rating-inline__value{font-variant-numeric:tabular-nums}.rating-inline__count{color:var(--shph-text-secondary);font-size:.85em;font-weight:500}.cat-tile.category-tile{border:1px solid var(--shph-border);background:color-mix(in srgb, var(--shph-primary-light) 26%, var(--shph-bg-primary));width:100%;min-height:88px;box-shadow:var(--shph-shadow-sm);color:var(--shph-text-primary);cursor:pointer;text-align:left;transition:transform var(--shph-dur-fast) var(--shph-ease), border-color var(--shph-dur-fast) var(--shph-ease), box-shadow var(--shph-dur-fast) var(--shph-ease);border-radius:16px;flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;padding:14px;display:flex}.cat-tile.category-tile.has-gradient{color:var(--shph-text-on-dark);border-color:transparent}.cat-tile.category-tile:active{transform:scale(.97)}.cat-tile.category-tile .cat-tile__content{flex:1;min-width:0}.cat-tile.category-tile .cat-tile__name{-webkit-line-clamp:2;line-clamp:2;color:var(--shph-text-primary);text-align:left;text-overflow:ellipsis;overflow-wrap:break-word;-webkit-box-orient:vertical;font-size:13px;font-weight:800;line-height:1.3;display:-webkit-box;overflow:hidden}@media (max-width:400px){.cat-tile.category-tile{gap:8px;padding:12px 10px}.cat-tile.category-tile .cat-tile__icon{width:34px;height:34px;font-size:16px}.cat-tile.category-tile .cat-tile__name{font-size:12px}}@media (max-width:340px){.cat-tile.category-tile{flex-direction:column;align-items:flex-start;gap:6px;min-height:96px}}.cat-tile.category-tile.has-gradient .cat-tile__name{color:var(--shph-text-on-dark)}@media (hover:hover){.cat-tile.category-tile:hover{border-color:var(--shph-primary);box-shadow:var(--shph-shadow-card);transform:translateY(-1px)}}.cat-tile.category-tile .cat-tile__icon{border:1px solid var(--shph-border);background:var(--shph-bg-primary);width:40px;height:40px;box-shadow:var(--shph-shadow-sm);color:var(--shph-text-secondary);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;display:flex;position:relative;overflow:hidden}.cat-tile.category-tile .cat-tile__icon.on-gradient{background:color-mix(in srgb, var(--shph-text-on-dark) 18%, transparent);color:var(--shph-text-on-dark);border-color:transparent}.cat-tile.category-tile .cat-tile__icon.active{background:var(--shph-gradient-cta);color:var(--shph-text-on-dark);border-color:transparent}.cat-tile.category-tile .cat-tile__icon img{object-fit:cover;width:100%;height:100%}.cat-tile.category-tile .cat-tile__subtitle{color:var(--shph-text-secondary);margin-top:2px;font-size:10px;font-weight:600;line-height:1.35}.cat-tile.category-tile.has-gradient .cat-tile__subtitle{color:var(--shph-text-on-dark-muted)}.cat-tile.category-tile .cat-tile__subtitle--price{color:var(--shph-primary);font-weight:800}.cat-tile.category-tile.has-gradient .cat-tile__subtitle--price{color:var(--shph-text-on-dark)}.cat-tile.category-tile .cat-active-dot{background:var(--ion-color-success);border:2px solid var(--shph-bg-primary);width:10px;height:10px;box-shadow:0 0 4px var(--ion-color-success);border-radius:50%;position:absolute;bottom:4px;right:4px}.cat-tile.category-tile.has-gradient .cat-active-dot{border-color:color-mix(in srgb, var(--shph-text-on-dark) 40%, transparent)}.cat-tile.category-tile.category-tile--dark{--tile-accent:var(--ion-color-primary);background:var(--shph-bg-primary);border:1px solid var(--shph-border);color:var(--shph-text-primary);box-shadow:var(--shph-shadow-sm)}.cat-tile.category-tile.category-tile--dark:hover{border-color:var(--shph-primary);box-shadow:var(--shph-shadow-card)}.cat-tile.category-tile.category-tile--dark .cat-tile__name{color:var(--shph-text-primary)}.cat-tile.category-tile.category-tile--dark .cat-tile__subtitle{color:var(--shph-text-secondary)}.cat-tile.category-tile.category-tile--dark .cat-tile__subtitle--price{color:var(--tile-accent)}.cat-tile.category-tile.category-tile--dark .cat-tile__icon,.cat-tile.category-tile.category-tile--dark .cat-tile__icon.on-dark{background:color-mix(in srgb, var(--tile-accent) 12%, var(--shph-bg-primary));border-color:color-mix(in srgb, var(--tile-accent) 28%, var(--shph-border));color:var(--tile-accent)}body.dark .cat-tile.category-tile.category-tile--dark,:root.ion-palette-dark .cat-tile.category-tile.category-tile--dark,:root[data-theme=dark] .cat-tile.category-tile.category-tile--dark{color:var(--shph-text-on-dark);box-shadow:none;background:rgba(15,23,42,.8);border-color:rgba(51,65,85,.5)}body.dark .cat-tile.category-tile.category-tile--dark .cat-tile__name,:root.ion-palette-dark .cat-tile.category-tile.category-tile--dark .cat-tile__name,:root[data-theme=dark] .cat-tile.category-tile.category-tile--dark .cat-tile__name{color:var(--shph-text-on-dark)}body.dark .cat-tile.category-tile.category-tile--dark .cat-tile__subtitle,:root.ion-palette-dark .cat-tile.category-tile.category-tile--dark .cat-tile__subtitle,:root[data-theme=dark] .cat-tile.category-tile.category-tile--dark .cat-tile__subtitle{color:var(--shph-text-on-dark-muted)}body.dark .cat-tile.category-tile.category-tile--dark .cat-tile__icon,body.dark .cat-tile.category-tile.category-tile--dark .cat-tile__icon.on-dark,:root.ion-palette-dark .cat-tile.category-tile.category-tile--dark .cat-tile__icon,:root.ion-palette-dark .cat-tile.category-tile.category-tile--dark .cat-tile__icon.on-dark,:root[data-theme=dark] .cat-tile.category-tile.category-tile--dark .cat-tile__icon,:root[data-theme=dark] .cat-tile.category-tile.category-tile--dark .cat-tile__icon.on-dark{background:color-mix(in srgb, var(--tile-accent) 22%, transparent);border-color:color-mix(in srgb, var(--tile-accent) 55%, transparent);color:#fff}.review-card .review-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.review-card .reviewer-info{flex:1;align-items:flex-start;gap:12px;display:flex}.review-card .reviewer-details{flex:1}.review-card .reviewer-name{color:var(--ion-text-color);margin:0 0 4px;font-size:14px;font-weight:600}.review-card .review-meta{align-items:center;gap:8px;display:flex}.review-card .review-date{color:var(--ion-color-medium);font-size:12px}.review-card .review-content{margin-bottom:12px}.review-card .review-text{color:var(--ion-text-color);margin:0 0 12px;font-size:14px;line-height:1.4}.review-card .detailed-ratings{background:var(--ion-color-step-50);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:12px 0;padding:12px;display:grid}.review-card .rating-category{flex-direction:column;gap:4px;display:flex}.review-card .category-label{color:var(--ion-color-medium);font-size:12px;font-weight:500}.review-card .review-photos{margin:12px 0}.review-card .photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.review-card .review-photo{object-fit:cover;cursor:pointer;border-radius:8px;width:100%;height:80px;transition:transform .2s}.review-card .review-photo:hover{transform:scale(1.02)}.review-card .photo-more{background:var(--ion-color-dark);height:80px;color:var(--ion-color-dark-contrast);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-weight:600;display:flex}.review-card .provider-response{background:var(--ion-color-primary-tint);border-left:4px solid var(--ion-color-primary);border-radius:8px;margin:12px 0;padding:12px}.review-card .response-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.review-card .response-label{color:var(--shph-primary-text);text-transform:uppercase;font-size:12px;font-weight:600}.review-card .response-date{color:var(--ion-color-medium);margin-left:auto;font-size:11px}.review-card .response-text{color:var(--ion-text-color);margin:0;font-size:14px}.review-card .review-footer{border-top:1px solid var(--ion-color-light-shade);padding-top:12px}.review-card .helpful-actions{align-items:center;gap:12px;display:flex}.review-card .photo-viewer{flex-direction:column;justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.review-card .viewer-photo{object-fit:contain;border-radius:8px;max-width:100%;max-height:70vh}.review-card .photo-navigation{align-items:center;gap:16px;margin-top:16px;display:flex}.review-card .photo-counter{color:var(--ion-color-medium);font-size:14px}.review-card .response-hint{color:var(--ion-color-medium);margin-bottom:16px;font-size:14px}@media (prefers-color-scheme:dark){.review-card{background:var(--ion-color-step-100);border-color:var(--ion-color-step-200)}.review-card .detailed-ratings{background:var(--ion-color-step-150)}.review-card .provider-response{background:var(--ion-color-primary-shade)}}.screen-header{background:var(--shph-bg-primary);border-bottom:1px solid var(--shph-border);box-shadow:var(--shph-shadow-sm);border-radius:0 0 20px 20px;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 20px;display:flex}@media (min-width:1024px){.screen-header{border-radius:0 0 24px 24px;padding:22px 24px 24px}}.screen-header .screen-header__text{flex:auto;min-width:0}.screen-header .screen-header__title-row{align-items:center;gap:10px;min-width:0;display:flex}.screen-header .screen-header__action--inline{flex-shrink:0;align-items:center;display:flex}.screen-header .screen-header__title{color:var(--shph-text-heading);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:0;font-size:24px;font-weight:700;line-height:1.2;overflow:hidden}.screen-header .screen-header__subtitle{color:var(--shph-text-secondary);margin:4px 0 0;font-size:13px}.screen-header .screen-header__action{flex:none}.screen-header .screen-header__chip{background:var(--shph-bg-primary);width:46px;height:46px;box-shadow:var(--shph-shadow-card);border-radius:16px;justify-content:center;align-items:center;display:flex}.screen-header .screen-header__chip ion-icon{color:var(--shph-primary-text);font-size:22px}.soft-card{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);padding:16px}.soft-card .soft-card--lg{border-radius:var(--shph-radius-card-lg);box-shadow:var(--shph-shadow-card-lg)}.content-container .shph-container--padded{padding-left:16px;padding-right:16px}.content-container .shph-container--center{flex-direction:column;justify-content:center;min-height:100%;display:flex}.add-payment-modal .provider-option{--border-radius:var(--shph-border-radius-md);--min-height:56px;background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);margin-bottom:8px}.add-payment-modal .provider-option h3{font-weight:600}.add-payment-modal .provider-option p{color:var(--shph-text-secondary)}.add-payment-modal.pm-logo{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.add-payment-modal .pm-gateway-note{color:var(--shph-text-secondary);background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);align-items:flex-start;gap:8px;padding:12px;font-size:12px;display:flex}.add-payment-modal .pm-gateway-note ion-icon{color:var(--shph-primary-text);flex-shrink:0;margin-top:1px;font-size:16px}.auth-prompt-modal.auth-prompt{text-align:center;padding:32px 24px 24px}.auth-prompt-modal .prompt-icon{background:var(--shph-primary-light);width:64px;height:64px;color:var(--shph-primary-text);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;display:flex}.auth-prompt-modal .prompt-title{color:var(--shph-text-primary);margin:0 0 8px;font-size:18px;font-weight:700}.auth-prompt-modal .prompt-sub{color:var(--shph-text-secondary);margin:0 0 24px;font-size:14px;line-height:1.5}.booking-card{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card-lg);box-shadow:var(--shph-shadow-card);cursor:pointer;align-items:stretch;min-height:100px;margin-bottom:12px;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.booking-card:active{transform:scale(.98)}@media (hover:hover){.booking-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.08)}}.booking-card .card-accent{border-radius:var(--shph-radius-card-lg) 0 0 var(--shph-radius-card-lg);flex-shrink:0;justify-content:center;align-items:center;width:48px;display:flex}.booking-card .accent-icon{color:#fff;font-size:22px}.booking-card .accent-emoji{font-size:22px;line-height:1}.booking-card .card-body{flex-direction:column;flex:1;gap:6px;min-width:0;padding:14px 12px;display:flex}.booking-card .card-title{color:var(--ion-text-color);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.booking-card .card-meta{color:var(--ion-color-medium);align-items:center;gap:6px;font-size:13px;display:flex}.booking-card .card-meta.person{gap:6px}.booking-card .meta-icon{color:var(--ion-color-medium);flex-shrink:0;font-size:15px}.booking-card .card-status-row{align-items:center;gap:8px;margin-top:2px;display:flex}.booking-card .urgent-badge{text-transform:uppercase;letter-spacing:.5px;color:#dc2626;background:#fee2e2;border-radius:20px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.booking-card .card-right{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;gap:8px;padding:14px 14px 14px 4px;display:flex}.booking-card .card-price{color:var(--shph-primary-text);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-size:15px;font-weight:700;display:inline-block;overflow:hidden}.booking-card .card-chevron{color:var(--ion-color-light-shade);font-size:18px}body.dark .urgent-badge{color:#fca5a5;background:#450a0a}.empty-state .empty-state__icon{margin-bottom:16px;font-size:56px}.empty-state .empty-state__emoji{margin-bottom:16px;font-size:56px;line-height:1}.empty-state .empty-state__title{color:var(--shph-text-primary);margin:0 0 8px;font-size:17px;font-weight:600}.empty-state .empty-state__subtitle{color:var(--shph-text-secondary);margin:0 0 20px;font-size:14px;line-height:1.5}.empty-state .empty-state__cta{width:100%;max-width:240px}.explore-map-view.explore-map{z-index:0;border-radius:12px;width:100%;height:100%;min-height:400px;overflow:hidden}.explore-map-view.explore-map .leaflet-control-attribution{background:rgba(255,255,255,.55);padding:1px 4px;font-size:9px;line-height:1.3}.icon-chip{border-radius:14px;flex:none;justify-content:center;align-items:center;display:flex}.icon-chip ion-icon{font-size:20px}.in-app-notification{z-index:10000;background:var(--shph-bg-primary);cursor:pointer;touch-action:manipulation;padding:16px;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 20px rgba(0,0,0,.15)}.in-app-notification .notification-content{align-items:center;gap:12px;display:flex}.in-app-notification .notification-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.in-app-notification .notification-icon.type-booking{background:#e3f2fd}.in-app-notification .notification-icon.type-message{background:#f3e5f5}.in-app-notification .notification-icon.type-promo{background:#fff3e0}.in-app-notification .notification-icon.type-system{background:var(--shph-bg-secondary)}.in-app-notification .notification-text{flex:1;min-width:0}.in-app-notification .notification-title{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:15px;font-weight:700;overflow:hidden}.in-app-notification .notification-body{color:var(--ion-color-medium);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.in-app-notification .notification-close{cursor:pointer;width:32px;height:32px;color:var(--ion-color-medium);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.in-app-notification .notification-close:hover{background:var(--shph-bg-secondary);color:var(--ion-text-color)}.in-app-notification .notification-close ion-icon{font-size:20px}.in-app-notification .notification-progress{background:var(--shph-bg-secondary);height:3px;position:absolute;bottom:0;left:0;right:0}.in-app-notification .progress-bar{background:linear-gradient(90deg, var(--shph-primary-dark), var(--shph-primary));height:100%;animation:linear forwards progress}@keyframes progress{0%{width:100%}to{width:0%}}.in-app-notification .slide-down-enter-active,.in-app-notification .slide-down-leave-active{transition:transform .3s,opacity .3s}.in-app-notification .slide-down-enter-from,.in-app-notification .slide-down-leave-to{opacity:0;transform:translateY(-100%)}@supports (padding-top:env(safe-area-inset-top)){.in-app-notification{padding-top:calc(16px + env(safe-area-inset-top))}}.incoming-job-modal .job-modal-card{border-radius:24px 24px 0 0;margin:0}.incoming-job-modal.job-modal-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.incoming-job-modal .job-flash-icon{background:var(--shph-gradient-warm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.incoming-job-modal .job-flash-icon ion-icon{color:#fff;font-size:24px}.incoming-job-modal.job-modal-header h3{color:var(--shph-text-heading,#0f172a);margin:0;font-size:1.1rem;font-weight:700}.incoming-job-modal .job-category{color:var(--shph-warm-rose,#0d6d78);text-transform:uppercase;letter-spacing:.05em;margin:2px 0 0;font-size:.75rem;font-weight:700}.incoming-job-modal .dismiss-btn{margin-left:auto}.incoming-job-modal .job-description{color:var(--ion-color-dark);margin:8px 0 12px;font-size:.9rem}.incoming-job-modal .job-photo{border-radius:12px;margin:8px 0 12px;overflow:hidden}.incoming-job-modal .job-photo img{width:100%;display:block}.incoming-job-modal .job-meta-row{align-items:center;gap:8px;margin:8px 0;font-size:.9rem;display:flex}.incoming-job-modal .job-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.invoice-line-items.invoice-lines{flex-direction:column;display:flex}.invoice-line-items .invoice-line{border-bottom:1px solid var(--shph-border);color:var(--shph-text-primary);justify-content:space-between;padding:10px 0;font-size:14px;display:flex}.invoice-line-items .invoice-line:last-child{border-bottom:none}.invoice-line-items .invoice-line--total{color:var(--shph-text-heading);border-top:1px solid var(--shph-border);border-bottom:none;margin-top:4px;padding-top:12px;font-weight:700}.invoice-line-items .invoice-line__amount{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.onboarding-overlay{background:var(--shph-scrim);z-index:9999;padding:0 0 env(safe-area-inset-bottom,0);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.onboarding-overlay .onboarding-card{background:var(--ion-background-color,#fff);border-radius:24px 24px 0 0;width:100%;max-width:480px;padding:24px 20px 32px;box-shadow:0 -4px 32px rgba(0,0,0,.18)}.onboarding-overlay .card-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.onboarding-overlay .step-dots{gap:6px;display:flex}.onboarding-overlay .dot{background:var(--ion-color-medium-tint,var(--shph-border));border-radius:50%;width:8px;height:8px;transition:background .25s,width .25s}.onboarding-overlay .dot.active{background:var(--ion-color-primary,var(--shph-primary));border-radius:4px;width:20px}.onboarding-overlay .close-btn{--color:var(--ion-color-medium);font-size:14px}.onboarding-overlay .step-content{text-align:center;padding:12px 0 28px}.onboarding-overlay .step-icon{margin-bottom:16px;font-size:64px;line-height:1}.onboarding-overlay .step-title{color:var(--ion-text-color);margin:0 0 12px;font-size:22px;font-weight:700}.onboarding-overlay .step-desc{color:var(--ion-color-medium);margin:0;font-size:15px;line-height:1.55}.onboarding-overlay .card-actions{align-items:center;gap:12px;display:flex}.onboarding-overlay .spacer,.onboarding-overlay .next-btn{flex:1}.onboarding-overlay .overlay-fade-enter-active,.onboarding-overlay .overlay-fade-leave-active{transition:opacity .25s}.onboarding-overlay .overlay-fade-enter-from,.onboarding-overlay .overlay-fade-leave-to{opacity:0}.onboarding-overlay .slide-left-enter-active,.onboarding-overlay .slide-left-leave-active,.onboarding-overlay .slide-right-enter-active,.onboarding-overlay .slide-right-leave-active{transition:all .22s}.onboarding-overlay .slide-left-enter-from{opacity:0;transform:translate(30px)}.onboarding-overlay .slide-left-leave-to,.onboarding-overlay .slide-right-enter-from{opacity:0;transform:translate(-30px)}.onboarding-overlay .slide-right-leave-to{opacity:0;transform:translate(30px)}.popover-menu{display:inline-block;position:relative}.popover-menu .popover-trigger{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.popover-menu .popover-panel{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-lg);z-index:1000;min-width:180px;padding:6px}.popover-menu .popover-panel[popover]{margin:0;top:auto;bottom:auto;left:auto;right:auto}.popover-menu .popover-panel[popover]:popover-open{display:block}@supports (anchor-name:--popover-trigger){.popover-trigger{anchor-name:--popover-trigger}.popover-menu .popover-panel[popover]{position-anchor:--popover-trigger;position-area:bottom span-right;margin:8px 0 0;top:auto;bottom:auto;left:auto;right:auto}}.popover-menu .popover-panel--fallback{position:absolute}.provider-map-view.provider-map{z-index:0;border-radius:12px;width:100%;height:260px;overflow:hidden}.pmv-icon{background:0 0;border:0;place-items:center;display:grid}.pmv-pro{background:var(--shph-primary,#63cbd6);border:2px solid #fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;box-shadow:0 2px 6px rgba(0,0,0,.35)}.pmv-live{background:var(--shph-primary,#63cbd6);opacity:.3;border-radius:50%;width:36px;height:36px;animation:2s ease-out infinite pmv-pulse;position:absolute}@keyframes pmv-pulse{0%{opacity:.45;transform:scale(.6)}to{opacity:0;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.pmv-live{animation:none}}.provider-map-view.provider-map .leaflet-control-attribution{background:rgba(255,255,255,.55);padding:1px 4px;font-size:9px;line-height:1.3}.provider-map-view .leaflet-control-zoom a{text-indent:0;justify-content:center;align-items:center;height:auto;min-height:26px;line-height:1.4;display:flex}.pwa-install-banner.pwa-banner,.notif-permission-banner.pwa-banner{z-index:9999;border:1px solid var(--shph-border);background:#fff;border-radius:16px;position:fixed;bottom:88px;left:max(12px,50% - 240px);right:max(12px,50% - 240px);box-shadow:0 4px 24px rgba(0,0,0,.18)}.pwa-install-banner.pwa-banner--ios{bottom:76px}.pwa-install-banner .pwa-banner-inner,.notif-permission-banner .pwa-banner-inner{align-items:center;gap:10px;padding:12px 14px;display:flex}.pwa-install-banner .pwa-banner-inner--ios{flex-wrap:wrap}.pwa-install-banner .pwa-banner-icon img{border-radius:10px;flex-shrink:0;width:44px;height:44px}.pwa-install-banner .pwa-banner-text,.notif-permission-banner .pwa-banner-text{flex-direction:column;flex:1;min-width:0;display:flex}.pwa-install-banner .pwa-banner-text strong,.notif-permission-banner .pwa-banner-text strong{color:#111a2e;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.pwa-install-banner .pwa-banner-text span,.notif-permission-banner .pwa-banner-text span{color:var(--ion-color-medium);font-size:12px;line-height:1.4}.pwa-install-banner .ios-share-icon{color:#fff;vertical-align:middle;background:#007aff;border-radius:4px;margin:0 2px;padding:0 4px;font-size:11px;font-weight:700;display:inline-block}.pwa-install-banner .pwa-dismiss,.notif-permission-banner .pwa-dismiss{color:var(--shph-text-hint);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:16px;line-height:1}.pwa-install-banner .ios-caret{filter:drop-shadow(0 2px 2px rgba(0,0,0,.08));border-top:10px solid #fff;border-left:10px solid transparent;border-right:10px solid transparent;width:0;height:0;margin:0 auto -9px}.pwa-install-banner .slide-up-enter-active,.pwa-install-banner .slide-up-leave-active,.notif-permission-banner.slide-up-enter-active,.notif-permission-banner.slide-up-leave-active{transition:transform .3s,opacity .3s}.pwa-install-banner .slide-up-enter-from,.pwa-install-banner .slide-up-leave-to,.notif-permission-banner.slide-up-enter-from,.notif-permission-banner.slide-up-leave-to{opacity:0;transform:translateY(20px)}.notif-permission-banner .pwa-banner-icon{background:var(--shph-primary-light,#d4f0ef);width:40px;height:40px;color:var(--shph-primary-text,#0d6d78);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.notif-permission-banner .pwa-banner-icon ion-icon{font-size:20px}.pwa-update-banner.update-banner{bottom:calc(var(--ion-safe-area-bottom,0px) + 8px);z-index:10000;background:var(--shph-primary,#63cbd6);color:var(--shph-bg-primary);border-radius:14px;padding:12px 16px;position:fixed;left:8px;right:8px;box-shadow:0 4px 20px rgba(0,0,0,.25)}.pwa-update-banner .update-banner-inner{align-items:center;gap:10px;display:flex}.pwa-update-banner .update-icon{color:var(--shph-on-primary,#0f172a);flex-shrink:0;font-size:24px}.pwa-update-banner .update-text{color:var(--shph-on-primary,#0f172a);flex:1;font-size:14px;font-weight:500;line-height:1.4}.pwa-update-banner .update-banner-inner .update-action{--background:#fff;--background-hover:#fff;--background-focused:#fff;--background-activated:#f1f5f9;--color:#1a1a1a;--border-radius:10px;--padding-start:14px;--padding-end:14px;--box-shadow:0 2px 8px rgba(0,0,0,.15);text-transform:none;letter-spacing:0;flex-shrink:0;font-weight:700}.pwa-update-banner .update-dismiss{cursor:pointer;color:rgba(255,255,255,.85);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;margin:0;padding:4px;transition:background .2s;display:flex}.pwa-update-banner .update-dismiss:hover{background:rgba(255,255,255,.15)}.pwa-update-banner .update-dismiss ion-icon{color:var(--shph-bg-primary);font-size:22px}.pwa-update-banner .slide-up-enter-active,.pwa-update-banner .slide-up-leave-active{transition:transform .3s,opacity .3s}.pwa-update-banner .slide-up-enter-from,.pwa-update-banner .slide-up-leave-to{opacity:0;transform:translateY(20px)}.searchable-select{margin-bottom:20px}.searchable-select .select-trigger{--background:var(--shph-bg-primary);--padding-start:16px;--padding-end:16px;--min-height:72px;border:1px solid var(--shph-input-border);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}.searchable-select .select-trigger.has-error{border-color:var(--ion-color-danger)}.searchable-select .trigger-label{color:var(--shph-text-secondary);margin:0 0 4px;font-size:13px;font-weight:600}.searchable-select .trigger-value{color:var(--shph-text-primary);margin:0;font-size:16px;font-weight:500}.searchable-select .trigger-placeholder{color:var(--shph-text-hint);margin:0;font-size:15px;font-style:italic}.searchable-select .select-error{color:var(--ion-color-danger);margin:4px 16px 0;font-size:13px}.searchable-select .select-loading,.searchable-select .select-empty{color:var(--shph-text-secondary);justify-content:center;align-items:center;padding:48px 16px;display:flex}.searchable-select .selected{--background:var(--shph-primary-light)}.searchable-select .opt-type{color:var(--shph-text-hint);text-transform:capitalize;margin:2px 0 0;font-size:12px}.section-header-cmp.section-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-header-cmp .section-header__text{flex-direction:column;display:flex}.section-header-cmp .section-title{color:var(--shph-text-primary);margin:0;font-size:15px;font-weight:600}.section-header-cmp .section-label{color:var(--shph-text-secondary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:900}.section-header-cmp .section-header__subtitle{color:var(--shph-text-secondary);margin:2px 0 0;font-size:13px;font-weight:400;line-height:1.35}.section-header-cmp .see-all{color:var(--shph-primary-text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;max-width:100%;padding:0;font-size:12px;font-weight:600;text-decoration:none;display:inline-block;overflow:hidden}.service-card{--border-radius:var(--shph-border-radius-lg);--padding-start:8px;background:var(--ion-color-light);border-radius:var(--shph-border-radius-lg);margin-bottom:8px}.service-card .card-thumb{background:var(--ion-color-light-shade);border-radius:10px;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex;position:relative;overflow:visible}.service-card .card-thumb img{object-fit:cover;border-radius:10px;width:100%;height:100%}.service-card .card-thumb-provider-avatar{outline:2px solid var(--ion-background-color,#fff);border-radius:50%;position:absolute;bottom:-4px;right:-4px}.service-card-tile{box-shadow:var(--shph-shadow-sm,0 1px 6px rgba(0,0,0,.08));border-radius:16px;flex-shrink:0;margin:0;overflow:hidden}.service-card.card-tile-img{aspect-ratio:4/3;background:var(--ion-color-light-shade);width:100%;position:relative;overflow:hidden}.service-card.card-tile-img img{object-fit:cover;width:100%;height:100%}.service-card .card-tile-img-placeholder{background:var(--ion-color-light);justify-content:center;align-items:center;width:100%;height:100%;font-size:36px;display:flex}.service-card .card-tile-heart{--padding-start:4px;--padding-end:4px;background:rgba(255,255,255,.85);border-radius:50%;position:absolute;top:4px;right:4px}.service-card .card-tile-provider-avatar{border-radius:50%;outline:2px solid rgba(255,255,255,.8);position:absolute;bottom:6px;left:6px}.service-card .card-tile-featured{background:var(--ion-color-warning);color:var(--ion-color-warning-contrast,#000);letter-spacing:.5px;text-transform:uppercase;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:8px;left:8px}.service-card .card-list-featured{vertical-align:middle;margin-left:4px;font-size:9px}.service-card .card-tile-body{padding:10px 12px 12px}.service-card .card-tile-title{color:var(--ion-text-color);margin-bottom:2px;font-size:14px;font-weight:700}.service-card .card-tile-sub{color:var(--ion-color-medium);margin-bottom:4px;font-size:12px}.service-card .card-tile-meta{justify-content:space-between;display:flex}.service-card .card-tile-price{color:var(--shph-primary-text);font-size:13px;font-weight:700}.service-card .card-tile-distance{color:var(--ion-color-medium);margin-top:2px;font-size:11px}.service-card .card-list-distance{color:var(--ion-color-medium)}.star-rating{align-items:center;gap:8px;display:flex}.star-rating .star-icon{color:var(--ion-color-medium);font-size:32px;transition:color .15s}.star-rating .star-icon--small{font-size:16px}.star-rating .star-icon--medium{font-size:24px}.star-rating .star-icon--large{font-size:40px}.star-rating .star-icon--active{color:var(--ion-color-warning)}.star-rating .star-icon:not(.star-icon--readonly){cursor:pointer}.star-rating .star-icon:not(.star-icon--readonly):hover{color:var(--ion-color-warning)}.status-pill{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:100%;padding:4px 12px;font-size:12px;font-weight:600;line-height:1;display:inline-flex;overflow:hidden}.status-pill.status-pill--confirmed{color:var(--shph-status-confirmed);background:var(--shph-status-confirmed-bg)}.status-pill.status-pill--active{color:var(--shph-status-active);background:var(--shph-status-active-bg)}.status-pill.status-pill--completed{color:var(--shph-status-completed);background:var(--shph-status-completed-bg)}.status-pill.status-pill--cancelled{color:var(--shph-status-cancelled);background:var(--shph-status-cancelled-bg)}.status-pill.status-pill--pending{color:var(--shph-status-pending);background:var(--shph-status-pending-bg)}.trust-badge{--background:transparent;height:24px;margin:0;padding:0 8px;font-size:11px;font-weight:600}.trust-badge .badge-icon{margin-right:4px;font-size:12px}.trust-badge .badge-label{font-size:11px;font-weight:600}.trust-badge-row{flex-wrap:wrap;gap:6px;display:flex}.user-avatar{border-radius:50%;flex:none;display:inline-flex;position:relative}.user-avatar .user-avatar__img,.user-avatar .user-avatar__fallback{object-fit:cover;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.user-avatar .user-avatar__fallback--initials{background:var(--ion-color-primary);color:#fff;user-select:none;font-weight:600;line-height:1}.user-avatar .user-avatar__icon-box{border:1px solid var(--shph-border);background:var(--shph-bg-secondary);color:var(--shph-primary-text);width:100%;height:100%;overflow:hidden}.user-avatar .user-avatar__icon-box ion-icon{width:1em;min-width:12px;height:1em;min-height:12px;font-size:calc(var(--user-avatar-size,48px) * .62);flex:none}.user-avatar .user-avatar__status{border:2px solid var(--ion-background-color,#fff);box-sizing:border-box;border-radius:50%;transition:background-color .3s,box-shadow .3s;position:absolute;bottom:-2px;right:-2px}.user-avatar .user-avatar__status.is-online{background-color:var(--ion-color-success);box-shadow:0 0 4px var(--ion-color-success)}.user-avatar .user-avatar__status.is-offline{background-color:var(--ion-color-medium)}.ai-booking-composer.ai-composer{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.ai-booking-composer .ai-composer__disclaimer{font-size:.75rem}.earnings-chart{width:100%;height:220px;position:relative}.earnings-chart .chart-canvas{border-radius:8px;width:100%;height:100%;display:block}.earnings-chart .no-data-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.earnings-chart .no-data-overlay span{color:var(--ion-color-medium);background:rgba(var(--ion-background-color-rgb,255, 255, 255), .9);border-radius:16px;padding:8px 16px;font-size:14px}.revenue-chart{width:100%;height:200px;margin-top:12px;position:relative}.revenue-chart .chart-canvas{border-radius:8px;width:100%;height:100%;display:block}.revenue-chart .no-data-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.revenue-chart .no-data-overlay span{color:var(--ion-color-medium);background:rgba(var(--ion-background-color-rgb,255, 255, 255), .9);border-radius:16px;padding:8px 16px;font-size:14px}.bayanihan-section{margin-bottom:24px;padding:0 16px}.bayanihan-section .bayanihan-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.bayanihan-section .bayanihan-title{text-transform:uppercase;letter-spacing:.1em;color:var(--shph-text-hint);align-items:center;gap:6px;margin:0;font-size:12px;font-weight:900;display:flex}.bayanihan-section .bayanihan-icon{color:var(--shph-warm-rose);font-size:10px}.bayanihan-section .bayanihan-badge{color:var(--shph-warm-rose);background:var(--shph-warm-rose-light);border:1px solid rgba(13,109,120,.15);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.bayanihan-section .bayanihan-card{border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);cursor:pointer;transition:border-color .12s, transform .12s var(--shph-ease);background:rgba(238,242,255,.5);padding:16px}body.dark .bayanihan-section .bayanihan-card,:root.ion-palette-dark .bayanihan-section .bayanihan-card,:root[data-theme=dark] .bayanihan-section .bayanihan-card{background:var(--shph-bg-primary)}.bayanihan-section .bayanihan-card:active{transform:scale(.98)}.bayanihan-section .bayanihan-card__top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.bayanihan-section .bayanihan-card__title{color:var(--shph-text-heading);margin:0;font-size:14px;font-weight:800}.bayanihan-section .bayanihan-card__location{color:var(--shph-text-secondary);margin:2px 0 0;font-size:11px;font-weight:600}.bayanihan-section .bayanihan-card__time{color:var(--shph-text-secondary);background:var(--shph-bg-primary);border:1px solid var(--shph-border);white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;border-radius:8px;max-width:100%;padding:4px 8px;font-size:10px;font-weight:700;display:inline-block;overflow:hidden}.bayanihan-section .bayanihan-card__progress-labels{color:var(--shph-text-secondary);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10px;font-weight:700;display:flex}.bayanihan-section .bayanihan-card__progress-slot{color:var(--shph-warm-rose)}.bayanihan-section .bayanihan-card__progress-track{background:var(--shph-bg-secondary);border-radius:999px;width:100%;height:8px;overflow:hidden}.bayanihan-section .bayanihan-card__progress-fill{background:var(--shph-gradient-warm);border-radius:999px;width:80%;height:100%}.status-scaffold.booking-status-scaffold{flex-direction:column;gap:16px;display:flex}.booking-status-scaffold .status-scaffold__head{flex-direction:column;align-items:flex-start;gap:8px;padding:8px 4px 0;display:flex}.booking-status-scaffold .status-scaffold__title{color:var(--shph-text-heading);margin:0;font-size:22px;font-weight:700}.booking-status-scaffold .status-scaffold__subtitle{color:var(--shph-text-secondary);margin:0;font-size:14px}.booking-step-indicator.step-indicator{justify-content:center;align-items:center;gap:8px;margin-bottom:24px;display:flex}.booking-step-indicator .step-wrapper{align-items:center;gap:8px;display:flex}.booking-step-indicator .step{flex-direction:column;align-items:center;gap:4px;display:flex}.booking-step-indicator .step-num{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:flex}.booking-step-indicator .step--done .step-num{background:var(--ion-color-success);color:#fff}.booking-step-indicator .step--active .step-num{background:var(--ion-color-primary);color:var(--shph-on-primary)}.booking-step-indicator .step--inactive .step-num{background:var(--ion-color-light);color:var(--ion-color-medium)}.booking-step-indicator .step-label{font-size:11px}.booking-step-indicator .step--done .step-label{color:var(--ion-color-success)}.booking-step-indicator .step--active .step-label{color:var(--shph-primary-text);font-weight:600}.booking-step-indicator .step--inactive .step-label{color:var(--ion-color-medium)}.booking-step-indicator .step-line{flex:1;max-width:60px;height:2px}.booking-step-indicator .step-line--done{background:var(--ion-color-success)}.booking-step-indicator .step-line--inactive{background:var(--ion-color-light)}.funnel-step-header{box-sizing:border-box;align-items:center;gap:12px;max-width:100%;padding:12px 0;display:flex}.funnel-step-header .funnel-step-header__back{color:var(--shph-text-heading);cursor:pointer;background:0 0;border:none;padding:0;font-size:22px;display:flex}.funnel-step-header .funnel-step-header__pills{flex:1;gap:6px;display:flex}.funnel-step-header .step-pill{background:var(--shph-border);height:6px;transition:background var(--shph-dur) var(--shph-ease);border-radius:999px;flex:1}.funnel-step-header .step-pill--active,.funnel-step-header .step-pill--done{background:var(--shph-primary)}.funnel-step-header .step-pill--done{opacity:.55}.funnel-step-header .funnel-step-header__label{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-size:12px;font-weight:600;display:inline-block;overflow:hidden}.live-search-animation.live-search{text-align:center;flex-direction:column;align-items:center;padding:40px 24px;display:flex}.live-search-animation .live-search__pulse{width:96px;height:96px;margin-bottom:24px;position:relative}.live-search-animation .live-search__ring{background:var(--shph-primary);opacity:.18;border-radius:50%;animation:1.8s ease-out infinite live-pulse;position:absolute;top:0;bottom:0;left:0;right:0}.live-search-animation .live-search__ring--2{animation-delay:.9s}.live-search-animation .live-search__core{background:var(--shph-primary);color:var(--shph-on-primary,#0f172a);border-radius:50%;justify-content:center;align-items:center;font-size:22px;display:flex;position:absolute;top:26px;bottom:26px;left:26px;right:26px}@keyframes live-pulse{0%{opacity:.35;transform:scale(.6)}to{opacity:0;transform:scale(1.4)}}@media (prefers-reduced-motion:reduce){.live-search-animation .live-search__ring{opacity:.22;animation:none}}.live-search-animation .live-search__title{color:var(--shph-text-heading);margin:0 0 6px;font-size:20px;font-weight:700}.live-search-animation .live-search__subtitle{color:var(--shph-text-secondary);max-width:280px;margin:0 0 12px;font-size:14px}.live-search-animation .live-search__count{color:var(--shph-primary-text);margin:0;font-size:13px;font-weight:600}.live-search-animation .live-search__elapsed{color:var(--shph-text-hint);margin:4px 0 0;font-size:12px}.on-demand-hero.od-hero{border-radius:var(--shph-radius-card-lg);box-shadow:var(--shph-shadow-card-lg);background:var(--shph-bg-primary);margin:8px 12px 16px;overflow:hidden}.on-demand-hero .od-hero__map{height:150px;position:relative}.on-demand-hero .od-hero__mapview{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.on-demand-hero .od-hero__map .explore-map{border-radius:0!important;height:100%!important;min-height:0!important}.on-demand-hero .od-hero__scrim{pointer-events:none;background:linear-gradient(transparent,rgba(0,0,0,.06));position:absolute;top:0;bottom:0;left:0;right:0}.on-demand-hero .od-hero__body{padding:14px 16px 16px}.on-demand-hero .od-hero__title{color:var(--shph-text-heading);margin:0;font-size:18px;font-weight:700}.on-demand-hero .od-hero__subtitle{color:var(--shph-text-secondary);margin:2px 0 12px;font-size:13px}.service-selection-sheet.svc-sheet{background:var(--shph-bg-page);min-height:100%;padding:8px 16px 24px}.service-selection-sheet .svc-sheet__handle{background:var(--shph-border);border-radius:999px;width:40px;height:4px;margin:8px auto 12px}.service-selection-sheet .svc-sheet__title{color:var(--shph-text-heading);margin:0 4px 14px;font-size:18px;font-weight:700}.service-selection-sheet .svc-sheet__list{flex-direction:column;gap:10px;display:flex}.service-selection-sheet .svc-option{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);width:100%;box-shadow:var(--shph-shadow-card);cursor:pointer;text-align:left;border:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.service-selection-sheet .svc-option__name{color:var(--shph-text-heading);flex:1;font-size:15px;font-weight:600}.service-selection-sheet .svc-option__chev{color:var(--shph-text-hint);font-size:18px}ion-modal ion-content{--padding-bottom:32px}.waiting-modal-card{box-shadow:none;border-radius:24px 24px 0 0;margin:0}.waiting-card{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px 20px;display:flex}.waiting-card h3{margin:0;font-size:18px;font-weight:700}.waiting-icon{background:rgba(var(--ion-color-primary-rgb), .1);width:56px;height:56px;color:var(--shph-primary-text);border-radius:50%;justify-content:center;align-items:center;font-size:28px;display:flex}.waiting-text{color:var(--ion-color-medium);margin:0;font-size:14px;line-height:1.5}.waiting-meta-row{color:var(--ion-color-medium);align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:flex}.waiting-spinner-row{color:var(--ion-color-medium);align-items:center;gap:8px;margin:4px 0;font-size:13px;display:flex}ion-modal .job-modal-content,ion-modal .waiting-modal-content{--padding-top:0;--padding-bottom:0}.error-state-subtitle{max-width:280px;color:var(--shph-text-secondary);margin:6px auto 0;font-size:13px;font-weight:500}.chat-page .messages{flex-direction:column;gap:10px;padding-bottom:8px;display:flex}.chat-page ion-footer{padding-bottom:env(safe-area-inset-bottom,0px)}@media (min-width:1024px){.chat-page .messages,.chat-page ion-footer ion-toolbar{width:100%;max-width:var(--shph-container-readable);margin-left:auto;margin-right:auto}}.chat-page .bubble{word-break:break-word;border-radius:18px;max-width:75%;padding:10px 14px}.chat-page .bubble.mine+.bubble.mine,.chat-page .bubble.theirs+.bubble.theirs{margin-top:-6px}.chat-page .bubble p{margin:0 0 2px;font-size:15px}.chat-page .bubble .ts{opacity:.6;align-items:center;gap:2px;margin-top:4px;font-size:11px;display:flex}.chat-page .bubble .attachment{margin-top:6px}.chat-page .bubble .ts .edited{margin-left:4px}.chat-page .bubble .ts .status-icon{vertical-align:middle;opacity:.7;margin-left:4px;font-size:12px}.chat-page .bubble .ts .status-icon--read{color:var(--ion-color-secondary,#00d4aa);opacity:1}.chat-page .bubble .ts .status-spinner{vertical-align:middle;opacity:.6;width:12px;height:12px;margin-left:4px;display:inline-block}.chat-page .chat-img{object-fit:cover;cursor:pointer;border-radius:10px;width:100%;max-width:min(320px,70vw);height:auto;max-height:min(360px,45vh);display:block}.chat-page .mine{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-bottom-right-radius:4px;align-self:flex-end}.chat-page .theirs{background:var(--ion-color-light);border-bottom-left-radius:4px;align-self:flex-start}.chat-page .bubble.deleted{opacity:.6}.chat-page .bubble.sending{opacity:.75}.chat-page .bubble.sending p{font-style:italic}.chat-page .bubble .deleted-text{opacity:.7;margin:0;font-style:italic}.chat-page .bubble .edited{opacity:.7;margin-left:4px;font-size:10px}.chat-page .bubble .sender-name{color:var(--shph-primary-text);align-items:center;gap:6px;margin-bottom:3px;font-size:12px;font-weight:600;display:flex}.chat-page .mention-highlight{background:rgba(var(--ion-color-primary-rgb), .12);color:var(--shph-primary-text);border-radius:4px;padding:1px 4px;font-weight:600}.chat-page .system-message{background:rgba(var(--ion-color-medium-rgb,146, 148, 156), .12);text-align:center;border-radius:14px;flex-direction:column;align-self:center;align-items:center;gap:4px;max-width:85%;margin:6px 0;padding:8px 16px;display:flex}.chat-page .system-message--call{background:rgba(var(--ion-color-primary-rgb,13, 109, 120), .1);border:1px solid rgba(var(--ion-color-primary-rgb,13, 109, 120), .2)}.chat-page .system-message-header{justify-content:center;align-items:center;gap:6px;display:flex}.chat-page .system-message-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:14px}.chat-page .system-message-text{color:var(--ion-color-medium,#92949c);font-size:12px;font-weight:500;line-height:1.4}.chat-page .system-message--call .system-message-text{color:var(--shph-primary-text);font-weight:600}.chat-page .system-message-time{color:var(--ion-color-medium,#92949c);opacity:.7;font-size:10px}.chat-page .join-call-btn{--border-radius:999px;--min-height:36px;--padding-start:14px;--padding-end:14px;--padding-top:4px;--padding-bottom:4px;height:36px;margin:4px 0 0;font-size:12px;font-weight:600}.chat-page .join-call-btn ion-icon{font-size:14px}.chat-page .date-separator{justify-content:center;align-items:center;margin:14px 0 6px;display:flex}.chat-page .date-chip{letter-spacing:.3px;text-transform:uppercase;color:var(--ion-color-medium);background:var(--ion-color-light);border-radius:12px;padding:4px 12px;font-size:11px;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}.chat-page .sticker-display{text-align:center;padding:4px 8px;font-size:48px;line-height:1.2}.chat-page .recording-bar{flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}.chat-page .recording-dot{color:var(--ion-color-danger);font-size:12px;animation:1s infinite pulse}.chat-page .recording-time{color:var(--ion-color-danger);flex:1;font-size:14px;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-page .sticker-picker-container{border-top:1px solid rgba(var(--ion-color-medium-rgb), .2);background:var(--ion-background-color,#fff);position:relative}.chat-page .sticker-close-btn{z-index:1;position:absolute;top:4px;right:4px}.chat-page .search-results{flex-direction:column;gap:8px;display:flex}.chat-page .search-status{color:var(--shph-text-secondary);justify-content:center;align-items:center;gap:8px;padding:40px 20px;font-size:14px;display:flex}.chat-page .search-result-item{background:rgba(var(--ion-color-light-rgb), .6);cursor:pointer;border-radius:12px;padding:12px 14px;transition:background .15s}.chat-page .search-result-item:hover{background:rgba(var(--ion-color-medium-rgb), .12)}.chat-page .search-result-item:active{background:rgba(var(--ion-color-primary-rgb), .1)}.chat-page .search-result-sender{color:var(--shph-primary-text);font-size:12px;font-weight:600}.chat-page .search-result-text{color:var(--shph-text-primary);margin:4px 0;font-size:14px;line-height:1.4}.chat-page .search-result-text mark{background:rgba(var(--ion-color-warning-rgb), .3);border-radius:3px;padding:0 2px}.chat-page .search-result-time{color:var(--shph-text-secondary);font-size:11px}.chat-page .message-highlight{animation:2s ease-out highlight-pulse}@keyframes highlight-pulse{0%{background:rgba(var(--ion-color-primary-rgb), .2)}to{background:0 0}}.chat-page .mention-dropdown{background:var(--ion-background-color,#fff);border-top:1px solid rgba(var(--ion-color-medium-rgb), .2);z-index:100;max-height:200px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -2px 8px rgba(0,0,0,.1)}.chat-page .mention-item{cursor:pointer;width:100%;color:var(--shph-text-primary);background:0 0;border:none;align-items:center;gap:10px;padding:10px 16px;font-size:14px;transition:background .12s;display:flex}.chat-page .mention-item:hover{background:rgba(var(--ion-color-primary-rgb), .08)}.chat-page .mention-item:active{background:rgba(var(--ion-color-primary-rgb), .15)}.chat-page .unread-divider{align-items:center;gap:10px;margin:10px 0 4px;display:flex}.chat-page .unread-divider:before,.chat-page .unread-divider:after{content:"";background:var(--ion-color-primary);opacity:.55;flex:1;height:1px}.chat-page .unread-divider-label{text-transform:uppercase;letter-spacing:.4px;color:var(--shph-primary-text);font-size:11px;font-weight:600}.chat-page .scroll-fab{--ion-color-primary:var(--ion-color-primary);margin-bottom:72px;margin-right:12px}.chat-page .scroll-fab ion-fab-button{--size:44px;--background:var(--ion-color-light);--background-hover:var(--ion-color-light-shade);--color:var(--shph-primary-text);--box-shadow:0 4px 14px rgba(0,0,0,.18);position:relative}.chat-page .scroll-fab-badge{border:2px solid var(--ion-background-color);border-radius:9px;min-width:18px;height:18px;padding:0 4px;font-size:10px;line-height:18px;position:absolute;top:-4px;right:-4px}.chat-page .reaction-quickbar{border-left:1px solid rgba(var(--ion-color-medium-rgb), .3);gap:4px;margin-left:8px;padding:2px 6px;display:flex}.chat-page .reaction-quickbar-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;min-width:44px;min-height:44px;padding:2px 6px;font-size:18px;line-height:1;transition:background .15s}.chat-page .reaction-quickbar-btn:hover{background:rgba(var(--ion-color-medium-rgb), .15)}.chat-page .reaction-quickbar-btn--active{background:rgba(var(--ion-color-primary-rgb), .15)}.chat-page .reaction-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.chat-page .reaction-chips--mine{justify-content:flex-end}.chat-page .reaction-chip{background:var(--ion-color-light);border:1px solid rgba(var(--ion-color-medium-rgb), .2);cursor:pointer;border-radius:12px;align-items:center;gap:3px;padding:2px 8px;font-size:13px;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.chat-page .reaction-chip:hover{background:rgba(var(--ion-color-medium-rgb), .12)}.chat-page .reaction-chip--mine{background:rgba(var(--ion-color-primary-rgb), .12);border-color:var(--ion-color-primary)}.chat-page .reaction-chip-emoji{font-size:14px}.chat-page .reaction-chip-count{color:var(--shph-text-secondary);font-size:11px;font-weight:600}.chat-page .reply-preview{border-left:3px solid var(--ion-color-primary);background:rgba(0,0,0,.05);border-radius:4px;margin-bottom:6px;padding:4px 8px;font-size:13px}.chat-page .reply-preview .reply-label{opacity:.7;font-size:11px;font-weight:600;display:block}.chat-page .reply-preview .reply-text{white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.chat-page .message-actions{border-top:1px solid rgba(255,255,255,.15);flex-wrap:wrap;align-items:center;gap:2px;margin-top:6px;padding-top:6px;display:flex}.chat-page .message-actions ion-button{--padding-start:4px;--padding-end:4px;min-width:44px;min-height:44px;margin-left:2px;margin-right:2px;font-size:16px}.chat-page .mine .message-actions{border-top-color:color-mix(in srgb, var(--ion-color-primary-contrast) 25%, transparent)}.chat-page .mine .message-actions ion-button{--color:var(--ion-color-primary-contrast)}.chat-page .theirs .message-actions{border-top-color:rgba(0,0,0,.1)}.chat-page .theirs .message-actions ion-button{--color:var(--ion-color-medium)}.chat-page .image-preview-bar{background:var(--ion-color-light);border-top:1px solid var(--ion-color-light-shade);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.chat-page .image-preview-inner{align-items:center;gap:10px;display:flex}.chat-page .image-preview-thumb{border-radius:var(--shph-border-radius-sm);object-fit:cover;border:1px solid var(--ion-color-light-shade);width:48px;height:48px}.chat-page .image-preview-label{color:var(--ion-color-medium);font-size:13px}.chat-page .reply-bar{background:var(--ion-color-light);border-top:1px solid var(--ion-color-light-shade);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.chat-page .reply-info{color:var(--ion-color-medium);align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.chat-page .reply-info span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-page .empty p{color:var(--ion-color-medium);margin-top:40px}.chat-page .connection-status{margin-top:10px}.chat-page .typing-indicator{margin:10px 0}.chat-page .typing-bubble{background:var(--ion-color-light);border-radius:18px 18px 18px 4px;padding:12px 16px;display:inline-block}.chat-page .typing-dots{gap:4px;display:flex}.chat-page .typing-dots span{background:var(--ion-color-medium);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typing}.chat-page .typing-dots span:first-child{animation-delay:-.32s}.chat-page .typing-dots span:nth-child(2){animation-delay:-.16s}.chat-page .typing-dots span:nth-child(3){animation-delay:0s}@keyframes typing{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chat-page .quick-replies{scrollbar-width:none;background:var(--ion-background-color);border-top:1px solid var(--ion-color-light-shade);gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.chat-page .quick-replies::-webkit-scrollbar{display:none}.chat-page .quick-reply-chip{--min-height:40px;flex-shrink:0;font-size:13px}.chat-page .chat-title{flex-direction:row;justify-content:center;align-items:center;gap:8px;line-height:1.2;display:flex}.chat-page .chat-title-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.chat-page .chat-title-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:16px;font-weight:500;overflow:hidden}.chat-page .chat-title--clickable{cursor:pointer}.chat-page .last-seen-summary{color:var(--ion-color-medium);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12px;line-height:1.3;overflow:hidden}.chat-page .participant-row{border-bottom:1px solid var(--ion-color-light-shade);align-items:center;gap:12px;padding:12px 0;display:flex}.chat-page .participant-row:last-child{border-bottom:none}.chat-page .participant-info{flex-direction:column;gap:2px;min-width:0;display:flex}.chat-page .participant-name-row{align-items:center;gap:6px;display:flex}.chat-page .participant-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.chat-page .participant-role-badge{min-height:16px;padding:2px 6px;font-size:10px}.chat-page .participant-last-seen{color:var(--ion-color-medium);align-items:center;gap:4px;font-size:12px;display:flex}.chat-page .presence-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.chat-page .presence-dot.online{background-color:var(--ion-color-success);box-shadow:0 0 3px var(--ion-color-success)}.chat-page .presence-dot.offline{background-color:var(--ion-color-medium)}.chat-page ion-toolbar ion-buttons[slot=start] ion-button+ion-button:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:6px}.chat-page ion-toolbar ion-buttons[slot=start] ion-button+ion-button:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:6px}.chat-page ion-toolbar ion-buttons[slot=end] ion-button+ion-button:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:6px}.chat-page ion-toolbar ion-buttons[slot=end] ion-button+ion-button:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:6px}.chat-page ion-toolbar ion-buttons[slot=start] ion-button+ion-button:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:6px}.chat-page ion-toolbar ion-buttons[slot=start] ion-button+ion-button:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:6px}.chat-page ion-toolbar ion-buttons[slot=end] ion-button+ion-button:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:6px}.chat-page ion-toolbar ion-buttons[slot=end] ion-button+ion-button:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:6px}.chat-page ion-toolbar ion-buttons ion-button{--padding-top:6px;--padding-bottom:6px;--padding-start:8px;--padding-end:8px;min-width:44px;min-height:44px}.chat-page ion-footer ion-buttons[slot=end] ion-button+ion-button:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:8px}.chat-page ion-footer ion-buttons[slot=end] ion-button+ion-button:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:8px}.chat-page ion-footer ion-buttons[slot=end] ion-button+ion-button:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:8px}.chat-page ion-footer ion-buttons[slot=end] ion-button+ion-button:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:8px}.chat-page .recording-bar ion-button:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:8px}.chat-page .recording-bar ion-button:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:8px}.chat-page .recording-bar ion-button:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:8px}.chat-page .recording-bar ion-button:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:8px}.chat-page .pin-indicator{align-items:center;margin-bottom:2px;display:inline-flex}.chat-page .pin-indicator ion-icon{color:var(--ion-color-warning,#ffc409);font-size:12px}.chat-page .pinned-panel{background:var(--ion-color-light,#f4f5f8);border-bottom:1px solid rgba(0,0,0,.08);max-height:240px;padding:8px 12px;overflow-y:auto}.chat-page .pinned-panel-header{color:var(--ion-color-warning,#ffc409);align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.chat-page .pinned-panel-header ion-icon{font-size:16px}.chat-page .pinned-panel-header ion-button{--padding-start:4px;--padding-end:4px;margin-left:auto}.chat-page .pinned-panel-list{flex-direction:column;gap:6px;display:flex}.chat-page .pinned-item{cursor:pointer;border-left:3px solid var(--ion-color-warning,#ffc409);background:rgba(255,255,255,.6);border-radius:8px;padding:8px 10px}.chat-page .pinned-item:active{background:rgba(255,255,255,.9)}body.dark .chat-page .pinned-item,:root.ion-palette-dark .chat-page .pinned-item,:root[data-theme=dark] .chat-page .pinned-item{background:rgba(255,255,255,.08)}body.dark .chat-page .pinned-item:active,:root.ion-palette-dark .chat-page .pinned-item:active,:root[data-theme=dark] .chat-page .pinned-item:active{background:rgba(255,255,255,.16)}.chat-page .pinned-item-sender{color:var(--ion-color-primary,#3880ff);font-size:12px;font-weight:600}.chat-page .pinned-item-body{align-items:center;gap:8px;min-width:0;display:flex}.chat-page .pinned-item-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:36px;height:36px}.chat-page .pinned-item-text{color:var(--shph-text-primary,#1a1a1a);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:2px 0;font-size:13px;overflow:hidden}.chat-page .pinned-item-time{color:var(--shph-text-secondary,#92949c);font-size:11px}.call-detail-page .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 24px;display:flex}.call-detail-page .empty-state__icon{margin-bottom:16px;font-size:48px}.call-detail-page .empty-state__title{color:var(--shph-text-primary);margin:0 0 8px;font-size:18px;font-weight:700}.call-detail-page .empty-state__sub{color:var(--shph-text-secondary);max-width:260px;margin:0;font-size:14px;line-height:1.5}.call-detail-page .call-detail{flex-direction:column;align-items:center;gap:20px;padding:16px 0;display:flex}.call-detail-page .peer-section{flex-direction:column;align-items:center;gap:8px;display:flex}.call-detail-page .peer-avatar-wrap{border:3px solid var(--shph-primary-light,#e6f0ff);border-radius:50%}.call-detail-page .peer-name{color:var(--shph-text-primary);margin:0;font-size:20px;font-weight:700}.call-detail-page .peer-email{color:var(--shph-text-secondary);margin:0;font-size:13px}.call-detail-page .meta-card{background:var(--ion-card-background,var(--shph-bg-primary,#fff));border-radius:var(--shph-border-radius-md,14px);width:100%;box-shadow:var(--shph-shadow-sm);border:1px solid var(--shph-border-subtle,rgba(0,0,0,.06));flex-direction:column;gap:14px;padding:16px;display:flex}.call-detail-page .meta-row{align-items:center;gap:16px;display:flex}.call-detail-page .meta-row--full{color:var(--ion-color-danger)}.call-detail-page .meta-item{flex:1;align-items:center;gap:8px;display:flex}.call-detail-page .meta-icon{color:var(--shph-text-secondary);flex-shrink:0;font-size:20px}.call-detail-page .meta-icon--missed{color:var(--ion-color-danger)}.call-detail-page .meta-label{color:var(--shph-text-primary);font-size:14px}.call-detail-page .status-section{justify-content:center;display:flex}.call-detail-page .status-chip{--padding-start:12px;--padding-end:12px;font-weight:600}.call-detail-page .actions{flex-direction:column;gap:10px;width:100%;margin-top:8px;display:flex}.call-detail-page .action-btn{--border-radius:var(--shph-border-radius-md,12px);height:48px;font-weight:600}.call-detail-page .action-btn--call{--background:var(--shph-primary,#63cbd6);--color:var(--shph-on-primary,#0f172a)}.call-detail-page .action-btn--message{--border-color:var(--shph-border-subtle,rgba(0,0,0,.12));--color:var(--shph-text-primary)}.video-call-overlay{width:100%;height:100vh;z-index:10000;--call-controls-bottom:max(24px, env(safe-area-inset-bottom,24px));background:#1a1a1a;flex-direction:column;height:100dvh;display:flex;position:fixed;top:0;left:0;overflow:hidden}.video-call-overlay.fullscreen{border-radius:0}.video-call-overlay .remote-video-container{outline-offset:-3px;background:#2a2a2a;outline:3px solid transparent;flex:1;justify-content:center;align-items:center;min-height:0;transition:outline-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.video-call-overlay .remote-video{object-fit:cover;background:#2a2a2a;width:100%;height:100%;display:block}.video-call-overlay .connecting-placeholder{color:#fff;flex-direction:column;align-items:center;gap:16px;display:flex}.video-call-overlay .local-video-wrapper{z-index:10;background:#333;border:2px solid rgba(255,255,255,.2);border-radius:12px;width:100px;height:133px;position:absolute;top:80px;right:16px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.4)}.video-call-overlay .local-video{object-fit:cover;width:100%;height:100%;display:block}.video-call-overlay .local-video.camera-off{opacity:0;pointer-events:none}.video-call-overlay .local-placeholder{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:48px;display:flex}.video-call-overlay .top-info-bar{z-index:10;pointer-events:none;background:linear-gradient(rgba(0,0,0,.5) 0%,transparent 100%);justify-content:space-between;align-items:flex-start;padding:16px;display:flex;position:absolute;top:0;left:0;right:0}.video-call-overlay .call-info{color:#fff;pointer-events:none;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.video-call-overlay .call-info h3{text-shadow:0 1px 3px rgba(0,0,0,.5);margin:0;font-size:18px;font-weight:600}.video-call-overlay .call-timer{opacity:.9;text-shadow:0 1px 2px rgba(0,0,0,.5);margin:0;font-size:14px}.video-call-overlay .call-status{opacity:.8;text-shadow:0 1px 2px rgba(0,0,0,.5);margin:0;font-size:14px}.video-call-overlay .network-indicator{color:#fff;backdrop-filter:blur(4px);pointer-events:auto;background:rgba(0,0,0,.5);border-radius:16px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:flex}.video-call-overlay .call-controls{bottom:var(--call-controls-bottom);z-index:20;backdrop-filter:blur(8px);pointer-events:auto;background:rgba(0,0,0,.5);border-radius:32px;flex-wrap:wrap;justify-content:center;gap:12px;max-width:calc(100% - 32px);padding:12px 16px;display:flex;position:absolute;left:50%;overflow:visible;transform:translate(-50%)}.video-call-overlay .call-bottom-tray{left:0;right:0;bottom:calc(var(--call-controls-height,120px) + var(--call-controls-bottom) + 16px);z-index:25;pointer-events:none;flex-direction:column;align-items:center;padding:0 16px;display:flex;position:absolute}.video-call-overlay .call-bottom-tray .caption-nudge{pointer-events:auto}.video-call-overlay .control-btn{--size:52px;width:var(--size);height:var(--size);pointer-events:auto;z-index:21;min-width:44px;min-height:44px;margin:0;position:relative}.video-call-overlay .control-btn::part(native){border-radius:50%}.video-call-overlay .end-call{--background:#ef4444}.video-call-overlay .close-btn{color:#fff;z-index:10;margin:0;position:absolute;top:16px;right:16px}.video-call-overlay .audio-avatar{color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;font-size:96px;display:flex}.video-call-overlay .audio-avatar .audio-label{opacity:.8;margin:0;font-size:18px}.video-call-overlay .network-indicator{z-index:3;color:#fff;background:rgba(0,0,0,.5);border-radius:16px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:flex;position:absolute;top:16px;right:50%;transform:translate(50%)}.video-call-overlay .network-indicator .network-dot{background:#22c55e;border-radius:50%;width:8px;height:8px}.video-call-overlay .network-indicator.fair .network-dot{background:#eab308}.video-call-overlay .network-indicator.poor .network-dot{background:#ef4444}.video-call-overlay.pip-mode{bottom:max(16px, env(safe-area-inset-bottom,16px));right:max(16px, env(safe-area-inset-right,16px));z-index:10001;cursor:pointer;background:#2a2a2a;border-radius:12px;width:120px;max-width:calc(100vw - 32px);height:180px;position:fixed;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.5)}.video-call-overlay .pip-videos{width:100%;height:100%;position:relative}.video-call-overlay .pip-remote{object-fit:cover;width:100%;height:100%}.video-call-overlay .pip-avatar{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:48px;display:flex}.video-call-overlay .pip-local-wrapper{background:#333;border-radius:6px;width:40px;height:52px;position:absolute;bottom:4px;right:4px;overflow:hidden}.video-call-overlay .pip-local{object-fit:cover;width:100%;height:100%}.video-call-overlay .pip-end-btn{color:#ef4444;z-index:2;--padding-start:4px;--padding-end:4px;position:absolute;top:4px;right:4px}@media (max-width:480px){.local-video-wrapper{width:80px;height:107px;top:72px;right:12px}.video-call-overlay{--call-controls-bottom:max(16px, env(safe-area-inset-bottom,16px))}.video-call-overlay .call-controls{gap:8px;padding:10px 12px}.video-call-overlay .control-btn{--size:48px;min-width:44px;min-height:44px}.video-call-overlay .call-info h3{font-size:16px}.video-call-overlay .audio-avatar{font-size:64px}}@media (max-height:600px){.video-call-overlay{--call-controls-bottom:12px}.video-call-overlay .local-video-wrapper{width:80px;height:107px;top:72px}}.video-call-overlay .fade-enter-active,.video-call-overlay .fade-leave-active{transition:opacity .3s}.video-call-overlay .fade-enter-from,.video-call-overlay .fade-leave-to{opacity:0}.video-call-overlay .remote-video-container.is-speaking{outline-color:rgba(52,211,153,.8);box-shadow:inset 0 0 24px rgba(52,211,153,.35)}.group-video-call-overlay.group-call-overlay{z-index:10000;background:#1a1a2e;position:fixed;top:0;bottom:0;left:0;right:0}.group-video-call-overlay .fullscreen-mode{flex-direction:column;height:100%;display:flex}.group-video-call-overlay .call-header{color:#fff;background:rgba(0,0,0,.3);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.group-video-call-overlay .call-info{align-items:center;gap:12px;display:flex}.group-video-call-overlay .call-title{font-size:1.1rem;font-weight:600}.group-video-call-overlay .call-duration,.group-video-call-overlay .call-status{opacity:.8;font-size:.9rem}.group-video-call-overlay .video-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:8px;display:grid;overflow:hidden}.group-video-call-overlay .video-grid.grid--1{grid-template-columns:1fr}.group-video-call-overlay .video-grid.grid--2{grid-template-columns:repeat(2,1fr)}.group-video-call-overlay .video-grid.grid--3,.group-video-call-overlay .video-grid.grid--4{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.group-video-call-overlay .video-grid.grid--many{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-auto-rows:minmax(110px,1fr);overflow-y:auto}@media (max-width:480px){.group-video-call-overlay .video-grid{grid-template-columns:1fr 1fr;gap:6px;padding:6px}.group-video-call-overlay .video-grid.grid--1{grid-template-columns:1fr}.group-video-call-overlay .video-grid.grid--3{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.group-video-call-overlay .video-grid.grid--many{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-auto-rows:minmax(100px,1fr)}.group-video-call-overlay .video-grid.grid--4{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}}.group-video-call-overlay .video-grid.grid--filmstrip{-webkit-overflow-scrolling:touch;flex:none;gap:8px;height:max(78px,min(13vh,140px));display:flex;overflow-x:auto;overflow-y:hidden}.group-video-call-overlay .video-grid.grid--filmstrip .video-tile{aspect-ratio:4/3;flex:none;width:auto;height:100%}@media (orientation:landscape) and (max-height:560px){.group-video-call-overlay .video-grid.grid--filmstrip{--strip-h:clamp(48px, 17vh, 72px);height:var(--strip-h);margin-top:calc(-1 * (var(--strip-h) + 8px));z-index:5;background:0 0;justify-content:flex-end;padding:0 8px;position:relative;overflow:visible}.group-video-call-overlay .video-grid.grid--filmstrip .video-tile{box-shadow:0 2px 10px rgba(0,0,0,.55)}}.group-video-call-overlay .video-tile{aspect-ratio:4/3;background:#16213e;border-radius:12px;position:relative;overflow:hidden}.group-video-call-overlay .participant-video{object-fit:cover;width:100%;height:100%}.group-video-call-overlay .participant-avatar{color:rgba(255,255,255,.3);justify-content:center;align-items:center;height:100%;display:flex}.group-video-call-overlay .avatar-icon{font-size:3rem}.group-video-call-overlay .participant-info{color:#fff;background:rgba(0,0,0,.5);border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:.8rem;display:flex;position:absolute;bottom:8px;left:8px}.group-video-call-overlay .mic-off-icon{color:#f44}.group-video-call-overlay .call-controls{padding:14px 10px calc(14px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch;scrollbar-width:none;background:rgba(0,0,0,.3);flex-wrap:nowrap;flex-shrink:0;justify-content:center;gap:8px;max-width:100%;display:flex;overflow-x:auto}.group-video-call-overlay .call-controls::-webkit-scrollbar{display:none}.group-video-call-overlay .call-controls ion-button{--size:46px;--padding-start:0;--padding-end:0;flex:none;width:46px;min-width:44px;height:46px;min-height:44px;margin:0}.group-video-call-overlay.minimized{top:auto;bottom:auto;left:auto;right:auto;bottom:max(16px, env(safe-area-inset-bottom,16px));right:max(16px, env(safe-area-inset-right,16px));cursor:pointer;border-radius:16px;width:200px;max-width:calc(100vw - 32px);height:120px;overflow:hidden}.group-video-call-overlay .pip-mode{color:#fff;background:rgba(0,0,0,.8);justify-content:space-between;align-items:center;height:100%;padding:8px 12px;display:flex}.group-video-call-overlay .pip-info{align-items:center;gap:8px;font-size:.85rem;display:flex}.group-video-call-overlay .pip-info ion-icon{font-size:1.5rem}.group-video-call-overlay .fade-enter-active,.group-video-call-overlay .fade-leave-active{transition:opacity .3s}.group-video-call-overlay .fade-enter-from,.group-video-call-overlay .fade-leave-to{opacity:0}.group-video-call-overlay .screen-share-tile{background:#0d1117;border-radius:12px;flex:auto;width:100%;min-height:0;margin-bottom:8px;position:relative;overflow:hidden}.group-video-call-overlay .screen-share-video{object-fit:contain;width:100%;height:100%}.group-video-call-overlay .screen-share-label{color:#fff;background:rgba(0,0,0,.6);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;display:flex;position:absolute;bottom:8px;left:8px}.group-video-call-overlay .screen-share-label ion-icon{font-size:1rem}.group-video-call-overlay .video-tile.is-speaking{border:2px solid rgba(52,211,153,.8);box-shadow:0 0 12px rgba(52,211,153,.4)}.group-video-call-overlay .raise-hand-icon{z-index:6;background:rgba(255,193,7,.9);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;animation:1s ease-in-out infinite raise-hand-bounce;display:flex;position:absolute;top:8px;right:8px}.group-video-call-overlay .raise-hand-icon ion-icon{color:#fff;font-size:1.2rem}@keyframes raise-hand-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.captions-overlay{z-index:10;pointer-events:none;background:rgba(0,0,0,.7);border-radius:8px;flex-direction:column;flex-shrink:0;align-self:center;align-items:center;gap:4px;max-width:80%;margin:0 auto 8px;padding:10px 20px;display:flex}.captions-text{color:#fff;text-align:center;font-size:1rem;line-height:1.4}.captions-lang{color:rgba(255,255,255,.5);text-transform:uppercase;font-size:.7rem}.call-settings-content{--background:#1a1a2e}.call-settings-content ion-item{--background:transparent;--color:white;margin-bottom:8px}.call-settings-content ion-label{--color:rgba(255,255,255,.8)}.call-settings-content .settings-tabs{border-bottom:1px solid rgba(255,255,255,.1);display:flex}.call-settings-content .settings-tab{color:rgba(255,255,255,.5);cursor:pointer;background:0 0;border:none;border-bottom:2px solid transparent;flex:1;padding:12px;font-size:.9rem;font-weight:600;transition:color .2s,border-bottom .2s}.call-settings-content .settings-tab.active{color:var(--shph-primary);border-bottom-color:var(--shph-primary)}.call-settings-content .settings-panel{padding:16px}.call-settings-content .audio-visualizer-container,.call-settings-content .video-preview-container{margin-top:16px;padding:16px}.call-settings-content .audio-visualizer-container ion-label,.call-settings-content .video-preview-container ion-label{color:rgba(255,255,255,.7);margin-bottom:8px;font-size:.85rem;display:block}.call-settings-content .audio-visualizer{background:rgba(0,0,0,.3);border-radius:8px;width:100%;height:80px}.call-settings-content .camera-preview{object-fit:cover;background:rgba(0,0,0,.3);border-radius:8px;width:100%;height:180px;transform:scaleX(-1)}.voice-indicator{z-index:5;background-color:rgba(0,0,0,.5);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background-color .3s;display:flex;position:absolute;bottom:10px;right:10px}.voice-indicator.is-speaking{background-color:rgba(52,211,153,.8);box-shadow:0 0 10px rgba(52,211,153,.5)}.voice-indicator .voice-icon{color:#fff;z-index:2;width:16px;height:16px}.voice-indicator .microphone-icon{width:100%;height:100%}.voice-indicator .voice-waves{opacity:0;border-radius:50%;width:100%;height:100%;transition:opacity .2s;position:absolute}.voice-indicator.is-speaking .voice-waves{opacity:1}.voice-indicator .wave{opacity:0;border:1px solid rgba(255,255,255,.5);border-radius:50%;width:100%;height:100%;animation-duration:2s;animation-timing-function:ease-out;animation-iteration-count:infinite;position:absolute}.voice-indicator.is-speaking .wave{animation-name:voice-wave}.voice-indicator .wave-1{animation-delay:0s}.voice-indicator .wave-2{animation-delay:.5s}.voice-indicator .wave-3{animation-delay:1s}.voice-indicator .wave-4{animation-delay:1.5s}@keyframes voice-wave{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.forward-message-modal.forward-empty{color:var(--shph-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.forward-message-modal.forward-empty ion-icon{opacity:.4;font-size:48px}.forward-message-modal.forward-empty p{margin:0;font-size:14px}.image-lightbox{--background:rgba(0,0,0,.95);--backdrop-opacity:1;--height:100%;--border-radius:0}.image-lightbox.lightbox-backdrop{background:rgba(0,0,0,.95);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.image-lightbox .lightbox-toolbar{padding:env(safe-area-inset-top,8px) 8px 8px;color:var(--shph-text-on-dark,#fff);z-index:2;justify-content:space-between;align-items:center;display:flex}.image-lightbox .lightbox-toolbar ion-button{--color:#fff}.image-lightbox .lightbox-counter{opacity:.85;text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.image-lightbox .lightbox-stage{touch-action:none;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.image-lightbox .lightbox-img{object-fit:contain;transform-origin:50%;user-select:none;-webkit-user-drag:none;max-width:100%;max-height:100%;transition:transform .15s ease-out}.image-lightbox .lightbox-spinner{color:#fff;position:absolute}.image-lightbox .lightbox-error{color:rgba(255,255,255,.8);font-size:14px;position:absolute}.incoming-call-notification{z-index:10001;border-radius:var(--shph-border-radius-lg);color:#fff;background:linear-gradient(135deg,#1e3a5f 0%,#2d5a87 100%);justify-content:space-between;align-items:center;padding:20px;display:flex;position:fixed;top:16px;left:16px;right:16px;box-shadow:0 8px 32px rgba(0,0,0,.3)}.incoming-call-notification .caller-info{align-items:center;gap:14px;display:flex}.incoming-call-notification .caller-avatar{background:rgba(255,255,255,.2);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.incoming-call-notification .avatar-icon{color:#fff;font-size:40px}.incoming-call-notification .caller-details h3{margin:0;font-size:18px;font-weight:600}.incoming-call-notification .caller-details p{opacity:.8;margin:4px 0 0;font-size:14px}.incoming-call-notification .call-actions{gap:16px;display:flex}.incoming-call-notification .action-btn{--size:56px;width:var(--size);height:var(--size)}.incoming-call-notification .action-btn::part(native){border-radius:50%}.incoming-call-notification .slide-down-enter-active,.incoming-call-notification .slide-down-leave-active{transition:all .4s cubic-bezier(.16,1,.3,1)}.incoming-call-notification .slide-down-enter-from,.incoming-call-notification .slide-down-leave-to{opacity:0;transform:translateY(-100%)}.incoming-call-overlay{z-index:10002;color:#fff;background:rgba(0,0,0,.85);flex-direction:column;justify-content:space-between;align-items:center;padding:48px 24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.incoming-call-overlay .overlay-top{flex-direction:column;align-items:center;gap:16px;margin-top:24px;display:flex}.incoming-call-overlay .caller-avatar{background:rgba(255,255,255,.15);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;display:flex;overflow:hidden;box-shadow:0 0 0 4px rgba(255,255,255,.1)}.incoming-call-overlay .avatar-img{object-fit:cover;width:100%;height:100%}.incoming-call-overlay .avatar-fallback{color:rgba(255,255,255,.8);font-size:56px}.incoming-call-overlay .caller-name{color:#fff;text-align:center;margin:0;font-size:22px;font-weight:600}.incoming-call-overlay .call-status-label{color:rgba(255,255,255,.7);margin:0;font-size:14px}.incoming-call-overlay .overlay-bottom{justify-content:space-evenly;width:100%;max-width:320px;margin-bottom:24px;display:flex}.incoming-call-overlay .round-btn{cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .15s,opacity .15s;display:flex}.incoming-call-overlay .round-btn:active{transform:scale(.92)}.incoming-call-overlay .round-btn:disabled{opacity:.5;cursor:default}.incoming-call-overlay .round-btn--reject{background:#f44336;box-shadow:0 4px 16px rgba(244,67,54,.4)}.incoming-call-overlay .round-btn--reject ion-icon{font-size:28px;transform:rotate(135deg)}.incoming-call-overlay .round-btn--accept{background:#4caf50;box-shadow:0 4px 16px rgba(76,175,80,.4)}.incoming-call-overlay .round-btn--accept ion-icon{font-size:28px}.incoming-call-overlay .btn-spinner{color:#fff}.incoming-call-overlay .round-btn--accept:after{content:"";border:2px solid #4caf50;border-radius:50%;width:64px;height:64px;animation:1.6s ease-out infinite pulse-ring;position:absolute}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.incoming-call-overlay .fade-enter-active,.incoming-call-overlay .fade-leave-active{transition:opacity .3s}.incoming-call-overlay .fade-enter-from,.incoming-call-overlay .fade-leave-to{opacity:0}.link-preview{background:rgba(var(--ion-color-light-rgb), .5);border:1px solid rgba(var(--ion-color-medium-rgb), .15);cursor:pointer;border-radius:12px;max-width:min(320px,100%);margin:6px 0 2px;transition:background .15s;overflow:hidden}.link-preview:hover{background:rgba(var(--ion-color-medium-rgb), .1)}.link-preview:active{background:rgba(var(--ion-color-primary-rgb), .08)}.link-preview .link-preview-content{flex-direction:column;display:flex}.link-preview .link-preview-image{background-position:50%;background-size:cover;background-color:rgba(var(--ion-color-medium-rgb), .1);width:100%;height:160px}.link-preview .link-preview-text{flex-direction:column;gap:2px;padding:10px 12px;display:flex}.link-preview .link-preview-site{text-transform:uppercase;letter-spacing:.3px;color:var(--shph-text-secondary);font-size:11px;font-weight:600}.link-preview .link-preview-title{color:var(--shph-text-primary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.link-preview .link-preview-desc{color:var(--shph-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.message-info-modal.info-loading{color:var(--shph-text-secondary);justify-content:center;align-items:center;gap:8px;padding:40px;display:flex}.message-info-modal .info-message-preview{background:rgba(var(--ion-color-light-rgb), .6);border-radius:12px;margin-bottom:20px;padding:12px 14px}.message-info-modal .info-message-text{margin:0 0 4px;font-size:14px;line-height:1.4}.message-info-modal .info-message-time{color:var(--shph-text-secondary);font-size:11px}.message-info-modal .info-section-title{text-transform:uppercase;letter-spacing:.3px;color:var(--shph-text-secondary);margin:0 0 12px;font-size:13px;font-weight:600}.message-info-modal .info-reader-row{border-bottom:1px solid rgba(var(--ion-color-medium-rgb), .1);align-items:center;gap:12px;padding:10px 0;display:flex}.message-info-modal .info-reader-details{flex-direction:column;gap:2px;display:flex}.message-info-modal .info-reader-name{font-size:14px;font-weight:500}.message-info-modal .info-reader-status{color:var(--shph-text-secondary);align-items:center;gap:4px;font-size:12px;display:flex}.message-info-modal .info-reader-status--read{color:var(--shph-primary-text)}.online-indicator{color:var(--ion-color-medium);align-items:center;gap:4px;font-size:12px;transition:color .3s;display:inline-flex}.online-indicator .dot{background-color:var(--ion-color-medium);border-radius:50%;width:8px;height:8px;transition:background-color .3s,box-shadow .3s}.online-indicator .online .dot{background-color:var(--ion-color-success);box-shadow:0 0 4px var(--ion-color-success)}.online-indicator .online{color:var(--ion-color-success)}.online-indicator .offline .dot{background-color:var(--ion-color-medium)}.sticker-picker{background:var(--ion-background-color,#fff);flex-direction:column;height:240px;display:flex}.sticker-picker .sticker-tabs{border-bottom:1px solid rgba(var(--ion-color-medium-rgb), .2);flex-shrink:0;gap:2px;padding:6px 8px;display:flex;overflow-x:auto}.sticker-picker .sticker-tab{color:var(--shph-text-secondary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;max-width:100%;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s,color .15s;overflow:hidden}.sticker-picker .sticker-tab:hover{background:rgba(var(--ion-color-medium-rgb), .1)}.sticker-picker .sticker-tab--active{background:rgba(var(--ion-color-primary-rgb), .12);color:var(--shph-primary-text)}.sticker-picker .sticker-grid{flex:1;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;display:grid;overflow-y:auto}.sticker-picker .sticker-cell{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;font-size:26px;line-height:1;transition:background .12s}.sticker-picker .sticker-cell:hover{background:rgba(var(--ion-color-medium-rgb), .12)}.sticker-picker .sticker-cell:active{background:rgba(var(--ion-color-primary-rgb), .15);transform:scale(.92)}.sticker-picker .sticker-status{color:var(--shph-text-secondary);justify-content:center;align-items:center;padding:20px;font-size:13px;display:flex}.sticker-picker .sticker-status--error{color:var(--ion-color-danger)}.voice-message{align-items:center;gap:8px;min-width:160px;padding:4px 0;display:flex}.voice-message .voice-play-btn{background:rgba(var(--ion-color-primary-rgb), .15);width:32px;height:32px;color:var(--shph-primary-text);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:background .15s;display:flex}.voice-message .voice-play-btn:active{background:rgba(var(--ion-color-primary-rgb), .25)}.voice-message .voice-waveform{flex-direction:column;flex:1;gap:4px;display:flex}.voice-message .voice-progress-bar{background:rgba(var(--ion-color-medium-rgb), .25);border-radius:2px;height:4px;overflow:hidden}.voice-message .voice-progress-fill{background:var(--ion-color-primary);border-radius:2px;height:100%;transition:width .1s linear}.voice-message .voice-duration{color:inherit;opacity:.7;font-size:11px}.captions-line{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:6px;display:flex}.captions-speaker{color:var(--shph-primary,#63cbd6);flex-shrink:0;font-size:.75rem;font-weight:700}.group-video-call-overlay .video-tile.is-active-speaker{outline:2px solid var(--shph-primary,#63cbd6);outline-offset:-2px}.caption-nudge{color:#fff;background:rgba(0,0,0,.7);border-radius:999px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-self:center;align-items:center;gap:4px;max-width:90%;margin:0 auto 8px;padding:6px 8px 6px 14px;font-size:.8rem;display:flex}.call-permission-page .call-permission-content{--background:var(--shph-bg-primary)}.call-permission-page .call-permission-content::part(scroll){min-height:100%;padding:32px 20px calc(32px + var(--ion-safe-area-bottom,0px));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.call-permission-page .call-permission-hero{background:var(--shph-primary-light,#d4f0ef);width:76px;height:76px;color:var(--shph-primary-text,#0d6d78);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.call-permission-page .call-permission-hero ion-icon{font-size:34px}.call-permission-page .call-permission-title{color:var(--shph-text-primary,#0f172a);margin:0;font-size:1.35rem;font-weight:700}.call-permission-page .call-permission-desc{max-width:34ch;color:var(--shph-text-secondary,#475569);margin:0;line-height:1.45}.call-permission-page .call-permission-error{max-width:38ch;color:var(--ion-color-danger,#ef4444);margin:0;font-size:.9rem;line-height:1.4}.call-permission-page .call-permission-content ion-button{width:100%;max-width:360px;margin:0 auto}.call-permission-page .call-permission-preview{aspect-ratio:4/3;border-radius:var(--shph-border-radius-md,14px);object-fit:cover;background:#16213e;width:100%;max-width:360px;transform:scaleX(-1)}.call-permission-page .call-permission-checking{color:var(--shph-text-secondary,#475569);flex-direction:column;align-items:center;gap:12px;display:flex}.chat-readonly-notice{padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:var(--shph-surface-elevated);border-top:1px solid var(--shph-border-subtle);color:var(--shph-text-secondary);align-items:flex-start;gap:10px;font-size:13px;line-height:1.45;display:flex}.chat-readonly-notice ion-icon{color:var(--ion-color-medium);flex-shrink:0;margin-top:1px;font-size:18px}.on-demand-booking{--shph-accent:var(--shph-warm-rose,#0d6d78);--shph-accent-text:var(--shph-warm-rose,#0d6d78);--shph-accent-warm:var(--shph-warm-amber,#49b8c4)}.on-demand-booking ion-button[expand=block]{--border-radius:var(--shph-border-radius-md);min-height:52px;font-weight:600}.on-demand-booking .od-header{--background:transparent;--border-color:transparent}.on-demand-booking .od-toolbar{--background:transparent;--min-height:auto;--padding-start:0;--padding-end:0}.on-demand-booking .od-header-inner{padding:0}.on-demand-booking .od-header-top{background:linear-gradient(to bottom, var(--shph-warm-rose-light,#d4f0ef), rgba(232,248,247,.4) 40%, #fff 100%);border-bottom:1px solid rgba(226,232,240,.6);align-items:center;gap:12px;padding:10px 16px 12px;display:flex}.on-demand-booking .od-header--accepted .od-header-top,.on-demand-booking .od-header--arrived .od-header-top{background:linear-gradient(#d1fae5,#fff 40%,#fff 100%)}.on-demand-booking .od-header--in_progress .od-header-top{background:linear-gradient(#e0e7ff,#fff 40%,#fff 100%)}.on-demand-booking .od-header--completed .od-header-top,.on-demand-booking .od-header--timeout .od-header-top{background:var(--shph-bg-primary)}body.dark .on-demand-booking .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header-top{background:linear-gradient(to bottom, var(--shph-warm-rose-light,#1a3d3c), rgba(26,46,46,.4) 40%, var(--shph-bg-primary) 100%)}body.dark .on-demand-booking .od-header--accepted .od-header-top,body.dark .on-demand-booking .od-header--arrived .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header--accepted .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header--arrived .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header--accepted .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header--arrived .od-header-top{background:linear-gradient(to bottom, #0f3a2e, var(--shph-bg-primary) 40%, var(--shph-bg-primary) 100%)}body.dark .on-demand-booking .od-header--in_progress .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header--in_progress .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header--in_progress .od-header-top{background:linear-gradient(to bottom, #1e1b4b, var(--shph-bg-primary) 40%, var(--shph-bg-primary) 100%)}body.dark .on-demand-booking .od-header--completed .od-header-top,body.dark .on-demand-booking .od-header--timeout .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header--completed .od-header-top,:root.ion-palette-dark .on-demand-booking .od-header--timeout .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header--completed .od-header-top,:root[data-theme=dark] .on-demand-booking .od-header--timeout .od-header-top{background:var(--shph-bg-primary)}.on-demand-booking .od-header--accepted,.on-demand-booking .od-header--arrived{--shph-accent:#059669;--shph-accent-text:#059669}.on-demand-booking .od-header--in_progress{--shph-accent:#4f46e5;--shph-accent-text:#4f46e5}.on-demand-booking .od-header--timeout{--shph-accent-text:#94a3b8}.on-demand-booking .od-back-btn{background:var(--shph-bg-primary);width:36px;height:36px;color:var(--shph-text-heading,#1e293b);border:1px solid rgba(226,232,240,.8);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.05)}.on-demand-booking .od-back-btn:active{transform:scale(.95)}.on-demand-booking .od-back-btn ion-icon{font-size:14px}.on-demand-booking .od-status-icon{border:1px solid rgba(226,232,240,.8);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.05)}.on-demand-booking .od-status-icon ion-icon{font-size:18px}.on-demand-booking .od-status-icon--emerald{color:#fff;background:#10b981}.on-demand-booking .od-status-icon--emerald-600{color:#fff;background:#059669;animation:2s infinite od-pulse}.on-demand-booking .od-status-icon--indigo{color:#fff;background:#4f46e5}.on-demand-booking .od-header-titles{flex:1;min-width:0}.on-demand-booking .od-header-title{color:var(--shph-text-heading,#0f172a);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:900;overflow:hidden}.on-demand-booking .od-header-step{color:var(--shph-accent-text,#0d6d78);text-transform:uppercase;letter-spacing:.05em;margin:2px 0 0;font-size:10px;font-weight:800}.on-demand-booking .od-header-avatar{background:linear-gradient(135deg,#d4f0ef,#b3e0dd);border:1px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.1)}.on-demand-booking .od-header-avatar img{object-fit:cover;width:100%;height:100%}@media (min-width:1024px){.on-demand-booking .od-header-avatar{display:none}}.on-demand-booking .od-header-avatar-placeholder ion-icon{color:#0d6d78;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));font-size:28px}.on-demand-booking .od-content{--background:var(--shph-bg-page)}.on-demand-booking .od-step-wrap{flex-direction:column;height:100%;min-height:100%;display:flex}.on-demand-booking .od-scroll-area{padding:16px 16px 130px}.on-demand-booking .od-hero-card{background:linear-gradient(135deg,#eef2ff,rgba(255,241,242,.6));border:1px solid rgba(226,232,240,.8);border-radius:24px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 14px;display:flex;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}body.dark .on-demand-booking .od-hero-card,:root.ion-palette-dark .on-demand-booking .od-hero-card,:root[data-theme=dark] .on-demand-booking .od-hero-card{border-color:var(--shph-border);background:linear-gradient(135deg,#262640,rgba(58,42,48,.6))}.on-demand-booking .od-hero-card__text{max-width:65%}.on-demand-booking .od-hero-card__badge{background:var(--shph-accent,#0d6d78);color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:6px;padding:2px 8px;font-size:8px;font-weight:900;display:inline-block}.on-demand-booking .od-hero-card__title{color:var(--shph-text-heading,#0f172a);margin:6px 0 0;font-size:16px;font-weight:900}.on-demand-booking .od-hero-card__sub{color:var(--shph-text-secondary);margin:4px 0 0;font-size:11px;font-weight:500;line-height:1.5}.on-demand-booking .od-hero-card__icon{flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.on-demand-booking .od-hero-card__icon ion-icon{color:var(--shph-text-heading,#475569);filter:drop-shadow(0 4px 6px rgba(0,0,0,.1));font-size:30px}.on-demand-booking .od-section{margin-bottom:16px}.on-demand-booking .od-section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--shph-text-secondary);margin:0 0 8px;font-size:12px;font-weight:900}.on-demand-booking .od-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.on-demand-booking .od-section-edit{color:var(--shph-accent-text,#0d6d78);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;font-size:10px;font-weight:900}.on-demand-booking .od-radio-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);cursor:pointer;text-align:left;border-radius:20px;justify-content:space-between;align-items:flex-start;gap:10px;width:100%;margin-bottom:8px;padding:12px 14px;transition:transform .15s,border-color .2s;display:flex;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.03)}.on-demand-booking .od-radio-card:active{transform:scale(.99)}.on-demand-booking .od-radio-card--active{border:2px solid var(--shph-accent,#0d6d78);background:var(--shph-bg-primary)}.on-demand-booking .od-service-error{text-align:center;color:var(--ion-color-medium);padding:16px}.on-demand-booking .od-service-retry{border:1px solid var(--ion-color-primary);color:var(--shph-primary-text);background:0 0;border-radius:8px;margin-top:8px;padding:8px 16px;font-weight:600}.on-demand-booking .od-radio-card__body{flex:1;gap:10px;min-width:0;display:flex}.on-demand-booking .od-radio-card__icon{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.on-demand-booking .od-radio-card--active .od-radio-card__icon{background:#e8f8f7;border-color:#d4f0ef}.on-demand-booking .od-radio-card__icon ion-icon{color:var(--shph-text-secondary);font-size:16px}.on-demand-booking .od-radio-card--active .od-radio-card__icon ion-icon{color:var(--shph-accent,#0d6d78)}.on-demand-booking .od-radio-card__info{flex:1;min-width:0}.on-demand-booking .od-radio-card__title-row{align-items:center;gap:8px;display:flex}.on-demand-booking .od-radio-card__title{color:var(--shph-text-heading,#0f172a);margin:0;font-size:14px;font-weight:900}.on-demand-booking .od-radio-card__badge{text-transform:uppercase;color:#0d6d78;background:#d4f0ef;border-radius:4px;padding:2px 6px;font-size:8px;font-weight:900}.on-demand-booking .od-radio-card__desc{color:var(--shph-text-secondary);margin:2px 0 0;font-size:11px;font-weight:500;line-height:1.4}.on-demand-booking .od-radio-card__eta{color:#1e293b;margin-top:4px;font-size:11px;font-weight:700;display:inline-block}.on-demand-booking .od-radio-card__eta-value{color:var(--shph-accent-text,#0d6d78)}.on-demand-booking .od-radio-card__price{text-align:right;flex-shrink:0;padding-right:24px}.on-demand-booking .od-radio-card__strike{color:var(--shph-text-secondary);font-size:12px;font-weight:700;text-decoration:line-through;display:block}.on-demand-booking .od-radio-card__price-main{color:var(--shph-text-heading,#0f172a);font-size:14px;font-weight:800}.on-demand-booking .od-radio-card--active .od-radio-card__price-main{color:var(--shph-accent-text,#0d6d78)}.on-demand-booking .od-radio-card__price-unit{color:var(--shph-text-secondary);font-size:10px;font-weight:700}.on-demand-booking .od-radio-card__check{background:var(--shph-accent,#0d6d78);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.on-demand-booking .od-radio-card__check ion-icon{color:#fff;font-size:12px}.on-demand-booking .od-radio-card__check--empty{border:2px solid var(--shph-input-border);background:0 0}.on-demand-booking .od-show-more{width:100%;color:var(--shph-text-secondary,#475569);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:rgba(238,242,255,.3);border:1px dashed rgba(148,163,184,.4);border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:12px;font-weight:900;transition:background .2s;display:flex}.on-demand-booking .od-show-more ion-icon{font-size:10px}.on-demand-booking .od-loc-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:20px;gap:10px;padding:12px 14px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.03)}.on-demand-booking .od-loc-card__icon{background:#fef3c7;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.on-demand-booking .od-loc-card__icon ion-icon{color:var(--shph-warning,#d97706);font-size:14px}.on-demand-booking .od-loc-card__body{flex:1;min-width:0}.on-demand-booking .od-loc-card__top{justify-content:space-between;align-items:center;display:flex}.on-demand-booking .od-loc-card__name{color:var(--shph-text-heading,#0f172a);margin:0;font-size:12px;font-weight:700}.on-demand-booking .od-loc-card__change{color:var(--shph-accent-text,#0d6d78);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;font-size:10px;font-weight:900}.on-demand-booking .od-loc-card__addr{color:var(--shph-text-secondary);margin:2px 0 0;font-size:11px;font-weight:500}.on-demand-booking .od-loc-card__input{background:var(--shph-bg-primary);width:100%;color:var(--shph-text-heading,#0f172a);box-sizing:border-box;border:1px solid rgba(226,232,240,.8);border-radius:12px;outline:none;margin-top:8px;padding:8px 12px;font-size:16px;font-weight:600}.on-demand-booking .od-loc-card__input:focus{border-color:var(--shph-accent,#49b8c4)}.on-demand-booking .od-loc-card__input::placeholder{color:var(--shph-text-secondary)}.od-location-picker .od-locpick{--padding-start:20px;--padding-end:20px;--padding-top:8px;--padding-bottom:24px}.od-location-picker .od-locpick__handle{background:var(--shph-border);border-radius:2px;width:40px;height:4px;margin:0 auto 12px}.od-location-picker .od-locpick__title{color:var(--shph-text-heading);margin:0 0 16px;font-size:17px;font-weight:700}.od-location-picker .od-locpick__action,.od-location-picker .od-locpick__addr{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);text-align:left;width:100%;color:var(--shph-text-primary);font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.od-location-picker .od-locpick__action ion-icon,.od-location-picker .od-locpick__addr ion-icon{color:var(--shph-primary,#63cbd6);flex-shrink:0;font-size:20px}.od-location-picker .od-locpick__action span{font-weight:600}.od-location-picker .od-locpick__saved-head{text-transform:uppercase;letter-spacing:.05em;color:var(--shph-text-secondary);margin:18px 0 10px;font-size:12px;font-weight:700}.od-location-picker .od-locpick__empty{color:var(--shph-text-secondary);padding:4px 2px 8px;font-size:13px}.od-location-picker .od-locpick__addr-body{flex-direction:column;min-width:0;display:flex}.od-location-picker .od-locpick__addr-label{font-size:14px;font-weight:600}.od-location-picker .od-locpick__addr-detail{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.od-payment-picker .od-paypick{--padding-start:20px;--padding-end:20px;--padding-top:8px;--padding-bottom:24px}.od-payment-picker .od-paypick__handle{background:var(--shph-border);border-radius:2px;width:40px;height:4px;margin:0 auto 12px}.od-payment-picker .od-paypick__title{color:var(--shph-text-heading);margin:0 0 16px;font-size:17px;font-weight:700}.od-payment-picker .od-paypick__method,.od-payment-picker .od-paypick__add{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);text-align:left;width:100%;color:var(--shph-text-primary);font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.od-payment-picker .od-paypick__method ion-icon,.od-payment-picker .od-paypick__add ion-icon{color:var(--shph-primary,#63cbd6);flex-shrink:0;font-size:20px}.od-payment-picker .od-paypick__method-emoji{text-align:center;flex-shrink:0;width:20px;font-size:20px}.od-payment-picker .od-paypick__method-body{flex-direction:column;flex:1;min-width:0;display:flex}.od-payment-picker .od-paypick__method-label{font-size:14px;font-weight:600}.od-payment-picker .od-paypick__method-detail{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.od-payment-picker .od-paypick__check{color:var(--shph-primary,#63cbd6);flex-shrink:0;margin-left:auto}.od-payment-picker .od-paypick__saved-head{text-transform:uppercase;letter-spacing:.05em;color:var(--shph-text-secondary);margin:18px 0 10px;font-size:12px;font-weight:700}.od-payment-picker .od-paypick__empty{color:var(--shph-text-secondary);padding:4px 2px 8px;font-size:13px}.od-payment-picker .od-paypick__add{color:var(--shph-primary,#63cbd6)}.od-payment-picker .od-paypick__add span{font-weight:600}.on-demand-booking .od-review-pay-emoji{font-size:20px;line-height:1}.on-demand-booking .od-mode-segment{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:20px;gap:6px;padding:8px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.03)}.on-demand-booking .od-mode-segment__btn{color:var(--shph-text-secondary);cursor:pointer;background:0 0;border:1px solid transparent;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:700;transition:background .2s;display:flex}.on-demand-booking .od-mode-segment__btn--active{background:var(--shph-bg-primary);color:var(--shph-text-heading,#0f172a);border-color:rgba(226,232,240,.8);box-shadow:0 1px 3px rgba(0,0,0,.04)}.on-demand-booking .od-mode-segment__btn ion-icon{font-size:16px}.on-demand-booking .od-mode-subtitle{color:var(--shph-text-secondary);margin:10px 2px 0;font-size:12px;font-weight:600}.on-demand-booking .od-schedule-field{margin-top:12px}.on-demand-booking .od-pay-segment{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:20px;gap:6px;padding:8px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.03)}.on-demand-booking .od-pay-segment__btn{color:var(--shph-text-secondary);cursor:pointer;background:0 0;border:1px solid transparent;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:700;transition:background .2s;display:flex}.on-demand-booking .od-pay-segment__btn--active{background:var(--shph-bg-primary);color:var(--shph-text-heading,#0f172a);border-color:rgba(226,232,240,.8);box-shadow:0 1px 3px rgba(0,0,0,.04)}.on-demand-booking .od-pay-segment__btn ion-icon{font-size:16px}.on-demand-booking .od-pay-segment__btn--cash ion-icon{color:#059669}.on-demand-booking .od-pay-segment__btn--ewallet ion-icon{color:#3b82f6}.on-demand-booking .ai-diagnosis{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:16px;margin-bottom:16px;padding:14px}.on-demand-booking .ai-diagnosis__label{color:var(--shph-text-secondary);margin:0 0 6px;font-size:12px;font-weight:700}.on-demand-booking .ai-diagnosis__desc{color:var(--shph-text-primary,#1e293b);margin:0 0 6px;font-size:13px;line-height:1.5}.on-demand-booking .ai-diagnosis__parts{color:var(--shph-text-secondary);margin:0 0 6px;font-size:12px}.on-demand-booking .ai-diagnosis__price{color:var(--shph-text-heading,#0f172a);margin:0 0 8px;font-size:13px;font-weight:700}.on-demand-booking .ai-diagnosis__actions{gap:8px;display:flex}.on-demand-booking .error-banner{background:rgba(var(--ion-color-danger-rgb), .08);color:var(--ion-color-danger);border-radius:12px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.on-demand-booking .od-bottom-panel{background:var(--shph-bg-primary);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--shph-border);padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px));z-index:100;border-radius:24px 24px 0 0;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px rgba(0,0,0,.06)}.on-demand-booking .od-bottom-panel__summary{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.on-demand-booking .od-bottom-panel__summary-left{align-items:center;gap:6px;display:flex}.on-demand-booking .od-bottom-panel__summary-left ion-icon{color:var(--shph-text-secondary);font-size:14px}.on-demand-booking .od-bottom-panel__summary-left span{color:var(--shph-text-secondary);font-size:12px;font-weight:700}.on-demand-booking .od-bottom-panel__price{color:var(--shph-text-heading,#0f172a);font-size:18px;font-weight:900}.on-demand-booking .od-bottom-panel__cta{background:linear-gradient(to right, var(--shph-accent,#0d6d78), var(--shph-accent-warm,#49b8c4));color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:14px;font-weight:900;transition:opacity .2s,transform .15s;display:flex;box-shadow:0 4px 12px rgba(13,109,120,.2)}.on-demand-booking .od-bottom-panel__cta:active{transform:scale(.98)}.on-demand-booking .od-bottom-panel__cta:disabled{opacity:.6}.on-demand-booking .od-bottom-panel__cta ion-icon{font-size:12px}.on-demand-booking .od-bottom-back{width:100%;color:var(--ion-color-medium);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px;font-weight:600}.on-demand-booking .od-alert-banner{background:var(--shph-warm-amber-light);border:1px solid var(--shph-border);border-radius:14px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:10px 12px;display:flex}.on-demand-booking .od-alert-banner__icon{font-size:16px;line-height:1.5}.on-demand-booking .od-alert-banner__text{color:var(--shph-text-secondary);margin:0;font-size:11px;font-weight:600;line-height:1.5}.on-demand-booking .od-review-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:20px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.03)}.on-demand-booking .od-review-card__left{align-items:center;gap:12px;min-width:0;display:flex}.on-demand-booking .od-review-card__icon{background:#d4f0ef;border:1px solid #b3e0dd;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.on-demand-booking .od-review-card__icon ion-icon{color:#0d6d78;font-size:18px}.on-demand-booking .od-review-card__icon--pay{background:#dbeafe;border-color:#bfdbfe}.on-demand-booking .od-review-card__icon--pay ion-icon{color:#3b82f6}.on-demand-booking .od-review-card__title{color:var(--shph-text-heading,#0f172a);margin:0;font-size:14px;font-weight:900}.on-demand-booking .od-review-card__sub{color:var(--shph-text-secondary);margin:2px 0 0;font-size:11px;font-weight:500}.on-demand-booking .od-review-card__price{text-align:right;flex-shrink:0}.on-demand-booking .od-review-card__price-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700;display:block}.on-demand-booking .od-review-card__price-value{color:var(--shph-text-heading,#0f172a);font-size:14px;font-weight:900}.on-demand-booking .od-review-card__selected-tag{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;background:rgba(241,245,249,.8);border-radius:6px;padding:4px 8px;font-size:10px;font-weight:800}.on-demand-booking .od-review-card--loc{flex-direction:column;gap:10px}.on-demand-booking .od-review-loc{align-items:flex-start;gap:12px;display:flex}.on-demand-booking .od-review-loc__icon{background:#fef3c7;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.on-demand-booking .od-review-loc__icon ion-icon{color:#49b8c4;font-size:14px}.on-demand-booking .od-review-loc__name{color:var(--shph-text-heading,#0f172a);margin:0;font-size:12px;font-weight:700}.on-demand-booking .od-review-loc__addr{color:var(--shph-text-secondary);margin:2px 0 0;font-size:11px;font-weight:500}.on-demand-booking .od-review-building{color:#475569;box-sizing:border-box;background:#f8fafc;border-top:1px solid #f1f5f9;border-radius:12px;align-items:center;gap:8px;width:100%;margin-top:4px;padding:12px 12px 8px;font-size:11px;font-weight:600;display:flex}.on-demand-booking .od-review-card--notes{flex-direction:column;gap:12px}.on-demand-booking .od-notes-textarea{background:var(--shph-bg-page);border:1px solid var(--shph-border);width:100%;color:var(--shph-text-heading,#0f172a);resize:none;box-sizing:border-box;border-radius:14px;outline:none;min-height:80px;padding:10px 12px;font-family:inherit;font-size:16px;font-weight:500;line-height:1.6}.on-demand-booking .od-notes-textarea:focus{border-color:var(--shph-accent-text,#49b8c4)}.on-demand-booking .od-notes-textarea::placeholder{color:var(--shph-text-secondary)}.on-demand-booking .od-photo-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.on-demand-booking .od-photo-add{background:var(--shph-bg-secondary);border:1px dashed var(--shph-border);cursor:pointer;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;padding:0;font-family:inherit;transition:background .2s,border-color .2s;display:flex}.on-demand-booking .od-photo-add ion-icon{color:var(--shph-text-secondary);font-size:16px}.on-demand-booking .od-photo-add span{color:var(--shph-text-secondary);margin-top:4px;font-size:9px;font-weight:700}.on-demand-booking .od-photo-preview{border:1px solid var(--shph-border);border-radius:12px;width:56px;height:56px;position:relative;overflow:hidden}.on-demand-booking .od-photo-preview img{object-fit:cover;width:100%;height:100%}.on-demand-booking .od-photo-remove{color:#fff;cursor:pointer;background:rgba(15,23,42,.8);border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:-4px;right:-4px}.on-demand-booking .od-photo-remove ion-icon{font-size:10px}.on-demand-booking .voucher-section{margin:12px 0 4px}.on-demand-booking .voucher-title{margin:0 0 8px;font-size:14px;font-weight:700}.on-demand-booking .voucher-row{align-items:center;gap:8px;display:flex}.on-demand-booking .voucher-input{--padding-start:12px;--padding-end:12px;--background:var(--shph-bg-primary);border:1px solid var(--shph-input-border);border-radius:var(--shph-border-radius-md);flex:1}.on-demand-booking .voucher-error{color:var(--ion-color-danger);margin:6px 0 0;font-size:13px}.on-demand-booking .voucher-success{color:var(--ion-color-success);align-items:center;gap:6px;margin:6px 0 0;font-size:13px;display:flex}.on-demand-booking .od-search-main{background:var(--shph-bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.on-demand-booking .od-search-main .explore-map-view{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes od-map-radius-pulse{0%,to{fill-opacity:.4;stroke-opacity:.9;stroke-width:2.5px}50%{fill-opacity:.15;stroke-opacity:.45;stroke-width:3.5px}}.on-demand-booking .od-map-radius-pulse{stroke-linecap:round;animation:2.5s ease-in-out infinite od-map-radius-pulse}.on-demand-booking .od-status-card{z-index:15;background:var(--shph-bg-primary);backdrop-filter:blur(12px);border:1px solid var(--shph-border);border-radius:16px;justify-content:space-between;align-items:center;padding:12px;transition:all .5s;display:flex;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 4px 12px rgba(0,0,0,.06)}.on-demand-booking .od-status-card--expanded{background:rgba(254,243,199,.95);border-color:#fde68a}.on-demand-booking .od-status-card__left{align-items:center;gap:10px;display:flex}.on-demand-booking .od-status-card__icon{color:#0d6d78;background:#e8f8f7;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;animation:1s infinite od-bounce;display:flex}.on-demand-booking .od-status-card--expanded .od-status-card__icon{color:var(--shph-on-primary);background:#49b8c4}@keyframes od-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.on-demand-booking .od-status-card__title{color:var(--shph-text-primary);margin:0;font-size:12px;font-weight:800}.on-demand-booking .od-status-card--expanded .od-status-card__title{color:#78350f}.on-demand-booking .od-status-card__desc{color:var(--shph-text-secondary);margin:2px 0 0;font-size:10px;font-weight:600}.on-demand-booking .od-status-card--expanded .od-status-card__desc{color:#92400e}.on-demand-booking .od-status-card__hint{color:var(--shph-primary,#63cbd6);margin:3px 0 0;font-size:10px;font-weight:700}.on-demand-booking .od-status-card__timer{border-left:1px solid var(--shph-border);flex-direction:column;flex-shrink:0;align-items:center;padding-left:12px;display:flex}.on-demand-booking .od-status-card__countdown{color:var(--shph-accent-text,#0d6d78);font-size:16px;font-weight:900;line-height:1}.on-demand-booking .od-status-card--expanded .od-status-card__countdown{color:#d97706}.on-demand-booking .od-status-card__timeout-label{text-transform:uppercase;letter-spacing:.08em;color:var(--shph-text-secondary);margin-top:4px;font-size:8px;font-weight:900}.on-demand-booking .od-search-bottom{background:var(--shph-bg-primary);backdrop-filter:blur(12px);border-top:1px solid var(--shph-border);padding:12px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;flex-direction:column;gap:10px;display:flex;box-shadow:0 -4px 20px rgba(0,0,0,.06)}.on-demand-booking .od-search-bottom__handle{background:var(--shph-border);border-radius:999px;width:40px;height:6px;margin:0 auto 4px}.on-demand-booking .od-search-bottom__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-size:10px;font-weight:900;display:block}.on-demand-booking .od-search-bottom__row{justify-content:space-between;align-items:center;display:flex}.on-demand-booking .od-search-bottom__left{align-items:center;gap:12px;display:flex}.on-demand-booking .od-search-bottom__icon{color:#0d6d78;background:#e8f8f7;border:1px solid #d4f0ef;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.on-demand-booking .od-search-bottom__title{color:var(--shph-text-primary);margin:0;font-size:12px;font-weight:900}.on-demand-booking .od-search-bottom__eta{color:var(--shph-text-secondary);margin:2px 0 0;font-size:10px;font-weight:700}.on-demand-booking .od-search-bottom__price{text-align:right}.on-demand-booking .od-search-bottom__price-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700;display:block}.on-demand-booking .od-search-bottom__price-value{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:16px;font-weight:900;display:block;overflow:hidden}.on-demand-booking .od-search-bottom__cancel{background:var(--shph-bg-secondary);width:100%;color:var(--shph-text-secondary);cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:6px;padding:14px;font-size:12px;font-weight:900;transition:all .2s;display:flex}.on-demand-booking .od-search-bottom__cancel:hover{color:#0d6d78;background:#e8f8f7}.on-demand-booking .od-search-bottom__cancel ion-icon{font-size:14px}.on-demand-booking .od-timeout-main{background:var(--shph-bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:0 24px;display:flex;position:relative;overflow:hidden}.on-demand-booking .od-timeout-grid{opacity:.1;pointer-events:none;background-image:linear-gradient(90deg,#475569 1px,transparent 1px),linear-gradient(#475569 1px,transparent 1px);background-size:30px 30px;position:absolute;top:0;bottom:0;left:0;right:0}.on-demand-booking .od-timeout-radar{justify-content:center;align-items:center;width:200px;height:200px;margin-bottom:16px;display:flex;position:relative}.on-demand-booking .od-timeout-radar__outer{border:1px solid var(--shph-border);background:rgba(241,245,249,.4);border-radius:50%;width:176px;height:176px;position:absolute}.on-demand-booking .od-timeout-radar__inner{border:1px dashed rgba(226,232,240,.6);border-radius:50%;justify-content:center;align-items:center;width:128px;height:128px;display:flex;position:absolute}.on-demand-booking .od-timeout-radar__center{z-index:10;color:#fff;background:linear-gradient(to top right,#334155,#1e293b);border:2px solid #fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative;box-shadow:0 8px 16px rgba(0,0,0,.15)}.on-demand-booking .od-timeout-radar__center ion-icon{font-size:18px}.on-demand-booking .od-timeout-text{text-align:center;z-index:10;max-width:320px}.on-demand-booking .od-timeout-title{color:var(--shph-text-primary);margin:0 0 8px;font-size:17px;font-weight:900}.on-demand-booking .od-timeout-desc{color:var(--shph-text-secondary);margin:0;font-size:12px;font-weight:500;line-height:1.6}.on-demand-booking .od-timeout-desc strong{color:var(--shph-text-primary)}.on-demand-booking .od-timeout-nearest{color:var(--shph-text-secondary);margin:8px 0 0;font-size:12px;font-weight:500;line-height:1.6}.on-demand-booking .od-timeout-nearest strong{color:var(--shph-primary,#63cbd6)}.on-demand-booking .od-timeout-tip{z-index:10;background:rgba(238,242,255,.6);border:1px solid #c7d2fe;border-radius:14px;align-items:flex-start;gap:10px;width:100%;margin-top:16px;padding:12px;display:flex}.on-demand-booking .od-timeout-tip ion-icon{color:#6366f1;flex-shrink:0;margin-top:2px;font-size:16px}.on-demand-booking .od-timeout-tip p{color:#312e81;margin:0;font-size:11px;font-weight:600;line-height:1.5}.on-demand-booking .od-timeout-tip p strong{font-weight:800}.on-demand-booking .od-timeout-actions{background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:8px;display:flex;box-shadow:0 -4px 20px rgba(0,0,0,.06)}.on-demand-booking .od-timeout-actions__primary{background:var(--shph-accent-text,#0d6d78);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:13px;font-weight:900;transition:all .2s;display:flex;box-shadow:0 4px 12px rgba(225,29,72,.2)}.on-demand-booking .od-timeout-actions__primary:hover{opacity:.9}.on-demand-booking .od-timeout-actions__primary ion-icon{font-size:12px}.on-demand-booking .od-timeout-actions__tertiary{width:100%;color:var(--shph-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;padding:8px;font-size:12px;font-weight:700;transition:all .2s;display:flex}.on-demand-booking .od-timeout-actions__tertiary:hover{background:var(--shph-bg-secondary);color:var(--shph-text-primary)}.on-demand-booking .od-accepted-main{background:var(--shph-bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.on-demand-booking .od-accepted-map{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.on-demand-booking .od-accepted-map .provider-map{width:100%;height:100%}@keyframes od-pulse{0%,to{opacity:1}50%{opacity:.5}}.on-demand-booking .od-accepted-banner{z-index:15;backdrop-filter:blur(12px);background:rgba(255,255,255,.95);border:1px solid #a7f3d0;border-radius:20px;align-items:center;gap:14px;padding:14px;display:flex;position:absolute;top:24px;left:20px;right:20px;box-shadow:0 4px 12px rgba(0,0,0,.06)}body.dark .on-demand-booking .od-accepted-banner,:root.ion-palette-dark .on-demand-booking .od-accepted-banner,:root[data-theme=dark] .on-demand-booking .od-accepted-banner{background:rgba(30,30,46,.95)}.on-demand-booking .od-accepted-banner__icon{color:#059669;background:#ecfdf5;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.on-demand-booking .od-accepted-banner__icon ion-icon{font-size:14px}.on-demand-booking .od-accepted-banner__title{color:var(--shph-text-primary);margin:0;font-size:12px;font-weight:700}.on-demand-booking .od-accepted-banner__desc{color:var(--shph-text-secondary);margin:2px 0 0;font-size:10px;font-weight:600}.on-demand-booking .od-accepted-bottom{background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);border-radius:32px 32px 0 0;flex-direction:column;gap:16px;padding:16px 20px 24px;display:flex;box-shadow:0 -8px 24px rgba(0,0,0,.08)}.on-demand-booking .od-accepted-bottom__handle{background:#e2e8f0;border-radius:999px;width:40px;height:6px;margin:0 auto 4px}.on-demand-booking .od-accepted-profile{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:16px;justify-content:space-between;align-items:center;padding:12px;display:flex}.on-demand-booking .od-accepted-profile__left{align-items:center;gap:12px;display:flex}.on-demand-booking .od-accepted-profile__avatar{object-fit:cover;border:1px solid #fff;border-radius:12px;flex-shrink:0;width:48px;height:48px;box-shadow:0 2px 4px rgba(0,0,0,.08)}.on-demand-booking .od-accepted-profile__name-row{align-items:center;gap:6px;display:flex}.on-demand-booking .od-accepted-profile__name{color:var(--shph-text-primary);margin:0;font-size:14px;font-weight:900}.on-demand-booking .od-accepted-profile__badge{color:#065f46;text-transform:uppercase;background:#d1fae5;border-radius:4px;padding:2px 6px;font-size:8px;font-weight:900}.on-demand-booking .od-accepted-profile__meta{align-items:center;gap:8px;margin-top:2px;display:flex}.on-demand-booking .od-accepted-profile__rating{color:#49b8c4;align-items:center;gap:2px;font-size:10px;display:flex}.on-demand-booking .od-accepted-profile__rating ion-icon{font-size:10px}.on-demand-booking .od-accepted-profile__rating span{color:var(--shph-text-primary);font-weight:900}.on-demand-booking .od-accepted-profile__dot{color:#cbd5e1;font-size:12px}.on-demand-booking .od-accepted-profile__status{color:var(--shph-text-secondary);font-size:10px;font-weight:600}.on-demand-booking .od-accepted-profile__actions{align-items:center;gap:8px;display:flex}.on-demand-booking .od-accepted-profile__btn{border:1px solid var(--shph-border);background:var(--shph-bg-primary);width:36px;height:36px;color:var(--shph-text-primary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:all .2s;display:flex}.on-demand-booking .od-accepted-profile__btn ion-icon{font-size:16px}.on-demand-booking .od-accepted-profile__btn--chat:hover{background:var(--shph-bg-secondary)}.on-demand-booking .od-accepted-profile__btn--call{color:#fff;background:#0d6d78;border-color:#0d6d78}.on-demand-booking .od-accepted-profile__btn--call:hover{background:#0d6d78}.on-demand-booking .od-accepted-pricing{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.on-demand-booking .od-accepted-pricing__left,.on-demand-booking .od-accepted-pricing__right{flex-direction:column;gap:2px;display:flex}.on-demand-booking .od-accepted-pricing__right{text-align:right}.on-demand-booking .od-accepted-pricing__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:900}.on-demand-booking .od-accepted-pricing__value{color:var(--shph-text-primary);font-size:12px;font-weight:900}.on-demand-booking .od-accepted-pricing__amount{color:#059669;font-size:16px;font-weight:900}.on-demand-booking .od-accepted-cancel-row{color:var(--shph-text-secondary);border-top:1px solid var(--shph-border);justify-content:space-between;align-items:center;padding-top:8px;font-size:10px;font-weight:700;display:flex}.on-demand-booking .od-accepted-cancel-row__btn{color:var(--shph-accent-text,#0d6d78);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;font-weight:900}.on-demand-booking .od-accepted-cancel-row__btn:hover{text-decoration:underline}.on-demand-booking .bids-wrap{padding:12px 16px}.on-demand-booking .bids-header{text-align:center;margin-bottom:16px}.on-demand-booking .bids-list{flex-direction:column;gap:12px;display:flex}.on-demand-booking .bid-card{background:var(--shph-bg-primary);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-md);padding:12px 14px}.on-demand-booking .bid-provider{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.on-demand-booking .bid-avatar{object-fit:cover;border-radius:50%;width:42px;height:42px}.on-demand-booking .bid-info{flex-direction:column;flex:1;display:flex}.on-demand-booking .bid-info strong{font-size:14px;font-weight:600}.on-demand-booking .bid-info span{color:var(--ion-color-medium);font-size:12px}.on-demand-booking .bid-meta{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.on-demand-booking .bid-pricing{background:var(--ion-color-light);border-radius:var(--shph-border-radius-md);margin-bottom:10px;padding:10px 12px}.on-demand-booking .od-arrived-main{background:var(--shph-bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.on-demand-booking .od-arrived-grid{opacity:.25;pointer-events:none;background-image:linear-gradient(90deg,#10b981 1px,transparent 1px),linear-gradient(#10b981 1px,transparent 1px);background-size:30px 30px;position:absolute;top:0;bottom:0;left:0;right:0}.on-demand-booking .od-arrived-nodes{z-index:10;flex-direction:column;align-items:center;display:flex;position:relative}.on-demand-booking .od-arrived-nodes__card{background:var(--shph-bg-primary);border:1px solid #d1fae5;border-radius:28px;align-items:center;gap:-16px;padding:16px;display:flex;box-shadow:0 10px 25px rgba(0,0,0,.1)}.on-demand-booking .od-arrived-nodes__user{color:#fff;z-index:10;background:#0f172a;border:2px solid #fff;border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.on-demand-booking .od-arrived-nodes__user ion-icon{font-size:18px}.on-demand-booking .od-arrived-nodes__provider{color:#fff;z-index:20;background:linear-gradient(to top right,#10b981,#14b8a6);border:2px solid #fff;border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;margin-left:-16px;animation:1.5s ease-in-out infinite od-bounce;display:flex}.on-demand-booking .od-arrived-nodes__provider ion-icon{font-size:18px}.on-demand-booking .od-arrived-nodes__badge{color:#fff;letter-spacing:.025em;text-transform:uppercase;background:#059669;border:1px solid #10b981;border-radius:999px;align-items:center;gap:6px;margin-top:16px;padding:4px 12px;font-size:10px;font-weight:900;display:flex;box-shadow:0 4px 6px rgba(0,0,0,.15)}.on-demand-booking .od-arrived-nodes__badge-dot{background:var(--shph-bg-primary);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite od-ping}.on-demand-booking .od-arrived-banner{z-index:15;backdrop-filter:blur(8px);background:rgba(255,255,255,.95);border:1px solid #a7f3d0;border-radius:20px;align-items:center;gap:14px;padding:14px;display:flex;position:absolute;top:24px;left:20px;right:20px;box-shadow:0 4px 6px rgba(0,0,0,.08)}body.dark .on-demand-booking .od-arrived-banner,:root.ion-palette-dark .on-demand-booking .od-arrived-banner,:root[data-theme=dark] .on-demand-booking .od-arrived-banner{background:rgba(30,30,46,.95)}.on-demand-booking .od-arrived-banner__icon{color:#059669;background:#d1fae5;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.on-demand-booking .od-arrived-banner__icon ion-icon{font-size:14px}.on-demand-booking .od-arrived-banner__title{color:var(--shph-text-primary);margin:0;font-size:12px;font-weight:800}.on-demand-booking .od-arrived-banner__desc{color:var(--shph-text-secondary);margin:2px 0 0;font-size:10px;font-weight:600}.on-demand-booking .od-arrived-bottom{background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);z-index:20;border-radius:32px 32px 0 0;flex-direction:column;gap:16px;padding:16px 20px 24px;display:flex;box-shadow:0 -10px 30px rgba(0,0,0,.1)}.on-demand-booking .od-arrived-bottom__handle{background:#e2e8f0;border-radius:999px;width:40px;height:6px;margin:0 auto 2px}.on-demand-booking .od-arrived-profile{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:16px;justify-content:space-between;align-items:center;padding:12px;display:flex}.on-demand-booking .od-arrived-profile__left{align-items:center;gap:12px;display:flex}.on-demand-booking .od-arrived-profile__avatar{object-fit:cover;border:1px solid #fff;border-radius:12px;flex-shrink:0;width:48px;height:48px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.on-demand-booking .od-arrived-profile__info{flex:1;min-width:0}.on-demand-booking .od-arrived-profile__name-row{align-items:center;gap:6px;display:flex}.on-demand-booking .od-arrived-profile__name{color:var(--shph-text-primary);margin:0;font-size:14px;font-weight:900}.on-demand-booking .od-arrived-profile__badge{color:#fff;text-transform:uppercase;background:#059669;border-radius:4px;padding:2px 6px;font-size:8px;font-weight:900}.on-demand-booking .od-arrived-profile__meta{align-items:center;gap:8px;margin-top:2px;display:flex}.on-demand-booking .od-arrived-profile__rating{color:#49b8c4;align-items:center;gap:2px;font-size:10px;display:flex}.on-demand-booking .od-arrived-profile__rating ion-icon{font-size:10px}.on-demand-booking .od-arrived-profile__dot{color:#cbd5e1;font-size:12px}.on-demand-booking .od-arrived-profile__status{color:#059669;text-transform:uppercase;letter-spacing:.025em;font-size:10px;font-weight:800}.on-demand-booking .od-arrived-profile__actions{align-items:center;gap:8px;display:flex}.on-demand-booking .od-arrived-profile__btn{border:1px solid var(--shph-border);background:var(--shph-bg-primary);width:36px;height:36px;color:var(--shph-text-primary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:all .2s;display:flex}.on-demand-booking .od-arrived-profile__btn ion-icon{font-size:16px}.on-demand-booking .od-arrived-profile__btn--chat:hover{background:var(--shph-bg-secondary)}.on-demand-booking .od-arrived-profile__btn--call{color:#fff;background:#0d6d78;border-color:#0d6d78}.on-demand-booking .od-arrived-profile__btn--call:hover{background:#0d6d78}.on-demand-booking .od-arrived-pin{text-align:center;background:rgba(238,242,255,.5);border:1px solid rgba(199,210,254,.8);border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:14px;display:flex}.on-demand-booking .od-arrived-pin__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:900}.on-demand-booking .od-arrived-pin__digits{letter-spacing:10px;color:var(--shph-text-primary);margin:4px 0;font-size:32px;font-weight:900}.on-demand-booking .od-arrived-pin__hint{color:var(--shph-text-secondary);max-width:280px;margin:0;font-size:10px;font-weight:700;line-height:1.4}.on-demand-booking .od-arrived-pricing{justify-content:space-between;align-items:center;padding:4px 4px 0;display:flex}.on-demand-booking .od-arrived-pricing__left,.on-demand-booking .od-arrived-pricing__right{flex-direction:column;gap:2px;display:flex}.on-demand-booking .od-arrived-pricing__right{text-align:right}.on-demand-booking .od-arrived-pricing__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-arrived-pricing__value{color:var(--shph-text-primary);font-size:12px;font-weight:900}.on-demand-booking .od-arrived-pricing__amount{color:#059669;font-size:16px;font-weight:900}.on-demand-booking .od-progress-main{background:var(--shph-bg-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:0 24px;display:flex;position:relative;overflow:hidden}.on-demand-booking .od-progress-main__bg{opacity:.05;pointer-events:none;background-image:radial-gradient(circle,#4f46e5 1px,transparent 1px);background-size:20px 20px;position:absolute;top:0;bottom:0;left:0;right:0}.on-demand-booking .od-progress-hub{justify-content:center;align-items:center;width:256px;height:256px;margin-bottom:16px;display:flex;position:relative}.on-demand-booking .od-progress-hub__glow{background:#eef2ff;border:1px solid rgba(224,231,255,.6);border-radius:50%;width:208px;height:208px;animation:2s ease-in-out infinite od-pulse;position:absolute}.on-demand-booking .od-progress-hub__ring{border:1px dashed rgba(199,210,254,.8);border-radius:50%;width:160px;height:160px;position:absolute}.on-demand-booking .od-progress-hub__icon{z-index:10;color:#fff;background:#4f46e5;border:2px solid #fff;border-radius:24px;justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative;box-shadow:0 10px 20px rgba(79,70,229,.2)}.on-demand-booking .od-progress-hub__icon ion-icon{font-size:24px;animation:8s linear infinite od-gear-rotate}.on-demand-booking .od-progress-timer{text-align:center;z-index:10}.on-demand-booking .od-progress-timer__label{text-transform:uppercase;letter-spacing:2px;color:var(--shph-text-secondary);font-size:10px;font-weight:900;display:block}.on-demand-booking .od-progress-timer__value{color:var(--shph-text-primary);letter-spacing:-.5px;font-variant-numeric:tabular-nums;margin:6px 0;font-size:30px;font-weight:900}.on-demand-booking .od-progress-timer__badge{background:#eef2ff;border:1px solid #e0e7ff;border-radius:999px;align-items:center;gap:6px;margin-top:4px;padding:4px 12px;display:inline-flex}.on-demand-booking .od-progress-timer__badge-dot{background:#6366f1;border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite od-ping}.on-demand-booking .od-progress-timer__badge span:last-child{color:#312e81;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:800}.on-demand-booking .od-progress-log{background:var(--shph-bg-primary);border:1px solid var(--shph-border);z-index:10;text-align:left;border-radius:16px;width:100%;margin-top:32px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}.on-demand-booking .od-progress-log__title{text-transform:uppercase;letter-spacing:.5px;color:var(--shph-text-secondary);margin-bottom:12px;font-size:9px;font-weight:900;display:block}.on-demand-booking .od-progress-log__item{align-items:flex-start;gap:12px;font-size:12px;display:flex}.on-demand-booking .od-progress-log__item+.od-progress-log__item{margin-top:14px}.on-demand-booking .od-progress-log__item--done{color:var(--shph-text-secondary);font-weight:600}.on-demand-booking .od-progress-log__item--done ion-icon{color:#10b981;margin-top:2px;font-size:11px}.on-demand-booking .od-progress-log__item--done .od-progress-log__text{color:var(--shph-text-secondary);text-decoration:line-through}.on-demand-booking .od-progress-log__item--active{color:var(--shph-text-primary);font-weight:700}.on-demand-booking .od-progress-log__item--active ion-icon{color:#4f46e5;margin-top:2px;font-size:11px;animation:1.5s ease-in-out infinite od-pulse}.on-demand-booking .od-progress-log__sub{color:var(--shph-text-secondary);margin-top:2px;font-size:9px;font-weight:600;display:block}.on-demand-booking .od-progress-bottom{background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);z-index:20;border-radius:32px 32px 0 0;flex-direction:column;gap:16px;padding:16px 20px 24px;display:flex;box-shadow:0 -10px 30px rgba(0,0,0,.1)}.on-demand-booking .od-progress-bottom__handle{background:#e2e8f0;border-radius:999px;width:40px;height:6px;margin:0 auto 2px}.on-demand-booking .od-progress-profile{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:16px;justify-content:space-between;align-items:center;padding:12px;display:flex}.on-demand-booking .od-progress-profile__left{align-items:center;gap:12px;display:flex}.on-demand-booking .od-progress-profile__avatar{object-fit:cover;border:1px solid #fff;border-radius:12px;flex-shrink:0;width:44px;height:44px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.on-demand-booking .od-progress-profile__info{flex:1;min-width:0}.on-demand-booking .od-progress-profile__name{color:var(--shph-text-primary);margin:0;font-size:12px;font-weight:900}.on-demand-booking .od-progress-profile__meta{color:var(--shph-text-secondary);align-items:center;gap:6px;margin-top:2px;font-size:10px;font-weight:600;display:flex}.on-demand-booking .od-progress-profile__meta ion-icon{color:#49b8c4;font-size:9px}.on-demand-booking .od-progress-profile__rating{color:var(--shph-text-primary);font-weight:700}.on-demand-booking .od-progress-profile__chat{border:1px solid var(--shph-border);background:var(--shph-bg-primary);width:36px;height:36px;color:var(--shph-text-primary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.on-demand-booking .od-progress-profile__chat ion-icon{font-size:16px}.on-demand-booking .od-progress-profile__chat:hover{background:var(--shph-bg-secondary)}.on-demand-booking .od-progress-pricing{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.on-demand-booking .od-progress-pricing__left,.on-demand-booking .od-progress-pricing__right{flex-direction:column;gap:2px;display:flex}.on-demand-booking .od-progress-pricing__right{text-align:right}.on-demand-booking .od-progress-pricing__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-progress-pricing__value{color:var(--shph-text-primary);align-items:center;gap:4px;font-size:12px;font-weight:900;display:flex}.on-demand-booking .od-progress-pricing__value ion-icon{color:var(--shph-text-secondary);font-size:10px}.on-demand-booking .od-progress-pricing__amount{color:#4f46e5;font-size:16px;font-weight:900}.on-demand-booking .od-progress-help{color:var(--shph-text-secondary);border-top:1px solid var(--shph-border);justify-content:space-between;align-items:center;padding-top:12px;font-size:10px;font-weight:700;display:flex}.on-demand-booking .od-progress-help__btn{color:var(--shph-accent-text,#0d6d78);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:0 0;border:none;font-size:10px;font-weight:900}.on-demand-booking .od-progress-help__btn:hover{text-decoration:underline}.on-demand-booking .od-completed-main{background:var(--shph-bg-primary);flex-direction:column;flex:1;gap:24px;padding:16px 24px;display:flex;overflow-y:auto}.on-demand-booking .od-completed-header{text-align:center;flex-direction:column;align-items:center;padding-top:8px;display:flex}.on-demand-booking .od-completed-header__icon{background:#d1fae5;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:16px;display:flex}.on-demand-booking .od-completed-header__icon ion-icon{color:#059669;font-size:30px}.on-demand-booking .od-completed-header__title{color:var(--shph-text-primary);letter-spacing:-.5px;margin:0;font-size:20px;font-weight:900}.on-demand-booking .od-completed-header__desc{color:var(--shph-text-secondary);max-width:240px;margin:4px 0 0;font-size:12px;font-weight:600}.on-demand-booking .od-completed-billing{background:var(--shph-bg-page);border:1px solid rgba(226,232,240,.6);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.on-demand-booking .od-completed-billing__row{justify-content:space-between;align-items:center;display:flex}.on-demand-booking .od-completed-billing__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-completed-billing__amount-row{align-items:center;gap:8px;display:flex}.on-demand-booking .od-completed-billing__badge{color:#92400e;text-transform:uppercase;background:#fef3c7;border-radius:6px;padding:2px 8px;font-size:9px;font-weight:900}.on-demand-booking .od-completed-billing__amount{color:var(--shph-text-primary);font-size:18px;font-weight:900}.on-demand-booking .od-completed-billing__divider{background:rgba(226,232,240,.8);height:1px}.on-demand-booking .od-completed-billing__payment{flex-direction:column;gap:6px;display:flex}.on-demand-booking .od-completed-billing__payment-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-completed-billing__select-wrapper{position:relative}.on-demand-booking .od-completed-billing__select{background:var(--shph-bg-primary);border:1px solid var(--shph-border);width:100%;color:var(--shph-text-primary);-webkit-appearance:none;appearance:none;border-radius:12px;outline:none;padding:10px 12px;font-size:16px;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.05)}.on-demand-booking .od-completed-billing__select:focus{border-color:#6366f1}.on-demand-booking .od-completed-billing__select-arrow{color:var(--shph-text-secondary);pointer-events:none;font-size:10px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.on-demand-booking .od-completed-rating{text-align:center;background:var(--shph-bg-page);border:1px solid var(--shph-border);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.on-demand-booking .od-completed-rating__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-completed-rating__stars{justify-content:center;gap:12px;display:flex}.on-demand-booking .od-completed-rating__star{cursor:pointer;color:#cbd5e1;background:0 0;border:none;border-radius:8px;padding:0;font-size:24px;transition:color .2s,transform .1s}.on-demand-booking .od-completed-rating__star ion-icon{font-size:24px}.on-demand-booking .od-completed-rating__star--active{color:#ffc107}.on-demand-booking .od-completed-rating__star:hover{color:#fbbf24;transform:scale(1.12)}.on-demand-booking .od-completed-rating__star:focus-visible{outline:2px solid var(--shph-primary);outline-offset:2px}.on-demand-booking .od-completed-rating__hint{text-align:center;color:var(--shph-text-secondary);margin-top:8px;font-size:12px;font-weight:600;display:block}.on-demand-booking .od-completed-rating__hint b{color:var(--shph-primary-text)}.on-demand-booking .od-completed-feedback{flex-direction:column;gap:6px;display:flex}.on-demand-booking .od-completed-feedback__header{justify-content:space-between;align-items:center;padding:0 2px;display:flex}.on-demand-booking .od-completed-feedback__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:900}.on-demand-booking .od-completed-feedback__optional{color:var(--shph-text-secondary);text-transform:uppercase;font-size:9px;font-weight:700}.on-demand-booking .od-completed-feedback__textarea{background:var(--shph-bg-page);border:1px solid var(--shph-border);width:100%;color:var(--shph-text-primary);resize:none;border-radius:12px;outline:none;padding:12px;font-family:inherit;font-size:16px;font-weight:500;transition:all .2s;box-shadow:0 1px 2px rgba(0,0,0,.05)}.on-demand-booking .od-completed-feedback__textarea:focus{background:var(--shph-bg-primary);border-color:#6366f1}.on-demand-booking .od-completed-feedback__textarea::placeholder{color:var(--shph-text-secondary)}.on-demand-booking .od-completed-actions{border-top:1px solid var(--shph-border);background:var(--shph-bg-primary);padding:20px}.on-demand-booking .od-completed-actions__btn{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:16px;font-size:12px;font-weight:900;transition:all .2s;display:flex;box-shadow:0 4px 6px rgba(0,0,0,.15)}.on-demand-booking .od-completed-actions__btn:hover{background:#1e293b}.on-demand-booking .od-completed-actions__btn:active{transform:scale(.98)}.on-demand-booking .od-completed-actions__btn:disabled{opacity:.6;cursor:not-allowed}@keyframes od-ping{0%{opacity:1;transform:scale(1)}75%,to{opacity:0;transform:scale(2)}}@keyframes od-gear-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.service-search ion-content{--padding-start:0;--padding-end:0}.service-search ion-toolbar{--padding-start:8px;--padding-end:8px}.service-search ion-searchbar{--background:var(--ion-color-light);--border-radius:12px;--box-shadow:none;--color:var(--ion-text-color);--placeholder-color:var(--shph-text-hint);--icon-color:var(--shph-text-hint);padding:0}.service-search .empty-state,.service-search .hint{flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:60px 24px;display:flex}.service-search .empty-state p,.service-search .hint p{color:var(--shph-text-secondary);text-align:center;margin-top:16px;font-size:16px}.service-search .empty-icon{color:var(--shph-text-hint);opacity:.6;margin-bottom:16px;font-size:64px;display:block}.service-search .results-list{grid-template-columns:1fr;gap:12px;padding:12px;display:grid}@media (min-width:768px){.results-list{max-width:var(--shph-container-wide);grid-template-columns:repeat(2,1fr);margin:0 auto;padding:16px 24px}.service-search .empty-state,.hint{min-height:40vh}}@media (min-width:1024px){.results-list{max-width:var(--shph-container-dashboard);grid-template-columns:repeat(3,1fr)}}.service-search .results-grid{max-width:var(--shph-container-dashboard);grid-template-columns:repeat(2,1fr);gap:16px;margin:0 auto;padding:12px 24px;display:grid}@media (min-width:1200px){.service-search .results-grid{grid-template-columns:repeat(3,1fr)}}.service-search .filter-btn{--padding-start:8px;--padding-end:8px;position:relative}.service-search .filter-dot{background:var(--ion-color-primary);pointer-events:none;border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:4px}.service-search ion-modal ion-content{--padding-start:16px;--padding-end:16px}.service-search .ion-text-center{flex-direction:column;justify-content:center;align-items:center;min-height:200px;display:flex}.service-search .results-list>*{animation:.3s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.service-search .geo-chip-row{padding:8px 0 0}.service-search .geo-chip{font-size:13px}.service-search .geo-chip-close{cursor:pointer;margin-left:4px;font-size:14px}.service-search .geo-error{color:var(--ion-color-danger);margin:0;padding:4px 16px 0;font-size:12px}.service-search .service-type-note{background:var(--ion-color-primary-tint,#e8f4ff);border-radius:var(--shph-border-radius-sm);color:var(--ion-color-primary-shade,#2563eb);align-items:flex-start;gap:8px;margin-bottom:8px;padding:8px 16px;font-size:13px;display:flex}.service-search .service-type-note ion-icon{flex-shrink:0;margin-top:1px;font-size:16px}.service-search .price-range-container{padding:0 16px}.service-search .price-inputs{align-items:center;gap:8px;margin-bottom:16px;display:flex}.service-search .price-input{--border-radius:8px;flex:1}.service-search .price-separator{color:var(--ion-color-medium);font-size:14px;font-weight:500}.service-search .price-range-slider{margin:8px 0 16px}.service-search .price-range-labels{color:var(--ion-color-medium);justify-content:space-between;margin-top:-8px;font-size:12px;display:flex}.service-search .rating-option{align-items:center;gap:8px;display:flex}.service-search .rating-option .stars{color:var(--ion-color-warning);font-size:16px;line-height:1}.service-search .date-picker-container{background:var(--ion-color-light);border-radius:12px;margin:16px 0;overflow:hidden}.service-search .date-picker-container ion-datetime{--background:transparent}.service-search .distance-container{background:var(--ion-color-light);border-radius:var(--shph-border-radius-sm);margin:8px 0;padding:8px 16px 16px}.service-search .distance-labels{color:var(--ion-color-medium);justify-content:space-between;margin-top:4px;font-size:12px;display:flex}.search-filter-modal ion-content{--padding-start:0;--padding-end:0}.service-search .filter-heading{color:var(--ion-text-color);text-transform:uppercase;letter-spacing:.5px;margin:16px 16px 12px;font-size:14px;font-weight:700}.service-search .filter-heading:first-of-type{margin-top:0}.service-search .active-filters-row{flex-wrap:wrap;gap:8px;padding:8px 16px;display:flex}.service-search .filter-chip{min-height:44px;font-size:12px}.service-search .filter-chip ion-icon{cursor:pointer;margin-left:4px;font-size:16px}.service-search ion-range{--bar-background:var(--ion-color-light-shade);--bar-background-active:var(--ion-color-primary);--bar-height:4px;--knob-background:var(--ion-color-primary);--knob-size:20px;--pin-background:var(--ion-color-primary);--pin-color:var(--ion-color-primary-contrast)}.service-search .autocomplete-dropdown{z-index:9999;background:var(--ion-background-color,#fff);border-bottom-left-radius:var(--shph-border-radius-lg);border-bottom-right-radius:var(--shph-border-radius-lg);border-top:1px solid var(--shph-border);position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12)}.service-search .autocomplete-loading{justify-content:center;padding:12px;display:flex}.service-search .autocomplete-list{margin:0;padding:4px 0;list-style:none}.service-search .autocomplete-item{cursor:pointer;align-items:center;gap:12px;min-height:44px;padding:12px 16px;transition:background .15s;display:flex}.service-search .autocomplete-item:active,.service-search .autocomplete-item:hover{background:var(--shph-bg-secondary)}.service-search .autocomplete-icon{color:var(--ion-color-medium);flex-shrink:0;font-size:16px}.service-search .autocomplete-text{flex-direction:column;min-width:0;display:flex}.service-search .autocomplete-title{color:var(--ion-text-color);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;line-height:1.3;display:block;overflow:hidden}.service-search .autocomplete-category{color:var(--ion-color-medium);overflow-wrap:break-word;word-wrap:break-word;margin-top:1px;font-size:12px;line-height:1.3;display:block}.service-search .autocomplete-section-header{text-transform:uppercase;letter-spacing:.5px;color:var(--ion-color-medium);background:var(--shph-bg-secondary);pointer-events:none;padding:6px 16px;font-size:11px;font-weight:700}.service-search .autocomplete-category-item .autocomplete-icon{color:var(--shph-primary-text)}.service-search .category-select-wrapper{padding:0 16px;position:relative}.service-search .category-select-input-wrap{background:var(--ion-color-light);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.service-search .category-select-icon{color:var(--ion-color-medium);flex-shrink:0;font-size:18px}.service-search .category-select-input{color:var(--ion-text-color);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:16px}.service-search .category-select-input::placeholder{color:var(--ion-color-medium)}.service-search .category-select-clear{color:var(--ion-color-medium);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:18px;display:flex}.service-search .category-select-dropdown{z-index:100;background:var(--ion-background-color,#fff);border:1px solid var(--ion-color-light);border-radius:10px;max-height:220px;position:absolute;top:calc(100% + 4px);left:16px;right:16px;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.1)}.service-search .category-select-option{cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;transition:color .15s;display:flex}.service-search .category-select-option-text{flex-direction:column;gap:2px;min-width:0;display:flex}.service-search .category-select-option.focused{outline:2px solid var(--shph-primary);outline-offset:-2px}.service-search .category-select-option.active .category-select-option-name{color:var(--shph-primary-text);font-weight:800}.service-search .category-select-option-check{color:var(--shph-primary-dark);visibility:hidden;flex-shrink:0;font-size:14px;font-weight:900}.service-search .category-select-option-check--on{visibility:visible}.service-search .category-select-option-name{color:var(--ion-text-color);font-size:15px}.service-search .category-select-option-alias{color:var(--ion-color-medium);font-size:12px}.service-search .category-select-empty{color:var(--ion-color-medium);text-align:center;padding:12px 14px;font-size:14px}.service-search .category-select-chip{margin-top:8px}.service-search .search-toolbar{--padding-start:8px;--padding-end:8px}.service-search .search-toolbar-relative{position:relative}.service-search .search-input-wrapper{background:var(--shph-bg-primary);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-card);flex:1;align-items:center;gap:8px;min-height:44px;margin:8px 12px;padding:8px 12px;display:flex}.service-search .search-icon{color:var(--shph-text-hint);flex-shrink:0;font-size:20px}.service-search .custom-search-input{color:var(--ion-text-color);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0;font-size:16px}.service-search .custom-search-input::placeholder{color:var(--shph-text-hint)}.service-search .clear-btn{cursor:pointer;color:var(--shph-text-hint);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:0;padding:0;font-size:20px;display:flex}.service-search .clear-btn:active{color:var(--shph-text-primary)}.service-search .mic-btn{cursor:pointer;color:var(--shph-text-hint);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin:0 0 0 4px;padding:0;font-size:20px;transition:color .2s;display:flex}.service-search .mic-btn:active{color:var(--shph-primary-text)}.service-search .mic-btn.listening{color:var(--ion-color-danger);animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}.service-search .voice-overlay{z-index:1000;background:var(--shph-scrim);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.service-search .voice-card{background:var(--ion-background-color,#fff);text-align:center;border-radius:20px;flex-direction:column;align-items:center;width:100%;max-width:320px;padding:28px 24px 16px;display:flex;box-shadow:0 12px 40px rgba(0,0,0,.25)}.service-search .voice-mic-wrap{justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:18px;display:flex;position:relative}.service-search .voice-ring{background:var(--ion-color-danger);opacity:.25;border-radius:50%;width:64px;height:64px;margin:auto;animation:2s ease-out infinite voice-ripple;position:absolute;top:0;bottom:0;left:0;right:0}.service-search .voice-ring-2{animation-delay:.5s}.service-search .voice-ring-3{animation-delay:1s}.service-search .voice-mic-core{z-index:1;background:var(--ion-color-danger);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex;position:relative}.service-search .voice-status{color:var(--ion-text-color,#1a1a1a);margin:0 0 4px;font-size:18px;font-weight:600}.service-search .voice-hint{min-height:20px;color:var(--shph-text-secondary);margin:0;font-size:14px}.service-search .voice-transcript{color:var(--shph-primary-text);word-break:break-word;margin:8px 0 0;font-size:16px;font-weight:500}.service-search .voice-cancel{--color:var(--shph-text-secondary);text-transform:none;margin-top:10px;font-size:13px}@keyframes voice-ripple{0%{opacity:.35;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.service-search .voice-fade-enter-active,.service-search .voice-fade-leave-active{transition:opacity .2s}.service-search .voice-fade-enter-from,.service-search .voice-fade-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.service-search .voice-ring,.service-search .mic-btn.listening{animation:none}}.service-search .active-filters-bar{background:var(--ion-background-color);border-bottom:1px solid var(--ion-color-light);align-items:center;gap:8px;padding:8px 12px;display:flex;overflow-x:auto}.service-search .filters-scroll{scrollbar-width:none;flex:1;gap:8px;display:flex;overflow-x:auto}.service-search .filters-scroll::-webkit-scrollbar{display:none}.service-search .suggestions-container{padding:16px}.service-search .section{margin-bottom:24px}.service-search .section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.service-search .section-header h3{color:var(--shph-text-heading);margin:0;font-size:16px;font-weight:600}.service-search .chips-row{flex-wrap:wrap;gap:8px;display:flex}.service-search .category-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:12px;display:grid}.service-search .category-item{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);cursor:pointer;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:12px 8px;transition:background .2s;display:flex;overflow:hidden}.service-search .category-item:active{background:var(--ion-color-light-shade)}.service-search .category-icon{font-size:28px;line-height:1}.service-search .category-item span{color:var(--ion-text-color);text-align:center;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;width:100%;min-width:0;font-size:12px;display:block}.service-search .loading-state{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:50vh;display:flex}.service-search .loading-state p{color:var(--shph-text-secondary);font-size:14px}.service-search .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:32px;display:flex}.service-search .empty-illustration{color:var(--shph-text-hint);opacity:.5;margin-bottom:16px;font-size:80px}.service-search .empty-state h3{color:var(--shph-text-heading);margin:0 0 8px;font-size:20px;font-weight:600}.service-search .empty-state>p{color:var(--shph-text-secondary);margin:0 0 16px}.service-search .suggestions{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);text-align:left;width:100%;max-width:300px;margin-bottom:24px;padding:16px}.service-search .suggestions p{color:var(--ion-text-color);margin:0 0 8px;font-weight:600}.service-search .suggestions ul{color:var(--shph-text-secondary);margin:0;padding-left:20px}.service-search .suggestions li{margin-bottom:4px}.service-search .browse-btn{--border-radius:12px;max-width:280px}.service-search .initial-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:32px;display:flex}.service-search .search-illustration{color:var(--shph-primary-text);opacity:.7;margin-bottom:16px;font-size:100px}.service-search .initial-state h3{color:var(--shph-text-heading);margin:0 0 8px;font-size:22px;font-weight:600}.service-search .initial-state>p{color:var(--ion-color-medium);margin:0 0 24px;font-size:14px}.service-search .quick-categories{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.service-search .cat-icon{margin-right:4px}@media (min-width:768px){.category-grid{grid-template-columns:repeat(4,1fr);max-width:500px}.service-search .suggestions-container{max-width:600px;margin:0 auto}}.service-search .filter-btn{position:relative}.booking-detail ion-button[expand=block]{--border-radius:var(--shph-border-radius-md);min-height:52px;font-weight:600}.booking-detail .skeleton-stepper-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.booking-detail .skeleton-stepper-dot{border-radius:50%;width:32px;height:32px}.booking-detail .skeleton-booking-card{border-radius:12px;width:100%;height:160px}.booking-detail .skeleton-actions-row{gap:12px;margin-top:16px;display:flex}.booking-detail .skeleton-action-btn{border-radius:8px;width:100%;height:44px}.booking-detail .actions{margin-top:12px}.booking-detail .detail-caption{color:var(--shph-text-secondary);margin-bottom:12px;font-size:13px}.booking-detail .parts-alert{border-left:4px solid var(--shph-warning);margin-bottom:12px}.booking-detail .parts-alert__head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.booking-detail .parts-alert__icon{color:var(--shph-warning);font-size:20px}.booking-detail .parts-alert__title{color:var(--shph-text-heading);font-size:15px}.booking-detail .parts-alert__body{color:var(--shph-text-secondary);overflow-wrap:break-word;word-wrap:break-word;margin:0;font-size:14px;line-height:1.5}.booking-detail .provider-actions{flex-direction:column;gap:10px;display:flex}.booking-detail h2{margin-bottom:8px;font-size:20px;font-weight:700}.booking-detail .rating-label{color:var(--ion-color-medium);margin-bottom:4px;font-size:14px;display:block}.booking-detail .updated-note{color:var(--ion-color-medium);padding-right:12px;font-size:11px}.booking-detail .map-hint{color:var(--ion-color-medium);margin:4px 0 0;font-size:13px}.booking-detail .map-pending{text-align:center;color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:8px;display:flex}.booking-detail .map-pending ion-icon{font-size:28px}.booking-detail .map-pending p{overflow-wrap:break-word;word-wrap:break-word;max-width:260px;margin:0;font-size:13px}.booking-detail .completion-photo-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.booking-detail .status-stepper{-webkit-overflow-scrolling:touch;justify-content:space-between;align-items:flex-start;max-width:560px;margin-left:auto;margin-right:auto;padding:16px 8px 8px;display:flex;overflow-x:auto}.booking-detail .step{flex-direction:column;flex:1 0 56px;align-items:center;min-width:56px;padding-left:2px;padding-right:2px;display:flex;position:relative}.booking-detail .step-dot{background:var(--ion-color-light);border:2px solid var(--ion-color-medium);z-index:1;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:background .3s,border-color .3s;display:flex}.booking-detail .step--done .step-dot{background:var(--ion-color-success);border-color:var(--ion-color-success)}.booking-detail .step--active .step-dot{background:var(--ion-color-primary);border-color:var(--ion-color-primary);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb), .2)}.booking-detail .step--cancelled .step-dot{background:var(--ion-color-danger);border-color:var(--ion-color-danger)}.booking-detail .step--disputed .step-dot{background:var(--ion-color-warning);border-color:var(--ion-color-warning)}.booking-detail .step-check{color:var(--shph-bg-primary);font-size:14px}.booking-detail .step-label{color:var(--ion-color-medium);text-align:center;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;margin-top:5px;font-size:10px;line-height:1.2;overflow:hidden}.booking-detail .step--active .step-label{color:var(--shph-primary-text);font-weight:700}.booking-detail .step--done .step-label{color:var(--ion-color-success)}.booking-detail .step-line{background:var(--ion-color-light-shade);z-index:0;height:2px;position:absolute;top:13px;left:calc(50% + 16px);right:calc(16px - 50%)}.booking-detail .step-line--done{background:var(--ion-color-success)}.booking-detail .reschedule-hint{color:var(--ion-color-medium);margin-bottom:16px;font-size:14px}.booking-detail .reschedule-picker{width:100%}.booking-detail .pay-summary{color:var(--ion-text-color);margin-bottom:12px;font-size:16px}.booking-detail .pm-section{margin-top:8px}.booking-detail .pm-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.booking-detail .wallet-pay{margin-bottom:12px}.booking-detail .wallet-row{color:var(--ion-text-color);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;display:flex}.booking-detail .wallet-short{color:var(--ion-color-medium);margin:6px 0 0;font-size:13px}.booking-detail .or-divider{text-align:center;color:var(--ion-color-medium);align-items:center;margin:14px 0 4px;font-size:12px;display:flex}.booking-detail .or-divider:before,.booking-detail .or-divider:after{content:"";border-bottom:1px solid var(--ion-color-light-shade);flex:1}.booking-detail .or-divider span{padding:0 10px}.booking-detail .pm-item{--background:var(--shph-bg-secondary);--min-height:52px;border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);margin-bottom:8px}.booking-detail .pm-item--selected{--background:var(--shph-primary-light);border:1.5px solid var(--shph-primary)}.booking-detail .pm-item--selected ion-radio{--color-checked:var(--shph-primary-dark)}.booking-detail .pm-icon{margin-right:4px;font-size:22px}.booking-detail .pm-add-item{--background:transparent;--min-height:52px;--color:var(--shph-primary-text)}.booking-detail .evidence-section{margin-top:8px}.booking-detail .evidence-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.booking-detail .evidence-preview{border:2px dashed var(--ion-color-medium);cursor:pointer;background:var(--ion-color-light);border-radius:12px;justify-content:center;align-items:center;width:100%;height:140px;display:flex;overflow:hidden}.booking-detail .evidence-preview img{object-fit:cover;width:100%;height:100%}.booking-detail .evidence-placeholder{color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:6px;font-size:.9rem;display:flex}.booking-detail .evidence-placeholder ion-icon{font-size:2rem}.booking-detail .block{display:block}.booking-detail .no-notes{color:var(--ion-color-medium)}.booking-detail .card-form{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);margin-top:12px;padding:12px}.booking-detail .card-form>ion-button{margin-bottom:4px}.booking-detail .card-row{gap:6px;display:flex}.booking-detail .card-row ion-input{flex:1;min-width:0}.booking-detail .card-row ion-input.card-cvc{max-width:70px}@media (max-width:430px){.booking-detail .step-label{font-size:9px}.booking-detail .step-dot{width:24px;height:24px}.booking-detail .step-check{font-size:12px}.booking-detail .step{flex-basis:52px;min-width:52px}.booking-detail .step-line{top:11px}}@media (max-width:400px){.booking-detail .status-stepper{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent 100%)}}@media (max-height:500px) and (orientation:landscape){.booking-detail .status-stepper{padding:10px 2px 6px}.booking-detail .step-label{font-size:9px}}.booking-detail .photo-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.booking-detail .photo-upload-prompt{border:2px dashed var(--ion-color-light-shade);color:var(--ion-color-medium);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:13px;display:flex}.booking-detail .photo-preview-grid{flex-wrap:wrap;gap:8px;display:flex}.booking-detail .photo-preview{border-radius:10px;width:72px;height:72px;position:relative;overflow:hidden}.booking-detail .photo-preview img{object-fit:cover;width:100%;height:100%}.booking-detail .remove-photo-btn{--padding-start:2px;--padding-end:2px;height:24px;min-height:24px;position:absolute;top:2px;right:2px}.booking-detail .add-more-photos{border:2px dashed var(--ion-color-light-shade);width:72px;height:72px;color:var(--ion-color-medium);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:24px;display:flex}.booking-detail .tip-badge{color:var(--ion-color-success);margin-left:8px;font-size:13px;font-weight:600}.booking-detail .tip-btn{--padding-start:10px;--padding-end:10px;min-height:44px;margin-left:8px;font-size:12px}.booking-detail .tip-subtitle{color:var(--ion-color-medium);text-align:center;margin:0 0 16px;font-size:14px}.booking-detail .tip-presets{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:16px;display:flex}.booking-detail .voucher-section{border-top:1px solid var(--ion-color-light-shade);padding-top:12px}.booking-detail .voucher-row{align-items:center;gap:6px;display:flex}.booking-detail .voucher-input{flex:1;min-width:0}.booking-detail .btn-spinner{width:16px;height:16px}.booking-detail .voucher-success{color:var(--ion-color-success-shade);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.booking-detail .voucher-error{margin-top:4px;font-size:12px;display:block}.booking-detail .overdue-banner,.booking-detail .departure-warning{overflow-wrap:break-word;word-wrap:break-word;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:12px;padding:12px 14px;font-size:14px;line-height:1.4;display:flex}.booking-detail .overdue-banner{background:rgba(var(--ion-color-warning-rgb), .12);color:var(--ion-color-warning-shade);border:1px solid rgba(var(--ion-color-warning-rgb), .3)}.booking-detail .departure-warning{background:rgba(var(--ion-color-danger-rgb), .1);color:var(--ion-color-danger-shade);border:1px solid rgba(var(--ion-color-danger-rgb), .25)}.booking-detail .overdue-banner ion-icon,.booking-detail .departure-warning ion-icon{flex-shrink:0;margin-top:1px;font-size:18px}@keyframes urgentPulse{0%,to{opacity:1}50%{opacity:.75}}.booking-detail .btn-pulse{animation:1.5s ease-in-out infinite urgentPulse}.booking-detail .invoice-wrap{padding:8px 4px}.booking-detail .invoice-wrap h2{margin:0 0 4px;font-size:18px;font-weight:700}.booking-detail .invoice-meta{color:var(--ion-color-medium);margin:0 0 16px;font-size:13px}.booking-detail .invoice-row{justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.booking-detail .invoice-divider{border:0;border-top:1px solid var(--ion-color-light-shade);margin:12px 0}.booking-detail .invoice-total{border-top:1px solid var(--ion-color-light-shade);margin-top:8px;padding-top:8px;font-size:15px;font-weight:700}.booking-flow .flow-content{--background:var(--shph-bg-page)}.booking-flow .flow-section{flex-direction:column;gap:16px;padding:8px 20px 32px;display:flex}.booking-flow .flow-section--center{text-align:center;align-items:center;padding-top:48px}.booking-flow .loc-card{align-items:flex-start;gap:12px;display:flex}.booking-flow .loc-card__icon{background:var(--shph-bg-secondary);width:40px;height:40px;color:var(--shph-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.booking-flow .loc-card__body{flex:1;min-width:0}.booking-flow .loc-card__label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:12px}.booking-flow .loc-card__address{color:var(--shph-text-heading);margin:4px 0 0;font-size:15px;line-height:1.4}.booking-flow .loc-card__hint{color:var(--shph-text-hint);align-items:center;gap:6px;margin:6px 0 0;font-size:12px;display:flex}.booking-flow .loc-card__actions{gap:8px;margin-top:14px;display:flex}.booking-flow .urgency-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.booking-flow .urgency-chip{border-radius:var(--shph-border-radius-md);border:1px solid var(--shph-border);background:var(--shph-bg-secondary);color:var(--shph-text-secondary);cursor:pointer;transition:all var(--shph-dur) var(--shph-ease);flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-size:12px;font-weight:600;display:flex}.booking-flow .urgency-chip ion-icon{font-size:20px}.booking-flow .urgency-chip--active{border-color:var(--shph-primary);background:var(--shph-primary);color:var(--shph-on-primary)}.booking-flow .field-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.booking-flow .stepper{justify-content:center;align-items:center;gap:20px;display:flex}.booking-flow .stepper__value{text-align:center;min-width:32px;font-size:24px;font-weight:700}.booking-flow .type-grid{flex-direction:column;gap:10px;display:flex}.booking-flow .type-chip{border-radius:var(--shph-border-radius-md);border:1px solid var(--shph-border);background:var(--shph-bg-secondary);cursor:pointer;transition:all var(--shph-dur) var(--shph-ease);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;display:flex}.booking-flow .type-chip--active{border-color:var(--shph-primary);background:var(--shph-bg-primary);box-shadow:0 0 0 2px var(--shph-primary) inset}.booking-flow .type-chip__title{color:var(--shph-text-heading);font-size:15px;font-weight:600}.booking-flow .type-chip__hint{color:var(--shph-text-secondary);font-size:12px}.booking-flow .summary-row{justify-content:space-between;gap:12px;margin-bottom:8px;font-size:14px;display:flex}.booking-flow .summary-row span:first-child{color:var(--shph-text-secondary)}.booking-flow .summary-row span:last-child{text-align:right;color:var(--shph-text-heading);font-weight:500}.booking-flow .cost-row{justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.booking-flow .cost-row--total{color:var(--shph-text-heading);border-top:1px solid var(--shph-border);margin-top:4px;padding-top:8px;font-size:16px;font-weight:700}.booking-flow .cost-note{color:var(--shph-text-hint);margin:10px 0 0;font-size:12px;line-height:1.5}.booking-flow .soft-card--lg{border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-sm)}.booking-flow .flow-cta{--border-radius:var(--shph-border-radius-md);height:52px;margin-top:8px;font-weight:600}.booking-flow .flow-error{color:var(--ion-color-danger);align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.booking-flow .countdown-circle{width:140px;height:140px;margin:8px 0 16px;position:relative}.booking-flow .countdown-circle svg{width:100%;height:100%;transform:rotate(-90deg)}.booking-flow .countdown-circle .track{fill:none;stroke:var(--shph-border);stroke-width:6px}.booking-flow .countdown-circle .progress{fill:none;stroke:var(--shph-primary);stroke-width:6px;stroke-linecap:round;stroke-dasharray:276.46;transition:stroke-dashoffset 1s linear}.booking-flow .countdown-num{color:var(--shph-text-heading);justify-content:center;align-items:center;font-size:36px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.booking-flow .waiting-text{color:var(--shph-text-secondary);max-width:280px;margin:0 0 20px;font-size:14px}.booking-flow .success-check{background:var(--ion-color-success);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:24px;animation:.6s cubic-bezier(.34,1.56,.64,1) scale-in;display:flex;box-shadow:0 8px 24px rgba(76,175,80,.35)}.booking-flow .success-check ion-icon{color:var(--ion-color-success-contrast);font-size:52px}.booking-flow .success-title{color:var(--shph-text-heading);margin:0 0 12px;font-size:22px;font-weight:700}.booking-flow .success-subtitle{color:var(--shph-text-secondary);max-width:320px;margin:0 0 32px;font-size:14px;line-height:1.5}.booking-flow .success-actions{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.booking-flow .success-actions ion-button{--border-radius:var(--shph-border-radius-md);height:52px;font-weight:600}@keyframes scale-in{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.service-detail .content-with-sticky-cta{--padding-bottom:88px}.service-detail .gallery-wrap{background:var(--ion-color-light);width:100%;max-width:100%;position:relative;overflow:hidden}.service-detail .gallery-scroll{scroll-snap-type:x mandatory;scrollbar-width:none;width:100%;display:flex;overflow-x:auto}.service-detail .gallery-scroll::-webkit-scrollbar{display:none}.service-detail .gallery-img{object-fit:cover;scroll-snap-align:start;flex-shrink:0;width:100%;min-width:100%;max-width:100%;height:240px}.service-detail .gallery-img--hidden{display:none}.service-detail .hero-placeholder{width:100%;height:240px;color:var(--shph-text-hint);user-select:none;justify-content:center;align-items:center;font-size:72px;font-weight:700;line-height:1;display:flex}@media (max-width:359px){.service-detail .gallery-img{height:180px}.service-detail .hero-placeholder{height:180px;font-size:56px}.service-detail .detail-body h1,.service-detail .price{font-size:18px}}@media (max-height:500px) and (orientation:landscape){.service-detail .gallery-img,.service-detail .hero-placeholder{height:160px}}@media (min-width:768px){.service-detail .gallery-wrap{border-radius:var(--shph-border-radius-hero);margin-top:16px}}.service-detail .gallery-dots{justify-content:center;gap:6px;padding:8px 0 4px;display:flex}.service-detail .gallery-dot{background:var(--ion-color-medium-tint);border-radius:50%;width:8px;height:8px}.service-detail .gallery-dot--active{background:var(--ion-color-primary)}.service-detail .detail-info-card{margin-bottom:16px}.service-detail .detail-body h1{color:var(--shph-text-heading);margin-bottom:4px;font-size:22px;font-weight:700}.service-detail .category{color:var(--ion-color-medium);margin-bottom:4px;font-size:14px}.service-detail .detail-rating{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.service-detail .online-count{color:var(--ion-color-success);font-weight:500}.service-detail .service-type-badges{flex-wrap:wrap;gap:6px;max-width:100%;margin-bottom:10px;display:flex}.service-detail .svc-badge{letter-spacing:.3px;text-transform:uppercase;border-radius:12px;align-items:center;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.service-detail .svc-badge--ondemand{background:var(--ion-color-warning-tint,#fff8e8);color:var(--ion-color-warning-shade,#a35800)}.service-detail .svc-badge--project{background:var(--ion-color-success-tint,#e8f9ee);color:var(--ion-color-success-shade,#1a7a3a)}.service-detail .svc-badge--standard{background:var(--ion-color-light,#f4f5f8);color:var(--ion-color-medium,#92949c)}.service-detail .price{color:var(--shph-primary-text);margin-bottom:12px;font-size:22px;font-weight:700}.service-detail .price span{color:var(--ion-color-medium);font-size:14px;font-weight:400}.service-detail .about-title{color:var(--shph-text-heading);margin:0 0 6px;font-size:16px;font-weight:700}.service-detail .desc{color:var(--ion-text-color);margin-bottom:20px;font-size:15px;line-height:1.6}.service-detail .prov-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:visible}.service-detail .prov-avatar img{object-fit:cover;width:100%;height:100%}.service-detail .provider-row{--background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);margin-bottom:8px}.service-detail .prov-label h3{color:var(--shph-text-heading);margin:0;font-size:15px;font-weight:600}.service-detail .prov-label p{color:var(--ion-color-medium);margin:2px 0 0;font-size:13px}.service-detail .prov-online{margin-top:2px;font-size:12px}.service-detail .availability-section{margin-top:12px}.service-detail .availability-label{color:var(--ion-color-medium);margin:0 0 8px;font-size:13px;font-weight:600}.service-detail .availability-slots{flex-wrap:wrap;gap:6px;display:flex}.service-detail .time-slot-chip{min-height:44px;margin:0;font-size:12px}.service-detail .reviews-section{margin-top:24px}.service-detail .reviews-title{color:var(--shph-text-heading);margin-bottom:12px;font-size:18px;font-weight:700}.service-detail .no-reviews{color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:8px;padding:20px 0;font-size:14px;display:flex}.service-detail .no-reviews-icon{color:var(--shph-text-hint);opacity:.5;font-size:36px}.service-detail .no-reviews p{margin:0}.service-detail .review-card{margin-bottom:10px}.service-detail .review-header{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;margin-bottom:6px;display:flex}.service-detail .reviewer-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.service-detail .reviewer-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.service-detail .reviewer-avatar--initials{background:var(--ion-color-secondary);color:var(--shph-bg-primary);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.service-detail .reviewer-name{color:var(--ion-text-color);white-space:normal;overflow-wrap:break-word;word-break:break-word;font-size:13px;font-weight:600}.service-detail .review-meta{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.service-detail .review-stars{gap:1px}.service-detail .review-date{color:var(--ion-color-medium);font-size:11px}.service-detail .review-comment{color:var(--ion-text-color);margin:0;font-size:14px}.service-detail .heart-active{color:var(--shph-color-destructive)}.service-detail .sticky-cta{z-index:100;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--shph-surface-elevated);backdrop-filter:blur(8px);border-top:1px solid var(--shph-border-subtle);max-width:100vw;position:fixed;bottom:0;left:0;right:0}.service-detail .sticky-cta-inner{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.service-detail .sticky-cta-info{flex-direction:column;justify-content:center;gap:2px;line-height:1.2;display:flex}.service-detail .sticky-cta-price{color:var(--shph-primary-text);font-size:20px;font-weight:700}.service-detail .sticky-cta-unit{color:var(--ion-color-medium);font-size:12px}.service-detail .sticky-cta-btn{--padding-start:28px;--padding-end:28px;align-self:center;height:48px;margin:0}.service-detail .rounded-2xl{border-radius:16px}.service-detail .rounded-lg{border-radius:12px}.service-detail .rounded-md{border-radius:var(--shph-border-radius-sm)}.service-detail .rounded-full{border-radius:var(--shph-border-radius-pill)}.categories-page .categories-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;max-width:1280px;margin:0 auto;padding:16px 16px 32px;display:grid}.categories-page .category-card{border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);color:inherit;text-align:left;box-shadow:none;cursor:pointer;background:#fff;flex-direction:column;align-items:flex-start;gap:.75rem;min-height:0;padding:16px;display:flex;position:relative}.categories-page .category-card__icon{border-radius:var(--shph-border-radius-md);background:color-mix(in srgb, var(--ion-color-primary) 12%, #fff);flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.categories-page .card-ionicon{color:var(--ion-color-primary-shade);font-size:28px}.categories-page .card-emoji{font-size:28px;line-height:1}.categories-page .category-card__icon-wrap{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.explore-page .category-card--active{outline:2px solid var(--ion-color-primary);outline-offset:2px}.categories-page .category-card__body{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%;min-width:0;display:flex}.categories-page .category-card__title-row{justify-content:space-between;align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}.categories-page .category-card__title{color:var(--shph-text-heading);overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;width:100%;min-width:0;font-size:1.0625rem;font-weight:700;line-height:1.25;display:inline-block}.categories-page .category-card__subtitle{color:var(--shph-text-secondary);overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;width:100%;min-width:0;font-size:.875rem;font-weight:500;line-height:1.4;display:inline-block}.categories-page .category-card--gradient{color:var(--shph-text-on-dark);box-shadow:var(--shph-shadow-card);transition:transform var(--shph-dur-fast) var(--shph-ease), box-shadow var(--shph-dur-fast) var(--shph-ease);border-color:transparent;overflow:hidden}.categories-page .category-card--gradient:hover{box-shadow:var(--shph-shadow-card-lg);border-color:transparent;transform:translateY(-2px)}.categories-page .category-card--gradient .category-card__icon{box-shadow:none;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.42)}.categories-page .category-card--gradient .card-ionicon,.categories-page .category-card--gradient .card-emoji,.categories-page .category-card--gradient .category-card__title,.categories-page .category-card--gradient .category-card__subtitle{color:#fff}.categories-page .category-card--gradient .category-card__subtitle{color:rgba(255,255,255,.86)}.categories-page .card-badge{letter-spacing:.3px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;flex:0 auto;min-width:0;max-width:100%;padding:2px 5px;font-size:9px;font-weight:700;line-height:1.4;display:inline-block;overflow:hidden}.categories-page .card-badge--project{background:var(--ion-color-success-tint,#e8f9ee);color:var(--ion-color-success-contrast,#fff)}.categories-page .card-badge--ondemand{background:var(--ion-color-warning-tint,#fff8e8);color:var(--ion-color-warning-contrast,#14181b)}.category-detail .hero{text-align:center;padding:24px 16px 12px}.category-detail .hero-icon{margin-bottom:8px;font-size:56px}.category-detail .hero-title{color:var(--ion-text-color);margin:0 0 4px;font-size:24px;font-weight:700}.category-detail .hero-subtitle{color:var(--shph-text-secondary);margin:0;font-size:14px}.category-detail .section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.category-detail .section-title{color:var(--ion-text-color);margin:0;font-size:17px;font-weight:700}.category-detail .empty-hint p{color:var(--shph-text-secondary);font-size:13px}.category-detail .empty-hint-icon{color:var(--shph-text-hint);opacity:.5;margin-bottom:4px;font-size:36px}.category-detail .horizontal-scroll{scrollbar-width:none;gap:12px;padding:4px 16px 12px;display:flex;overflow-x:auto}.category-detail .horizontal-scroll::-webkit-scrollbar{display:none}.category-detail .nearby-card{background:var(--ion-color-light);cursor:pointer;border-radius:12px;flex-shrink:0;min-width:160px;max-width:160px;overflow:hidden}.category-detail .nearby-img-wrap{position:relative}.category-detail .nearby-img{object-fit:cover;width:100%;height:100px;display:block}.category-detail .nearby-provider-avatar{border-radius:50%;outline:2px solid rgba(255,255,255,.8);position:absolute;bottom:6px;left:6px}.category-detail .nearby-img-placeholder{background:var(--ion-color-light-shade);width:100%;height:100px;color:var(--shph-text-hint);justify-content:center;align-items:center;font-size:32px;display:flex}.category-detail .nearby-info{padding:8px 10px}.category-detail .nearby-title{color:var(--ion-text-color);text-overflow:ellipsis;white-space:nowrap;margin:0 0 2px;font-size:13px;font-weight:600;overflow:hidden}.category-detail .nearby-price{color:var(--shph-primary-text);margin:0;font-size:12px;font-weight:600}.category-detail .price{color:var(--shph-primary-text);font-weight:600}@media (min-width:1024px){.category-detail .category-listings{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;display:grid}.category-detail .category-listings ion-item{--inner-border-width:0;border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);margin:0}}.category-detail .cat-thumb-wrap{border-radius:8px;flex-shrink:0;width:52px;height:52px;position:relative;overflow:visible}.category-detail .cat-thumb-wrap:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:16px}.category-detail .cat-thumb-wrap:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:16px}.category-detail .cat-thumb-wrap:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:16px}.category-detail .cat-thumb-wrap:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:16px}.category-detail .cat-thumb-img{object-fit:cover;border-radius:8px;width:52px;height:52px;display:block}.category-detail .cat-thumb-avatar{outline:2px solid var(--ion-background-color,#fff);border-radius:50%;position:absolute;bottom:-4px;right:-4px}.category-detail .thumb-placeholder{color:var(--shph-text-hint);font-size:28px}.category-detail .empty{flex-direction:column;align-items:center;padding-top:32px;display:flex}.category-detail .empty-icon{color:var(--shph-text-hint);margin-bottom:12px;font-size:48px}.category-detail .empty p{color:var(--shph-text-secondary)}.contact-provider .provider-card{background:var(--ion-color-light);border-radius:12px;align-items:center;gap:16px;margin-bottom:16px;padding:16px;display:flex}.contact-provider .provider-avatar{background:var(--ion-color-secondary);width:60px;height:60px;color:var(--shph-bg-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;overflow:hidden}.contact-provider .provider-avatar img{object-fit:cover;width:100%;height:100%}.contact-provider .provider-meta{flex-direction:column;gap:4px;display:flex}.contact-provider .provider-name{color:var(--shph-text-primary);margin:0;font-size:16px;font-weight:600}.contact-provider .verified-badge{color:var(--ion-color-success);align-items:center;gap:4px;font-size:12px;display:inline-flex}.contact-provider .service-card{background:var(--ion-color-light);border-radius:12px;margin-bottom:16px;padding:16px}.contact-provider .card-title{color:var(--shph-text-primary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:14px;font-weight:700}.contact-provider .service-name{color:var(--shph-text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.contact-provider .service-category{color:var(--shph-text-secondary);margin:0 0 8px;font-size:13px}.contact-provider .service-price{color:var(--shph-primary-text);margin:0 0 8px;font-size:15px;font-weight:700}.contact-provider .service-description{color:var(--shph-text-secondary);margin:0;font-size:13px;line-height:1.5}.contact-provider .quick-actions{gap:12px;margin-bottom:24px;display:flex}.contact-provider .action-btn{--border-radius:12px;flex:1;height:48px;font-weight:600}.contact-provider .action-call{--background:var(--ion-color-success);--background-hover:var(--ion-color-success);--background-focused:var(--ion-color-success);--background-activated:var(--ion-color-success-shade,var(--ion-color-success));--color:#0f172a}.contact-provider .action-chat{--background:var(--ion-color-primary);--background-hover:var(--ion-color-primary);--background-focused:var(--ion-color-primary);--background-activated:var(--ion-color-primary-shade,var(--ion-color-primary));--color:var(--shph-on-primary)}.contact-provider .message-form{flex-direction:column;gap:12px;display:flex}.contact-provider .form-title{color:var(--shph-text-primary);margin:0;font-size:16px;font-weight:700}.contact-provider .form-hint{color:var(--shph-text-secondary);margin:0 0 4px;font-size:13px}.contact-provider .field-item{--border-radius:12px;--background:transparent}.contact-provider .error-text{color:var(--ion-color-danger);margin:0;font-size:13px}.contact-provider .send-btn{--border-radius:var(--shph-border-radius-md,12px);height:52px;margin-top:8px;font-weight:600}.recommendations-page .recommendations-container{max-width:var(--shph-container-dashboard);margin:0 auto;padding:16px}.recommendations-page .category-recommendations{margin:32px 0}.recommendations-page .debug-section{background:var(--ion-color-warning-tint);border-left:4px solid var(--ion-color-warning);border-radius:12px;margin:32px 0;padding:24px}.recommendations-page .section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.recommendations-page .section-header h3{color:var(--ion-text-color);margin:0;font-size:18px;font-weight:600}.recommendations-page .insights-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.recommendations-page .insight-card{background:var(--ion-background-color);text-align:center;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.recommendations-page .insight-header{color:var(--ion-color-medium);justify-content:center;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.recommendations-page .insight-header ion-icon{color:var(--shph-primary-text);font-size:18px}.recommendations-page .insight-value{color:var(--shph-primary-text);margin-bottom:8px;font-size:28px;font-weight:700}.recommendations-page .insight-description{color:var(--ion-color-medium);font-size:12px}.recommendations-page .empty-recommendations{text-align:center;padding:60px 20px}.recommendations-page .empty-content{max-width:400px;margin:0 auto}.recommendations-page .empty-icon{color:var(--ion-color-medium);margin-bottom:24px;font-size:64px}.recommendations-page .empty-content h3{color:var(--ion-text-color);margin:0 0 16px;font-size:20px;font-weight:600}.recommendations-page .empty-content p{color:var(--ion-color-medium);margin:0 0 32px;font-size:14px;line-height:1.5}.recommendations-page .empty-actions{flex-direction:column;gap:12px;display:flex}.recommendations-page .explore-btn,.recommendations-page .search-btn{--padding-start:16px;--padding-end:16px}.recommendations-page .feedback-section{background:var(--ion-color-light);text-align:center;border-radius:12px;margin:32px 0;padding:24px}.recommendations-page .feedback-header h4{color:var(--ion-text-color);margin:0 0 8px;font-size:16px;font-weight:600}.recommendations-page .feedback-header p{color:var(--ion-color-medium);margin:0 0 20px;font-size:14px}.recommendations-page .feedback-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.recommendations-page .feedback-actions ion-button{--padding-start:16px;--padding-end:16px}.recommendations-page .feedback-thanks{color:var(--shph-primary-text);justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.recommendations-page .feedback-thanks ion-icon{font-size:20px}.recommendations-page .settings-content{max-width:500px;margin:0 auto}.recommendations-page .settings-section-title{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 4px;padding:0 16px;font-size:14px;font-weight:600}.recommendations-page .price-range-row{gap:12px;padding:8px 0;display:flex}.recommendations-page .price-input{flex:1}@media (max-width:768px){.recommendations-container{padding:12px}.recommendations-page .insights-cards{grid-template-columns:1fr}.recommendations-page .feedback-actions{flex-direction:column;align-items:center}.recommendations-page .feedback-actions ion-button{width:100%;max-width:280px}}@media (prefers-color-scheme:dark){.debug-section{background:var(--ion-color-warning-shade)}.recommendations-page .insight-card,.recommendations-page .feedback-section{background:var(--ion-color-step-100)}}.recommendations-page .degraded-banner{background:var(--ion-color-warning-tint);border-bottom:1px solid var(--ion-color-warning);align-items:center;gap:8px;padding:10px 16px;display:flex}.recommendations-page .degraded-icon{color:var(--ion-color-warning-shade);flex-shrink:0;font-size:18px}.recommendations-page .degraded-text{color:var(--ion-color-warning-shade);flex:1;font-size:13px}.recommendations-page .degraded-dismiss{--padding-start:4px;--padding-end:4px;color:var(--ion-color-warning-shade);flex-shrink:0}.client-on-demand-jobs .empty-state{margin-top:48px}.client-on-demand-jobs .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:64px}.client-on-demand-jobs .jobs-list{grid-template-columns:1fr;gap:12px;display:grid}@media (min-width:768px){.client-on-demand-jobs .jobs-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.client-on-demand-jobs .jobs-list{grid-template-columns:repeat(3,1fr)}}.client-on-demand-jobs .job-card{margin:0}.client-on-demand-jobs .category-name{color:var(--ion-color-medium);margin-left:8px}.client-on-demand-jobs .job-description{color:var(--ion-color-dark);margin:0 0 8px}.client-on-demand-jobs .provider-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.client-on-demand-jobs .provider-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.client-on-demand-jobs .provider-avatar-placeholder{color:var(--ion-color-medium);font-size:28px}.client-on-demand-jobs .provider-name{color:var(--ion-color-dark);font-size:.9rem}.client-on-demand-jobs .job-meta{color:var(--ion-color-medium);flex-wrap:wrap;gap:12px;font-size:.85rem;display:flex}.client-on-demand-jobs .resume-btn{margin-top:12px}.rec-card--provider{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);cursor:pointer;width:178px;min-width:178px;transition:transform var(--shph-dur-fast) var(--shph-ease), box-shadow var(--shph-dur-fast) var(--shph-ease);flex-direction:column;gap:8px;padding:12px;display:flex}.rec-card--provider:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.rec-card--provider:active{transform:scale(.98)}.rec-card__head{align-items:flex-start;gap:8px;display:flex}.rec-card__id{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.rec-card__name-block{flex-direction:column;gap:1px;min-width:0;display:flex}.rec-card__name{color:var(--shph-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.rec-card__trade{color:var(--shph-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.rec-card__online{color:var(--shph-success-text);background:var(--shph-success-bg);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-flex}.rec-card__online-dot{background:var(--shph-success-text);border-radius:50%;width:6px;height:6px}.rec-card--provider .favorite-btn{--padding-start:4px;--padding-end:4px;flex-shrink:0;margin:0}.rec-card__stats{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.rec-card__from{color:var(--shph-primary-text);font-size:12px;font-weight:700}.rec-card__distance{color:var(--shph-text-secondary);align-items:center;gap:4px;margin:0;font-size:11px;display:flex}.rec-card__distance ion-icon{color:var(--shph-text-secondary);font-size:14px}.rec-card__cta{--border-radius:var(--shph-border-radius-md);color:var(--shph-primary-text);margin-top:4px;font-size:12px;font-weight:700}.recommendation-card{background:var(--ion-background-color);border:1px solid var(--ion-color-light-shade);cursor:pointer;border-radius:12px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1)}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.15)}.recommendation-card.high-confidence{border-color:var(--ion-color-primary);box-shadow:0 2px 8px rgba(56,128,255,.2)}.recommendation-card.compact{flex-direction:column;flex:0 0 160px;width:160px;min-height:280px;display:flex}.recommendation-card.compact .service-content{flex:auto;min-height:0;padding:12px}.recommendation-card.compact .service-title{margin-bottom:4px;font-size:14px;line-height:1.3}.recommendation-card.compact .service-meta{margin-bottom:8px}.recommendation-card.full{flex-direction:column;min-height:280px;display:flex}.recommendation-card.full .service-content{flex:auto;min-height:0}.recommendation-card .service-image{background:var(--ion-color-light);width:100%;height:120px;position:relative;overflow:hidden}.recommendation-card .service-image img{object-fit:cover;width:100%;height:100%}.recommendation-card .placeholder-image{width:100%;height:100%;color:var(--ion-color-medium);justify-content:center;align-items:center;font-size:32px;display:flex}.recommendation-card .confidence-badge{color:#fff;background:rgba(16,220,96,.9);border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:flex;position:absolute;top:8px;right:8px}.recommendation-card .confidence-badge ion-icon{font-size:12px}.recommendation-card .recommendation-reason{color:#fff;background:rgba(0,0,0,.8);border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:10px;display:flex;position:absolute;bottom:8px;left:8px}.recommendation-card .recommendation-reason ion-icon{font-size:12px}.recommendation-card .service-content{flex-direction:column;flex:auto;min-height:0;padding:16px;display:flex}.recommendation-card .service-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.recommendation-card .service-title{color:var(--ion-text-color);overflow-wrap:break-word;flex:1;min-width:0;margin:0;font-size:16px;font-weight:600;line-height:1.3}.recommendation-card .favorite-btn{--padding-start:8px;--padding-end:8px;flex-shrink:0;margin:-4px 0}.recommendation-card .service-meta{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px;display:flex}.recommendation-card .category{color:var(--ion-color-medium);background:var(--ion-color-light);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:0 auto;min-width:0;max-width:50%;padding:2px 8px;overflow:hidden}.recommendation-card .rating{color:var(--ion-text-color);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;align-items:center;gap:4px;min-width:0;max-width:50%;display:flex;overflow:hidden}.recommendation-card .rating>span:not(.review-count){flex-shrink:0}.recommendation-card .rating .review-count{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.recommendation-card .rating ion-icon{font-size:14px}.recommendation-card .review-count{color:var(--ion-color-medium)}.recommendation-card .service-details{margin-bottom:12px}.recommendation-card .price{color:var(--ion-color-success);margin-bottom:8px;font-size:18px;font-weight:700}.recommendation-card .price .currency{opacity:.8;font-size:14px}.recommendation-card .price-type{color:var(--ion-color-medium);margin-left:4px;font-size:12px;font-weight:400}.recommendation-card .provider-info{color:var(--ion-color-medium);align-items:center;gap:8px;font-size:12px;display:flex}.recommendation-card .provider-name{color:var(--ion-text-color);font-weight:500}.recommendation-card .verified-badge{padding:2px 6px;font-size:10px}.recommendation-card .insights{border-top:1px solid var(--ion-color-light-shade);margin-top:auto;padding-top:8px}.recommendation-card .insight-item{color:var(--ion-color-medium);align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.recommendation-card .insight-item:last-child{margin-bottom:0}.recommendation-card .insight-item ion-icon{color:var(--shph-primary-text);font-size:12px}.recommendation-card .card-actions{background:var(--ion-color-light);border-top:1px solid var(--ion-color-light-shade);gap:8px;padding:12px 16px;display:flex}.recommendation-card .contact-btn,.recommendation-card .book-btn{--padding-start:8px;--padding-end:8px;flex:1}.recommendation-card .compact-action{background:var(--ion-color-light);padding:8px 12px}.recommendation-card .compact-action ion-button{--padding-start:8px;--padding-end:8px;width:100%}@media (max-width:359px){.recommendation-card.compact{flex:0 0 140px;width:140px;min-height:250px}.recommendation-card .service-image{height:100px}.recommendation-card .service-title{font-size:13px}.recommendation-card .price .amount{font-size:15px}}@media (min-width:768px){.recommendation-card.compact{flex:0 0 180px;width:180px}.recommendation-card .service-image{height:140px}}@media (prefers-color-scheme:dark){.recommendation-card{background:var(--ion-color-step-100);border-color:var(--ion-color-step-200)}.card-actions,.recommendation-card .compact-action{background:var(--ion-color-step-150);border-color:var(--ion-color-step-200)}.recommendation-card .category{background:var(--ion-color-step-200)}.recommendation-card .insights{border-color:var(--ion-color-step-200)}}.service-recommendations{margin-bottom:24px}.service-recommendations .recommendations-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding:0 16px;display:flex}.service-recommendations .header-content{flex:1}.service-recommendations .section-title{color:var(--ion-text-color);margin:0 0 4px;font-size:18px;font-weight:600}.service-recommendations .section-subtitle{color:var(--ion-color-medium);margin:0;font-size:14px}.service-recommendations .loading-state{padding:0 16px}.service-recommendations .skeleton-cards{gap:12px;display:flex;overflow-x:hidden}.service-recommendations .skeleton-card{background:var(--ion-color-light);border-radius:12px;flex:0 0 160px;padding:12px;animation:1.5s ease-in-out infinite pulse}.service-recommendations .skeleton-image{background:var(--ion-color-light-shade);border-radius:8px;width:100%;height:80px;margin-bottom:8px}.service-recommendations .skeleton-line{background:var(--ion-color-light-shade);border-radius:6px;height:12px;margin-bottom:6px}.service-recommendations .skeleton-line.short{width:60%}.service-recommendations .empty-state{text-align:center;color:var(--ion-color-medium);padding:40px 20px}.service-recommendations .empty-icon{color:var(--ion-color-light-shade);margin-bottom:16px;font-size:48px}.service-recommendations .empty-state h4{color:var(--ion-text-color);margin:0 0 8px;font-size:16px}.service-recommendations .empty-state p{margin:0 0 20px;font-size:14px}.service-recommendations .horizontal-scroll{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto}.service-recommendations .horizontal-scroll::-webkit-scrollbar{display:none}.service-recommendations .recommendation-cards{gap:12px;padding:8px 16px 16px;display:flex}.service-recommendations .grid-layout{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:0 16px;display:grid}.service-recommendations .insights-section{background:var(--ion-color-primary);border-radius:12px;margin:16px;padding:16px}.service-recommendations .insights-header{color:var(--shph-on-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.service-recommendations .insights-header ion-icon{color:var(--shph-on-primary);flex-shrink:0}.service-recommendations .insights-list{flex-direction:column;gap:8px;display:flex}.service-recommendations .insights-section .insight-item{color:var(--shph-on-primary);align-items:center;gap:8px;font-size:13px;display:flex}.service-recommendations .insights-section .insight-item ion-icon{color:var(--shph-on-primary);flex-shrink:0;font-size:16px}.service-recommendations .metrics-debug{background:var(--ion-color-warning-tint);border-radius:8px;margin-top:16px;padding:12px 16px;font-family:monospace;font-size:12px}.service-recommendations .metrics-debug summary{cursor:pointer;color:var(--ion-color-warning);margin-bottom:8px;font-weight:600}.service-recommendations .metrics-content{gap:4px;display:grid}.service-recommendations .metric{justify-content:space-between;display:flex}.service-recommendations .metric .label{color:var(--ion-color-medium)}.service-recommendations .metric .value{color:var(--ion-text-color);font-weight:600}@media (max-width:768px){.grid-layout{grid-template-columns:1fr}.service-recommendations .recommendation-cards{padding:0 12px 8px}.service-recommendations .recommendations-header{padding:0 12px}.service-recommendations .insights-section{margin:16px 12px}}@media (max-width:359px){.service-recommendations .recommendation-cards{gap:8px;padding:0 10px 6px}.service-recommendations .skeleton-card{flex:0 0 140px;padding:10px}.service-recommendations .grid-layout{grid-template-columns:1fr;gap:12px;padding:0 10px}}@media (min-width:768px){.service-recommendations .grid-layout{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (prefers-color-scheme:dark){.skeleton-card{background:var(--ion-color-step-100)}.skeleton-image,.service-recommendations .skeleton-line{background:var(--ion-color-step-200)}.service-recommendations .insights-section{background:var(--ion-color-primary-shade)}.service-recommendations .insights-header,.service-recommendations .insights-header ion-icon,.service-recommendations .insights-section .insight-item ion-icon,.service-recommendations .insights-section .insight-item{color:var(--shph-on-primary)}.service-recommendations .metrics-debug{background:var(--ion-color-warning-shade)}}.emergency-section{margin-top:24px;margin-bottom:24px;padding:0 16px}.emergency-section .emergency-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.emergency-section .emergency-title{text-transform:uppercase;letter-spacing:.1em;color:var(--shph-text-hint);align-items:center;gap:8px;margin:0;font-size:12px;font-weight:900;display:flex}.emergency-section .emergency-pulse{background:var(--shph-warm-rose);width:7px;height:7px;box-shadow:var(--shph-shadow-warm);border-radius:50%;animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.18)}}.emergency-section .emergency-band{border-radius:var(--shph-border-radius-hero);background:var(--shph-gradient-urgent);box-shadow:var(--shph-shadow-card);color:var(--shph-urgent-ink);align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex;overflow:hidden}.emergency-section .emergency-band__icon{background:var(--shph-overlay-on-dark-mid);width:40px;height:40px;color:var(--shph-urgent-ink);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:20px;display:flex}.emergency-section .emergency-band__copy{flex:auto;min-width:0}.emergency-section .emergency-band__title{color:var(--shph-urgent-ink);margin:0;font-size:13px;font-weight:800;line-height:1.25}.emergency-section .emergency-band__sub{color:var(--shph-urgent-ink);margin:2px 0 0;font-size:11px;font-weight:600;line-height:1.35}.emergency-section .emergency-band__pulse{background:var(--shph-urgent-ink);box-shadow:none;flex:none}.emergency-section .emergency-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}body.dark .categories-page .category-card,:root.ion-palette-dark .categories-page .category-card,:root[data-theme=dark] .categories-page .category-card{background:var(--shph-bg-primary)}@media (min-width:1024px){.categories-page .categories-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:20px 24px 40px}.emergency-section .emergency-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}.emergency-section .emergency-card{min-height:166px;box-shadow:var(--shph-shadow-card);color:var(--shph-text-on-dark);cursor:pointer;text-align:left;transition:transform var(--shph-dur-fast) var(--shph-ease), box-shadow var(--shph-dur-fast) var(--shph-ease);border:1px solid transparent;border-radius:20px;flex-direction:column;align-items:stretch;padding:14px;display:flex;position:relative;overflow:hidden}.emergency-section .emergency-card:after{background:var(--shph-overlay-on-dark-low);content:"";border-radius:50%;width:100px;height:100px;position:absolute;top:-48px;right:-36px}.emergency-section .emergency-card--locksmith{box-shadow:var(--shph-shadow-warm);background:linear-gradient(135deg,#0a4d54,#0d6d78)}.emergency-section .emergency-card--plumbing{box-shadow:var(--shph-shadow-cta);background:linear-gradient(135deg,#0b3f48,#0e5f6b)}.emergency-section .emergency-card:active{transform:scale(.97)}.emergency-section .emergency-card__topline{z-index:1;justify-content:space-between;align-items:center;gap:6px;display:flex;position:relative}.emergency-section .emergency-card__icon{border:1px solid var(--shph-overlay-on-dark-mid);background:var(--shph-overlay-on-dark-low);width:42px;height:42px;color:var(--shph-text-on-dark);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:20px;display:flex}.emergency-section .emergency-card__status{border:1px solid var(--shph-overlay-on-dark-mid);border-radius:var(--shph-border-radius-pill);background:var(--shph-overlay-on-dark-low);color:var(--shph-text-on-dark);letter-spacing:.03em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;padding:4px 6px;font-size:9px;font-weight:800;overflow:hidden}.emergency-section .emergency-card__title{z-index:1;color:var(--shph-text-on-dark);margin:auto 0 0;font-size:15px;font-weight:800;line-height:1.2;position:relative}.emergency-section .emergency-card__sub{z-index:1;color:var(--shph-text-on-dark-muted);margin:5px 0 0;font-size:11px;font-weight:600;line-height:1.35;position:relative}@media (hover:hover){.emergency-section .emergency-card:hover{box-shadow:var(--shph-shadow-lg);transform:translateY(-2px)}}.emergency-section .emergency-card__action{z-index:1;background:var(--shph-text-on-dark);color:#0a4d54;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;min-height:36px;box-shadow:var(--shph-shadow-sm);border-radius:999px;justify-content:center;align-self:flex-start;align-items:center;margin-top:10px;padding:0 14px;font-size:12px;font-weight:800;transition:opacity .12s,transform .12s;display:inline-flex;position:relative;overflow:hidden}.emergency-section .emergency-card__action:active{transform:scale(.97)}.emergency-section .emergency-card--plumbing .emergency-card__action{color:#0b3f48}.booking-page .service-summary{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-sm);align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.booking-page .service-thumb{object-fit:cover;border-radius:8px;flex-shrink:0;width:64px;height:64px}.booking-page .service-summary-info{flex:1;min-width:0}.booking-page .service-title{white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:16px;font-weight:600;overflow:hidden}.booking-page .service-provider{color:var(--shph-text-secondary);margin:0;font-size:13px}.booking-page .field-error{margin-top:4px;font-size:13px;display:block}.booking-page .booking-datetime{--background:var(--shph-bg-primary);--wheel-highlight-background:var(--shph-primary-light);--wheel-highlight-text-color:var(--shph-text-primary);background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-sm);margin-top:16px;padding:8px 8px 12px}.booking-page ion-textarea[fill=outline]{--padding-start:12px;--padding-end:12px;margin-top:16px}.booking-page ion-button[expand=block].booking-next{--border-radius:var(--shph-border-radius-md);min-height:52px;margin-top:20px;margin-bottom:24px;font-weight:600}.booking-payment .booking-summary{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-sm);margin-bottom:12px;padding:16px}.booking-payment .section-title{color:var(--shph-text-heading);margin:0 0 12px;font-size:15px;font-weight:700}.booking-payment .summary-row{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.booking-payment .summary-label{color:var(--shph-text-secondary);flex-shrink:0}.booking-payment .summary-value{text-align:right;color:var(--shph-text-heading);font-weight:500}.booking-payment .cost-breakdown{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-sm);padding:16px}.booking-payment .cost-row{justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.booking-payment .cost-row span:first-child{color:var(--shph-text-secondary)}.booking-payment .cost-row--total{color:var(--shph-text-heading);border-top:1px solid var(--shph-border);margin-top:4px;padding-top:8px;font-size:16px;font-weight:700}.booking-payment .estimate-error{color:var(--ion-color-danger);margin:4px 0 0;font-size:13px}.booking-payment .voucher-section{margin-top:16px}.booking-payment .voucher-title{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.booking-payment .voucher-row{align-items:center;gap:8px;display:flex}.booking-payment .voucher-input{--padding-start:12px;--padding-end:12px;--background:var(--shph-bg-primary);border:1px solid var(--shph-input-border);border-radius:var(--shph-border-radius-md);flex:1;min-width:0}.booking-payment .voucher-error{color:var(--ion-color-danger);margin:4px 0 0;font-size:13px}.booking-payment .voucher-success{color:var(--ion-color-success);align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.booking-payment .pay-later-note{color:var(--shph-text-secondary);background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);align-items:center;gap:8px;margin:16px 0 0;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.booking-payment .pay-later-note ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:16px}.booking-payment .confirm-btn{--border-radius:var(--shph-border-radius-md);min-height:52px;margin-bottom:32px;font-weight:600}.booking-success .success-container{text-align:center;min-height:100%;padding:32px 24px max(32px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex}.booking-success .check-wrapper{margin-bottom:32px;animation:.6s cubic-bezier(.34,1.56,.64,1) scale-in}.booking-success .check-circle{background:var(--ion-color-success);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;display:flex;box-shadow:0 8px 24px rgba(76,175,80,.35)}.booking-success .check-icon{color:var(--ion-color-success-contrast);font-size:64px}.booking-success .success-title{color:var(--shph-text-primary);margin:0 0 12px;font-size:24px;font-weight:700}.booking-success .success-subtitle{color:var(--shph-text-secondary);max-width:320px;margin:0 0 48px;font-size:15px;line-height:1.5}.booking-success .actions{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.booking-success .action-primary{--background:var(--shph-primary);--color:var(--shph-on-primary);--border-radius:var(--shph-border-radius-md);height:52px;font-weight:600}.booking-success .action-secondary{--border-color:var(--shph-border);--color:var(--shph-text-primary);--border-radius:var(--shph-border-radius-md);height:52px;font-weight:600}.eta-tracking .state-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;height:60vh;padding:2rem;display:flex}.eta-tracking .state-icon{font-size:3rem}.eta-tracking .map-wrap{border-radius:12px;height:340px;margin:0 16px 16px;overflow:hidden}.eta-tracking .map-wrap .provider-map{height:340px}.eta-tracking .status-label{margin-top:8px}.eta-tracking .refresh-hint{color:var(--ion-color-medium);margin-top:10px;font-size:.78rem}.favorites-page .fav-list{grid-template-columns:1fr;gap:12px;padding:8px 16px;display:grid}@media (min-width:768px){.favorites-page .fav-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.favorites-page .fav-list{grid-template-columns:repeat(3,1fr)}}.project-detail .category{color:var(--shph-text-secondary);margin-top:4px;font-size:14px}.project-detail .description{white-space:pre-wrap;margin-top:12px}.project-detail .section-title{color:var(--shph-text-heading);margin-top:20px;font-size:16px;font-weight:600}.project-detail .no-prospects{color:var(--shph-text-secondary);text-align:center;font-size:14px}.project-detail .action-buttons{flex-direction:column;gap:8px;display:flex}.project-list ion-list{background:0 0}.project-list ion-item{--background:var(--shph-bg-primary);--border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-xs);margin-bottom:8px}.project-list ion-item:active{transform:scale(.98)}.provider-booking-flow .pbf-loading{height:100%;color:var(--ion-color-medium);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.provider-booking-flow .pbf-row-icon{color:var(--ion-color-primary);flex-shrink:0;font-size:22px}.provider-booking-flow .pbf-pulse{animation:1.5s ease-in-out infinite pbf-pulse}@keyframes pbf-pulse{0%,to{opacity:1}50%{opacity:.7}}.provider-booking-flow .pbf-cta,.provider-booking-flow .pbf-secondary{--border-radius:var(--shph-border-radius-md);height:52px;font-weight:600}.provider-booking-flow .pbf-hero{color:var(--shph-text-on-dark);flex-direction:column;align-items:center;padding:48px 24px 32px;display:flex}.provider-booking-flow .pbf-hero--teal{background:var(--shph-gradient-hero)}.provider-booking-flow .pbf-hero-icon-wrap{justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:16px;display:flex;position:relative}.provider-booking-flow .pbf-hero-icon{color:var(--shph-text-on-dark);z-index:1;font-size:48px}.provider-booking-flow .pbf-hero-pulse{border:2px solid var(--shph-overlay-on-dark-mid);border-radius:50%;width:80px;height:80px;animation:2s ease-out infinite pbf-ripple;position:absolute}@keyframes pbf-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.provider-booking-flow .pbf-hero-title{margin:0;font-size:24px;font-weight:700}.provider-booking-flow .pbf-hero-subtitle{opacity:.9;margin:4px 0 0;font-size:14px}.provider-booking-flow .pbf-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);box-shadow:var(--shph-shadow-sm);border-radius:24px;margin:16px;padding:20px}.provider-booking-flow .pbf-card-row{border-bottom:1px solid var(--shph-border);align-items:center;gap:14px;padding:12px 0;display:flex}.provider-booking-flow .pbf-card-row:last-child{border-bottom:none}.provider-booking-flow .pbf-row-label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;font-size:12px;display:block}.provider-booking-flow .pbf-row-value{color:var(--shph-text-primary);font-size:16px;font-weight:500;display:block}.provider-booking-flow .pbf-warning{background:var(--shph-status-cancelled-bg);border:1px solid var(--shph-status-cancelled);color:var(--shph-status-cancelled);border-radius:12px;align-items:center;gap:10px;margin:0 16px 16px;padding:14px 16px;font-size:14px;display:flex}.provider-booking-flow .pbf-warning ion-icon{flex-shrink:0;font-size:20px}.provider-booking-flow .pbf-actions{flex-direction:column;gap:10px;margin-top:auto;padding:16px 24px 32px;display:flex}.provider-booking-flow .pbf-accepted-main,.provider-booking-flow .pbf-arrived-main,.provider-booking-flow .pbf-progress-main,.provider-booking-flow .pbf-enroute-main{background:var(--shph-bg-page);flex-direction:column;height:100%;display:flex}.provider-booking-flow .pbf-enroute-map{flex:1;min-height:300px;position:relative}.provider-booking-flow .pbf-enroute-map .provider-map{width:100%;height:100%}.provider-booking-flow .pbf-sheet{background:var(--shph-bg-secondary);border-top:1px solid var(--shph-border);border-radius:28px 28px 0 0;flex-direction:column;gap:14px;padding:12px 20px 28px;display:flex;box-shadow:0 -6px 24px rgba(0,0,0,.15)}.provider-booking-flow .pbf-sheet-handle{background:var(--shph-border);border-radius:999px;width:40px;height:4px;margin:0 auto 2px}.provider-booking-flow .pbf-client-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.provider-booking-flow .pbf-client-info{align-items:center;gap:12px;min-width:0;display:flex}.provider-booking-flow .pbf-client-avatar{background:var(--shph-bg-page);border:1px solid var(--shph-border);width:44px;height:44px;color:var(--ion-color-medium);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.provider-booking-flow .pbf-client-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--shph-primary-text);font-size:9px;font-weight:800;display:block}.provider-booking-flow .pbf-client-name{color:var(--ion-text-color);white-space:nowrap;text-overflow:ellipsis;margin:1px 0 0;font-size:15px;font-weight:800;overflow:hidden}.provider-booking-flow .pbf-client-info>div{min-width:0}.provider-booking-flow .pbf-client-addr{color:var(--ion-color-medium);margin:1px 0 0;font-size:11px}.provider-booking-flow .pbf-eta{color:var(--shph-primary);margin:3px 0 0;font-size:12px;font-weight:700}.provider-booking-flow .pbf-client-actions{flex-shrink:0;gap:8px;display:flex}.provider-booking-flow .pbf-icon-btn{background:var(--shph-bg-page);border:1px solid var(--shph-border);width:38px;height:38px;color:var(--ion-text-color);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:15px;display:flex}.provider-booking-flow .pbf-icon-btn--teal{background:rgba(var(--ion-color-primary-rgb),.12);border-color:rgba(var(--ion-color-primary-rgb),.25);color:var(--shph-primary-text)}.provider-booking-flow .pbf-sheet-divider{background:var(--shph-border);height:1px}.provider-booking-flow .pbf-service-card{background:var(--shph-bg-page);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);flex-direction:column;gap:6px;padding:14px;display:flex}.provider-booking-flow .pbf-service-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.provider-booking-flow .pbf-service-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--ion-color-medium);font-size:10px;font-weight:800}.provider-booking-flow .pbf-service-payout{text-transform:uppercase;letter-spacing:.05em;color:var(--shph-primary-text);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:50%;font-size:10px;font-weight:800;overflow:hidden}.provider-booking-flow .pbf-service-title{color:var(--ion-text-color);margin:0;font-size:14px;font-weight:800}.provider-booking-flow .pbf-service-notes{color:var(--ion-color-medium);background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:8px;margin:0;padding:8px 10px;font-size:11px;line-height:1.5}.provider-booking-flow .pbf-locperm{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.provider-booking-flow .pbf-locperm>ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:20px}.provider-booking-flow .pbf-locperm-copy{flex:1;min-width:0}.provider-booking-flow .pbf-locperm-title{color:var(--ion-text-color);margin:0;font-size:13px;font-weight:700}.provider-booking-flow .pbf-locperm-body{color:var(--ion-color-medium);margin:2px 0 0;font-size:11px;line-height:1.4}.provider-booking-flow .pbf-completed-main{background:var(--shph-bg-page);flex-direction:column;min-height:100%;padding-bottom:16px;display:flex}.provider-booking-flow .pbf-success-head{text-align:center;flex-direction:column;align-items:center;padding:28px 24px 8px;display:flex}.provider-booking-flow .pbf-success-icon{background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.3);width:64px;height:64px;color:var(--shph-primary-text);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;font-size:30px;display:flex}.provider-booking-flow .pbf-success-title{color:var(--ion-text-color);margin:0;font-size:18px;font-weight:800}.provider-booking-flow .pbf-success-sub{color:var(--ion-color-medium);margin:4px 0 0;font-size:12px;font-weight:600}.provider-booking-flow .pbf-summary-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);box-shadow:var(--shph-shadow-sm);border-radius:22px;flex-direction:column;gap:12px;margin:12px 16px 0;padding:16px;display:flex}.provider-booking-flow .pbf-summary-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--ion-color-medium);font-size:10px;font-weight:800}.provider-booking-flow .pbf-earnings-items{background:var(--shph-bg-page);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);flex-direction:column;gap:10px;padding:14px;display:flex}.provider-booking-flow .pbf-earnings-row{color:var(--ion-color-medium);justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.provider-booking-flow .pbf-earnings-row--parts{border-top:1px solid var(--shph-border);align-items:flex-start;padding-top:10px}.provider-booking-flow .pbf-earn-label-col{flex-direction:column;display:flex}.provider-booking-flow .pbf-earn-sub{color:var(--shph-primary-text);margin-top:2px;font-size:10px;font-weight:700}.provider-booking-flow .pbf-earn-amt{color:var(--ion-text-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:50%;font-weight:800;overflow:hidden}.provider-booking-flow .pbf-earnings-fee{border-top:1px solid var(--shph-border);padding-top:10px}.provider-booking-flow .pbf-earnings-fee span:last-child{color:var(--shph-status-cancelled);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:50%;font-weight:800;overflow:hidden}.provider-booking-flow .pbf-earnings-net{background:rgba(var(--ion-color-primary-rgb),.08);border:1px solid rgba(var(--ion-color-primary-rgb),.2);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.provider-booking-flow .pbf-earnings-net span:first-child{text-transform:uppercase;letter-spacing:.05em;color:var(--shph-primary-text);font-size:11px;font-weight:800}.provider-booking-flow .pbf-net-amt{color:var(--ion-text-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:55%;font-size:20px;font-weight:800;overflow:hidden}.provider-booking-flow .pbf-detail-row{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.provider-booking-flow .pbf-detail-k{color:var(--ion-color-medium);flex-shrink:0;font-weight:600}.provider-booking-flow .pbf-detail-v{color:var(--ion-text-color);text-align:right;font-weight:700}.provider-booking-flow .pbf-arrived-main{height:auto;min-height:100%;padding-bottom:16px}.provider-booking-flow .pbf-verify-card{border:2px solid rgba(var(--ion-color-primary-rgb),.35)}.provider-booking-flow .pbf-verify-head{align-items:flex-start;gap:12px;display:flex}.provider-booking-flow .pbf-verify-key{background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.3);width:40px;height:40px;color:var(--shph-primary-text);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.provider-booking-flow .pbf-verify-key--ok{background:rgba(var(--ion-color-success-rgb),.12);border-color:rgba(var(--ion-color-success-rgb),.3);color:var(--ion-color-success)}.provider-booking-flow .pbf-verify-hint{color:var(--ion-color-medium);margin:3px 0 0;font-size:12px;line-height:1.5}.provider-booking-flow .pbf-arrived-wait{color:var(--ion-color-medium);text-align:center;margin:2px 0 0;font-size:12px}.provider-booking-flow .pbf-progress-main{height:auto;min-height:100%;padding:16px 0}.provider-booking-flow .pbf-timer-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);text-align:center;box-shadow:var(--shph-shadow-sm);border-radius:24px;margin:0 16px;padding:20px}.provider-booking-flow .pbf-timer-label{text-transform:uppercase;letter-spacing:.12em;color:var(--ion-color-medium);font-size:10px;font-weight:800;display:block}.provider-booking-flow .pbf-timer-value{font-variant-numeric:tabular-nums;letter-spacing:1px;color:var(--ion-text-color);margin:4px 0;font-size:38px;font-weight:800}.provider-booking-flow .pbf-timer-live{color:var(--shph-primary-text);justify-content:center;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:700;display:flex}.provider-booking-flow .pbf-timer-dot{background:var(--shph-primary);border-radius:50%;width:6px;height:6px}.provider-booking-flow .pbf-earn-sub--warn{color:var(--shph-warning-text)}.provider-booking-flow .pbf-earnings{border-top:2px solid var(--shph-border);justify-content:space-between;align-items:center;margin-top:8px;padding:16px 0 0;display:flex}.provider-booking-flow .pbf-earnings-label{color:var(--ion-color-medium);font-size:16px;font-weight:600}.provider-booking-flow .pbf-earnings-value{color:var(--ion-color-success);font-size:24px;font-weight:700}.provider-booking-flow .pbf-completion-photo{background:var(--shph-bg-primary);box-shadow:var(--shph-shadow-sm);border-radius:12px;margin:0 16px 16px;overflow:hidden}.provider-booking-flow .pbf-completion-photo-label{color:var(--shph-text-primary);margin:0;padding:12px 16px 0;font-size:14px;font-weight:600}.provider-booking-flow .pbf-completion-photo-img{width:100%;display:block}.pbf-completion-modal .pbf-evidence-label{color:var(--ion-color-medium);font-size:14px}.pbf-completion-modal .pbf-evidence-preview{border-radius:12px;margin:16px 0;overflow:hidden}.pbf-completion-modal .pbf-evidence-grid{grid-template-columns:repeat(auto-fill,88px);gap:8px;margin:16px 0;display:grid}.pbf-completion-modal .pbf-evidence-thumb{aspect-ratio:1;border-radius:var(--shph-border-radius-sm);background:var(--shph-bg-secondary);position:relative;overflow:hidden}.pbf-completion-modal .pbf-evidence-thumb .pbf-evidence-img{object-fit:cover;width:100%;height:100%;display:block}.pbf-completion-modal .pbf-evidence-remove{color:#fff;cursor:pointer;background:rgba(0,0,0,.65);border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex;position:absolute;top:4px;right:4px}.pbf-completion-modal .pbf-evidence-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:16px;display:grid}.pbf-completion-modal .pbf-evidence-count{color:var(--shph-text-hint);text-align:center;margin:8px 0 0;font-size:.8rem}.pbf-completion-modal .pbf-evidence-img{width:100%;display:block}.room-create .field-error{margin-top:4px;padding-left:16px;font-size:12px;display:block}.room-create ion-item,.room-join ion-item,.project-create ion-item{--background:var(--shph-bg-primary);--border-radius:var(--shph-radius-card);--padding-start:16px;--padding-end:16px;--inner-padding-end:0;--highlight-height:0;--min-height:72px;box-shadow:var(--shph-shadow-card);margin-bottom:12px}.room-create ion-content,.room-join ion-content,.project-create ion-content{--padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.room-detail .category{color:var(--shph-text-secondary);margin-top:4px;font-size:14px}.room-detail .description{white-space:pre-wrap;margin-top:12px}.room-detail .menu{white-space:pre-wrap;color:var(--shph-text-primary);margin-top:8px}.room-detail .section-title{color:var(--shph-text-heading);margin-top:20px;font-size:16px;font-weight:600}.room-detail .action-buttons{flex-direction:column;gap:8px;display:flex}.room-join .subtitle{color:var(--shph-text-secondary);margin-top:24px;font-size:14px}.room-join .room-meta{align-items:center;gap:12px;margin-bottom:8px;display:flex}.room-join .event-date{margin:4px 0;font-size:14px}.room-join .price{color:var(--shph-primary-text);font-weight:600}.room-list .room-meta{align-items:center;gap:12px;margin-bottom:8px;display:flex}.room-list .seats{color:var(--shph-text-secondary);font-size:14px}.room-list .event-date{color:var(--shph-text-primary);margin:4px 0;font-size:14px}.room-list .price{color:var(--shph-primary-text);font-weight:600}.room-list ion-card{--background:var(--shph-bg-primary);margin:0 0 12px}.room-list ion-card:active{transform:scale(.98)}.subcategory-page .page-wrap{padding-bottom:32px}.subcategory-page .subcategory-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (min-width:480px){.subcategory-page .subcategory-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.subcategory-page .subcategory-grid{grid-template-columns:repeat(4,1fr)}}.subcategory-page .subcategory-card{border-radius:var(--shph-radius-card);border:1px solid var(--ion-color-light-shade);background:var(--shph-bg-primary);box-shadow:var(--shph-shadow-card);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px 12px 16px;transition:transform .15s,box-shadow .15s;display:flex}.subcategory-page .subcategory-card:active{transform:scale(.97)}@media (hover:hover){.subcategory-page .subcategory-card:hover{box-shadow:var(--shph-shadow-card-lg);transform:translateY(-2px)}}.subcategory-page .card-icon-wrap{border-radius:var(--shph-border-radius-md);background:var(--ion-color-primary-tint);justify-content:center;align-items:center;width:52px;height:52px;display:flex}.subcategory-page .card-icon{color:var(--shph-on-primary);font-size:26px}.subcategory-page .card-emoji{font-size:26px;line-height:1}.subcategory-page .card-label{color:var(--shph-text-heading);font-size:13px;font-weight:600;line-height:1.3}.subcategory-page .card-desc{color:var(--ion-color-medium);margin:0;font-size:11px;line-height:1.4}.subcategory-page .error-state,.subcategory-page .empty-state{color:var(--ion-color-medium);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.subcategory-page .error-icon{color:var(--ion-color-danger);font-size:48px}.tm-active-job .tm-active-content{--background:var(--shph-bg-page)}.tm-active-job .tab-header{background:0 0}.tm-active-job .status-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.tm-active-job .booking-id{color:var(--shph-text-hint);font-family:monospace;font-size:13px}.tm-active-job .provider-card{align-items:center;gap:14px;display:flex}.tm-active-job .provider-avatar{background:var(--shph-bg-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.tm-active-job .provider-avatar ion-icon{color:var(--shph-primary);font-size:40px}.tm-active-job .provider-info{flex-direction:column;gap:2px;display:flex}.tm-active-job .provider-info strong{color:var(--shph-text-heading);font-size:16px}.tm-active-job .provider-info span{color:var(--shph-text-secondary);font-size:13px}.tm-active-job .provider-meta{gap:12px;margin-top:4px;display:flex}.tm-active-job .meta-item{color:var(--shph-text-secondary);align-items:center;gap:4px;font-size:12px;display:flex}.tm-active-job .meta-item ion-icon{font-size:14px}.tm-active-job .hardware-card{border:2px solid var(--ion-color-warning)}.tm-active-job .hardware-head{align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.tm-active-job .hardware-icon{color:var(--ion-color-warning);flex-shrink:0;font-size:24px}.tm-active-job .hardware-head strong{color:var(--shph-text-heading);font-size:15px;display:block}.tm-active-job .hardware-head p{color:var(--shph-text-secondary);margin:2px 0 0;font-size:13px}.tm-active-job .hardware-desc{color:var(--shph-text-secondary);margin:0 0 12px;font-size:13px;line-height:1.5}.tm-active-job .hardware-cost{background:var(--shph-bg-secondary);border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:10px 12px;font-size:14px;display:flex}.tm-active-job .cost-value{color:var(--ion-color-warning);font-weight:700}.tm-active-job .hardware-actions{gap:10px;display:flex}.tm-active-job .hardware-actions ion-button{flex:1}.tm-active-job .active-error{color:var(--ion-color-danger);align-items:center;gap:8px;margin-top:16px;font-size:13px;display:flex}.tm-broadcast .tm-broadcast-content{--background:var(--shph-bg-page)}.tm-broadcast .tab-header{background:0 0}.tm-broadcast .broadcast-wrap{flex-direction:column;align-items:center;gap:16px;padding:24px 20px 32px;display:flex}.tm-broadcast .stage-label{color:var(--shph-text-heading);align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.tm-broadcast .stage-label ion-icon{color:var(--shph-primary);font-size:18px}.tm-broadcast .radius-display{color:var(--shph-text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.tm-broadcast .radius-display ion-icon{font-size:16px}.tm-broadcast .countdown-circle{width:140px;height:140px;margin:8px 0;position:relative}.tm-broadcast .countdown-circle svg{width:100%;height:100%;transform:rotate(-90deg)}.tm-broadcast .countdown-circle .track{fill:none;stroke:var(--shph-border);stroke-width:6px}.tm-broadcast .countdown-circle .progress{fill:none;stroke:var(--shph-primary);stroke-width:6px;stroke-linecap:round;stroke-dasharray:276.46;transition:stroke-dashoffset 1s linear}.tm-broadcast .countdown-num{color:var(--shph-text-heading);justify-content:center;align-items:center;font-size:36px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.tm-broadcast .waiting-text{color:var(--shph-text-secondary);text-align:center;max-width:280px;margin:0 0 16px;font-size:14px}.tm-broadcast .broadcast-error{color:var(--ion-color-danger);align-items:center;gap:8px;font-size:13px;display:flex}.tm-broadcast .failed-actions{flex-direction:column;gap:10px;width:100%;max-width:320px;display:flex}.tm-broadcast .failed-actions ion-button{--border-radius:12px}.tm-estimate .tm-estimate-content{--background:var(--shph-bg-page)}.tm-estimate .tab-header{background:0 0}.tm-estimate .tm-estimate__note{color:var(--shph-text-secondary);margin:12px 0 0;font-size:12px;line-height:1.5}.tm-estimate .tm-estimate__cta{margin-top:16px}.tm-invoice .tm-invoice-content{--background:var(--shph-bg-page)}.tm-invoice .tab-header{background:0 0}.tm-invoice .tm-invoice__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tm-invoice .tm-invoice__service{color:var(--shph-text-heading);margin:0;font-size:18px;font-weight:700}.tm-invoice .tm-invoice__meta{color:var(--shph-text-secondary);margin:6px 0 2px;font-size:13px}.tm-invoice .tm-invoice__parties{color:var(--shph-text-secondary);margin:0 0 12px;font-size:13px}.tm-invoice .tm-invoice__note{color:var(--shph-text-secondary);margin:12px 0 0;font-size:12px;line-height:1.5}.tm-invoice .tm-invoice__pay-btn{--border-radius:12px;height:52px;margin-top:16px;font-weight:600}.tm-payment .tm-payment-content{--background:var(--shph-bg-page)}.tm-payment .tab-header{background:0 0}.tm-payment .amount-due{flex-direction:column;align-items:center;gap:4px;display:flex}.tm-payment .amount-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:13px}.tm-payment .amount-value{color:var(--shph-text-heading);font-size:32px;font-weight:700}.tm-payment .method-list{flex-direction:column;gap:10px;display:flex}.tm-payment .method-card{border-radius:var(--shph-radius-card);background:var(--shph-bg-primary);box-shadow:var(--shph-shadow-card);cursor:pointer;color:var(--shph-text-heading);text-align:left;border:2px solid transparent;align-items:center;gap:12px;width:100%;padding:16px;font-size:15px;font-weight:500;transition:border-color .15s;display:flex}.tm-payment .method-card ion-icon{color:var(--shph-primary);font-size:22px}.tm-payment .method-card--active{border-color:var(--shph-primary)}.tm-payment .method-check{color:var(--shph-primary);margin-left:auto;font-size:22px}.tm-payment .payment-error{color:var(--ion-color-danger);align-items:center;gap:8px;margin-top:16px;font-size:13px;display:flex}.tm-payment .pay-btn{--border-radius:12px;height:52px;margin-bottom:32px;font-weight:600}.tm-rating .tm-rating-content{--background:var(--shph-bg-page)}.tm-rating .tab-header{background:0 0}.tm-rating .rating-wrap{flex-direction:column;gap:16px;display:flex}.tm-rating .rating-stars{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.tm-rating .star-btn{cursor:pointer;background:0 0;border:none;padding:4px;transition:transform .15s}.tm-rating .star-btn:active{transform:scale(.9)}.tm-rating .star-btn ion-icon{color:var(--shph-text-hint);font-size:40px}.tm-rating .star-btn--active ion-icon{color:#ffc107}.tm-rating .rating-label{text-align:center;color:var(--shph-text-heading);margin:0 0 16px;font-size:15px;font-weight:600}.tm-rating .rating-comment{margin-top:8px}.tm-rating .rating-error{color:var(--ion-color-danger);align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.tm-rating .submit-btn{--border-radius:12px;height:52px;margin-bottom:32px;font-weight:600}.tm-subcategory .tm-sub-content{--background:var(--shph-bg-page)}.tm-subcategory .tab-header{background:0 0}.tm-subcategory .tm-badge{background:var(--shph-bg-secondary);color:var(--shph-primary);border-radius:20px;align-items:center;gap:6px;margin-bottom:16px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.tm-subcategory .tm-badge ion-icon{font-size:14px}.tm-subcategory .sub-list{flex-direction:column;gap:12px;display:flex}.tm-subcategory .sub-card{border-radius:var(--shph-radius-card);background:var(--shph-bg-primary);box-shadow:var(--shph-shadow-card);text-align:left;cursor:pointer;border:none;align-items:center;gap:14px;width:100%;min-width:0;padding:16px;transition:transform .15s;display:flex}.tm-subcategory .sub-card:active{transform:scale(.98)}.tm-subcategory .sub-card__icon{background:var(--shph-bg-secondary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.tm-subcategory .sub-card__icon ion-icon{color:var(--shph-primary);font-size:22px}.tm-subcategory .sub-card__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tm-subcategory .sub-card__body strong,.tm-subcategory .sub-card__subtitle,.tm-subcategory .sub-card__price{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;min-width:0;max-width:100%;line-height:1.3}.tm-subcategory .sub-card__body strong{color:var(--shph-text-heading);font-size:15px}.tm-subcategory .sub-card__subtitle{color:var(--shph-text-secondary);font-size:13px}.tm-subcategory .sub-card__price{color:var(--shph-primary);margin-top:2px;font-size:13px;font-weight:600}.tm-subcategory .sub-card__chevron{color:var(--shph-text-hint);flex-shrink:0;font-size:20px}.write-review .review-form{flex-direction:column;gap:24px;display:flex}.write-review .rating-section{flex-direction:column;align-items:center;gap:12px;display:flex}.write-review .rating-label{color:var(--shph-text-secondary);margin:0;font-size:15px}.write-review .comment-section{flex-direction:column;gap:8px;display:flex}.write-review .comment-label{color:var(--shph-text-primary);margin:0;font-size:14px;font-weight:600}.write-review .comment-input{--border-radius:12px}.write-review .error-text{color:var(--ion-color-danger);margin:0;font-size:13px}.write-review .submit-btn{--border-radius:var(--shph-border-radius-md,12px);height:52px;margin-top:8px;font-weight:600}.start-job-pin-content{text-align:center}.start-job-pin-hint{color:var(--shph-text-secondary);margin:0 0 16px;font-size:13px}.start-job-pin-input{--padding-start:0;letter-spacing:12px;text-align:center;border:2px solid var(--shph-border);border-radius:var(--shph-border-radius-md,14px);margin-bottom:12px;font-size:32px;font-weight:900}.start-job-pin-error{color:var(--shph-error);justify-content:center;align-items:center;gap:6px;margin:0 0 16px;font-size:13px;font-weight:700;display:flex}.start-job-pin-card .start-job-pin-content{text-align:center}.start-job-pin-display{letter-spacing:12px;color:var(--shph-text-primary);margin:8px 0 0;font-size:40px;font-weight:900}.od-service-more{width:100%;color:var(--shph-primary-text,#0d6d78);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:10px;font-size:.85rem;font-weight:600;display:flex}.od-service-more ion-icon{font-size:14px}.pbf-completion-modal .pbf-evidence-submit{margin-top:14px}.completion-photo{width:100%;display:block}.completion-photo:last-child{border-radius:0 0 8px 8px}.pbf-evidence-sent{width:18px;height:18px;color:var(--ion-color-success);background:rgba(0,0,0,.55);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:2px;right:2px}.pbf-closed{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;padding:48px 24px;display:flex}.pbf-closed__icon{color:var(--ion-color-warning);font-size:56px}.pbf-closed__title{color:var(--shph-text-primary);margin:0;font-size:20px;font-weight:700}.pbf-closed__body{color:var(--shph-text-secondary);margin:0 0 8px}.leaflet-container .leaflet-control-zoom a.leaflet-control-zoom-in,.leaflet-container .leaflet-control-zoom a.leaflet-control-zoom-out,.provider-map-view .leaflet-control-zoom a.leaflet-control-zoom-in,.provider-map-view .leaflet-control-zoom a.leaflet-control-zoom-out{text-indent:0;justify-content:center;align-items:center;height:auto;min-height:26px;font-size:18px;line-height:1.4;display:flex}.desktop-shell{display:none}@media (min-width:1024px){.desktop-shell{z-index:50;pointer-events:none;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.desktop-sidebar{pointer-events:auto;background:var(--shph-bg-primary);border-right:1px solid var(--shph-border);flex-direction:column;flex-shrink:0;gap:4px;width:232px;padding:20px 12px;display:flex;overflow-y:auto}.desktop-sidebar__brand{align-items:center;gap:10px;margin-bottom:8px;padding:6px 10px 18px;display:flex}.desktop-sidebar__brand-logo{object-fit:contain;width:34px;height:34px}.desktop-sidebar__brand-name{color:var(--shph-text-heading);letter-spacing:-.02em;font-size:20px;font-weight:900}.desktop-sidebar__nav{flex-direction:column;gap:4px;display:flex}.desktop-sidebar__item{border-radius:var(--shph-border-radius-md);min-height:46px;color:var(--shph-text-secondary);align-items:center;gap:12px;padding:0 12px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.desktop-sidebar__item ion-icon{flex-shrink:0;font-size:20px}.desktop-sidebar__item:hover{background:var(--shph-bg-secondary);color:var(--shph-text-primary)}.desktop-sidebar__item--active{background:var(--shph-primary-light);color:var(--shph-primary-text)}.desktop-sidebar__label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.desktop-sidebar__badge{--border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:11px;display:inline-flex}.desktop-topbar{pointer-events:auto;background:var(--shph-bg-primary);border-bottom:1px solid var(--shph-border);align-items:center;height:64px;padding:0 24px;display:flex;position:absolute;top:0;left:232px;right:0}.desktop-topbar__inner{align-items:center;gap:16px;width:100%;display:flex}.desktop-topbar__brand{flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.desktop-topbar__brand-logo{object-fit:contain;width:32px;height:32px}.desktop-topbar__brand-name{color:var(--shph-text-heading);letter-spacing:-.02em;font-size:18px;font-weight:900}.desktop-topbar__search{background:var(--shph-bg-secondary);max-width:480px;color:var(--shph-text-hint);border-radius:999px;flex:1;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.desktop-topbar__search:hover{background:var(--shph-border)}.desktop-topbar__search ion-icon{flex-shrink:0;font-size:18px}.desktop-topbar__actions{align-items:center;gap:12px;height:100%;margin-left:auto;display:flex}.desktop-topbar__actions ion-toggle{--background:var(--shph-border);--background-checked:var(--shph-primary);transform:scale(.85)}.desktop-topbar__icon-btn{color:var(--shph-text-secondary);display:inline-flex;position:relative}.desktop-topbar__icon-wrap{font-size:24px;position:relative}.desktop-topbar__dot{background:var(--shph-color-destructive);border:2px solid var(--shph-bg-primary);border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.desktop-topbar__profile{justify-content:center;align-items:center;margin-left:4px;text-decoration:none;display:inline-flex}.desktop-topbar__avatar{object-fit:cover;border:2px solid var(--shph-border);border-radius:50%;width:34px;height:34px}.desktop-topbar__avatar--fallback{background:var(--shph-bg-secondary);color:var(--shph-text-secondary);justify-content:center;align-items:center;font-size:15px;font-weight:700;text-decoration:none;display:flex}.tabs-layout__tabs{min-height:0;margin:64px 0 0 232px;width:calc(100vw - 232px)!important;height:calc(100% - 64px)!important}.tabs-layout__tabs ion-content{--padding-start:16px;--padding-end:16px;--padding-bottom:48px}.tabs-layout__tabs .content-container{max-width:none}}.home-page .home-header-condense ion-toolbar{--background:transparent;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;--border-width:0;position:static}.home-page .home-header-main{background:var(--shph-aurora-top);will-change:opacity;transform:translate(0,0)}.home-page .home-header-main .home-toolbar{--background:var(--shph-bg-primary);--padding-start:0;--padding-end:0;--border-width:0}.home-page .home-header-main:not(.header-collapse-condense-inactive){box-shadow:0 1px 0 var(--shph-border), var(--shph-shadow-sm)}.home-page .home-header-main .header-inner--main{box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 16px 10px}.home-page .home-header-main .header-top{align-items:center;gap:12px;margin-bottom:0;display:flex}.home-page .home-header-main .header-left{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.home-page .home-header-main .header-brand,.home-page .home-header-main .home-bar__search{grid-area:1/1}.home-page .home-header-main .header-brand{opacity:var(--shph-brand-opacity,1);visibility:var(--shph-brand-vis,visible);justify-self:start;transition:none}.home-page .home-header-main .home-bar__search{width:100%;opacity:var(--shph-search-opacity,0);visibility:var(--shph-search-vis,hidden);transition:border-color .15s}.home-page .home-header-main .header-search--compact{box-shadow:none;border-radius:12px;padding:2px 3px}.home-page .home-header-main .header-search--compact .header-search__icon{padding-left:6px;font-size:15px}.home-page .home-header-main .header-search--compact .header-search__input{padding:6px 4px;font-size:13px}.home-page .home-header-main .header-search--compact .header-search__mic{border-radius:9px;width:30px;height:30px}.home-page .home-header-main .brand-logo{width:30px;height:30px;font-size:15px}.home-page .home-header-main .brand-name{font-size:17px}.home-page .home-header-main .notif-btn{font-size:20px}.home-page .home-header-main .user-avatar{width:32px;height:32px}.home-page .home-content{--background:var(--shph-bg-page);--color:var(--shph-text-primary);--padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.home-page .header-inner{background:var(--shph-gradient-aurora);color:var(--shph-text-heading);border-radius:0 0 var(--shph-border-radius-hero) var(--shph-border-radius-hero);border-bottom:1px solid var(--shph-border);will-change:transform;flex-direction:column;width:100%;min-width:0;max-width:none;padding:12px 20px 24px;display:flex;transform:translateZ(0)}.home-page .header-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.home-page .header-top--desktop{justify-content:flex-end;margin-bottom:14px}.home-page .header-brand,.tab-header-main .header-brand{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.home-page .brand-logo,.tab-header-main .brand-logo{border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.home-page .brand-logo-img,.tab-header-main .brand-logo-img{object-fit:contain;width:100%;height:100%}.home-page .brand-name,.tab-header-main .brand-name{color:var(--shph-text-heading);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;font-size:20px;font-weight:900;display:inline-block;overflow:hidden}.home-page .header-actions,.tab-header-main .header-actions{flex-shrink:0;align-items:center;gap:6px;min-width:0;display:flex}.home-page .notif-btn,.tab-header-main .notif-btn{--color:var(--shph-text-secondary);margin:0;font-size:22px}.home-page .notif-dot,.tab-header-main .notif-dot{background:var(--shph-color-destructive);pointer-events:none;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.home-page .user-avatar,.tab-header-main .user-avatar{object-fit:cover;border:2px solid var(--shph-border);cursor:pointer;border-radius:50%;width:38px;height:38px}.home-page .avatar-placeholder,.tab-header-main .avatar-placeholder{background:var(--shph-bg-secondary);color:var(--shph-text-secondary);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.home-page .account-menu .popover-panel{min-width:232px;padding:0;overflow:hidden}.home-page .account-menu__identity{border-bottom:1px solid var(--shph-border);padding:12px 14px 10px}.home-page .account-menu__name{color:var(--shph-text-heading);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;font-weight:800;line-height:1.3;overflow:hidden}.home-page .account-menu__email{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;font-weight:500;line-height:1.3;overflow:hidden}.home-page .account-menu__list{background:0 0;padding:6px 0}.home-page .account-menu__item{--background:transparent;--padding-start:14px;--inner-padding-end:14px;--min-height:44px;--color:var(--shph-text-primary);font-size:14px;font-weight:600}.home-page .account-menu__item ion-icon{color:var(--shph-text-secondary);font-size:18px}.home-page .account-menu__item ion-icon:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:12px}.home-page .account-menu__item ion-icon:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:12px}.home-page .account-menu__item ion-icon:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:12px}.home-page .account-menu__item ion-icon:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:12px}.home-page .account-menu__signout{--color:var(--shph-error-text)}.home-page .account-menu__signout ion-icon{color:var(--shph-error-text)}.home-page .switch-btn{--border-radius:var(--shph-border-radius-lg);--color:var(--shph-primary-text);--border-color:var(--shph-input-border);height:28px;font-size:12px}.home-page .header-location-badge{background:var(--shph-bg-primary);border:1px solid var(--shph-border);cursor:pointer;width:fit-content;max-width:320px;box-shadow:var(--shph-shadow-sm);border-radius:999px;place-self:flex-start start;align-items:center;gap:6px;padding:6px 12px;transition:background .12s;display:inline-flex}.home-page .header-location-badge:active{background:var(--shph-bg-secondary)}.home-page .loc-badge-icon{color:var(--shph-warm-rose,#0d6d78);font-size:14px}.home-page .loc-badge-text{color:var(--shph-warm-rose,#0d6d78);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:12px;font-weight:700;overflow:hidden}.home-page .loc-badge-caret{color:var(--shph-text-secondary);font-size:10px}.home-page .loc-badge-approx{color:var(--shph-text-hint);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;font-style:italic;font-weight:600;display:inline-block;overflow:hidden}.home-page .header-location-badge--approx{border-style:dashed}.home-page .header-identity{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.home-page .header-eyebrow{text-transform:uppercase;letter-spacing:.08em;min-width:0;color:var(--shph-warm-rose);white-space:nowrap;text-overflow:ellipsis;opacity:var(--shph-subcopy-opacity,1);visibility:var(--shph-subcopy-vis,visible);flex:0 auto;margin:0;font-size:11px;font-weight:800;line-height:1.4;transition:none;overflow:hidden}.home-page .header-identity .header-location-badge{flex:0 auto;place-self:center;min-width:0}.home-page .loc-badge-label{color:var(--shph-text-secondary);white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600;line-height:1.3}.home-page .header-greeting-tag{letter-spacing:-.01em;color:var(--shph-warm-rose,#0d6d78);margin:10px 0 2px;font-size:20px;font-weight:800;line-height:1.25}.home-page .header-headline{color:var(--shph-text-primary);margin:0;font-size:14px;font-weight:600;line-height:1.4}.home-page .header-welcome-copy{opacity:var(--shph-subcopy-opacity,1);visibility:var(--shph-subcopy-vis,visible);transition:none}.home-page .home-collapse{opacity:var(--shph-condense-opacity,1);visibility:var(--shph-condense-vis,visible);will-change:opacity;transition:none;display:block}.home-page .header-collapse-inner{gap:12px;display:grid}.home-page .header-collapse-inner .quick-intent-scroll{display:flex}.home-page .header-search,.tab-header-main .header-search{background:var(--shph-bg-primary);border:1px solid var(--shph-input-border);box-shadow:var(--shph-shadow-sm);cursor:pointer;border-radius:16px;align-items:center;gap:8px;padding:4px;transition:border-color .15s;display:flex}.home-page .header-search:focus-within,.tab-header-main .header-search:focus-within{border-color:var(--shph-warm-rose)}.home-page .header-search__icon,.tab-header-main .header-search__icon{color:var(--shph-text-hint);flex-shrink:0;padding-left:8px;font-size:16px}.home-page .header-search__input,.tab-header-main .header-search__input{min-width:0;color:var(--shph-text-primary);background:0 0;border:0;outline:0;flex:1;padding:10px 8px;font-size:14px}.home-page .header-search__input::placeholder,.tab-header-main .header-search__input::placeholder{color:var(--shph-text-hint)}.home-page .header-search__mic,.tab-header-main .header-search__mic{background:var(--shph-bg-secondary);width:38px;height:38px;color:var(--shph-warm-rose,#0d6d78);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;display:flex}.home-page .header-search__mic:active,.tab-header-main .header-search__mic:active{background:var(--shph-bg-primary)}.home-page .header-search__mic ion-icon,.tab-header-main .header-search__mic ion-icon{font-size:16px}.home-page .quick-intent-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.home-page .quick-intent-scroll::-webkit-scrollbar{display:none}.home-page .quick-intent-pill{border:1px solid var(--shph-border);background:var(--shph-bg-primary);min-height:44px;color:var(--shph-text-primary);cursor:pointer;box-shadow:var(--shph-shadow-sm);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 16px;font-size:13px;font-weight:800;transition:transform .12s,border-color .12s,background .12s;display:inline-flex}.home-page .quick-intent-pill:active{transform:scale(.97)}@media (max-width:1023px){.home-page .home-header-condense{width:auto;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.home-page .home-header-condense .header-inner{border-bottom:0;border-radius:0}}@media (min-width:1024px){.home-page .header-inner{padding-left:40px;padding-right:40px}.home-page .header-actions{align-items:center}}.home-page .section{background:var(--shph-bg-page);margin-bottom:20px}.home-page .emergency-section{margin-bottom:20px}.home-page .home-recommended-section{margin-top:20px}.home-page .section-header{justify-content:space-between;align-items:baseline;display:flex}.home-page .section-title{color:var(--shph-text-primary);margin:16px 0 10px;font-size:17px;font-weight:800}.home-page .section-label{color:var(--shph-text-secondary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:900}.home-page .active-booking-stack{flex-direction:column;gap:10px;display:flex}.home-page .booking-meta{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;margin-top:2px;display:flex}.home-page .booking-meta .booking-provider{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.home-page .booking-meta .status-pill{flex-shrink:0}@media (max-width:380px){.home-page .booking-meta .status-pill{padding-left:8px;padding-right:8px;font-size:11px}}.home-page .active-booking-card{border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-md);margin:0}.home-page .booking-card-content{justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.home-page .booking-left{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.home-page .active-booking-card--stacked .booking-left{flex-direction:column;align-items:flex-start;gap:10px}.home-page .active-booking-card--stacked .booking-media{flex-shrink:0}.home-page .active-booking-card--stacked .booking-media__avatar{display:block}.home-page .active-booking-card--stacked .booking-headline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.home-page .active-booking-card--stacked .booking-title{white-space:normal;line-height:1.3}.home-page .active-booking-card--stacked .booking-progress{color:var(--shph-text-secondary);align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1.3;display:flex}.home-page .active-booking-card--stacked .booking-progress--live{color:var(--shph-primary-text)}.home-page .active-booking-card--stacked .booking-progress__icon{font-size:14px}.home-page .active-booking-card--stacked .booking-right{flex-direction:column;align-self:stretch;align-items:stretch;gap:4px}.home-page .active-booking-card--stacked .message-btn{--padding-start:8px;--padding-end:8px;min-height:36px;margin:0}.home-page .booking-service-icon{background:var(--shph-primary-light);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.home-page .booking-info{min-width:0}.home-page .booking-title{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.home-page .booking-provider{color:var(--shph-text-secondary);font-size:12px}.home-page .booking-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.home-page .track-btn{--border-radius:var(--shph-border-radius-lg);min-height:44px;font-size:13px;font-weight:700}.home-page .home-layout{width:100%;max-width:var(--shph-container-wide);padding:0 20px calc(24px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr;gap:28px;min-width:0;margin-left:auto;margin-right:auto;display:grid}@media (max-width:599px){.home-page .home-layout,.home-page .section.ion-padding-horizontal{padding-left:8px;padding-right:8px}}.home-page .home-layout__main{min-width:0}.home-page .home-layout__rail{flex-direction:column;gap:16px;min-width:0;display:flex}@media (min-width:1024px){.home-page .home-content{--padding-start:0;--padding-end:0}.home-page .home-layout{grid-template-columns:minmax(0,1fr) 280px;gap:32px;max-width:none;margin-left:0;margin-right:0;padding:0 30px 24px}.home-page .home-layout__main{grid-column:auto}.home-page .home-layout--full-main .home-layout__main{grid-column:1/-1}.home-page .home-layout__rail{grid-column:auto}}.home-page .rail-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);padding:16px}.home-page .rail-card .section-label{margin-bottom:12px}.home-page .rail-booking-stack{flex-direction:column;gap:10px;display:flex}.home-page .rail-booking-stack,.home-page .active-booking-stack{container:booking-stack/inline-size}@container booking-stack (width<=200px){.home-page .booking-card-content{flex-direction:column;align-items:stretch;gap:10px}.home-page .booking-right{justify-content:stretch}.home-page .booking-right .track-btn{width:100%}.home-page .booking-meta{flex-wrap:wrap;row-gap:4px}}.home-page .prov-row-list{flex-direction:column;gap:8px;display:flex}.home-page .prov-row--skeleton{pointer-events:none;border-color:var(--shph-border)}.home-page .prov-row-skeleton-avatar{border-radius:50%;flex-shrink:0;width:44px;height:44px}.home-page .rec-empty{text-align:center;border:1px dashed var(--shph-input-border);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;display:flex}.home-page .rec-empty p{color:var(--shph-text-secondary);margin:0;font-size:12px;font-weight:600}.home-page .rec-empty__act{color:var(--shph-primary-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:800}.home-page .rec-empty__act:hover{text-decoration:underline}.home-page .category-scroll{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;background:var(--shph-bg-page);gap:12px;width:auto;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-top:4px;padding-bottom:12px;display:flex;overflow-x:auto}.home-page .category-scroll::-webkit-scrollbar{display:none}.home-page .category-scroll>.cat-tile{scroll-snap-align:start;flex:0 0 max(132px,min(38vw,168px))}.home-page .category-scroll .cat-tile.category-tile{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:10px;min-height:116px;padding:12px;position:relative;overflow:hidden}.home-page .category-scroll .cat-tile.category-tile .cat-tile__content,.home-page .category-scroll .cat-tile.category-tile .cat-tile__icon{z-index:1;position:relative}.home-page .category-scroll .cat-tile.category-tile.has-gradient:after{content:"";background:linear-gradient(180deg, transparent, var(--shph-scrim));border-radius:inherit;pointer-events:none;position:absolute;top:40%;bottom:0;left:0;right:0}.home-page .category-scroll .cat-tile--skeleton{background:var(--shph-bg-secondary);border-radius:var(--shph-border-radius-md);flex-direction:column;gap:10px;min-height:116px;padding:12px;display:flex}.home-page .category-scroll .cat-tile--browse{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);min-height:116px;color:var(--shph-primary-text);text-align:center;scroll-snap-align:start;transition:background var(--shph-dur-fast) var(--shph-ease);justify-content:center;align-items:center;padding:12px;font-size:13px;font-weight:700;line-height:1.3;display:flex}.home-page .category-scroll .cat-tile--browse:hover{background:var(--shph-bg-hover)}.home-page .category-scroll .cat-tile--browse:active{transform:scale(.97)}@media (min-width:1024px){.home-page .category-scroll{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-left:0;margin-right:0;display:grid;overflow-x:visible;padding-left:0!important;padding-right:0!important}.home-page .category-scroll>.cat-tile{flex:initial}}.home-page .prov-row{border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);background:var(--shph-bg-primary);text-align:left;cursor:pointer;width:100%;transition:background var(--shph-dur-fast) var(--shph-ease);align-items:center;gap:12px;padding:10px 12px;display:flex}.home-page .prov-row:hover{background:var(--shph-bg-hover)}.home-page .prov-row:active{transform:scale(.99)}.home-page .prov-row__avatar{flex-shrink:0}.home-page .prov-row__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.home-page .prov-row__name{color:var(--shph-text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:14px;font-weight:700;display:flex;overflow:hidden}.home-page .prov-row__check{color:var(--shph-primary);flex-shrink:0;font-size:15px}.home-page .prov-row__meta{color:var(--shph-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.home-page .prov-row__aside{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.home-page .prov-row__price{color:var(--shph-primary-text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800;line-height:1.2}.home-page .prov-row__price-cap{color:var(--shph-text-secondary);font-size:10px;line-height:1}.home-page .prov-row__book{--border-radius:var(--shph-border-radius-md);min-height:32px;margin-top:4px;font-size:12px;font-weight:700}.home-page .pros-scroll{padding:0 16px 12px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));scrollbar-width:none;background:var(--shph-bg-page);gap:12px;display:flex;overflow-x:auto}.home-page .pros-scroll::-webkit-scrollbar{display:none}.home-page .pro-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);min-width:130px;max-width:130px;box-shadow:var(--shph-shadow-card);cursor:pointer;flex-direction:column;flex-shrink:0;align-items:center;padding:14px 12px 12px;transition:transform .12s;display:flex;position:relative}.home-page .pro-heart{background:rgba(var(--ion-background-color-rgb), .9);cursor:pointer;z-index:2;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:18px;display:flex;position:absolute;top:4px;right:4px}.home-page .pro-card:active{transform:scale(.96)}.home-page .pro-avatar-wrap{border:2px solid var(--shph-primary-light);border-radius:50%;margin-bottom:8px}.home-page .pro-name{color:var(--shph-text-primary);text-align:center;line-clamp:2;-webkit-line-clamp:2;word-break:break-word;hyphens:auto;-webkit-box-orient:vertical;width:100%;margin-bottom:2px;font-size:13px;font-weight:700;display:-webkit-box;overflow:hidden}.home-page .pro-category{color:var(--shph-text-secondary);text-align:center;line-clamp:2;-webkit-line-clamp:2;word-break:break-word;hyphens:auto;-webkit-box-orient:vertical;width:100%;margin-bottom:6px;font-size:11px;display:-webkit-box;overflow:hidden}.home-page .pro-rating{color:var(--shph-text-secondary);align-items:center;gap:3px;font-size:12px;display:flex}.home-page .star-icon{color:var(--shph-star);font-size:13px}.home-page .pro-reviews{color:var(--shph-text-secondary);font-size:11px}.home-page .provider-cta{margin-top:8px}.home-page .notif-btn{position:relative}.home-page .home-error-banner{background:var(--ion-color-danger-tint);align-items:center;gap:12px;display:flex}.home-page .home-error-banner__icon{color:var(--ion-color-danger);flex-shrink:0;font-size:20px}.home-page .home-error-banner__body{flex:1;min-width:0}.home-page .home-error-banner__text{color:var(--ion-color-danger-shade);margin:0;font-size:13px;font-weight:600}.home-page .home-error-banner__action{flex-shrink:0;margin:0}.home-page .location-row{cursor:pointer;user-select:none}.home-page .promo-banner{background:var(--shph-gradient-hero);border-radius:var(--shph-border-radius-lg);color:#fff;box-shadow:var(--shph-shadow-md);justify-content:space-between;align-items:center;max-width:100%;margin:12px 16px;padding:20px 16px;display:flex;overflow:hidden}.home-page .promo-tag{letter-spacing:1px;text-transform:uppercase;opacity:.8;margin-bottom:4px;font-size:11px;font-weight:700}.home-page .promo-title{white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:18px;font-weight:800;overflow:hidden}.home-page .promo-sub{opacity:.85;margin:0 0 12px;font-size:12px}.home-page .promo-btn{--color:var(--shph-primary-dark);font-weight:700}.home-page .promo-graphic{flex-shrink:0;margin-left:12px;font-size:56px}.home-page .top-scroll{padding:4px 16px 16px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));scrollbar-width:none;background:var(--shph-bg-page);gap:12px;display:flex;overflow-x:auto}.home-page .top-scroll::-webkit-scrollbar{display:none}.home-page .top-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);min-width:148px;max-width:148px;box-shadow:var(--shph-shadow-card);cursor:pointer;flex-shrink:0;transition:transform .12s;overflow:hidden}.home-page .top-card:active{transform:scale(.96)}.home-page .top-card-img{background:var(--shph-primary-light);height:110px;position:relative;overflow:hidden}.home-page .top-card-img img{object-fit:cover;width:100%;height:100%}.home-page .top-card-img-placeholder{width:100%;height:100%;color:var(--shph-primary-text);background:var(--shph-primary-light);justify-content:center;align-items:center;font-size:32px;font-weight:700;display:flex}.home-page .top-heart{background:rgba(var(--ion-background-color-rgb), .9);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:20px;display:flex;position:absolute;top:4px;right:4px}.home-page .heart-active{color:var(--shph-color-destructive)}.home-page .top-card-body{padding:10px}.home-page .top-card-name{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.home-page .top-card-cat{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 6px;font-size:11px;overflow:hidden}.home-page .top-card-footer{justify-content:space-between;align-items:center;display:flex}.home-page .top-card-price{color:var(--shph-primary-text);font-size:12px;font-weight:700}.home-page .top-card-rating{color:var(--shph-text-secondary);align-items:center;gap:2px;font-size:11px;display:inline-flex}.home-page .empty-state{background:var(--shph-bg-page);padding:40px 24px}.home-page .empty-icon{margin-bottom:12px;font-size:48px}.home-page .empty-title{color:var(--shph-text-primary);margin:0 0 8px;font-size:16px;font-weight:700}.home-page .empty-sub{color:var(--shph-text-secondary);margin:0 0 16px;font-size:14px}@media (max-width:359px){.app-name{font-size:22px}.header-greeting{font-size:12px}.pro-card{min-width:110px;max-width:110px;padding:10px 8px 8px}.pro-name{font-size:11px}.top-card{min-width:125px;max-width:125px}.top-card-img{height:90px}.promo-title{font-size:15px}.promo-sub{font-size:11px}.promo-graphic{font-size:42px}}@media (min-width:768px){.home-page .pro-card{min-width:150px;max-width:150px}.home-page .top-card{min-width:170px;max-width:170px}.home-page .top-card-img{height:130px}}@media (min-width:1024px){.home-page .pros-scroll{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid;overflow-x:visible}.home-page .pro-card{min-width:unset;max-width:unset}.home-page .top-scroll{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid;overflow-x:visible}.home-page .top-card{min-width:unset;max-width:unset}.home-page .top-card-img{height:130px}}@media (max-height:500px) and (orientation:landscape){.promo-banner{margin:8px 12px;padding:12px 14px}.promo-graphic{font-size:40px}}@media (max-width:600px){.home-page .promo-banner{margin-bottom:20px}}.home-page .addr-picker-content{--background:var(--shph-bg-page)}.home-page .addr-picker-list{background:0 0}.home-page .addr-picker-list ion-item{--background:var(--shph-bg-primary);--border-width:0;--inner-border-width:0;border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);margin:8px 12px}.home-page .addr-picker-list h3{color:var(--shph-text-heading)}.messages-page ion-header{background:var(--shph-bg-primary)}.messages-page ion-content{--background:var(--shph-bg-page)}.messages-page .unread-total-badge{--border-radius:10px;font-size:11px}.messages-page .messages-controls{background:var(--shph-bg-primary);flex-direction:column;gap:2px;padding-bottom:10px;display:flex}.messages-page .search-wrapper{background:var(--ion-toolbar-background,var(--shph-bg-primary));padding:4px 8px 0}.messages-page .messages-searchbar{--background:var(--shph-bg-page,#f3f4f8);--border-radius:var(--shph-border-radius-pill);--box-shadow:none;--placeholder-color:var(--shph-text-hint);--color:var(--shph-text-primary);--icon-color:var(--shph-text-hint);height:44px;padding:0}.messages-page .messages-filter-select{--border-radius:var(--shph-border-radius-pill);--highlight-color:var(--shph-primary);width:calc(100% - 24px);max-width:240px;margin:6px 12px 8px}.messages-page .messages-admin-segment{--background:rgba(128,128,128,.1);--border-radius:var(--shph-border-radius-pill);--color:var(--shph-text-secondary);--color-checked:#fff;--background-checked:var(--ion-color-danger);--indicator-color:var(--ion-color-danger);border-radius:var(--shph-border-radius-pill);box-sizing:border-box;width:calc(100% - 24px);max-width:calc(100% - 24px);min-height:30px;margin:0 12px 8px;padding:2px;font-size:11px;overflow:hidden}.messages-page .messages-admin-segment ion-segment-button{--padding-top:0;--padding-bottom:0;letter-spacing:.01em;height:auto;min-height:auto}.messages-page .segment-badge{--border-radius:9px;vertical-align:middle;min-width:16px;height:16px;margin-left:4px;font-size:10px}.messages-page .thread-group-avatar{background:var(--shph-primary-light,#e6f0ff);width:52px;height:52px;color:var(--shph-primary,#63cbd6);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.messages-page .thread-group-icon{font-size:2rem}.messages-page .thread-group-count{background:var(--shph-primary,#63cbd6);min-width:22px;height:22px;color:var(--shph-on-primary);border-radius:11px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:flex;position:absolute;bottom:-3px;right:-3px;box-shadow:0 1px 4px rgba(0,0,0,.12)}.messages-page .admin-user-avatar{flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:visible}.messages-page .admin-user-label .admin-user-online{margin-top:2px;display:inline-flex}.messages-page .admin-user-badges{gap:4px;margin-top:4px;display:flex}.messages-page .admin-user-badges ion-badge{font-size:.65rem}.messages-page .selected-summary{align-items:center;gap:6px;display:flex}.messages-page .group-modal-section{padding:16px 16px 8px}.messages-page .group-title-input{--padding-start:12px;--padding-end:12px;--background:var(--shph-bg-secondary,#f1f5f9);--border-radius:12px;--color:var(--shph-text-primary);--placeholder-color:var(--shph-text-hint);margin:0;font-size:16px}.messages-page .group-searchbar{--background:var(--shph-bg-secondary,#f1f5f9);--border-radius:999px;--box-shadow:none;--placeholder-color:var(--shph-text-hint);padding:4px 12px 8px}.messages-page .group-selected-chips{flex-wrap:wrap;gap:8px;padding:4px 12px 12px;display:flex}.messages-page .group-selected-chips ion-chip{--background:var(--shph-primary-light,#e6f0ff);--color:var(--shph-primary-text,#0d6d78);margin:0;font-size:13px;font-weight:600}.messages-page .group-selected-chips ion-chip ion-icon{cursor:pointer;opacity:.8;font-size:16px}.messages-page .group-user-list{background:0 0}.messages-page .group-user-item--selected{--background:rgba(var(--ion-color-primary-rgb,99, 203, 214), .08)}.messages-page .group-create-footer{z-index:100;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0));background:var(--shph-bg-primary,#fff);border-top:1px solid var(--shph-border-subtle,rgba(0,0,0,.06));flex-direction:column;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px rgba(0,0,0,.04)}.messages-page .group-create-count{color:var(--shph-text-secondary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.messages-page .group-create-count-icon{color:var(--shph-primary,#63cbd6);font-size:18px}.messages-page .group-create-hint{color:var(--shph-text-hint);font-weight:500}.messages-page .connection-banner{background:rgba(var(--ion-color-warning-rgb,255, 196, 9), .12);border-bottom:1px solid rgba(var(--ion-color-warning-rgb,255, 196, 9), .25);color:var(--ion-color-warning-shade,#d9a200);justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;display:flex}.messages-page .connection-banner__icon{flex-shrink:0;font-size:15px}.messages-page .connection-banner span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.messages-page .threads-list{padding:6px 12px calc(24px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:6px;display:flex}.messages-page .thread-card{--padding-start:0;--inner-padding-end:0;--background:transparent;--background-focused:transparent;--background-hover:transparent;--min-height:0;background:var(--ion-card-background,var(--shph-bg-primary,#fff));cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid var(--shph-border-subtle,rgba(0,0,0,.05));border-radius:16px;align-items:flex-start;padding:11px 14px 10px;transition:transform .12s,box-shadow .12s,background .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}@media (min-width:1024px){.messages-page .thread-card{max-width:var(--shph-container-wide);margin-left:auto;margin-right:auto}}.messages-page .thread-card::part(native){align-items:flex-start;padding:0}.messages-page .thread-card.ion-focused,.messages-page .thread-card:focus-within{outline:2px solid var(--ion-color-primary);outline-offset:2px}.messages-page .thread-card:active{background:var(--shph-bg-secondary,#f5f5f7);transform:scale(.985);box-shadow:0 1px 2px rgba(0,0,0,.03)}.messages-page .thread-card--pinned{border-left:3px solid var(--ion-color-primary)}.messages-page .thread-card--archived{opacity:.55}.messages-page .thread-card__accent{background:var(--shph-primary,#63cbd6);border-radius:0 4px 4px 0;width:4px;position:absolute;top:0;bottom:0;left:0}.messages-page .thread-card--unread{background:color-mix(in srgb, var(--shph-primary,#63cbd6) 5%, var(--ion-card-background,var(--shph-bg-primary,#fff)))}.messages-page .thread-avatar-wrap{flex-shrink:0;margin-right:12px;padding-top:2px;padding-left:6px;position:relative}.messages-page .thread-content{flex-direction:column;flex:1;gap:3px;min-width:0;padding-top:1px;display:flex}.messages-page .thread-row-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.messages-page .thread-name-block{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.messages-page .thread-name{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;flex:1;min-width:0;font-size:15px;font-weight:600;line-height:1.3;overflow:hidden}.messages-page .thread-card--unread .thread-name{color:var(--shph-text-heading);font-weight:800}.messages-page .thread-card--unread .thread-snippet{color:var(--shph-text-primary);font-weight:600}.messages-page .thread-pref-icon{color:var(--shph-text-hint);flex-shrink:0;font-size:13px}.messages-page .thread-meta{flex-shrink:0;align-items:center;gap:8px;margin-top:1px;display:flex}.messages-page .thread-time{color:var(--shph-text-hint);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:80px;font-size:11px;font-weight:500;display:inline-block;overflow:hidden}.messages-page .thread-card--unread .thread-time{color:var(--shph-primary,#63cbd6);font-weight:600}.messages-page .thread-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.messages-page .thread-badge{--padding-start:7px;--padding-end:7px;--padding-top:3px;--padding-bottom:3px;text-transform:uppercase;letter-spacing:.4px;border-radius:999px;min-height:18px;font-size:10px;font-weight:700}.messages-page .thread-row-mid{align-items:center;gap:8px;display:flex}.messages-page .thread-snippet{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:4px;min-width:0;margin:0;font-size:13px;line-height:1.35;display:flex;overflow:hidden}.messages-page .thread-snippet--unread{color:var(--shph-text-primary);font-weight:600}.messages-page .thread-snippet--typing{color:var(--shph-primary-text);font-style:italic;font-weight:500}.messages-page .thread-snippet--system{color:var(--shph-primary-text);font-style:italic}.messages-page .snippet-call-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:13px}.messages-page .thread-unread-badge{--padding-start:6px;--padding-end:6px;--padding-top:2px;--padding-bottom:2px;--border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:11px;font-weight:700;display:flex;box-shadow:0 1px 4px rgba(0,0,0,.12)}.messages-page .thread-row-bot{align-items:center;gap:5px;display:flex}.messages-page .thread-booking-icon{color:var(--shph-text-hint);flex-shrink:0;font-size:12px}.messages-page .thread-booking-id{color:var(--shph-text-hint);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.messages-page .thread-skeleton{background:var(--ion-card-background,var(--shph-bg-primary,#fff));border:1px solid var(--shph-border-subtle,rgba(0,0,0,.05));border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.messages-page .skeleton-avatar{border-radius:50%;flex-shrink:0;width:52px;height:52px}.messages-page .skeleton-body{flex-direction:column;flex:1;gap:6px;padding-top:2px;display:flex}.messages-page .skeleton-row{gap:8px;display:flex}.messages-page .skeleton-name{border-radius:6px;flex:1;height:14px}.messages-page .skeleton-time{border-radius:6px;width:45px;height:12px}.messages-page .skeleton-snippet{border-radius:6px;width:85%;height:12px}.messages-page .skeleton-booking{border-radius:6px;width:55%;height:10px}.messages-page .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 32px 32px;display:flex}.messages-page .empty-state__bubble{background:var(--shph-primary-light,#e6f0ff);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:20px;display:flex}.messages-page .empty-state__icon{color:var(--shph-primary,#63cbd6);font-size:48px}.messages-page .empty-state__title{color:var(--shph-text-primary);margin:0 0 8px;font-size:18px;font-weight:700}.messages-page .empty-state__sub{color:var(--shph-text-secondary);max-width:260px;margin:0;font-size:14px;line-height:1.5}.messages-page .error-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 32px 32px;display:flex}.messages-page .error-state__icon{color:var(--ion-color-danger);margin-bottom:16px;font-size:48px}.messages-page .error-state__message{color:var(--shph-text-secondary);margin:0 0 12px;font-size:14px}.messages-page .thread-item{background:var(--ion-card-background,var(--shph-bg-primary,#fff));cursor:pointer;border:1px solid var(--shph-border-subtle,rgba(0,0,0,.05));width:100%;font:inherit;color:inherit;text-align:left;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;border-radius:16px;align-items:center;gap:12px;padding:14px;transition:transform .12s,box-shadow .12s,background .15s;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.04)}.messages-page .thread-item:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.messages-page .thread-item:active{background:var(--shph-bg-secondary,#f5f5f7);transform:scale(.985);box-shadow:0 1px 2px rgba(0,0,0,.03)}.messages-page .thread-avatar-wrapper{flex-shrink:0;position:relative}.messages-page .thread-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.messages-page .thread-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.messages-page .call-avatar-wrapper{position:relative}.messages-page .call-direction-badge{border:2px solid var(--ion-card-background,var(--shph-bg-primary,#fff));background:var(--ion-color-medium);--shph-call-badge-ink:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;bottom:-2px;right:-2px}.messages-page .call-direction-badge ion-icon{color:var(--shph-call-badge-ink);font-size:11px}.messages-page .call-item--missed .call-direction-badge{background:var(--ion-color-danger);--shph-call-badge-ink:#fff}.messages-page .call-item--outgoing .call-direction-badge{background:var(--ion-color-success,#2dd36f);--shph-call-badge-ink:var(--shph-on-primary)}.messages-page .call-item--incoming .call-direction-badge{background:var(--ion-color-primary);--shph-call-badge-ink:var(--shph-on-primary)}.messages-page .call-info-row{gap:0}.messages-page .call-info-text{color:var(--shph-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:500;line-height:1.35;overflow:hidden}.messages-page .call-info-text--missed{color:var(--ion-color-danger);font-weight:600}.messages-page .call-duration{color:var(--shph-text-hint);font-weight:400}.explore-page ion-content{--background:var(--shph-bg-page)}.explore-page .listings-list{grid-template-columns:1fr;gap:12px;padding:8px;display:grid}@media (min-width:768px){.explore-page .listings-list{grid-template-columns:repeat(2,1fr);padding:8px 12px}}.explore-page .listings-grid{grid-template-columns:repeat(2,1fr);gap:16px;padding:12px;display:grid}@media (min-width:1200px){.explore-page .listings-grid{grid-template-columns:repeat(3,1fr)}}.explore-page .skeleton-container{padding:16px}.explore-page .cat-skeleton-row{gap:12px;margin-bottom:16px;padding:0 8px;display:flex;overflow:hidden}.explore-page .cat-skeleton-pill{border-radius:18px;flex-shrink:0;width:80px;height:36px}.explore-page .skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;display:grid}.explore-page .service-skeleton{background:var(--ion-color-light);box-shadow:var(--shph-shadow-sm,0 1px 6px rgba(0,0,0,.08));border-radius:16px;overflow:hidden}.explore-page .skeleton-image{aspect-ratio:4/3;border-radius:0;width:100%;margin:0}.explore-page .skeleton-body{padding:12px}.explore-page .skeleton-title{border-radius:4px;width:80%;height:16px;margin-bottom:8px}.explore-page .skeleton-subtitle{border-radius:4px;width:60%;height:12px;margin-bottom:12px}.explore-page .skeleton-meta{justify-content:space-between;align-items:center;display:flex}.explore-page .skeleton-price{border-radius:4px;width:50px;height:14px}.explore-page .skeleton-rating{border-radius:4px;width:40px;height:12px}.explore-page .explore-error-banner{background:var(--ion-color-danger-tint);align-items:center;gap:12px;display:flex}.explore-page .explore-error-banner__icon{color:var(--ion-color-danger);flex-shrink:0;font-size:20px}.explore-page .explore-error-banner__body{flex:1;min-width:0}.explore-page .explore-error-banner__text{color:var(--ion-color-danger-shade);margin:0;font-size:13px;font-weight:600}.explore-page .explore-error-banner__action{flex-shrink:0;margin:0}.bookings-page .header-action-btn{--color:var(--shph-primary);font-size:13px;font-weight:600}.bookings-page .tab-bar-wrap{background:var(--ion-background-color);border-bottom:1px solid var(--ion-color-light-shade);z-index:10;position:sticky;top:0}.bookings-page .tab-bar{scrollbar-width:none;-ms-overflow-style:none;gap:6px;padding:10px 12px;display:flex;overflow-x:auto}.bookings-page .tab-bar::-webkit-scrollbar{display:none}.bookings-page .tab-btn{border-radius:var(--shph-border-radius-lg);border:1px solid var(--ion-color-light-shade);color:var(--ion-color-medium);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;flex-shrink:0;align-items:center;gap:6px;min-height:44px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex;overflow:hidden}.bookings-page .tab-btn:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.bookings-page .tab-btn.active{background:var(--ion-color-primary);color:var(--shph-on-primary);border-color:var(--ion-color-primary);box-shadow:0 2px 8px rgba(var(--ion-color-primary-rgb), .3);font-weight:700}.bookings-page .tab-count{background:var(--ion-color-light-shade);min-width:20px;height:20px;color:var(--ion-color-medium);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.bookings-page .tab-btn.active .tab-count{background:var(--shph-overlay-on-dark-strong);color:var(--shph-on-primary)}.bookings-page .bookings-list{padding:12px 16px calc(28px + env(safe-area-inset-bottom,0px))}.bookings-page .date-group{margin-bottom:16px}.bookings-page .date-group-label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px 4px;font-size:13px;font-weight:600}.bookings-page .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;padding:48px 32px;display:flex}.bookings-page .empty-icon{opacity:.6;margin-bottom:16px;font-size:72px}.bookings-page .empty-state h3{color:var(--ion-text-color);margin:0 0 8px;font-size:20px;font-weight:600}.bookings-page .empty-state p{color:var(--ion-color-medium);max-width:280px;margin:0 0 24px;font-size:14px;line-height:1.5}.bookings-page .empty-cta{--border-radius:12px;max-width:280px}@media (max-width:480px){.tab-bar{flex-wrap:nowrap;justify-content:flex-start;gap:6px;padding:10px}.bookings-page .tab-btn{flex:none;justify-content:center;min-width:auto;padding:8px 12px;font-size:12px}}body.dark .tab-bar-wrap{background:var(--ion-color-step-100);border-color:var(--ion-color-step-200)}body.dark .bookings-page .tab-btn{border-color:var(--ion-color-step-200)}.profile-page .profile-hero{text-align:center;background:linear-gradient(rgba(0,0,0,.28), rgba(0,0,0,.28)), var(--shph-gradient-profile-hero);border-radius:var(--shph-radius-card-lg);box-shadow:var(--shph-shadow-card-lg);color:#fff;box-sizing:border-box;max-width:100%;margin:8px 12px 4px;padding:28px 20px 24px;overflow:hidden}.profile-page .profile-hero h2{color:#fff;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.profile-page .profile-hero p{color:rgba(255,255,255,.9);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.profile-page .profile-hero .role-actions ion-button{--border-color:rgba(255,255,255,.7);--color:#fff;text-overflow:ellipsis;max-width:100%;overflow:hidden}.profile-page body.provider-mode .profile-hero{background:linear-gradient(135deg,#d97706,#b45309)}.profile-page .role-badges{flex-wrap:wrap;justify-content:center;gap:6px;max-width:100%;margin-bottom:8px;display:flex}.profile-page .role-actions{margin-top:8px}.profile-page .menu-chip{color:var(--ion-color-primary-shade);flex-shrink:0;margin-right:10px}.profile-page .menu-list ion-item{--min-height:58px;--padding-start:16px;--inner-padding-end:12px;border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-sm);margin:6px 12px}.profile-page .role-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.profile-page .role-actions ion-button{min-height:44px}.profile-page .avatar{color:#fff;cursor:pointer;background:rgba(255,255,255,.22);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 12px;font-size:28px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 3px rgba(255,255,255,.35)}.profile-page .avatar img{object-fit:cover;width:100%;height:100%}.profile-page .avatar-edit-overlay{opacity:0;background:rgba(0,0,0,.35);justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.profile-page .avatar:hover .avatar-edit-overlay{opacity:1}.profile-page .camera-icon{color:#fff;font-size:22px}.profile-page h2{overflow-wrap:break-word;word-wrap:break-word;margin:0 0 4px;font-size:20px;font-weight:700}.profile-page p{color:var(--ion-color-medium);overflow-wrap:break-word;word-wrap:break-word;margin:0 0 8px}.profile-page .menu-list{margin-top:16px}.edit-profile-modal .edit-avatar-wrap{cursor:pointer;flex-direction:column;align-items:center;gap:8px;margin:16px 0 24px;display:flex}.edit-profile-modal .edit-avatar{background:var(--ion-color-primary);width:90px;height:90px;color:var(--shph-on-primary);border:3px solid var(--ion-color-primary-tint);border-radius:50%;justify-content:center;align-items:center;font-size:30px;font-weight:700;display:flex;overflow:hidden}.edit-profile-modal .edit-avatar img{object-fit:cover;width:100%;height:100%}.edit-profile-modal .edit-avatar-label{color:var(--shph-primary-text);align-items:center;gap:4px;font-size:14px;display:flex}.enable-client-modal .confirm-title{margin:0 0 8px;font-size:18px;font-weight:700}.enable-client-modal .confirm-body{color:var(--ion-color-medium);margin:0 0 4px;font-size:14px;line-height:1.5}@media (max-width:1023px){.ion-page>ion-header.app-header--compact ion-toolbar{--min-height:48px;min-height:48px;transition:min-height var(--shph-dur-fast) var(--shph-ease)}.ion-page>ion-header.app-header--compact .screen-header{padding-top:8px;padding-bottom:8px}.ion-page>ion-header.app-header--compact .screen-header__subtitle{display:none}.ion-page>ion-header.app-header--compact ion-title{font-size:1rem}}.profile-page ion-content{--background:var(--shph-bg-page)}.profile-page .profile-content{width:min(100%,1180px);max-width:1180px;padding:24px 24px calc(48px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:0 0;margin:0 auto}.profile-page .profile-hero{text-align:left;box-shadow:none;color:var(--shph-text-primary);background:0 0;border:0;border-radius:0;grid-template-columns:96px minmax(0,1fr);align-items:center;column-gap:20px;margin:0;padding:8px 0 28px;display:grid}.profile-page .profile-hero .avatar{background:var(--shph-primary-light);width:96px;height:96px;color:var(--shph-primary-text);box-shadow:0 0 0 5px var(--shph-bg-primary), 0 0 0 6px var(--shph-border);grid-row:span 4;margin:0}.profile-page .profile-hero h2{color:var(--shph-text-heading);margin:0;font-size:max(1.5rem,min(2vw,2rem));line-height:1.15}.profile-page .profile-hero p{color:var(--shph-text-secondary);margin:5px 0 8px}.profile-page .profile-hero .role-badges,.profile-page .profile-hero .role-actions{justify-content:flex-start;margin-left:0}.profile-page .kyc-header-badge{text-transform:none;border-radius:20px;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.profile-page .kyc-header-badge ion-icon{font-size:14px}.profile-page .avatar-edit-overlay--fatal{opacity:1;background:rgba(244,63,94,.55)}.profile-page .profile-hero .role-actions ion-button{--border-color:var(--shph-border-strong,var(--shph-border));--color:var(--shph-text-primary);margin:0}.profile-page .profile-section{margin-top:20px}.profile-page .profile-section__heading{justify-content:space-between;align-items:center;gap:16px;margin:0 0 10px;display:flex}.profile-page .profile-section__heading h3{color:var(--shph-text-heading);margin:2px 0 0;font-size:1.05rem;font-weight:750}.profile-page .profile-section__heading>ion-icon{color:var(--shph-text-muted);font-size:20px}.profile-page .profile-section__eyebrow{color:var(--shph-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.profile-page .verification-item{--background:var(--shph-bg-primary);--color:var(--shph-text-primary);--padding-start:16px;--inner-padding-end:14px;--min-height:72px;border:1px solid var(--shph-border);border-left:4px solid var(--ion-color-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-sm)}.profile-page .verification-item--approved{border-left-color:var(--ion-color-success)}.profile-page .verification-item--pending{border-left-color:var(--ion-color-warning)}.profile-page .verification-item--rejected{border-left-color:var(--ion-color-danger)}.profile-page .verification-item>ion-icon{color:var(--shph-primary-text);font-size:22px}.profile-page .verification-item--approved>ion-icon{color:var(--ion-color-success)}.profile-page .verification-item--pending>ion-icon{color:var(--ion-color-warning)}.profile-page .verification-item--rejected>ion-icon{color:var(--ion-color-danger)}.profile-page .verification-item ion-label h3{color:var(--shph-text-heading);font-weight:700}.profile-page .verification-item ion-label p{color:var(--shph-text-secondary);margin-top:4px}.profile-page .profile-section--menu .menu-list{background:0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.profile-page .profile-section--menu .menu-list ion-item{--background:var(--shph-bg-primary);--color:var(--shph-text-primary);--min-height:64px;--padding-start:14px;--inner-padding-end:12px;border:1px solid var(--shph-border);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-sm);--background-hover:var(--shph-bg-secondary);--background-activated:var(--shph-bg-secondary);--background-focused:var(--shph-bg-secondary);transition:transform var(--shph-dur-fast) var(--shph-ease), box-shadow var(--shph-dur-fast) var(--shph-ease);margin:0}.profile-page .profile-section--menu .menu-list ion-item:active{box-shadow:var(--shph-shadow-sm);transform:scale(.99)}.profile-page .profile-section--menu .menu-list ion-item:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.profile-page .profile-section--menu .menu-list ion-item ion-label{color:var(--shph-text-primary);font-weight:650}.profile-page .profile-section--menu .menu-list ion-item.profile-signout{--background:var(--ion-color-danger);--color:#fff;border-color:color-mix(in srgb, var(--ion-color-danger) 28%, var(--shph-border))}.profile-page .profile-section--menu .menu-list ion-item.profile-signout ion-label,.profile-page .profile-section--menu .menu-list ion-item.profile-signout ion-icon{color:#fff}@media (max-width:640px){.profile-page .profile-content{padding:18px 16px 36px}.profile-page .profile-hero{grid-template-columns:72px minmax(0,1fr);column-gap:16px;padding-bottom:22px}.profile-page .profile-hero .avatar{width:72px;height:72px;font-size:24px}.profile-page .profile-hero h2{font-size:1.3rem}.profile-page .profile-section--menu .menu-list{grid-template-columns:1fr}}.tabs-layout ion-router-outlet>.ion-page ion-content{--padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.tabs-layout ion-tab-bar{--background:var(--ion-color-light);border-top:1px solid var(--shph-border);--padding-top:6px;--padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));min-height:calc(64px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 20px rgba(15,23,42,.08)}.tabs-layout ion-tab-button{--color:var(--ion-color-medium);--color-selected:var(--shph-primary-text);--padding-start:2px;--padding-end:2px;border-radius:14px;min-width:0;min-height:52px;margin:0 3px;transition:background-color .16s,color .16s}.tabs-layout ion-tab-button ion-label{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:max(9px,min(2.75vw,12px));overflow:hidden}@media (max-width:380px){.tabs-layout ion-tab-button{margin:0 1px}}.tabs-layout ion-tab-bar{contain:layout style paint;height:auto}.tabs-layout ion-tab-button{height:auto}.tabs-layout ion-tab-button ion-label{flex-shrink:0}.tabs-layout ion-tab-button.tab-selected{--background:color-mix(in srgb, var(--ion-color-primary) 12%, transparent);--color-selected:var(--shph-primary-text);font-weight:700}.tabs-layout ion-tab-button ion-badge{z-index:1;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:flex;position:absolute;top:2px;left:50%;transform:translate(10px);box-shadow:0 1px 3px rgba(0,0,0,.2)}body.dark .tabs-layout ion-tab-button ion-badge{border:1px solid rgba(255,255,255,.15);box-shadow:0 1px 3px rgba(0,0,0,.4)}.tab-header-condense ion-toolbar{--background:transparent;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;--border-width:0;position:static}.tab-header-main{background:var(--shph-aurora-top);will-change:opacity;transform:translate(0,0)}.tab-header-main .tab-header-toolbar{--background:var(--shph-bg-primary);--padding-start:0;--padding-end:0;--border-width:0}.tab-header-main:not(.header-collapse-condense-inactive){box-shadow:0 1px 0 var(--shph-border), var(--shph-shadow-sm)}.tab-header-main .tab-header-inner--main{box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 16px 10px}.tab-header-main .tab-header-top{align-items:center;gap:12px;margin-bottom:0;display:flex}.tab-header-main .header-left{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.tab-header-main .header-brand,.tab-header-main .header-search--compact{grid-area:1/1}.tab-header-main .header-brand{opacity:var(--shph-brand-opacity,1);visibility:var(--shph-brand-vis,visible);justify-self:start;transition:none}.tab-header-main .header-search--compact{width:100%;opacity:var(--shph-search-opacity,0);visibility:var(--shph-search-vis,hidden);box-shadow:none;border-radius:12px;padding:2px 3px;transition:border-color .15s}.tab-header-main .header-search--compact .header-search__icon{padding-left:6px;font-size:15px}.tab-header-main .header-search--compact .header-search__input{padding:6px 4px;font-size:13px}.tab-header-main .header-search--compact .header-search__mic{border-radius:9px;width:30px;height:30px}.tab-header-main .brand-logo{width:30px;height:30px;font-size:15px}.tab-header-main .brand-name{font-size:17px}.tab-header-main .notif-btn{font-size:20px}.tab-header-main .user-avatar{width:32px;height:32px}.tab-header-actions--desktop{justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px 0;display:flex}.tab-header-condense .tab-header-inner{background:var(--shph-gradient-aurora);color:var(--shph-text-heading);border-radius:0 0 var(--shph-border-radius-hero) var(--shph-border-radius-hero);border-bottom:1px solid var(--shph-border);will-change:transform;flex-direction:column;width:100%;min-width:0;max-width:none;padding:12px 20px 24px;display:flex;transform:translateZ(0)}.tab-collapse{opacity:var(--shph-condense-opacity,1);visibility:var(--shph-condense-vis,visible);will-change:opacity;transition:none;display:block}.tab-collapse-title{color:var(--shph-text-heading);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:900;line-height:1.2}.tab-collapse-subtitle{color:var(--shph-text-secondary);margin:4px 0 0;font-size:13px;font-weight:600}.tab-collapse-badge{align-self:flex-start;margin-top:10px}@media (max-width:1023px){.tab-header-condense{width:auto;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.tab-header-condense .tab-header-inner{border-bottom:0;border-radius:0}}@media (min-width:1024px){.tab-header-condense .tab-header-inner{padding-left:40px;padding-right:40px}}.login-page .login-content{--background:var(--shph-bg-page);--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0}.login-page .login-wrap{--role-gradient:var(--shph-gradient-cta);--role-solid:var(--shph-primary);--role-solid-soft:var(--shph-primary-light);--role-shadow:var(--shph-shadow-cta);--role-on-gradient:var(--shph-on-primary);flex-direction:column;gap:20px;max-width:440px;margin:0 auto;padding:24px 20px 40px;display:flex}.login-page .login-wrap.role-provider{--role-gradient:linear-gradient(180deg, #d97706, #b45309);--role-solid:#d97706;--role-solid-soft:#fef3c7;--role-shadow:0 8px 18px -5px rgba(245,158,11,.45);--role-on-gradient:#fff}.login-page .role-toggle{justify-content:center;gap:10px;display:flex}.login-page .toggle-card{background:var(--shph-bg-primary);border-radius:var(--shph-border-radius-md);cursor:pointer;border:1.5px solid var(--shph-border);flex-direction:row;flex:1;justify-content:center;align-items:center;gap:10px;padding:12px 14px;transition:all .25s;display:flex}.login-page .toggle-card.active{background:var(--role-solid);color:var(--shph-on-primary);border-color:var(--role-solid);box-shadow:var(--role-shadow)}.login-page .toggle-card:not(.active):hover{border-color:var(--role-solid-soft)}.login-page .toggle-icon{background:var(--shph-bg-secondary);width:34px;height:34px;color:var(--shph-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.login-page .toggle-card.active .toggle-icon{color:var(--shph-on-primary);background:rgba(255,255,255,.22)}.login-page .toggle-title{letter-spacing:.3px;text-transform:uppercase;text-align:center;font-size:12px;font-weight:700;line-height:1.2}.login-page .login-card{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-md);padding:24px 20px}.login-page .login-head{text-align:left;margin-bottom:20px}.login-page .brand-icon{border-radius:var(--shph-border-radius-md);background:var(--role-gradient);width:56px;height:56px;box-shadow:var(--role-shadow);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.login-page .brand-icon ion-icon{color:var(--role-on-gradient);font-size:28px}.login-page .login-head h1{color:var(--shph-text-heading);margin:0 0 6px;font-size:24px;font-weight:700}.login-page .login-head p{color:var(--shph-text-secondary);margin:0;font-size:13px;line-height:1.5}.login-page .method-tabs{background:var(--shph-bg-secondary);border-radius:var(--shph-border-radius-md);gap:6px;margin-bottom:20px;padding:4px;display:flex}.login-page .method-tab{border-radius:var(--shph-border-radius-sm);color:var(--shph-text-secondary);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 8px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.login-page .method-tab ion-icon{font-size:16px}.login-page .method-tab.active{background:var(--shph-bg-primary);color:var(--role-solid);box-shadow:var(--shph-shadow-sm)}.login-page .login-form{width:100%}.login-page .field-group{margin-bottom:16px}.login-page .field-group label{color:var(--shph-text-primary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-page .input-wrap{background:var(--shph-bg-page);border:1px solid var(--shph-input-border);border-radius:var(--shph-border-radius-sm);align-items:center;height:48px;padding:0 14px;transition:border-color .2s;display:flex}.login-page .input-wrap:focus-within{border-color:var(--role-solid)}.login-page .input-icon{color:var(--shph-text-secondary);flex-shrink:0;margin-right:10px;font-size:18px}.login-page .input-wrap input{min-width:0;color:var(--shph-text-primary);background:0 0;border:none;outline:none;flex:1;height:100%;font-family:inherit;font-size:16px}.login-page .input-wrap input::placeholder{color:var(--shph-text-hint)}.login-page .eye-btn{cursor:pointer;color:var(--shph-text-secondary);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;font-size:18px;display:flex}.login-page .form-row{justify-content:space-between;align-items:center;margin:4px 0 20px;font-size:13px;display:flex}.login-page .biometric-fp-wrap{justify-content:center;margin:20px 0 4px;display:flex}.login-page .biometric-fp-btn{background:var(--role-solid);width:72px;height:72px;color:var(--role-on-gradient,#fff);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,opacity .15s;display:flex;box-shadow:0 6px 18px rgba(0,0,0,.18)}.login-page .biometric-fp-btn:hover{transform:scale(1.05)}.login-page .biometric-fp-btn:active{transform:scale(.96)}.login-page .biometric-fp-btn:disabled{opacity:.6;cursor:default}.login-page .biometric-fp-btn ion-icon{font-size:34px}.login-page .biometric-fp-btn ion-spinner{width:28px;height:28px}.login-page .remember-label{cursor:pointer;color:var(--shph-text-primary);align-items:center;gap:8px;font-weight:500;display:flex}.login-page .remember-checkbox{width:16px;height:16px;accent-color:var(--role-solid);cursor:pointer}.login-page .forgot-link{color:var(--role-solid);font-weight:600;text-decoration:none}.login-page .forgot-link:hover{text-decoration:underline}.login-page .error-msg{text-align:center;margin:-8px 0 16px;font-size:13px;display:block}.login-page .login-cta{--border-radius:var(--shph-border-radius-md);--background:var(--role-gradient);--background-hover:var(--role-gradient);--background-focused:var(--role-gradient);--background-activated:var(--role-gradient);--color:var(--role-on-gradient);--box-shadow:var(--role-shadow);letter-spacing:0;text-transform:none;height:50px;margin:0;font-size:15px;font-weight:700}.login-page .phone-input-wrap{padding:0 14px}.login-page .phone-prefix{color:var(--shph-text-primary);border-right:1px solid var(--shph-border);flex-shrink:0;margin-right:8px;padding-right:10px;font-size:14px;font-weight:600}.login-page .field-error{margin-top:4px;padding-left:2px;font-size:12px;display:block}.login-page .signup-link{text-align:center;color:var(--shph-text-secondary);margin:18px 0 0;font-size:13px}.login-page .signup-link a{color:var(--role-solid);font-weight:700;text-decoration:none}.login-page .signup-link a:hover{text-decoration:underline}.login-page .form-secondary{margin-top:18px}.login-page .secondary-btn{--border-radius:var(--shph-border-radius-md);text-transform:none;--border-color:var(--shph-border);--color:var(--shph-text-primary);height:46px;margin:0;font-weight:600}.login-page .divider-row{color:var(--shph-text-hint);align-items:center;gap:10px;margin:4px 0 14px;font-size:12px;display:flex}.login-page .divider-line{background:var(--shph-border);flex:1;height:1px}.login-page .divider-text{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.login-page .google-btn{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);width:100%;height:46px;color:var(--shph-text-primary);cursor:pointer;justify-content:center;align-items:center;gap:10px;margin-bottom:10px;font-family:inherit;font-size:14px;font-weight:600;transition:box-shadow .2s;display:flex}.login-page .google-btn:hover{box-shadow:var(--shph-shadow-sm)}.login-page .google-btn:disabled{opacity:.6;cursor:not-allowed}.login-page .google-icon{width:18px;height:18px}.login-page .google-spinner{border:2px solid var(--shph-border);border-top-color:var(--role-solid);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:767px){.toggle-card{flex-direction:column;gap:6px;padding:12px 8px}}.register-page .reg-head{text-align:left;margin:4px 0 24px}.register-page .reg-steps{align-items:center;gap:6px;margin-bottom:16px;display:flex}.register-page .reg-step{border-radius:var(--shph-border-radius-pill);background:var(--shph-border);width:22px;height:4px;transition:background var(--shph-dur) var(--shph-ease)}.register-page .reg-step.active{background:var(--shph-gradient-cta);width:30px}.register-page .reg-step-label{color:var(--shph-text-secondary);letter-spacing:.2px;margin-left:6px;font-size:12px;font-weight:600}.register-page .reg-head h1{color:var(--shph-text-heading);margin:0 0 6px;font-size:24px;font-weight:700}.register-page .reg-lead{color:var(--shph-primary-text);margin:0 0 4px;font-size:15px;font-weight:600}.register-page .register-form{max-width:var(--shph-container-narrow);margin:0 auto}.register-page .field-group{margin-bottom:16px}.register-page div.input-wrapper{align-items:center;display:flex;position:relative}.register-page .input-icon{color:var(--shph-text-secondary);z-index:2;font-size:20px;position:absolute;left:12px}.register-page .auth-input.with-icon{--padding-start:44px!important}.register-page .validation-icon{font-size:20px;position:absolute;right:12px}.register-page .validation-icon.valid{color:var(--ion-color-success)}.register-page .phone-prefix{color:var(--shph-text-primary);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-size:16px;font-weight:600;display:inline-block;overflow:hidden}.register-page .phone-prefix:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.register-page .phone-prefix:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.register-page .phone-prefix:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.register-page .phone-prefix:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.register-page .visibility-toggle{--padding-start:8px;--padding-end:8px;z-index:3;height:36px;margin:0;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.register-page .password-strength{margin-top:8px;padding:0 4px}.register-page .strength-bar{background:var(--shph-bg-secondary);border-radius:var(--shph-border-radius-pill);height:4px;overflow:hidden}.register-page .strength-fill{border-radius:2px;height:100%;transition:all .3s}.register-page .strength-fill.weak{background:var(--ion-color-danger)}.register-page .strength-fill.fair{background:var(--ion-color-warning)}.register-page .strength-fill.good{background:var(--ion-color-primary)}.register-page .strength-fill.strong,.register-page .strength-fill.very-strong{background:var(--ion-color-success)}.register-page .strength-text{margin-top:4px;font-size:12px;font-weight:500;display:block}.register-page .password-requirements{background:var(--shph-bg-secondary);border-radius:var(--shph-border-radius-sm);margin-top:12px;padding:12px}.register-page .requirement{color:var(--shph-text-secondary);align-items:center;gap:8px;margin-bottom:6px;font-size:13px;transition:all .2s;display:flex}.register-page .requirement:last-child{margin-bottom:0}.register-page .requirement.met{color:var(--ion-color-success)}.register-page .auth-input.ion-valid{--border-color:var(--ion-color-success)}.register-page .auth-input.ion-invalid{--border-color:var(--ion-color-danger)}.register-page .field-error,.register-page .field-success,.register-page .field-hint{align-items:center;gap:4px;margin-top:6px;margin-left:16px;font-size:12px;display:flex}.register-page .field-error{color:var(--ion-color-danger)}.register-page body.dark .field-error{color:var(--shph-error)}.register-page .signin-instead{--color:var(--shph-primary);min-height:44px;margin-top:4px;margin-left:8px;font-size:13px;font-weight:600}.register-page .field-success{color:var(--ion-color-success)}.register-page body.dark .field-success{color:var(--shph-success)}.register-page .field-hint{color:var(--shph-text-secondary)}.register-page .terms-section{margin:20px 0}.register-page .terms-section ion-checkbox::part(label){white-space:normal;text-overflow:clip;overflow:visible}.register-page .terms-section ion-checkbox::part(label):not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:10px}.register-page .terms-section ion-checkbox::part(label):not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:10px}.register-page .terms-section ion-checkbox::part(label):-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:10px}.register-page .terms-section ion-checkbox::part(label):is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:10px}.register-page .terms-text{color:var(--shph-text-secondary);white-space:normal;font-size:13px;line-height:1.4}.register-page .terms-text a{color:var(--shph-primary-text);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-weight:600;text-decoration:none;display:inline-block;overflow:hidden}.register-page .error-banner{background:var(--ion-color-danger);color:var(--shph-bg-primary);border-radius:var(--shph-border-radius-sm);align-items:center;gap:8px;margin:16px 0;padding:12px 16px;font-size:14px;display:flex}.register-page body.dark .error-banner{background:color-mix(in srgb, var(--shph-error) 20%, transparent);color:var(--shph-error);border:1px solid color-mix(in srgb, var(--shph-error) 40%, transparent)}.register-page .submit-button{--border-radius:var(--shph-border-radius-pill);--background:var(--shph-gradient-cta);--background-hover:var(--shph-gradient-cta);--background-focused:var(--shph-gradient-cta);--background-activated:var(--shph-gradient-cta);--color:var(--shph-on-primary);--box-shadow:var(--shph-shadow-cta);text-transform:none;min-height:50px;margin-top:24px;font-size:16px;font-weight:700}.register-page .security-note{color:var(--shph-text-secondary);justify-content:center;align-items:center;gap:6px;margin-top:16px;font-size:12px;display:flex}.register-page .signin-prompt{text-align:center;color:var(--shph-text-secondary);margin-top:24px;margin-bottom:32px;font-size:14px}.register-page .signin-link{color:var(--shph-primary-text);margin-left:4px;font-weight:700;text-decoration:none}.register-page .google-section{margin:8px 0 0}.register-page .divider-row{color:var(--shph-text-hint);align-items:center;gap:10px;margin:16px 0 12px;font-size:12px;display:flex}.register-page .divider-line{background:var(--shph-border);flex:1;height:1px}.register-page .google-btn{background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);width:100%;height:48px;color:var(--shph-text-primary);cursor:pointer;justify-content:center;align-items:center;gap:10px;font-family:inherit;font-size:14px;font-weight:600;transition:box-shadow .2s;display:flex}.register-page .google-btn:hover{box-shadow:var(--shph-shadow-sm)}.register-page .google-btn:disabled{opacity:.6;cursor:not-allowed}.register-page .google-icon{width:18px;height:18px}.register-page .google-spinner{border:2px solid var(--shph-border);border-top-color:var(--shph-primary);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}.biometric-setup ion-card-title{color:var(--ion-text-color);font-size:18px;font-weight:700}.biometric-setup ion-card-subtitle{color:var(--ion-color-medium);font-size:14px}.biometric-setup ion-item{--background:transparent}.biometric-setup ion-input{--color:var(--ion-text-color);--placeholder-color:var(--ion-color-medium)}.biometric-setup .success-msg{color:var(--ion-color-success);margin-top:8px;font-size:14px}.biometric-setup .error-msg{color:var(--ion-color-danger);margin-top:8px;font-size:14px}.biometric-setup .empty-msg{color:var(--ion-color-medium);padding:8px 0;font-size:14px}.biometric-setup .device-icon{color:var(--shph-primary-text)}.biometric-setup .current-badge{vertical-align:middle;margin-left:6px;font-size:11px}.create-profile .photo-upload-section{justify-content:center;margin-bottom:24px;display:flex}.create-profile .photo-preview{background:var(--shph-bg-page);cursor:pointer;border:2px dashed var(--shph-border,#e0e3e7);border-radius:50%;width:120px;height:120px;transition:border-color .3s;overflow:hidden}.create-profile .photo-preview:hover{border-color:var(--shph-primary,#63cbd6)}.create-profile .photo-preview img{object-fit:cover;width:100%;height:100%}.create-profile .photo-placeholder{flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;display:flex}.create-profile .photo-placeholder ion-icon{color:var(--shph-text-secondary,#57636c);font-size:32px}.create-profile .photo-placeholder span{color:var(--shph-text-secondary,#57636c);font-size:12px}.create-profile .progress-section{margin-bottom:24px}.create-profile .progress-bar{background:var(--shph-border);border-radius:4px;width:100%;height:8px;margin-bottom:8px;overflow:hidden}.create-profile .progress-fill{background:var(--shph-primary,#63cbd6);height:100%;transition:width .3s}.create-profile .progress-text{color:var(--shph-text-secondary,#57636c);text-align:right;font-size:12px;display:block}.create-profile .auth-input{margin-bottom:16px}.forgot-password .wrap{text-align:center;padding-top:40px}.forgot-password .icon{margin-bottom:16px;font-size:64px}.forgot-password h2{color:var(--shph-text-heading);margin-bottom:8px;font-size:24px;font-weight:700}.forgot-password p{color:var(--shph-text-secondary);margin-bottom:24px}.forgot-password .success-box{background:color-mix(in srgb, var(--shph-success) 12%, transparent);border-radius:var(--shph-border-radius-lg);margin-top:24px;padding:24px}.forgot-password .success-box p{color:var(--shph-success);margin-bottom:0;font-size:15px;font-weight:600}.location-permission .loc-perm-content{--background:var(--shph-bg-page);--padding-top:24px;--padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.location-permission .loc-perm-wrapper{flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:24px 0;display:flex}.location-permission .loc-perm-hero{text-align:center;width:100%;max-width:360px;margin:0 auto 32px}.location-permission .loc-perm-icon{color:var(--shph-primary-text);margin-bottom:16px;font-size:64px}.location-permission .loc-perm-hero h1{color:var(--shph-text-heading);margin:0 0 12px;font-size:22px;font-weight:700}.location-permission .loc-perm-desc{color:var(--shph-text-secondary);margin:0;font-size:14px;line-height:1.5}.location-permission .loc-perm-denied{text-align:center;background:rgba(var(--ion-color-warning-rgb,255, 193, 7), .1);border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:360px;margin:0 auto 20px;padding:12px 16px;display:flex}.location-permission .loc-perm-denied ion-icon{color:var(--ion-color-warning);flex-shrink:0;font-size:24px}.location-permission .loc-perm-denied p{color:var(--ion-color-warning-shade,#a35800);margin:0;font-size:13px;line-height:1.4}.location-permission .loc-perm-detecting{color:var(--shph-text-secondary);align-items:center;gap:8px;margin:0 auto 16px;font-size:14px;display:flex}.location-permission .loc-perm-error{text-align:center;background:rgba(var(--ion-color-danger-rgb,235, 68, 90), .1);border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:360px;margin:0 auto 20px;padding:12px 16px;display:flex}.location-permission .loc-perm-error ion-icon{color:var(--ion-color-danger);flex-shrink:0;font-size:24px}.location-permission .loc-perm-error span{color:var(--ion-color-danger);font-size:13px;line-height:1.4}.location-permission .loc-perm-btn{--border-radius:28px;width:100%;max-width:360px;min-height:52px;margin:0 auto 12px;font-size:16px;font-weight:600}.location-permission .loc-perm-skip{--color:var(--shph-text-secondary);width:100%;max-width:360px;margin:0 auto;font-size:14px}.onboarding-page .skip-container{z-index:101;position:absolute;top:8px;right:8px}.onboarding-page .skip-btn{--color:var(--shph-text-secondary);pointer-events:auto;font-weight:500}.onboarding-page .h-full{height:calc(100dvh - 180px)!important}.onboarding-page .slide-wrap{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:32px;display:flex}.onboarding-page .slide-illo{object-fit:contain;width:82%;max-height:240px;margin:0 auto 20px}.onboarding-page h2{color:var(--shph-text-heading);margin-bottom:12px;font-size:26px;font-weight:700}.onboarding-page p{color:var(--shph-text-secondary);font-size:16px;line-height:1.6}.onboarding-page .bottom-bar{padding:16px 24px calc(32px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color);z-index:100;pointer-events:auto;position:fixed;bottom:0;left:0;right:0}.onboarding-page ion-content{--padding-bottom:120px}.onboarding-page ion-button{pointer-events:auto}.onboarding-page .dots{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.onboarding-page .dot{background:rgba(54,142,255,.25);background:color-mix(in srgb, var(--shph-primary) 25%, transparent);border-radius:99px;width:7px;height:7px;transition:width .2s}.onboarding-page .dot.active{background:var(--shph-primary);border-radius:99px;width:22px}.otp-page .otp-wrap{text-align:center;max-width:var(--shph-container-narrow);margin:0 auto;padding-top:32px}.otp-page .otp-icon{margin-bottom:16px;font-size:64px}.otp-page h2{color:var(--shph-text-heading);margin-bottom:8px;font-size:24px;font-weight:700}.otp-page p{color:var(--shph-text-secondary);margin-bottom:24px}.phone-verify .verify-container{max-width:var(--shph-container-narrow);margin:0 auto;padding:20px 0}.phone-verify .icon-wrap{background:linear-gradient(135deg, var(--shph-primary), var(--ion-color-primary-tint));border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;display:flex}.phone-verify .icon-wrap ion-icon{color:var(--shph-bg-primary);font-size:40px}.phone-verify h2{color:var(--shph-text-primary,#14181b);margin-bottom:8px;font-size:24px;font-weight:600}.phone-verify .description{color:var(--shph-text-secondary,#57636c);margin-bottom:24px;font-size:14px}.phone-verify .phone-display{background:var(--shph-bg-page);border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-bottom:32px;padding:12px;display:flex}.phone-verify .phone-display ion-icon{color:var(--shph-primary,#63cbd6);font-size:20px}.phone-verify .phone-display span{color:var(--shph-text-primary,#14181b);font-size:16px;font-weight:500}.phone-verify .pin-inputs{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.phone-verify .pin-input{--background:var(--shph-bg-primary);text-align:center;border:2px solid var(--shph-border,#e0e3e7);border-radius:12px;width:48px;height:56px;font-size:24px;font-weight:600;--padding-start:0!important;--padding-end:0!important}.phone-verify .pin-input:focus{--background:var(--shph-bg-page);border-color:var(--shph-primary,#63cbd6)}.phone-verify .resend-section{flex-direction:column;align-items:center;gap:8px;margin:24px 0;display:flex}.phone-verify .resend-text{color:var(--shph-text-secondary,#57636c);font-size:13px}.set-password .wrap{text-align:center;max-width:var(--shph-container-narrow);margin:0 auto;padding-top:32px}.set-password .icon{margin-bottom:16px;font-size:64px}.set-password h2{color:var(--shph-text-primary,#14181b);margin-bottom:8px;font-size:24px;font-weight:700}.set-password p{color:var(--shph-text-secondary,#57636c);margin-bottom:24px;font-size:14px}.set-password .pw-meter{text-align:left;margin:4px 0 14px}.set-password .pw-meter-track{background:var(--shph-border,rgba(0,0,0,.08));border-radius:999px;height:6px;overflow:hidden}.set-password .pw-meter-fill{background:var(--ion-color-medium,#92949c);border-radius:999px;height:100%;transition:width .25s,background-color .25s}.set-password .pw-meter.strength--weak .pw-meter-fill{background:var(--ion-color-danger,#eb445a)}.set-password .pw-meter.strength--fair .pw-meter-fill{background:var(--ion-color-warning,#ffc409)}.set-password .pw-meter.strength--good .pw-meter-fill{background:var(--shph-primary,#63cbd6)}.set-password .pw-meter.strength--strong .pw-meter-fill{background:var(--ion-color-success,#249689)}.set-password .pw-meter-label{color:var(--shph-text-secondary,#57636c);margin-top:5px;font-size:12px;font-weight:600;display:block}.set-password .hints{text-align:left;flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.set-password .hint-row{color:var(--shph-text-secondary,#57636c);align-items:center;gap:8px;font-size:13px;display:flex}.set-password .hint-row ion-icon{color:var(--shph-border,#e0e3e7);flex-shrink:0;font-size:16px}.set-password .hint-row.pass,.set-password .hint-row.pass ion-icon{color:var(--shph-success,#249689)}.set-password .error-text{text-align:left;margin-top:8px;display:block}.set-password .error-text p{color:var(--shph-error,#ff5963);margin:0;font-size:13px}.set-password .success-box{background:color-mix(in srgb, var(--shph-success) 12%, transparent);border-radius:var(--shph-border-radius-lg);margin-top:24px;padding:24px}.set-password .success-box p{color:var(--shph-success,#249689);margin-bottom:0;font-size:15px;font-weight:600}.sign-options .sign-options-content{--background:var(--shph-bg-page)}.sign-options .so-wrap{flex-direction:column;gap:28px;max-width:460px;margin:0 auto;padding:56px 20px 32px;display:flex}.sign-options .so-hero{background:var(--shph-gradient-hero);border-radius:var(--shph-border-radius-hero);place-items:center;height:150px;display:grid}.sign-options .so-logo-tile{border-radius:var(--shph-border-radius-md);background:#fff;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 8px 20px -6px rgba(0,0,0,.35)}.sign-options .so-logo-img{object-fit:contain;width:52px;height:52px}.sign-options .so-intro{text-align:center}.sign-options .so-intro h1{color:var(--shph-text-heading);margin:0 0 6px;font-size:24px;font-weight:700}.sign-options .so-intro h1 .brand{color:var(--shph-primary-text)}.sign-options .so-intro p{color:var(--shph-text-secondary);margin:0}.sign-options .so-roles{flex-direction:column;gap:12px;display:flex}.sign-options .role-btn{border-radius:var(--shph-border-radius-md);cursor:pointer;justify-content:center;align-items:center;gap:10px;width:100%;padding:15px 16px;font-size:15px;font-weight:600;transition:box-shadow .15s,transform .1s;display:flex}.sign-options .role-btn:active{transform:scale(.98)}.sign-options .role-btn:focus-visible{outline:2px solid var(--shph-primary);outline-offset:2px}.sign-options .role-btn ion-icon{flex-shrink:0;font-size:20px}.sign-options .role-btn.primary{background:var(--shph-gradient-cta);color:var(--shph-on-primary);box-shadow:var(--shph-shadow-cta);border:none}.sign-options .role-btn.outline{background:var(--shph-bg-primary);color:var(--shph-primary-deep);border:1.5px solid var(--shph-primary-light)}@media (prefers-color-scheme:dark){.sign-options .role-btn.outline{color:var(--shph-primary-text)}}.sign-options body.dark .role-btn.outline{color:var(--shph-primary-text)}.sign-options .so-login-hint{text-align:center;color:var(--shph-text-secondary);margin:0;font-size:14px}.splash-page .splash-content{--background:transparent;background:var(--shph-gradient-hero)}.splash-page .splash-content ion-spinner{--color:#fff}.splash-page .splash-container{flex-direction:column;justify-content:center;align-items:center;gap:32px;height:100%;display:flex}.splash-page .logo-circle{background:#fff;border:1px solid rgba(255,255,255,.6);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;margin:0 auto 12px;display:flex}.splash-page .logo-text{color:#fff;letter-spacing:2px;font-size:24px;font-weight:800}.splash-page .logo-img{object-fit:contain;width:78px;height:78px}.splash-page .tagline{color:#fff;opacity:.9;margin:0;font-size:16px}.provider-app-notice{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);border-radius:12px;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;display:flex}.provider-app-notice ion-icon{color:#f59e0b;flex:none;margin-top:1px;font-size:20px}.provider-app-notice p{color:var(--shph-text-secondary,#64748b);margin:0 0 4px;font-size:.86rem;line-height:1.35}.provider-app-notice a{color:#f59e0b;font-size:.88rem;font-weight:700;text-decoration:none}.provider-app-notice a:hover{text-decoration:underline}.provider-dashboard ion-content{--background:var(--shph-bg-page)}.provider-dashboard .ph-identity{cursor:pointer;align-items:center;gap:12px;min-width:0;display:flex}.provider-dashboard .tab-header-condense .ph-identity{gap:14px}.provider-dashboard .tab-header-condense .ph-avatar{border-radius:17px;width:54px;height:54px;font-size:19px}.provider-dashboard .tab-header-condense .ph-id-name{max-width:68vw;font-size:24px}.provider-dashboard .tab-header-condense .ph-status-text{font-size:11px}.provider-dashboard .tab-header-condense .ph-location{margin-top:3px;font-size:11px}.provider-dashboard .ph-avatar{background:var(--shph-gradient-hero);color:#fff;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:15px;font-weight:800;display:flex;overflow:hidden;box-shadow:0 6px 14px -6px rgba(99,203,214,.55)}.provider-dashboard .ph-avatar img{object-fit:cover;width:100%;height:100%}.provider-dashboard .ph-id-name{letter-spacing:-.01em;color:var(--ion-text-color);white-space:nowrap;text-overflow:ellipsis;max-width:52vw;margin:0;font-size:15px;font-weight:800;overflow:hidden}.provider-dashboard .ph-status{align-items:center;gap:5px;margin-top:2px;display:flex}.provider-dashboard .ph-status-dot{background:var(--ion-color-medium);border-radius:50%;flex-shrink:0;width:6px;height:6px}.provider-dashboard .ph-status.online .ph-status-dot{background:var(--shph-primary);animation:1.6s ease-in-out infinite ph-pulse}.provider-dashboard .ph-status-text{text-transform:uppercase;letter-spacing:.08em;color:var(--ion-color-medium);font-size:10px;font-weight:800}.provider-dashboard .ph-status.online .ph-status-text{color:var(--shph-primary-text)}.provider-dashboard .ph-location{color:var(--ion-color-medium);align-items:center;gap:4px;margin-top:2px;font-size:10px;font-weight:700;display:flex}.provider-dashboard .ph-location ion-icon{color:var(--shph-primary-text);font-size:11px}@keyframes ph-pulse{0%,to{opacity:1}50%{opacity:.35}}.provider-dashboard .ph-body{padding:16px;padding-bottom:calc(24px + var(--ion-safe-area-bottom,0px));flex-direction:column;gap:16px;display:flex}.provider-dashboard .ph-sk{width:100%}.provider-dashboard .ph-metrics{grid-template-columns:1fr 1fr;gap:12px;display:grid}.provider-dashboard .ph-metric-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);flex-direction:column;padding:14px;display:flex}.provider-dashboard .ph-metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ion-color-medium);font-size:9.5px;font-weight:800}.provider-dashboard .ph-metric-value{color:var(--ion-text-color);align-items:center;gap:4px;margin-top:3px;font-size:20px;font-weight:800;display:inline-flex}.provider-dashboard .ph-star{color:var(--shph-star);font-size:15px}.provider-dashboard .ph-metric-sub{color:var(--shph-primary-text);align-items:center;gap:4px;margin-top:6px;font-size:10px;font-weight:800;display:inline-flex}.provider-dashboard .ph-metric-sub ion-icon{font-size:11px}.provider-dashboard .ph-zone-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);padding:12px}.provider-dashboard .ph-zone-head{justify-content:space-between;align-items:center;padding:2px 4px 10px;display:flex}.provider-dashboard .ph-zone-head h2{text-transform:uppercase;letter-spacing:.1em;color:var(--ion-color-medium);align-items:center;gap:6px;margin:0;font-size:10px;font-weight:800;display:flex}.provider-dashboard .ph-zone-head h2 ion-icon{color:var(--shph-primary-text);font-size:13px}.provider-dashboard .ph-zone-city{color:var(--ion-text-color);background:var(--shph-bg-page);border:1px solid var(--shph-border);white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;border-radius:8px;min-width:0;max-width:45%;padding:3px 8px;font-size:9.5px;font-weight:800;overflow:hidden}.provider-dashboard .ph-zone-map{border:1px solid var(--shph-border);background:var(--shph-bg-page);border-radius:14px;height:220px;position:relative;overflow:hidden}.provider-dashboard .ph-zone-explore{height:100%;min-height:0}.provider-dashboard .ph-zone-explore .explore-map{border-radius:0;height:100%;min-height:0}.provider-dashboard .ph-zone-badge{z-index:2;color:var(--shph-primary-text);background:var(--shph-bg-primary);border:1px solid var(--shph-border);box-shadow:var(--shph-shadow-sm);border-radius:6px;padding:3px 7px;font-size:9px;font-weight:800;position:absolute;bottom:8px;left:8px}.provider-dashboard .active-zone-placeholder{text-align:center;height:100%;color:var(--ion-color-medium);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.provider-dashboard .active-zone-placeholder ion-icon{color:var(--shph-primary-text);font-size:30px}.provider-dashboard .active-zone-placeholder p{margin:0;font-size:12px}.provider-dashboard .ph-board{flex-direction:column;gap:10px;display:flex}.provider-dashboard .ph-board-head{justify-content:space-between;align-items:center;gap:8px;padding:2px 4px;display:flex}.provider-dashboard .ph-board-head h2{text-transform:uppercase;letter-spacing:.1em;color:var(--ion-color-medium);margin:0;font-size:10px;font-weight:800}.provider-dashboard .ph-live-dot{background:var(--shph-primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite ph-pulse}.provider-dashboard .empty-state{color:var(--ion-color-medium);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.provider-dashboard .empty-state ion-icon{color:var(--shph-primary-text);font-size:34px}.provider-dashboard .empty-state p{margin:0;font-size:13px}.provider-dashboard .empty-state--blocked{border:1px solid var(--shph-primary);border-radius:12px;gap:6px;padding:16px}.provider-dashboard .empty-state__title{font-size:14px;font-weight:700}.provider-dashboard .empty-state__sub{opacity:.8;text-transform:capitalize}.provider-dashboard .job-board-card{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);flex-direction:column;gap:12px;padding:16px;display:flex}.provider-dashboard .job-board-card--featured{border:2px solid var(--shph-primary);box-shadow:0 8px 22px -10px rgba(99,203,214,.45)}.provider-dashboard .job-board-card--highlighted{outline:2px solid var(--shph-primary);outline-offset:2px}.provider-dashboard .job-board-card--accepting{border-color:var(--shph-primary-dark);outline:2px solid var(--shph-primary);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.provider-dashboard .job-board-card--highlighted{transition:outline-color .3s}}.provider-dashboard .job-board-card__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.provider-dashboard .job-board-card__lead{min-width:0}.provider-dashboard .job-tag{text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:3px 7px;font-size:8px;font-weight:800;display:inline-block}.provider-dashboard .job-tag--urgent{background:var(--shph-status-cancelled-bg);color:var(--shph-status-cancelled)}.provider-dashboard .job-tag--batch{background:var(--shph-status-pending-bg);color:var(--shph-status-pending)}.provider-dashboard .job-board-card__title{color:var(--ion-text-color);overflow-wrap:anywhere;margin:7px 0 0;font-size:14px;font-weight:800}.provider-dashboard .job-board-card__loc{color:var(--ion-color-medium);margin:3px 0 0;font-size:10.5px;font-weight:600}.provider-dashboard .job-board-card__payout{text-align:right;flex-direction:column;flex:0 auto;align-items:flex-end;min-width:0;max-width:45%;display:flex}.provider-dashboard .job-board-card__payout-label{color:var(--ion-color-medium);font-size:10px;font-weight:700;display:block}.provider-dashboard .job-board-card__fee{color:var(--shph-primary-text);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-size:16px;font-weight:800;display:inline-block;overflow:hidden}.provider-dashboard .job-board-card__divider{background:var(--shph-border);height:1px}.provider-dashboard .job-board-card__meta{color:var(--ion-color-medium);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:10.5px;font-weight:600;display:flex}.provider-dashboard .job-board-card__meta b{color:var(--ion-text-color);font-weight:800}.provider-dashboard .job-board-card__meta b.sched{color:var(--shph-primary-text)}.provider-dashboard .job-board-card__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.provider-dashboard .job-board-card__actions--single{grid-template-columns:1fr}.provider-dashboard .job-board-card__actions ion-button{--border-radius:12px;margin:0;font-size:12px;font-weight:800}.provider-analytics .analytics-content{max-width:var(--shph-container-dashboard);margin:0 auto;padding:16px;position:relative}.provider-analytics .an-dim .metric-card,.provider-analytics .an-dim .chart-section,.provider-analytics .an-dim .performance-section,.provider-analytics .an-dim .insights-section,.provider-analytics .an-dim .feedback-section,.provider-analytics .an-dim .recommendations-section,.provider-analytics .an-dim .period-selector{opacity:.4;transition:opacity .2s}.provider-analytics .refresh-pill{z-index:10;background:var(--shph-bg-primary);border:1px solid var(--shph-primary);color:var(--shph-primary-text);box-shadow:var(--shph-shadow-md);border-radius:999px;align-items:center;gap:7px;margin:12px auto 0;padding:6px 12px;font-size:11px;font-weight:800;display:inline-flex;position:sticky;top:12px}.provider-analytics .refresh-pill ion-spinner{--color:var(--shph-primary-text);width:14px;height:14px}.provider-analytics .period-selector{margin-bottom:24px}.provider-analytics .period-selector ion-segment{background:var(--ion-color-light);border-radius:12px}.provider-analytics .metrics-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;display:grid}.provider-analytics .metric-card{background:var(--ion-background-color);border:1px solid var(--ion-color-light-shade);border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.provider-analytics .metric-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.provider-analytics .metric-header ion-icon{color:var(--shph-primary-text);font-size:20px}.provider-analytics .metric-label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.provider-analytics .metric-value{color:var(--ion-text-color);margin-bottom:4px;font-size:24px;font-weight:700}.provider-analytics .metric-change{color:var(--ion-color-danger);align-items:center;gap:4px;font-size:12px;display:flex}.provider-analytics .metric-change.positive{color:var(--ion-color-success)}.provider-analytics .metric-subtext{color:var(--ion-color-medium);font-size:12px}.provider-analytics .chart-section{background:var(--ion-background-color);border:1px solid var(--ion-color-light-shade);border-radius:12px;margin-bottom:24px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.provider-analytics .section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.provider-analytics .section-title{color:var(--ion-text-color);margin:0 0 16px;font-size:18px;font-weight:600}.provider-analytics .earnings-breakdown{border-top:1px solid var(--ion-color-light-shade);margin-top:16px;padding-top:16px}.provider-analytics .breakdown-item{justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;display:flex}.provider-analytics .breakdown-item .amount{color:var(--ion-color-success);font-weight:600}.provider-analytics .breakdown-item .amount.deduction{color:var(--ion-color-danger)}.provider-analytics .breakdown-item .amount.muted{color:var(--ion-color-medium);font-weight:500}.provider-analytics .revenue-summary{gap:8px;margin-bottom:4px;display:flex}.provider-analytics .rev-stat{background:var(--ion-color-light);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 8px;display:flex}.provider-analytics .rev-label{color:var(--ion-color-medium);white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;font-size:11px;display:inline-block;overflow:hidden}.provider-analytics .rev-value{color:var(--ion-color-dark);font-size:13px;font-weight:700}.provider-analytics .rev-stat.deduction .rev-value{color:var(--ion-color-danger)}.provider-analytics .rev-stat.net .rev-value{color:var(--ion-color-success)}.provider-analytics .chart-legend{color:var(--ion-color-medium);justify-content:flex-end;gap:16px;margin-top:8px;font-size:11px;display:flex}.provider-analytics .legend-item{align-items:center;gap:5px;display:flex}.provider-analytics .legend-dot{border-radius:2px;width:10px;height:10px;display:inline-block}.provider-analytics .legend-item.credits .legend-dot{background:var(--ion-color-primary)}.provider-analytics .legend-item.net .legend-dot{background:var(--ion-color-success)}.provider-analytics .performance-section{background:var(--ion-background-color);border-radius:var(--shph-border-radius-lg);box-shadow:var(--shph-shadow-sm);border:1px solid var(--ion-color-light-shade);margin-bottom:24px;padding:24px}.provider-analytics .performance-grid{gap:20px;display:grid}.provider-analytics .performance-metric{flex-direction:column;gap:8px;display:flex}.provider-analytics .metric-title{color:var(--ion-text-color);font-size:14px;font-weight:500}.provider-analytics .metric-bar{background:var(--ion-color-light-shade);border-radius:4px;height:8px;position:relative;overflow:hidden}.provider-analytics .metric-fill{border-radius:4px;height:100%;transition:width .3s}.provider-analytics .metric-fill.acceptance{background:var(--ion-color-primary)}.provider-analytics .metric-fill.on-time{background:var(--ion-color-success)}.provider-analytics .metric-fill.satisfaction{background:var(--ion-color-warning)}.provider-analytics .metric-percentage{color:var(--ion-text-color);text-align:right;font-size:12px;font-weight:600}.provider-analytics .insights-section{grid-template-columns:1fr;gap:24px;margin-bottom:24px;display:grid}.provider-analytics .insights-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.provider-analytics .popular-services{background:var(--ion-background-color);border:1px solid var(--ion-color-light-shade);border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.provider-analytics .popular-services h4{color:var(--ion-text-color);margin:0 0 16px;font-size:16px;font-weight:600}.provider-analytics .service-list{flex-direction:column;gap:12px;display:flex}.provider-analytics .service-item-wrap{border-bottom:1px solid var(--ion-color-light-shade)}.provider-analytics .service-item-wrap:last-child{border-bottom:none}.provider-analytics .service-item{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.provider-analytics .service-item--tappable{cursor:pointer}.provider-analytics .service-item-end{align-items:center;gap:6px;display:flex}.provider-analytics .service-chevron{color:var(--ion-color-medium);flex-shrink:0;font-size:14px}.provider-analytics .service-metrics{padding:10px 0 14px}.provider-analytics .service-metrics-loading{justify-content:center;padding:8px 0;display:flex}.provider-analytics .service-metrics-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;display:grid}.provider-analytics .svc-stat{background:var(--ion-color-light);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.provider-analytics .svc-stat-value{color:var(--ion-color-dark);font-size:15px;font-weight:700}.provider-analytics .svc-stat-label{color:var(--ion-color-medium);text-align:center;font-size:10px}.provider-analytics .svc-avg{color:var(--ion-color-medium);text-align:center;font-size:12px}.provider-analytics .svc-avg strong{color:var(--ion-color-success)}.provider-analytics .service-info{flex-direction:column;gap:4px;display:flex}.provider-analytics .service-name{color:var(--ion-text-color);font-size:14px;font-weight:500}.provider-analytics .service-bookings{color:var(--ion-color-medium);font-size:12px}.provider-analytics .service-revenue{color:var(--ion-color-success);font-size:14px;font-weight:600}.provider-analytics .feedback-section{margin-bottom:24px}.provider-analytics .feedback-list{flex-direction:column;gap:12px;display:flex}.provider-analytics .no-reviews{text-align:center;color:var(--ion-color-medium);padding:40px 20px}.provider-analytics .no-reviews ion-icon{margin-bottom:12px;font-size:48px}.provider-analytics .recommendations-section{margin-bottom:24px}.provider-analytics .recommendations-list{flex-direction:column;gap:16px;display:flex}.provider-analytics .recommendation-card{background:var(--ion-color-primary-tint);border-left:4px solid var(--ion-color-primary);border-radius:12px;align-items:flex-start;gap:16px;padding:20px;display:flex}.provider-analytics .rec-icon{background:var(--ion-color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.provider-analytics .rec-icon ion-icon{color:var(--ion-color-primary-contrast);font-size:20px}.provider-analytics .rec-content{flex:1}.provider-analytics .rec-content h4{color:var(--ion-text-color);margin:0 0 8px;font-size:16px;font-weight:600}.provider-analytics .rec-content p{color:var(--ion-color-medium);margin:0 0 12px;font-size:14px;line-height:1.4}@media (max-width:768px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.provider-analytics .insights-grid{grid-template-columns:1fr}}@media (max-width:480px){.provider-analytics .metrics-grid{grid-template-columns:1fr}}.provider-reviews .summary-bar{margin:0 16px 20px}.provider-reviews .summary-item{flex-direction:column;align-items:center;gap:6px;display:flex}.provider-reviews .summary-value{color:var(--shph-text-heading);font-size:32px;font-weight:700}.provider-reviews .summary-label{color:var(--ion-color-medium);font-size:13px}.provider-reviews .empty-state{flex-direction:column;align-items:center;padding-top:80px;display:flex}.provider-reviews .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:56px}.provider-reviews .empty-state h3{color:var(--shph-text-heading);margin:0 0 8px;font-size:20px;font-weight:700}.provider-reviews .empty-state p{color:var(--ion-color-medium);text-align:center;max-width:300px;margin:0}.provider-reviews .reviews-list{grid-template-columns:1fr;gap:12px;display:grid}@media (min-width:768px){.provider-reviews .reviews-list{grid-template-columns:repeat(2,1fr)}}.post-service .thumbnail-label{color:var(--ion-color-medium);margin-bottom:8px;font-size:.85rem;display:block}.post-service .thumbnail-preview{border:2px dashed var(--ion-color-medium);cursor:pointer;background:var(--ion-color-light);border-radius:12px;justify-content:center;align-items:center;width:100%;height:180px;display:flex;overflow:hidden}.post-service .thumbnail-preview img{object-fit:cover;width:100%;height:100%}.post-service .thumbnail-placeholder{color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:8px;font-size:.9rem;display:flex}.post-service .thumbnail-placeholder ion-icon{font-size:2rem}.post-service .gallery-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.post-service .gallery-item,.post-service .gallery-add{aspect-ratio:1;border:2px dashed var(--ion-color-medium);border-radius:12px;position:relative;overflow:hidden}.post-service .gallery-item img{object-fit:cover;width:100%;height:100%}.post-service .gallery-remove{--padding-start:4px;--padding-end:4px;margin:0;position:absolute;top:0;right:0}.post-service .gallery-add{color:var(--ion-color-medium);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.8rem;display:flex}.post-service .gallery-add ion-icon{font-size:1.5rem}.post-service .location-label{color:var(--ion-color-medium);margin-bottom:8px;font-size:.85rem;display:block}.post-service .location-optional{opacity:.7;font-weight:400}.post-service .location-hint{color:var(--ion-color-medium);margin:-4px 0 8px;font-size:.78rem;line-height:1.4}.post-service .location-preview{border:2px dashed var(--ion-color-medium);cursor:pointer;background:var(--ion-color-light);border-radius:12px;justify-content:center;align-items:center;width:100%;height:56px;transition:border-color .2s;display:flex;overflow:hidden}.post-service .location-preview:active{border-color:var(--ion-color-primary)}.post-service .location-picked{color:var(--shph-primary-text);align-items:center;gap:8px;display:flex}.post-service .location-coords{font-size:.9rem;font-weight:600}.post-service .location-placeholder{color:var(--ion-color-medium);align-items:center;gap:8px;font-size:.9rem;display:flex}.post-service .location-placeholder ion-icon{font-size:1.25rem}.post-service .price-hint{color:var(--ion-color-medium);margin:4px 0 8px 4px;font-size:12px}.post-service .field-2col{grid-template-columns:1fr;gap:8px;display:grid}@media (min-width:768px){.post-service .field-2col{grid-template-columns:1fr 1fr}}.provider-bids .empty-state{margin-top:48px}.provider-bids .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:64px}.provider-bids .bids-list{grid-template-columns:1fr;gap:20px;display:grid}.provider-bids .bid-card{border:1px solid var(--shph-border);box-shadow:var(--shph-shadow-sm);border-radius:24px;margin:0;overflow:hidden}@media (min-width:768px){.provider-bids .bids-list{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.provider-bids .bids-list{grid-template-columns:repeat(3,1fr)}}.provider-bids .bid-price{color:var(--shph-primary-text);font-size:1.4rem;font-weight:800}.provider-bids .category-name{text-transform:uppercase;letter-spacing:.05em;color:var(--shph-warm-rose,#0d6d78);margin-left:8px;font-size:11px;font-weight:700}.provider-bids .job-description{color:var(--ion-color-dark);margin:0 0 8px}.provider-bids .bid-meta{color:var(--ion-color-medium);flex-wrap:wrap;gap:12px;font-size:.85rem;display:flex}.provider-bids .withdraw-btn{--color:var(--shph-warm-rose,#0d6d78);margin-top:12px;font-weight:700}.booking-metrics{background:var(--ion-background-color);border:1px solid var(--ion-color-light-shade);border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.booking-metrics .metrics-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.booking-metrics .metrics-header h4{color:var(--ion-text-color);margin:0;font-size:18px;font-weight:600}.booking-metrics .period-label{color:var(--ion-color-medium);background:var(--ion-color-light);border-radius:4px;padding:4px 8px;font-size:12px}.booking-metrics .metrics-content{gap:24px;display:grid}.booking-metrics .metric-group{flex-direction:column;display:flex}.booking-metrics .group-title{color:var(--ion-text-color);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:14px;font-weight:600}.booking-metrics .status-breakdown{gap:8px;display:grid}.booking-metrics .status-item{align-items:center;gap:8px;padding:8px 0;display:flex}.booking-metrics .status-indicator{border-radius:50%;width:12px;height:12px}.booking-metrics .status-name{color:var(--ion-text-color);flex:1;font-size:14px}.booking-metrics .status-count{color:var(--ion-text-color);font-weight:600}.booking-metrics .status-percentage{color:var(--ion-color-medium);margin-left:4px;font-size:12px}.booking-metrics .hours-chart{align-items:end;gap:4px;height:80px;padding:8px 0;display:flex}.booking-metrics .hour-bar{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.booking-metrics .hour-fill{background:var(--ion-color-primary);border-radius:2px 2px 0 0;width:100%;min-height:4px;transition:height .3s}.booking-metrics .hour-label{color:var(--ion-color-medium);margin-top:4px;font-size:10px}.booking-metrics .category-list{gap:12px;display:grid}.booking-metrics .category-item{background:var(--ion-color-light);border-radius:8px;justify-content:space-between;align-items:center;padding:12px;display:flex}.booking-metrics .category-info{flex:1}.booking-metrics .category-name{color:var(--ion-text-color);margin-bottom:4px;font-size:14px;font-weight:500;display:block}.booking-metrics .category-metrics{color:var(--ion-color-medium);gap:12px;font-size:12px;display:flex}.booking-metrics .avg-rating{color:var(--ion-color-warning)}.booking-metrics .category-revenue{color:var(--ion-color-success);font-size:14px;font-weight:600}.booking-metrics .area-list{gap:8px;display:grid}.booking-metrics .area-item{align-items:center;gap:12px;display:flex}.booking-metrics .area-name{width:80px;color:var(--ion-text-color);font-size:12px}.booking-metrics .area-bar{background:var(--ion-color-light-shade);border-radius:4px;flex:1;height:8px;overflow:hidden}.booking-metrics .area-fill{background:var(--ion-color-success);height:100%;transition:width .3s}.booking-metrics .area-count{text-align:right;width:30px;color:var(--ion-text-color);font-size:12px;font-weight:600}.booking-metrics .insights-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.booking-metrics .insight-card{text-align:center;background:var(--ion-color-light);border-radius:8px;padding:16px}.booking-metrics .insight-value{color:var(--shph-primary-text);margin-bottom:4px;font-size:20px;font-weight:700}.booking-metrics .insight-label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;font-size:11px}@media (max-width:768px){.booking-metrics .insights-grid{grid-template-columns:1fr}}.provider-earnings .summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.provider-earnings .summary-card{background:var(--ion-color-light);border-radius:var(--shph-border-radius-lg);flex-direction:column;gap:4px;padding:16px;display:flex}.provider-earnings .summary-label{color:var(--ion-color-medium);font-size:12px;font-weight:500}.provider-earnings .summary-value{color:var(--ion-text-color);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:max(15px,min(4.8vw,22px));font-weight:700;overflow:hidden}@media (max-width:380px){.provider-earnings .summary-card{padding:12px}}.provider-earnings .summary-value.pending{color:var(--ion-color-warning)}.provider-earnings .summary-value.success{color:var(--ion-color-success)}.provider-earnings .empty{flex-direction:column;align-items:center;padding-top:48px;display:flex}.provider-earnings .empty-icon{color:var(--ion-color-medium);margin-bottom:12px;font-size:48px}.provider-earnings .empty p{color:var(--ion-color-medium)}.provider-earnings .payout-available{color:var(--ion-text-color);margin-bottom:16px;font-size:15px}.provider-earnings .pm-section{margin-top:16px}.provider-earnings .pm-label{color:var(--ion-color-medium);margin:0 0 6px;font-size:13px;font-weight:600}.provider-earnings .pm-item{--background:var(--ion-color-light);border-radius:10px;margin-bottom:6px}.provider-earnings .pm-item--selected{--background:var(--shph-primary-light);border:1.5px solid var(--shph-primary);border-radius:14px}.provider-earnings .pm-item--selected ion-radio{--color-checked:var(--shph-primary-dark)}.provider-earnings .pm-icon{margin-right:4px;font-size:22px}.provider-earnings .block{display:block}.provider-earnings .payout-end{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.provider-earnings .payout-amount{color:var(--ion-text-color);font-size:15px;font-weight:600}.provider-earnings .payout-help{color:var(--ion-color-medium);align-items:center;gap:7px;margin-top:10px;font-size:12px;font-weight:600;display:flex}.provider-earnings .payout-help ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:15px}.my-services .listing-list{grid-template-columns:1fr;gap:0;padding:8px 12px;display:grid}.my-services .listing-card{--border-radius:16px;margin-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.08)}@media (min-width:768px){.my-services .listing-list{grid-template-columns:repeat(2,1fr);gap:12px}.my-services .listing-card{margin-bottom:0}}.my-services .listing-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.my-services .listing-title{margin:0 0 2px;font-size:17px;font-weight:700}.my-services .listing-category{color:var(--ion-color-medium);margin:0;font-size:13px}.my-services .listing-price{color:var(--shph-primary-text);margin:4px 0;font-size:16px;font-weight:600}.my-services .listing-price span{color:var(--ion-color-medium);font-size:12px;font-weight:400}.my-services .listing-desc{color:var(--ion-color-medium);margin:4px 0 10px;font-size:13px;line-height:1.4}.my-services .avail-badge{--border-radius:8px;font-size:11px}.my-services .badge-col{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.my-services .listing-actions{border-top:1px solid var(--ion-color-light);flex-direction:column;align-items:stretch;gap:10px;margin-top:10px;padding-top:10px;display:flex}.my-services .avail-toggle{--handle-spacing:3px;align-self:flex-start}.my-services .toggle-label{color:var(--ion-color-medium);margin-left:6px;font-size:13px}.my-services .action-btns{flex-wrap:wrap;gap:8px;display:flex}@media (min-width:768px){.my-services .listing-actions{flex-direction:row;justify-content:space-between;align-items:center}}.my-services .empty-state{padding-top:80px}.my-services .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:56px;display:block}.my-services .empty-state h3{margin:0 0 8px;font-size:20px;font-weight:700}.my-services .empty-state p{color:var(--ion-color-medium);margin:0}.my-services .edit-input{margin-bottom:14px}.my-services .thumbnail-label{color:var(--ion-color-medium);margin-bottom:8px;font-size:.85rem;display:block}.my-services .thumbnail-preview{border:2px dashed var(--ion-color-medium);cursor:pointer;background:var(--ion-color-light);border-radius:12px;justify-content:center;align-items:center;width:100%;height:160px;display:flex;overflow:hidden}.my-services .thumbnail-preview img{object-fit:cover;width:100%;height:100%}.my-services .thumbnail-placeholder{color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:8px;font-size:.9rem;display:flex}.my-services .thumbnail-placeholder ion-icon{font-size:2rem}.provider-availability .info-banner{color:var(--ion-color-medium);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.provider-availability .info-banner ion-icon{flex-shrink:0;font-size:16px}.provider-availability .empty-state{flex-direction:column;align-items:center;padding-top:80px;display:flex}.provider-availability .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:56px}.provider-availability .empty-state h3{margin:0 0 8px;font-size:20px;font-weight:700}.provider-availability .empty-state p{color:var(--ion-color-medium);margin:0}.provider-availability .slots-container{flex-direction:column;gap:16px;display:flex}.provider-availability .day-group{flex-direction:column;gap:8px;display:flex}.provider-availability .day-label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;font-size:14px;font-weight:700}.provider-availability .slot-card{margin:0;box-shadow:0 2px 8px rgba(0,0,0,.08)}.provider-availability .slot-card--inactive{opacity:.55}.provider-availability .slot-card--saving{opacity:.85}.provider-availability .saving-tag{color:var(--shph-primary-text);background:var(--shph-primary-light);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-flex}.provider-availability .saving-tag ion-spinner{--color:var(--shph-primary-text);width:10px;height:10px}.provider-availability .slot-card ion-card-content{padding:12px 16px}.provider-availability .slot-row{justify-content:space-between;align-items:center;display:flex}.provider-availability .slot-time{color:var(--ion-text-color);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.provider-availability .slot-time ion-icon{color:var(--shph-primary-text);font-size:18px}.provider-availability .slot-actions{align-items:center;gap:4px;display:flex}.provider-availability .datetime-field{flex-direction:column;width:100%;padding:8px 0;display:flex}.provider-availability .datetime-label{color:var(--shph-text-secondary,#57636c);margin-bottom:4px;font-size:13px;font-weight:600}.provider-profile .hero-section{background:linear-gradient(160deg, var(--ion-color-primary-tint) 0%, var(--ion-color-light) 60%);color:var(--shph-text-primary);flex-direction:column;align-items:center;padding:32px 16px 20px;display:flex}.provider-profile .provider-avatar{background:var(--ion-color-secondary);width:88px;height:88px;color:var(--shph-bg-primary);border:3px solid var(--shph-bg-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;font-size:36px;font-weight:700;display:flex;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.12)}.provider-profile .provider-avatar img{object-fit:cover;width:100%;height:100%}.provider-profile .provider-avatar-fallback{border:1px solid var(--shph-border);background:var(--shph-bg-secondary);width:64px;height:64px;color:var(--shph-primary-text);border-radius:16px;justify-content:center;align-items:center;font-size:42px;display:flex}.provider-profile .hero-section h1{text-align:center;margin:0 0 4px;font-size:22px;font-weight:700}.provider-profile .provider-bio{color:var(--ion-color-medium);text-align:center;margin:0 0 16px;font-size:14px}.provider-profile .provider-stats{align-items:center;gap:16px;display:flex}.provider-profile .stat{flex-direction:column;align-items:center;gap:2px;display:flex}.provider-profile .stat-value{color:var(--ion-text-color);font-size:20px;font-weight:700}.provider-profile .stat-label{color:var(--ion-color-medium);font-size:11px}.provider-profile .stat-divider{background:var(--ion-color-light-shade);width:1px;height:32px}.provider-profile .verified-badge{padding-top:0}.provider-profile .section-header{padding-left:16px;font-size:16px;font-weight:700}.provider-profile .services-grid{padding-bottom:24px}.provider-profile .empty p{color:var(--ion-color-medium);padding-top:32px}@media (max-width:359px){.provider-profile .provider-avatar{width:68px;height:68px;font-size:28px}.provider-profile .hero-section h1{font-size:18px}.provider-profile .stat-value{font-size:16px}.provider-profile .provider-stats{gap:10px}}.notifications-page .notif-content{--background:var(--shph-bg-secondary)}.notifications-page .filter-bar{z-index:10;background:var(--shph-bg-secondary);gap:8px;padding:12px 16px 4px;display:flex;position:sticky;top:0}.notifications-page .filter-pill{border-radius:var(--shph-border-radius-lg);border:1px solid var(--shph-border);background:var(--shph-bg-primary);min-height:44px;color:var(--shph-text-secondary);cursor:pointer;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.notifications-page .filter-pill.active{background:var(--ion-color-primary);color:var(--shph-bg-primary);border-color:var(--ion-color-primary)}.notifications-page .pill-count{background:var(--shph-bg-page);color:var(--shph-text-secondary);border-radius:10px;padding:2px 6px;font-size:11px;font-weight:600}.notifications-page .filter-pill.active .pill-count{color:var(--shph-bg-primary);background:rgba(255,255,255,.2)}.notifications-page .skeleton-wrap{padding:12px 16px}.notifications-page .skeleton-card{background:var(--shph-bg-primary);border-radius:var(--shph-border-radius-md);align-items:center;gap:12px;margin-bottom:10px;padding:14px;animation:1.5s infinite pulse;display:flex}.notifications-page .skeleton-avatar{background:var(--shph-border);border-radius:50%;flex-shrink:0;width:40px;height:40px}.notifications-page .skeleton-body{flex-direction:column;flex:1;gap:8px;display:flex}.notifications-page .skeleton-line{background:var(--shph-border);border-radius:6px;height:12px}.notifications-page .skeleton-line.short{width:60%}.notifications-page .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 32px;display:flex}.notifications-page .empty-illustration{background:var(--shph-bg-page);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;display:flex}.notifications-page .empty-icon{color:var(--shph-text-hint);font-size:36px}.notifications-page .empty-title{color:var(--shph-text-primary);margin:0 0 8px;font-size:18px;font-weight:700}.notifications-page .empty-subtitle{color:var(--shph-text-secondary);margin:0;font-size:14px;line-height:1.5}.notifications-page .notif-groups{padding:8px 16px 24px}.notifications-page .notif-group{margin-bottom:20px}.notifications-page .group-label{color:var(--shph-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px 4px;font-size:12px;font-weight:600}.notifications-page .notif-cards{flex-direction:column;gap:10px;display:flex}.notifications-page .notif-card{background:var(--shph-bg-primary);box-shadow:var(--shph-shadow-card);cursor:pointer;border-radius:16px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.notifications-page .notif-card:active{transform:scale(.99)}.notifications-page .notif-card.unread{box-shadow:0 2px 8px rgba(59,130,246,.08)}.notifications-page .notif-accent{flex-shrink:0;width:4px}.notifications-page .notif-main{flex:1;min-width:0;padding:14px 12px}.notifications-page .notif-header{align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.notifications-page .notif-avatar{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.notifications-page .notif-avatar ion-icon{font-size:18px}.notifications-page .notif-meta{flex:1;min-width:0}.notifications-page .notif-title-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;display:flex}.notifications-page .notif-type{text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.notifications-page .notif-time{color:var(--shph-text-hint);flex-shrink:0;font-size:11px}.notifications-page .notif-title{color:var(--shph-text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:500;line-height:1.4;overflow:hidden}.notifications-page .notif-title.unread{color:var(--shph-text-primary);font-weight:700}.notifications-page .unread-indicator{background:var(--ion-color-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.notifications-page .notif-body{color:var(--shph-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;padding-left:46px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.notifications-page .notif-actions{flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 8px 4px 0;display:flex}.notifications-page .action-btn{--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;height:36px;margin:0}.notifications-page .action-btn::part(native){padding:0}.notifications-page .dismiss-btn{--color:var(--shph-text-hint)}.notification-prefs .preferences-container{padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));max-width:var(--shph-container-readable);margin:0 auto}.notification-prefs .quick-actions{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.notification-prefs .action-btn{--padding-start:16px;--padding-end:16px}.notification-prefs .preference-card{box-shadow:var(--shph-shadow-section);border-radius:12px;margin-bottom:16px}.notification-prefs .card-header-content{justify-content:space-between;align-items:center;width:100%;display:flex}.notification-prefs .header-info{flex:1;min-width:0;margin-right:16px}.notification-prefs .card-header-content ion-toggle{flex-shrink:0}.notification-prefs .header-info ion-card-title,.notification-prefs .header-info ion-card-subtitle{white-space:normal;overflow-wrap:break-word}.notification-prefs .category-header{align-items:center;gap:8px;min-width:0;margin-bottom:4px;display:flex}.notification-prefs .category-header ion-card-title{min-width:0}.notification-prefs .category-header ion-icon{font-size:20px}.notification-prefs .section-title{color:var(--ion-text-color);margin:32px 0 16px;font-size:18px;font-weight:600}.notification-prefs .sub-preferences{background:var(--ion-color-light);border-radius:var(--shph-border-radius-sm);margin-top:12px;padding:16px}.notification-prefs .preference-item{border-bottom:1px solid var(--ion-color-light-shade);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.notification-prefs .preference-item:last-child{border-bottom:none}.notification-prefs .preference-label{flex-direction:column;flex:1;gap:4px;display:flex}.notification-prefs .preference-label span:first-child{color:var(--ion-text-color);font-weight:500}.notification-prefs .preference-description{color:var(--ion-color-medium);font-size:12px}.notification-prefs .scheduling-options ion-item{--background:transparent;--padding-start:0;--inner-padding-end:0}.notification-prefs .time-picker-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.notification-prefs .time-picker{flex-direction:column;gap:8px;display:flex}.notification-prefs .time-picker ion-label{color:var(--ion-text-color);font-weight:500}.notification-prefs .dnd-options ion-item{--background:transparent;--padding-start:0;--inner-padding-end:0}.notification-prefs .range-value{text-align:center;color:var(--shph-primary-text);white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;margin-top:8px;font-size:14px;font-weight:500}.notification-prefs .schedules-section{margin-bottom:24px}.notification-prefs .section-header-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.notification-prefs .schedules-loading{justify-content:center;padding:16px;display:flex}.notification-prefs .schedules-empty{color:var(--ion-color-medium);flex-direction:column;align-items:center;gap:8px;padding:20px 0;font-size:14px;display:flex}.notification-prefs .schedules-empty ion-icon{font-size:32px}.notification-prefs .schedule-list{flex-direction:column;gap:4px;display:flex}.notification-prefs .schedule-item{background:var(--ion-item-background,var(--ion-background-color));border:1px solid var(--ion-color-light-shade);border-radius:10px;align-items:center;gap:10px;padding:10px 8px 10px 12px;display:flex}.notification-prefs .schedule-info{flex-direction:column;flex:1;gap:2px;display:flex}.notification-prefs .schedule-title{color:var(--ion-text-color);font-size:14px;font-weight:500}.notification-prefs .schedule-meta{color:var(--ion-color-medium);text-transform:capitalize;font-size:11px}.notification-prefs .day-picker{width:100%;padding:8px 0}.notification-prefs .day-picker-label{color:var(--ion-color-medium);margin:0 0 8px;font-size:12px}.notification-prefs .day-chips{flex-wrap:wrap;gap:6px;display:flex}.notification-prefs .day-chip{border:1px solid var(--ion-color-medium);color:var(--ion-color-medium);cursor:pointer;background:0 0;border-radius:16px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px 14px;font-size:12px;transition:all .15s;display:flex}.notification-prefs .day-chip.active{background:var(--ion-color-primary);border-color:var(--ion-color-primary);color:var(--shph-on-primary)}.notification-prefs .test-section{margin:32px 0}.notification-prefs .test-btn{--padding-start:16px;--padding-end:16px}.notification-prefs .permission-status{margin:32px 0}.notification-prefs .status-card{border-radius:12px}.notification-prefs .status-content{align-items:flex-start;gap:16px;display:flex}.notification-prefs .status-content ion-icon{margin-top:4px;font-size:24px}.notification-prefs .status-text{flex:1}.notification-prefs .status-text h4{margin:0 0 4px;font-size:16px;font-weight:600}.notification-prefs .status-text p{opacity:.8;margin:0 0 12px;font-size:14px}.notification-prefs .status-text ion-button{--padding-start:0;--padding-end:0}@media (max-width:768px){.preferences-container{padding:12px}.notification-prefs .time-picker-row,.notification-prefs .quick-actions{grid-template-columns:1fr}}@media (prefers-color-scheme:dark){.sub-preferences{background:var(--ion-color-step-100);border-color:var(--ion-color-step-200)}.notification-prefs .preference-item{border-color:var(--ion-color-step-200)}}.theme-settings .settings-card{margin-bottom:16px}.disputes-page .empty-state{flex-direction:column;align-items:center;padding-top:80px;display:flex}.disputes-page .empty-icon{color:var(--ion-color-medium);margin-bottom:16px;font-size:56px}.disputes-page .empty-state h3{margin:0 0 8px;font-size:20px;font-weight:700}.disputes-page .empty-state p{color:var(--ion-color-medium);margin:0}.disputes-page .dispute-list{grid-template-columns:1fr;gap:12px;padding:8px 12px;display:grid}.disputes-page .dispute-card{--border-radius:16px;margin-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.08)}@media (min-width:768px){.disputes-page .dispute-list{grid-template-columns:repeat(2,1fr)}.disputes-page .dispute-card{margin-bottom:0}}.disputes-page .dispute-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.disputes-page .dispute-header ion-badge,.disputes-page .dispute-date{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:50%;overflow:hidden}.disputes-page .dispute-date{color:var(--ion-color-medium);font-size:12px}.disputes-page .dispute-reason{margin:0 0 6px;font-size:16px;font-weight:700}.disputes-page .dispute-desc{color:var(--ion-color-medium);margin:0 0 8px;font-size:13px;line-height:1.4}.disputes-page .dispute-booking{color:var(--shph-primary-text);margin:0;font-size:12px;font-weight:600}.disputes-page .evidence-wrap{padding:0 16px 16px}.disputes-page .evidence-thumb{object-fit:cover;cursor:pointer;border-radius:12px;width:100%;max-height:160px;transition:transform .15s}.disputes-page .evidence-thumb:active{transform:scale(.98)}.disputes-page .evidence-full{object-fit:contain;border-radius:12px;width:100%}.edit-profile .edit-photo-wrap{cursor:pointer;border-radius:var(--shph-border-radius-lg,20px);flex-direction:column;align-items:center;gap:10px;margin-bottom:20px;padding:8px;transition:background .15s;display:flex}.edit-profile .edit-photo-wrap:hover{background:rgba(var(--ion-color-primary-rgb), .06)}.edit-profile .edit-photo-wrap:active{background:rgba(var(--ion-color-primary-rgb), .12)}.edit-profile .edit-photo{background:var(--shph-bg-secondary,#f5f7fa);border:3px solid var(--shph-border,rgba(0,0,0,.08));border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative;overflow:hidden}.edit-profile .edit-photo img{object-fit:cover;width:100%;height:100%}.edit-profile .edit-photo>span{color:var(--shph-primary-text,#14181b);font-size:30px;font-weight:700}.edit-profile .edit-photo-overlay{opacity:0;background:rgba(15,23,42,.45);justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.edit-profile .edit-photo-wrap:hover .edit-photo-overlay,.edit-profile .edit-photo-wrap:active .edit-photo-overlay{opacity:1}.edit-profile .edit-photo-overlay .camera-icon{color:#fff;font-size:28px}.edit-profile .edit-photo-label{color:var(--shph-primary-text,#14181b);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.edit-profile .edit-photo-label ion-icon{color:var(--ion-color-primary);font-size:18px}.edit-profile .danger-text{color:var(--ion-color-danger)}.edit-profile .success-text{color:var(--ion-color-success)}.kyc-intro .intro-container{max-width:var(--shph-container-narrow);text-align:center;margin:0 auto}.kyc-intro .icon-section{margin:40px 0}.kyc-intro .main-icon{color:var(--shph-primary-text);font-size:80px}.kyc-intro .title{color:var(--shph-text-heading);margin-bottom:12px;font-size:28px;font-weight:700}.kyc-intro .subtitle{color:var(--shph-text-secondary);margin-bottom:32px;font-size:16px;line-height:1.5}.kyc-intro .steps-overview{text-align:left;margin:32px 0}.kyc-intro .step-card{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);align-items:center;gap:16px;margin-bottom:12px;padding:16px;display:flex;position:relative}.kyc-intro .step-number{background:var(--ion-color-primary);width:32px;height:32px;color:var(--shph-on-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.kyc-intro .step-content{flex:1}.kyc-intro .step-content h3{color:var(--shph-text-heading);margin-bottom:4px;font-size:16px;font-weight:600}.kyc-intro .step-content p{color:var(--shph-text-secondary);margin:0;font-size:13px}.kyc-intro .step-icon{color:var(--shph-primary-text);opacity:.5;font-size:28px}.kyc-intro .info-box{background:rgba(var(--ion-color-primary-rgb), .1);border-radius:var(--shph-radius-card);text-align:left;gap:12px;margin:24px 0;padding:16px;display:flex}.kyc-intro .info-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:24px}.kyc-intro .info-box strong{margin-bottom:4px;font-size:14px}.kyc-intro .info-box p{color:var(--shph-text-secondary);margin:0;font-size:13px}.kyc-instructions .instructions-container{max-width:var(--shph-container-readable);margin:0 auto}.kyc-instructions h2{color:var(--shph-text-heading);margin-bottom:8px;font-size:24px;font-weight:700}.kyc-instructions .intro{color:var(--shph-text-secondary);margin-bottom:24px;font-size:15px}.kyc-instructions .instruction-section{margin-bottom:32px}.kyc-instructions .section-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.kyc-instructions .section-icon{color:var(--shph-primary-text);font-size:28px}.kyc-instructions .section-header h3{margin:0;font-size:18px;font-weight:600}.kyc-instructions .instruction-list{background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);padding:16px}.kyc-instructions .instruction-item{align-items:flex-start;gap:12px;padding:8px 0;display:flex}.kyc-instructions .instruction-item:last-child{padding-bottom:0}.kyc-instructions .item-icon{color:var(--ion-color-success);flex-shrink:0;margin-top:2px;font-size:20px}.kyc-instructions .instruction-item p{color:var(--ion-text-color);margin:0;font-size:14px;line-height:1.4}.kyc-instructions .tips-box{background:rgba(var(--ion-color-warning-rgb), .1);border-radius:var(--shph-radius-card);gap:12px;margin:24px 0;padding:16px;display:flex}.kyc-instructions .tips-icon{color:var(--ion-color-warning);flex-shrink:0;font-size:24px}.kyc-instructions .tips-box strong{margin-bottom:8px;font-size:15px}.kyc-instructions .tips-box p{color:var(--shph-text-secondary);margin:4px 0;font-size:13px}.kyc-liveness .liveness-wrap{flex-direction:column;gap:16px;display:flex}.kyc-liveness .hint{text-align:center;color:var(--shph-text-heading);background:var(--shph-bg-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);padding:12px 16px;font-size:15px}.kyc-liveness .sequence-progress{flex-direction:column;gap:8px;display:flex}.kyc-liveness .action-steps{justify-content:space-between;gap:8px;display:flex}.kyc-liveness .action-step{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.kyc-liveness .step-circle{background:var(--shph-bg-secondary);width:28px;height:28px;color:var(--shph-text-secondary);border:2px solid var(--shph-border);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.kyc-liveness .action-step.completed .step-circle{background:var(--ion-color-success);color:var(--shph-bg-primary);border-color:var(--ion-color-success)}.kyc-liveness .action-step.current .step-circle{background:var(--ion-color-primary);color:var(--shph-bg-primary);border-color:var(--ion-color-primary);animation:1.5s infinite pulse}.kyc-liveness .step-label{color:var(--shph-text-secondary);text-align:center;font-size:11px}.kyc-liveness .progress-text{text-align:center;color:var(--shph-text-secondary);margin-top:8px;font-size:14px}.kyc-liveness .camera-box{aspect-ratio:4/3;background:#000;border-radius:16px;max-width:480px;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}.kyc-liveness .camera-feed{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.kyc-liveness .overlay-canvas{width:100%;height:100%;position:absolute;top:0;left:0;transform:scaleX(-1)}.kyc-liveness .face-frame-overlay{aspect-ratio:1;pointer-events:none;width:min(70%,320px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.kyc-liveness .face-frame-circle{border:3px solid var(--shph-text-hint);border-radius:50%;width:100%;height:100%;transition:border-color .3s;position:absolute;top:0;left:0}.kyc-liveness .face-frame-overlay.optimal .face-frame-circle{border-color:var(--ion-color-success)}.kyc-liveness .face-frame-overlay.eyesClosed .face-frame-circle{border-color:var(--ion-color-warning)}.kyc-liveness .face-frame-overlay.headNotStraight .face-frame-circle{border-color:var(--ion-color-orange)}.kyc-liveness .face-frame-overlay.notCentered .face-frame-circle{border-color:var(--ion-color-primary)}.kyc-liveness .face-frame-overlay.improperDistance .face-frame-circle{border-color:var(--ion-color-danger)}.kyc-liveness .face-frame-overlay.noFace .face-frame-circle{border-color:var(--shph-text-hint)}.kyc-liveness .face-frame-corners{width:100%;height:100%;position:absolute;top:0;left:0}.kyc-liveness .direction-cue{color:var(--shph-primary-text);font-size:48px;animation:1s infinite bounce;position:absolute;top:50%;transform:translateY(-50%)}.kyc-liveness .direction-cue.left{left:-60px}.kyc-liveness .direction-cue.right{right:-60px}.kyc-liveness .action-cue{color:var(--shph-primary-text);gap:8px;font-size:32px;animation:1.5s infinite pulse;display:flex;position:absolute;bottom:-60px;left:50%;transform:translate(-50%)}.kyc-liveness .action-cue.blink{font-size:28px}.kyc-liveness .action-cue.smile{font-size:48px}@keyframes bounce{0%,to{transform:translateY(-50%)}50%{transform:translateY(-70%)}}.kyc-liveness .passed-overlay{color:#fff;border-radius:var(--shph-border-radius-lg);backdrop-filter:blur(4px);background:rgba(0,0,0,.8);padding:8px 16px;font-size:14px;font-weight:600;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.kyc-liveness .score-row{text-align:center}.kyc-liveness .score-row p{color:var(--shph-text-secondary);margin-top:4px;font-size:13px}.kyc-liveness .status-indicator{background:var(--shph-bg-secondary);color:var(--shph-text-primary);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:500;display:flex}.kyc-liveness .status-indicator.optimal{background:rgba(var(--ion-color-success-rgb), .1);color:var(--ion-color-success)}.kyc-liveness .status-indicator.eyesClosed,.kyc-liveness .status-indicator.headNotStraight,.kyc-liveness .status-indicator.notCentered{background:rgba(var(--ion-color-warning-rgb), .1);color:var(--ion-color-warning)}.kyc-liveness .status-indicator.improperDistance,.kyc-liveness .status-indicator.noFace{background:rgba(var(--ion-color-danger-rgb), .1);color:var(--ion-color-danger)}.kyc-liveness .bottom-button-container{padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--shph-bg-primary);border-top:1px solid var(--shph-border);z-index:100;position:fixed;bottom:0;left:0;right:0}.kyc-liveness ion-content{--padding-bottom:120px}.kyc-liveness .bottom-button-container ion-button{min-height:44px}@media (prefers-reduced-motion:reduce){.kyc-liveness .action-step.current .step-circle,.kyc-liveness .direction-cue,.kyc-liveness .action-cue{animation:none!important}}.address-form .form-item{--background:var(--shph-bg-primary);--padding-start:16px;--padding-end:16px;--inner-padding-end:0;--highlight-height:0;--min-height:72px;border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);margin-bottom:20px}.address-form .form-item ion-input{--padding-top:20px}.address-form .form-item ion-textarea{--padding-top:20px;--padding-bottom:6px}.address-form .required-star{color:var(--ion-color-danger)}.address-form .optional-text{color:var(--shph-text-secondary,#57636c);font-size:13px;font-weight:400}.address-form .stacked-label-item{--padding-top:12px;--padding-bottom:12px;align-items:flex-start}.address-form .stacked-field{flex-direction:column;align-items:stretch;width:100%;min-width:0;display:flex}.address-form .stacked-label-item .field-label{color:var(--shph-text-secondary,#57636c);margin-bottom:4px;font-size:13px;font-weight:600;transform:none!important}.address-form .textarea-input{--padding-top:8px;--padding-bottom:8px;margin-top:4px}.address-form .auth-input::placeholder{color:var(--shph-text-hint,#999);font-style:italic}.address-form .section-title{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.4px;justify-content:space-between;align-items:center;margin:20px 0 8px 4px;font-size:13px;font-weight:600;display:flex}.address-form .psgc-picker-btn{--color:var(--shph-primary-text);text-transform:none;letter-spacing:0;margin:0;font-size:12px}.address-form .location-item{--min-height:72px;cursor:pointer}.address-form .location-item .location-icon{font-size:22px}.address-form .location-item .location-icon:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:8px}.address-form .location-item .location-icon:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:8px}.address-form .location-item .location-icon:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:8px}.address-form .location-item .location-icon:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:8px}.address-form .location-item h3{color:var(--ion-text-color);margin:0 0 3px;font-size:15px;font-weight:500}.address-form .location-coords{color:var(--shph-primary-text);margin:0;font-size:12px}.address-form .location-placeholder{color:var(--ion-color-medium);margin:0;font-size:12px}.address-form .submit-btn{--padding-top:14px;--padding-bottom:14px;letter-spacing:.3px;margin-top:24px;margin-bottom:16px;font-weight:600}.addresses-page ion-list{background:0 0}.addresses-page ion-item-sliding ion-item{--background:var(--shph-bg-primary);--border-width:0;--inner-border-width:0;border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);margin:8px 12px}.addresses-page h3{color:var(--shph-text-heading)}.geographic-selection .settings-card,.language-settings .settings-card{margin-bottom:16px}.language-settings .muted{color:var(--ion-color-medium);font-size:.875rem}.payment-methods .pm-subtitle{color:var(--shph-text-secondary);margin:0 0 8px;font-size:14px}.payment-methods .pm-list{padding:8px 16px}.payment-methods .pm-sliding{border-radius:var(--shph-border-radius-md);margin-bottom:10px;overflow:hidden}.payment-methods .pm-item{--border-radius:var(--shph-border-radius-md);--padding-start:14px;--padding-top:12px;--padding-bottom:12px;--min-height:56px;background:var(--shph-bg-primary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);box-shadow:var(--shph-shadow-card)}.payment-methods .pm-item h3{color:var(--shph-text-heading);font-weight:600}.payment-methods .pm-item p{color:var(--shph-text-secondary)}.payment-methods .pm-logo{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.payment-methods .pm-end{align-items:center;display:flex}.payment-methods .pm-badge{--border-radius:8px;font-size:11px}.payment-methods .pm-note{color:var(--shph-text-secondary);align-items:center;gap:8px;margin-top:8px;padding-bottom:24px;font-size:12px;display:flex}.payment-methods .pm-note-icon{flex-shrink:0;font-size:16px}.settings-page .danger-btn{--border-radius:10px;margin:0;font-weight:600}.settings-page .verified-icon{vertical-align:middle;margin-left:4px;font-size:14px}.settings-page .muted{color:var(--shph-text-hint);font-style:italic}.settings-page .phone-step-hint{color:var(--shph-text-secondary);margin:0 0 16px;font-size:14px;line-height:1.5}.settings-page .phone-input{margin-bottom:8px}.settings-page .settings-card{margin:0 0 16px}.settings-page ion-list-header{text-transform:uppercase;letter-spacing:.6px;color:var(--shph-text-heading);padding-top:0;padding-bottom:4px;font-size:13px;font-weight:700}.settings-page .phone-modal-header ion-toolbar{--background:transparent;--border-width:0}.settings-page .phone-modal-header ion-title{color:var(--shph-text-heading);font-weight:700}.settings-page .phone-modal-content{--background:var(--shph-bg-page)}@media (max-width:359px){.settings-page ion-list-header{font-size:12px}}.wallet-page .balance-card{background:var(--shph-gradient-cta);color:var(--shph-on-primary);border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-card);border:none}.wallet-page .balance-card ion-card-content{padding:20px}.wallet-page .balance-label{opacity:.75;margin:0;font-size:.85rem;font-weight:600}.wallet-page .balance-amount{letter-spacing:-.02em;margin:4px 0 0;font-size:2.4rem;font-weight:800}.wallet-page .quick-amounts{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.wallet-page .quick-amounts ion-chip{--background:var(--shph-bg-secondary);--color:var(--shph-text-secondary);--border-color:var(--shph-border);border-radius:var(--shph-border-radius-pill);min-height:40px;font-weight:600}.wallet-page .card-fields{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--shph-border-radius-md);margin-top:12px;padding:12px}.wallet-page .card-row{gap:8px;display:flex}.wallet-page .card-exp{flex:1}.wallet-page ion-list ion-item{--padding-start:4px;--padding-end:4px;--background:transparent}.wallet-page ion-list ion-item h3{color:var(--shph-text-heading);font-weight:600}.wallet-page ion-list ion-item p{color:var(--shph-text-secondary)}.wallet-page ion-list ion-item ion-text[slot=end]{font-variant-numeric:tabular-nums;font-weight:700}.not-found-page .not-found-container{max-width:var(--shph-container-narrow);text-align:center;margin:0 auto;padding:60px 16px}.not-found-page .not-found-icon{margin-bottom:16px;font-size:80px}.not-found-page .not-found-title{color:var(--ion-color-medium);margin:0 0 8px;font-size:48px;font-weight:800}.not-found-page .not-found-message{color:var(--ion-color-medium);margin-bottom:32px;font-size:16px;line-height:1.5}.pin-location .map-content{--background:var(--shph-bg-page);--padding-bottom:0}.pin-location .map-stage{height:calc(100dvh - var(--pin-chrome-height));min-height:300px;position:relative}.pin-location{--pin-chrome-height:180px}.pin-location .map-container{width:100%;height:100%;min-height:300px}.pin-location .map-container .leaflet-control-attribution{background:rgba(255,255,255,.55);padding:1px 4px;font-size:9px;line-height:1.3}.pin-location .map-hint{background:var(--shph-bg-primary);align-items:center;gap:8px;padding:10px 16px;display:flex;box-shadow:0 -4px 12px rgba(16,24,40,.06)}.pin-location .hint-icon{color:var(--shph-primary,#63cbd6);flex-shrink:0;font-size:18px}.pin-location .hint-text{color:var(--shph-text-heading);font-size:13px;font-weight:600}.pin-location .hint-text--placeholder{color:var(--shph-text-secondary,#57636c);font-weight:400}.pin-location .hint-approx{opacity:.75;margin-left:6px;font-size:.85em;font-style:italic}.pin-location .footer-inner{justify-content:center;align-items:center;gap:8px;max-width:600px;margin:0 auto;padding:12px 16px;display:flex}.pin-location .pin-recenter{--padding-start:10px;--padding-end:10px;margin:0}.pin-location .pin-search{z-index:10;background:var(--shph-bg-primary);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 2px 8px rgba(16,24,40,.08)}.pin-location .pin-search__icon{color:var(--shph-text-secondary);flex-shrink:0;font-size:18px}.pin-location .pin-search__input{color:var(--shph-text-heading);background:0 0;border:none;outline:none;flex:1;font-size:16px;line-height:1.4}.pin-location .pin-search__input::placeholder{color:var(--shph-text-secondary)}.pin-location .pin-search__results{z-index:11;background:var(--shph-bg-primary);border-radius:10px;max-height:220px;margin:0;padding:0;list-style:none;position:absolute;top:56px;left:16px;right:16px;overflow-y:auto;box-shadow:0 4px 12px rgba(16,24,40,.12)}.pin-location .pin-search__result{text-align:left;width:100%;color:var(--shph-text-heading);border:none;border-bottom:1px solid var(--shph-border);background:0 0;padding:12px 16px;font-size:14px}.pin-location .pin-search__result:last-child{border-bottom:none}.pin-location .pin-search__failed{z-index:11;color:var(--ion-color-medium);background:var(--shph-bg-primary);border-radius:10px;padding:12px 16px;font-size:14px;position:absolute;top:56px;left:16px;right:16px}.pin-location .hint-text{flex-direction:column;gap:2px;display:flex}.pin-location .hint-address{color:var(--shph-text-heading);font-weight:700}.pin-location .hint-coords{color:var(--shph-text-secondary);font-size:12px;font-weight:400}.privacy-page .privacy-wrap{max-width:var(--shph-container-readable);margin:0 auto}.privacy-page .last-updated{color:var(--ion-color-medium);margin-bottom:24px;font-size:12px}.privacy-page h2{color:var(--ion-text-color);margin:20px 0 8px;font-size:16px;font-weight:700}.privacy-page p,.privacy-page li{color:var(--ion-color-medium-shade);font-size:14px;line-height:1.6}.privacy-page ul{margin:8px 0;padding-left:20px}.privacy-page li{margin-bottom:4px}.privacy-page strong{color:var(--ion-text-color)}.terms-page .terms-wrap{max-width:var(--shph-container-readable);margin:0 auto}.terms-page .last-updated{color:var(--ion-color-medium);margin-bottom:24px;font-size:12px}.terms-page h2{color:var(--ion-text-color);margin:20px 0 8px;font-size:16px;font-weight:700}.terms-page p,.terms-page li{color:var(--ion-color-medium-shade);font-size:14px;line-height:1.6}.terms-page ul{margin:8px 0;padding-left:20px}.terms-page li{margin-bottom:4px}.help-support .support-card{margin-bottom:16px}.help-support .support-intro{color:var(--shph-text-secondary);margin:0 16px 8px;font-size:14px;line-height:1.5}.help-support .faq-answer{color:var(--shph-text-secondary);padding:0 16px 16px;line-height:1.5}.report-problem .report-card{margin-top:16px}.report-problem .actions{margin-top:16px;padding:0 16px}.report-problem input[type=file]{opacity:0;cursor:pointer;position:absolute;top:0;bottom:0;left:0;right:0}.share-target ion-content{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.help-assistant .msg{border-radius:12px;max-width:85%;margin:6px 0;padding:8px 12px}.help-assistant .msg.user{background:var(--ion-color-primary);color:var(--shph-on-primary);margin-left:auto}.help-assistant .msg.assistant{background:var(--shph-bg-secondary);color:var(--shph-text-primary)}.help-assistant .composer{align-items:center;gap:8px;margin-top:12px;display:flex}.help-assistant .faq-answer{color:var(--shph-text-secondary);padding:8px 16px}.menu-icon{color:var(--shph-text-secondary);flex-shrink:0;font-size:20px}.settings-page .settings-card ion-item{--min-height:48px;--border-radius:10px;--background-hover:var(--shph-bg-secondary);--background-activated:var(--shph-bg-secondary);--background-focused:var(--shph-bg-secondary)}.settings-page .settings-card ion-note{white-space:normal;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;min-width:0;max-width:60%;display:block}.theme-settings .theme-option-head{align-items:center;gap:8px;display:flex}.theme-settings .theme-option-head h3{margin:0}.theme-settings .theme-mode-icon{font-size:18px}.theme-settings .theme-preview{border:1px solid var(--shph-border);width:44px;height:32px;box-shadow:var(--shph-shadow-xs);border-radius:7px;flex-direction:column;flex-shrink:0;gap:3px;padding:5px 6px;display:flex;overflow:hidden}.theme-settings .preview-light{background:var(--shph-bg-primary)}.theme-settings .preview-dark{background:#1e1e2e}.theme-settings .tp-head{background:var(--shph-primary);border-radius:2px;height:4px;margin-bottom:1px}.theme-settings .tp-line{border-radius:2px;height:3px}.theme-settings .tp-l1{width:90%}.theme-settings .tp-l2{width:62%}.theme-settings .preview-light .tp-line{background:var(--shph-border)}.theme-settings .preview-dark .tp-line{background:rgba(240,240,245,.4)}.theme-settings .preview-system{flex-direction:row;gap:0;padding:0}.theme-settings .tp-half{flex-direction:column;flex:1;gap:3px;padding:5px 4px;display:flex}.theme-settings .tp-half .tp-bar{border-radius:2px;height:3px}.theme-settings .tp-half .tp-bar:first-child{width:100%}.theme-settings .tp-half .tp-short{width:60%}.theme-settings .tp-light{background:var(--shph-bg-primary)}.theme-settings .tp-light .tp-bar{background:var(--shph-border)}.theme-settings .tp-dark{background:#1e1e2e}.theme-settings .tp-dark .tp-bar{background:rgba(240,240,245,.4)}.theme-settings .theme-check{opacity:0;transition:opacity .15s}.theme-settings .theme-check.visible{opacity:1}.theme-settings ion-item.selected .theme-preview{border-color:var(--shph-primary);box-shadow:0 0 0 2px var(--shph-primary), var(--shph-shadow-xs)}.sessions-page ion-content{--padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.sessions-page ion-list{background:0 0}.sessions-page ion-item{--background:var(--shph-bg-primary);--border-radius:var(--shph-radius-card);box-shadow:var(--shph-shadow-xs);margin-bottom:8px}.sessions-page ion-item h3{font-weight:600}.geographic-selection .settings-card ion-item{--background:var(--shph-bg-primary);--min-height:72px;--highlight-height:0;--padding-start:16px;--padding-end:16px;border-radius:var(--shph-radius-card);margin-bottom:12px}.geographic-selection .settings-card ion-item:last-child{margin-bottom:0}.language-settings ion-content{--padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.kyc-wizard{--kw-radius-card:20px;--kw-radius-inner:12px;--kw-gap:14px}.kyc-wizard ion-content{--background:var(--shph-bg-page)}.kyc-wizard .kw-header{padding:8px 0 18px}.kyc-wizard .kw-header-nav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.kyc-wizard .kw-icon-btn{--padding-start:0;--padding-end:0;--color:var(--shph-text-secondary);min-width:44px;height:44px;margin:0 -10px 0 0}.kyc-wizard .kw-text-btn{--color:var(--shph-text-secondary);text-transform:none;margin:0;font-size:12px;font-weight:700}.kyc-wizard .kw-step-pill{letter-spacing:.08em;text-transform:uppercase;color:var(--shph-primary-text);background:var(--shph-primary-light);border:1px solid var(--shph-primary);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:800}.kyc-wizard .kw-progress{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:999px;width:100%;height:6px;margin-bottom:16px;overflow:hidden}.kyc-wizard .kw-progress-fill{background:var(--shph-gradient-cta);border-radius:999px;height:100%;transition:width .24s}@media (prefers-reduced-motion:reduce){.kyc-wizard .kw-progress-fill{transition:none}}.kyc-wizard .kw-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--shph-primary-text);margin:0;font-size:10px;font-weight:800}.kyc-wizard .kw-title{color:var(--shph-text-heading);margin:2px 0 4px;font-size:24px;font-weight:800;line-height:1.15}.kyc-wizard .kw-subtitle{color:var(--shph-text-secondary);margin:0;font-size:13px;line-height:1.45}.kyc-wizard .kw-footer{background:var(--shph-bg-page);border-top:1px solid var(--shph-border)}.kyc-wizard .kw-footer-inner{padding:12px 16px calc(12px + var(--ion-safe-area-bottom,0px));max-width:560px;margin:0 auto}.kyc-wizard .kw-cta{--border-radius:16px;height:50px;margin:0;font-weight:800}.kyc-wizard .kw-error{margin:12px 0 0;font-size:13px;display:block}.kyc-wizard .kw-step{flex-direction:column;gap:18px;padding-bottom:24px;display:flex}.kyc-wizard .kw-label{letter-spacing:.08em;text-transform:uppercase;color:var(--shph-text-secondary);margin-bottom:6px;font-size:10px;font-weight:800;display:block}.kyc-wizard .kw-hint,.kyc-wizard .kw-fineprint{color:var(--shph-text-hint);font-size:11px}.kyc-wizard .kw-muted{color:var(--shph-text-hint);font-weight:500}.kyc-wizard .kw-accent{color:var(--shph-primary-text)}.kyc-wizard .kw-capitalize{text-transform:capitalize}.kyc-wizard .kw-loading,.kyc-wizard .kw-empty{color:var(--shph-text-secondary);text-align:center;justify-content:center;align-items:center;gap:10px;padding:24px 12px;font-size:13px;display:flex}.kyc-wizard .kw-inline-warning{color:var(--shph-warning-text);background:var(--shph-warning-bg);border:1px solid var(--shph-warning);border-radius:var(--kw-radius-inner);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:12px;line-height:1.4;display:flex}.kyc-wizard .kw-inline-warning ion-icon{flex-shrink:0;font-size:16px}.kyc-wizard .kw-photo-block{flex-direction:column;align-items:center;gap:8px;display:flex}.kyc-wizard .kw-photo{border:2px dashed var(--shph-border);background:var(--shph-bg-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;padding:0;display:flex;position:relative;overflow:visible}.kyc-wizard .kw-photo.has-photo{border-style:solid;border-color:var(--shph-primary)}.kyc-wizard .kw-photo img{object-fit:cover;border-radius:50%;width:100%;height:100%}.kyc-wizard .kw-photo-icon{color:var(--shph-text-hint);font-size:30px}.kyc-wizard .kw-photo-badge{background:var(--shph-primary);width:28px;height:28px;color:var(--shph-on-primary);border:2px solid var(--shph-bg-page);border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;bottom:2px;right:0}.kyc-wizard .kw-photo-caption{color:var(--shph-text-secondary);font-size:11px;font-weight:700}.kyc-wizard .kw-fields{gap:var(--kw-gap);flex-direction:column;display:flex}.kyc-wizard .kw-field{min-width:0}.kyc-wizard .kw-field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.kyc-wizard .kw-field-row>.kw-field{flex-direction:column;min-width:0;display:flex}@media (max-width:480px){.kyc-wizard .kw-field-row{grid-template-columns:minmax(0,1fr)}}.kyc-wizard .kw-select{--height:48px;width:100%;min-height:48px}.kyc-wizard .kw-input,.kyc-wizard .kw-select{--background:var(--shph-bg-secondary);--border-radius:var(--kw-radius-inner);--border-color:var(--shph-border);--padding-start:14px;--padding-end:14px;font-size:16px}.kyc-wizard .kw-native-input{box-sizing:border-box;background:var(--shph-bg-secondary);width:100%;color:var(--shph-text-primary);border:1px solid var(--shph-border);border-radius:var(--kw-radius-inner);font:inherit;min-height:48px;padding:13px 12px;font-size:16px}.kyc-wizard .kw-native-input:focus-visible{outline:2px solid var(--shph-primary);outline-offset:1px}.kyc-wizard .kw-locked-input{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);border-radius:var(--kw-radius-inner);min-height:48px;color:var(--shph-text-hint);cursor:not-allowed;user-select:none;align-items:center;gap:10px;padding:13px 14px;display:flex}.kyc-wizard .kw-locked-prefix{color:var(--shph-primary-text);border-right:1px solid var(--shph-border);padding-right:10px;font-weight:800}.kyc-wizard .kw-locked-value{flex:1;min-width:0;font-weight:600}.kyc-wizard .kw-locked-icon{flex-shrink:0;font-size:15px}.kyc-wizard .kw-service-list{flex-direction:column;gap:12px;display:flex}.kyc-wizard .kw-service-card{border:1px solid var(--shph-border);border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);transition:border-color .16s,box-shadow .16s;overflow:hidden}.kyc-wizard .kw-service-card.selected{border-color:var(--shph-primary);border-width:2px;box-shadow:0 2px 10px rgba(99,203,214,.18)}.kyc-wizard .kw-service-main{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:12px;padding:14px;display:flex}.kyc-wizard .kw-service-icon{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);width:42px;height:42px;color:var(--shph-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:19px;display:flex}.kyc-wizard .kw-service-card.selected .kw-service-icon{background:var(--shph-gradient-cta);color:var(--shph-on-primary);border-color:transparent}.kyc-wizard .kw-service-text{flex:1;min-width:0;display:block}.kyc-wizard .kw-service-name{color:var(--shph-text-heading);font-size:14px;font-weight:700;display:block}.kyc-wizard .kw-service-req{color:var(--shph-text-secondary);align-items:center;gap:5px;margin-top:3px;font-size:11px;font-weight:600;line-height:1.3;display:flex}.kyc-wizard .kw-service-req ion-icon{flex-shrink:0;font-size:12px}.kyc-wizard .kw-service-req.tier-license_required{color:var(--shph-warning-text)}.kyc-wizard .kw-service-req.tier-basic{color:var(--shph-success)}.kyc-wizard .kw-checkbox{border:2px solid var(--shph-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.kyc-wizard .kw-checkbox.checked{background:var(--shph-primary);border-color:var(--shph-primary);color:var(--shph-on-primary)}.kyc-wizard .kw-skill-row{border-top:1px solid var(--shph-border);flex-wrap:wrap;gap:6px;margin:0 14px;padding:12px 14px 14px;display:flex}.kyc-wizard .kw-chip,.kw-skill-modal .kw-chip{background:var(--shph-bg-page);border:1px solid var(--shph-primary);color:var(--shph-primary-text);border-radius:8px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.kyc-wizard .kw-chip-custom,.kw-skill-modal .kw-chip-custom{border-color:var(--shph-warning);color:var(--shph-warning-text)}.kyc-wizard .kw-chip-add{background:var(--shph-primary);border-color:var(--shph-primary);color:var(--shph-on-primary);cursor:pointer;font-weight:800}.kyc-wizard .kw-chip-remove,.kw-skill-modal .kw-chip-remove{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-size:12px;display:inline-flex}.kw-skill-modal ion-content,.kw-skill-modal ion-toolbar{--background:var(--shph-bg-page)}.kw-skill-modal .kw-modal-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--shph-primary-text);font-size:10px;font-weight:800;display:block}.kw-skill-modal .kw-modal-title{color:var(--shph-text-heading);font-size:17px;font-weight:800;display:block}.kw-skill-modal .kw-skill-search{--background:var(--shph-bg-secondary);--border-radius:var(--kw-radius-inner,12px);margin-bottom:12px;padding:0}.kw-skill-modal .kw-skill-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.kw-skill-modal .kw-label{letter-spacing:.08em;text-transform:uppercase;color:var(--shph-text-secondary);font-size:10px;font-weight:800}.kw-skill-modal .kw-hint{color:var(--shph-primary-text);font-size:11px;font-weight:600}.kw-skill-modal .kw-skill-list{flex-direction:column;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.kw-skill-modal .kw-skill-item{border-radius:var(--kw-radius-inner,12px);border:1px solid var(--shph-border);background:var(--shph-bg-secondary);width:100%;color:var(--shph-text-primary);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:12px;font-size:13px;font-weight:600;display:flex}.kw-skill-modal .kw-skill-item.selected{border-color:var(--shph-primary);color:var(--shph-primary-text)}.kw-skill-modal .kw-skill-box{border:1px solid var(--shph-border);background:var(--shph-bg-page);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;display:flex}.kw-skill-modal .kw-skill-box.checked{background:var(--shph-primary);border-color:var(--shph-primary);color:var(--shph-on-primary)}.kw-skill-modal .kw-custom-skill{border-top:1px solid var(--shph-border);flex-direction:column;gap:10px;padding-top:16px;display:flex}.kw-skill-modal .kw-custom-row{align-items:center;gap:8px;display:flex}.kw-skill-modal .kw-custom-row .kw-input{flex:1;min-width:0}.kw-skill-modal .kw-add-custom{--border-radius:var(--kw-radius-inner,12px);--padding-start:12px;--padding-end:12px;flex-shrink:0;height:44px;margin:0}.kw-skill-modal .kw-input{--background:var(--shph-bg-secondary);--border-radius:var(--kw-radius-inner,12px);--border-color:var(--shph-border);--padding-start:14px;font-size:16px}.kw-skill-modal .kw-chip-row{flex-wrap:wrap;gap:6px;display:flex}.kw-skill-modal .kw-notice{border-radius:var(--kw-radius-inner,12px);background:var(--shph-warning-bg);border:1px solid var(--shph-warning);color:var(--shph-warning-text);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:11px;line-height:1.4;display:flex}.kw-skill-modal .kw-notice ion-icon{flex-shrink:0;font-size:14px}.kw-skill-modal .kw-modal-footer{background:var(--shph-bg-page)}.kw-skill-modal .kw-modal-actions{padding:12px 16px calc(12px + var(--ion-safe-area-bottom,0px));grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;display:grid}.kw-skill-modal .kw-modal-actions ion-button{height:46px;margin:0;font-weight:800}.kyc-wizard .kw-doc-section{flex-direction:column;gap:10px;display:flex}.kyc-wizard .kw-section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.kyc-wizard .kw-section-head h2{letter-spacing:.07em;text-transform:uppercase;color:var(--shph-text-secondary);margin:0;font-size:12px;font-weight:800}.kyc-wizard .kw-section-head .kw-head-required{color:var(--shph-warning-text)}.kyc-wizard .kw-tag{text-transform:uppercase;letter-spacing:.05em;background:var(--shph-bg-secondary);border:1px solid var(--shph-border);color:var(--shph-text-secondary);white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:800}.kyc-wizard .kw-tag-required{background:var(--shph-primary-light);border-color:var(--shph-primary);color:var(--shph-primary-text)}.kyc-wizard .kw-tag-license{background:var(--shph-warning-bg);border-color:var(--shph-warning);color:var(--shph-warning-text)}.kyc-wizard .kw-doc-card{border:1px solid var(--shph-border);border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);padding:12px}.kyc-wizard .kw-doc-row{align-items:center;gap:10px;display:flex}.kyc-wizard .kw-doc-icon{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);width:36px;height:36px;color:var(--shph-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.kyc-wizard .kw-doc-text{flex:1;min-width:0}.kyc-wizard .kw-doc-name{color:var(--shph-text-heading);font-size:13px;font-weight:700;display:block}.kyc-wizard .kw-doc-hint{color:var(--shph-text-hint);text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.kyc-wizard .kw-doc-done{color:var(--shph-success);flex-shrink:0;font-size:18px;display:flex}.kyc-wizard .kw-doc-action{--border-radius:10px;flex-shrink:0;height:32px;margin:0;font-size:11px;font-weight:800}.kyc-wizard .kw-doc-panel{border-top:1px solid var(--shph-border);flex-direction:column;gap:12px;margin-top:12px;padding-top:12px;display:flex}.kyc-wizard .kw-accepted summary{color:var(--shph-primary-text);cursor:pointer;align-items:center;gap:6px;font-size:11px;font-weight:800;list-style:none;display:flex}.kyc-wizard .kw-accepted summary::-webkit-details-marker{display:none}.kyc-wizard .kw-accepted ul{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);max-height:150px;margin:8px 0 0;padding:10px 12px;list-style:none;overflow-y:auto}.kyc-wizard .kw-accepted li{color:var(--shph-text-secondary);font-size:11px;line-height:1.7}.kyc-wizard .kw-accepted li strong{color:var(--shph-text-primary)}.kyc-wizard .kw-id-slots{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.kyc-wizard .kw-id-slot{border-radius:var(--kw-radius-inner);border:1px dashed var(--shph-border);background:var(--shph-bg-page);min-height:96px;color:var(--shph-text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:10px;display:flex;position:relative;overflow:hidden}.kyc-wizard .kw-id-slot.filled{border-style:solid;border-color:var(--shph-primary);padding:0}.kyc-wizard .kw-quality{text-transform:uppercase;letter-spacing:.04em;background:var(--shph-success-bg);color:var(--shph-success-text);border:1px solid var(--shph-success);border-radius:5px;padding:2px 6px;font-size:9px;font-weight:800;position:absolute;bottom:4px;left:4px}.kyc-wizard .kw-quality.acceptable{background:var(--shph-warning-bg);color:var(--shph-warning-text);border-color:var(--shph-warning)}.kyc-wizard .kw-quality.poor{background:var(--shph-error-bg);color:var(--shph-error-text);border-color:var(--shph-error)}.kyc-wizard .kw-id-slot img{object-fit:cover;width:100%;height:96px}.kyc-wizard .kw-id-slot>ion-icon{color:var(--shph-primary-text);font-size:20px}.kyc-wizard .kw-slot-name{color:var(--shph-text-primary);font-size:11px;font-weight:700}.kyc-wizard .kw-slot-hint{color:var(--shph-text-hint);text-align:center;font-size:9px}.kyc-wizard .kw-scan-btn{--border-radius:12px;margin:0;font-size:12px}.kyc-wizard .kw-dropzone{border-radius:var(--kw-radius-card);border:2px dashed var(--shph-border);background:var(--shph-bg-secondary);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:6px;width:100%;padding:18px 14px;display:flex}.kyc-wizard .kw-dropzone-required{border-color:var(--shph-warning)}.kyc-wizard .kw-dropzone-icon{background:var(--shph-warning-bg);width:40px;height:40px;color:var(--shph-warning-text);border-radius:50%;justify-content:center;align-items:center;font-size:17px;display:flex}.kyc-wizard .kw-dropzone-title{color:var(--shph-text-heading);font-size:13px;font-weight:700}.kyc-wizard .kw-dropzone-hint{color:var(--shph-text-secondary);font-size:11px}.kyc-wizard .kw-dropzone-cta{background:var(--shph-bg-page);border:1px solid var(--shph-warning);color:var(--shph-warning-text);border-radius:10px;align-items:center;gap:6px;margin-top:6px;padding:7px 12px;font-size:11px;font-weight:800;display:inline-flex}.kyc-wizard .kw-panel{border:1px solid var(--shph-border);border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);flex-direction:column;gap:12px;padding:14px;display:flex}.kyc-wizard .kw-panel-copy{color:var(--shph-text-secondary);margin:0;font-size:12px;line-height:1.5}.kyc-wizard .kw-cred-list{flex-direction:column;gap:8px;display:flex}.kyc-wizard .kw-cred-item{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.kyc-wizard .kw-cred-item>ion-icon{color:var(--shph-primary-text);flex-shrink:0}.kyc-wizard .kw-cred-label{min-width:0;color:var(--shph-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.kyc-wizard .kw-cred-remove,.kyc-wizard .kw-portfolio-remove{cursor:pointer;color:var(--shph-text-hint);background:0 0;border:0;flex-shrink:0;padding:4px;display:inline-flex}.kyc-wizard .kw-portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.kyc-wizard .kw-portfolio-cell{aspect-ratio:1;border-radius:var(--kw-radius-inner);border:1px solid var(--shph-border);background:var(--shph-bg-page);position:relative;overflow:hidden}.kyc-wizard .kw-portfolio-cell img{object-fit:cover;width:100%;height:100%}.kyc-wizard .kw-portfolio-remove{background:var(--shph-bg-page);color:var(--shph-text-primary);border-radius:50%;font-size:12px;position:absolute;top:2px;right:2px}.kyc-wizard .kw-portfolio-add{border-style:dashed;border-color:var(--shph-primary);color:var(--shph-primary-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.kyc-wizard .kw-portfolio-add ion-icon{font-size:18px}.kyc-wizard .kw-summary{border:1px solid var(--shph-border);border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);padding:14px}.kyc-wizard .kw-summary-head{border-bottom:1px solid var(--shph-border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.kyc-wizard .kw-summary-title{letter-spacing:.06em;text-transform:uppercase;color:var(--shph-text-heading);align-items:center;gap:7px;min-width:0;font-size:12px;font-weight:800;display:flex}.kyc-wizard .kw-summary-title ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:14px}.kyc-wizard .kw-edit{color:var(--shph-primary-text);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:4px 2px;font-size:12px;font-weight:800}.kyc-wizard .kw-summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0;display:grid}.kyc-wizard .kw-summary-grid dt{color:var(--shph-text-hint);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.kyc-wizard .kw-summary-grid dd{color:var(--shph-text-primary);word-break:break-word;margin:2px 0 0;font-size:13px;font-weight:700}.kyc-wizard .kw-summary-rows{flex-direction:column;gap:8px;display:flex}.kyc-wizard .kw-summary-row{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);align-items:center;gap:10px;padding:10px 12px;display:flex}.kyc-wizard .kw-summary-row.is-licensed{border-color:var(--shph-warning)}.kyc-wizard .kw-row-main{flex:1;min-width:0}.kyc-wizard .kw-row-name{color:var(--shph-text-primary);font-size:12px;font-weight:700;display:block}.kyc-wizard .kw-row-sub{color:var(--shph-text-hint);margin-top:1px;font-size:10px;display:block}.kyc-wizard .kw-row-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:5px;flex-shrink:0;padding:3px 7px;font-size:9px;font-weight:800}.kyc-wizard .kw-row-tag.primary{background:var(--shph-primary-light);color:var(--shph-primary-text);border:1px solid var(--shph-primary)}.kyc-wizard .kw-row-tag.secondary{background:var(--shph-bg-secondary);color:var(--shph-text-hint);border:1px solid var(--shph-border)}.kyc-wizard .kw-row-ok{color:var(--shph-success);flex-shrink:0;font-size:16px}.kyc-wizard .kw-row-missing{color:var(--shph-text-hint);flex-shrink:0;font-size:16px}.kyc-wizard .kw-declaration{border:1px solid var(--shph-border);border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);padding:14px}.kyc-wizard .kw-declaration-box{--size:20px;width:100%}.kyc-wizard .kw-declaration-text{color:var(--shph-text-secondary);white-space:normal;font-size:12px;line-height:1.5}.kyc-wizard .kw-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 8px 24px;display:flex}.kyc-wizard .kw-state-icon{background:var(--shph-primary-light);width:72px;height:72px;color:var(--shph-primary-text);border:1px solid var(--shph-primary);border-radius:50%;justify-content:center;align-items:center;font-size:34px;display:flex}.kyc-wizard .kw-state-rejected .kw-state-icon{background:var(--shph-error-bg);border-color:var(--shph-error);color:var(--shph-error)}.kyc-wizard .kw-state h2{color:var(--shph-text-heading);margin:0;font-size:21px;font-weight:800}.kyc-wizard .kw-state p{color:var(--shph-text-secondary);max-width:34ch;margin:0;font-size:13px;line-height:1.55}.kyc-wizard .kw-state ion-button{--border-radius:16px;width:100%;margin-top:8px;font-weight:800}.kyc-wizard .kw-state-facts{border-radius:var(--kw-radius-card);background:var(--shph-bg-secondary);border:1px solid var(--shph-border);text-align:left;flex-direction:column;gap:8px;width:100%;padding:12px;display:flex}.kyc-wizard .kw-fact{color:var(--shph-text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.kyc-wizard .kw-fact ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:15px}.kyc-wizard .kw-cta-reason{color:var(--shph-text-secondary);align-items:center;gap:6px;margin:0 0 8px;font-size:11.5px;line-height:1.35;display:flex}.kyc-wizard .kw-cta-reason ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:14px}.kyc-wizard .kw-summary-wide{grid-column:1/-1}.kyc-wizard .kw-areas{flex-direction:column;gap:10px;display:flex}.kyc-wizard .kw-areas .kw-chip-row{flex-wrap:wrap;gap:6px;display:flex}.kyc-wizard .kw-liveness-head{flex-direction:column;gap:2px;display:flex}.kyc-wizard .kw-liveness-head strong{color:var(--shph-text-heading);font-size:13px}.kyc-wizard .kw-liveness-head span{color:var(--shph-text-hint);font-size:11px}.kyc-wizard .kw-liveness-preview{border-radius:var(--kw-radius-inner);background:var(--shph-bg-page);border:1px solid var(--shph-border);justify-content:center;align-items:center;height:112px;display:flex;position:relative}.kyc-wizard .kw-liveness-oval{border:2px dashed var(--shph-primary);width:64px;height:80px;color:var(--shph-text-hint);border-radius:50%;justify-content:center;align-items:center;font-size:22px;display:flex}.kyc-wizard .kw-liveness-pill{background:var(--shph-bg-secondary);border:1px solid var(--shph-border);color:var(--shph-primary-text);border-radius:999px;padding:2px 8px;font-size:9px;font-weight:700;position:absolute;bottom:6px}.kyc-wizard .kw-liveness-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.kyc-wizard .kw-liveness-step{background:var(--shph-bg-page);border:1px solid var(--shph-border);color:var(--shph-text-hint);text-align:center;opacity:.6;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:8.5px;font-weight:700;display:flex}.kyc-wizard .kw-liveness-step.active{background:var(--shph-primary-light);border-color:var(--shph-primary);color:var(--shph-primary-text);opacity:1}.kyc-wizard .kw-liveness-step ion-icon{font-size:12px}.kyc-wizard .kw-liveness-start{--border-radius:10px;margin:0;font-weight:800}.kw-submitted-modal{--width:min(340px, 88vw);--height:auto;--border-radius:24px;--background:var(--shph-bg-primary);--backdrop-opacity:.6}.kw-submitted{padding:26px 22px calc(22px + var(--ion-safe-area-bottom,0px));text-align:center;background:var(--shph-bg-primary);flex-direction:column;align-items:center;gap:10px;display:flex}.kw-submitted-icon{background:var(--shph-primary-light);border:1px solid var(--shph-primary);width:64px;height:64px;color:var(--shph-primary-text);border-radius:50%;justify-content:center;align-items:center;font-size:28px;display:flex}.kw-submitted-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--shph-primary-text);font-size:10px;font-weight:800}.kw-submitted h2{color:var(--shph-text-heading);margin:0;font-size:20px;font-weight:800}.kw-submitted p{color:var(--shph-text-secondary);margin:0;font-size:12px;line-height:1.55}.kw-submitted-facts{border-radius:var(--kw-radius-card,20px);background:var(--shph-bg-secondary);border:1px solid var(--shph-border);text-align:left;flex-direction:column;gap:8px;width:100%;margin-top:4px;padding:12px;display:flex}.kw-submitted-facts .kw-fact{color:var(--shph-text-secondary);align-items:center;gap:8px;font-size:11.5px;display:flex}.kw-submitted-facts .kw-fact ion-icon{color:var(--shph-primary-text);flex-shrink:0;font-size:15px}.kw-submitted-cta{--border-radius:14px;width:100%;height:46px;margin-top:6px;font-weight:800}.kyc-wizard .kw-tips-link{color:var(--shph-primary-text);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:4px 0;font-size:11.5px;font-weight:700;display:inline-flex}.kyc-status-card{border-radius:16px;flex-direction:column;gap:12px;margin:8px 0;padding:20px 18px 16px;display:flex;position:relative;overflow:hidden}.kyc-status-card--pending,.kyc-status-card--resubmitted{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);border:1px solid rgba(59,130,246,.3)}.kyc-status-card--rejected-fixable{background:linear-gradient(135deg,#1e1b29 0%,#1a1025 100%);border:1px solid rgba(244,63,94,.4)}.kyc-status-card--rejected-fatal{background:linear-gradient(135deg,#1a0e1a 0%,#0f0a14 100%);border:1px solid rgba(190,18,60,.5)}.kyc-status-card--interview{background:linear-gradient(135deg,#0f1e29 0%,#0a1520 100%);border:1px solid rgba(45,212,191,.35)}.kyc-status-card__bg-icon{opacity:.08;pointer-events:none;font-size:90px;position:absolute;top:-10px;right:-10px}.kyc-status-card__header{align-items:center;gap:12px;display:flex}.kyc-status-card__icon-wrap{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.kyc-status-card--pending .kyc-status-card__icon-wrap,.kyc-status-card--resubmitted .kyc-status-card__icon-wrap{color:#60a5fa;background:rgba(59,130,246,.15)}.kyc-status-card--rejected-fixable .kyc-status-card__icon-wrap{color:#fb7185;background:rgba(244,63,94,.15)}.kyc-status-card--rejected-fatal .kyc-status-card__icon-wrap{color:#f43f5e;background:rgba(190,18,60,.2)}.kyc-status-card--interview .kyc-status-card__icon-wrap{color:#2dd4bf;background:rgba(45,212,191,.15)}.kyc-status-card__title-wrap{flex-direction:column;gap:2px;display:flex}.kyc-status-card__title{color:#f8fafc;margin:0;font-size:16px;font-weight:700}.kyc-status-card__badge{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.kyc-status-card__body{color:#cbd5e1;margin:0;font-size:13px;line-height:1.5}.kyc-status-card__reason{background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.2);border-radius:10px;gap:8px;padding:10px 12px;display:flex}.kyc-status-card__reason ion-icon{color:#fb7185;flex-shrink:0;margin-top:2px;font-size:18px}.kyc-status-card__reason-label{color:#94a3b8;text-transform:uppercase;font-size:11px;font-weight:600}.kyc-status-card__reason-text{color:#e2e8f0;margin:2px 0 0;font-size:12.5px;line-height:1.45}.kyc-status-card__footer{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.kyc-status-card__status{color:#94a3b8;font-size:12px}.kyc-status-card__status strong{color:#e2e8f0}.kyc-status-page .kvs-loading,.kyc-status-page .kvs-empty{color:var(--ion-color-medium);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.kyc-status-page .kvs-empty ion-icon{opacity:.4;font-size:48px}.kvs-container{flex-direction:column;gap:20px;max-width:540px;margin:0 auto;padding-bottom:40px;display:flex}.kvs-ref-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.kvs-ref{flex-direction:column;display:flex}.kvs-ref__label{color:var(--ion-color-medium);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.kvs-ref__value{color:var(--shph-primary-text);font-family:monospace;font-size:15px;font-weight:700}.kvs-attempt-badge{color:#facc15;background:rgba(250,204,21,.15);border:1px solid rgba(250,204,21,.3);border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.kvs-banner{border-radius:14px;align-items:flex-start;gap:12px;padding:16px;display:flex}.kvs-banner ion-icon{flex-shrink:0;margin-top:2px;font-size:24px}.kvs-banner h3{margin:0 0 4px;font-size:15px;font-weight:700}.kvs-banner p{margin:0;font-size:13px;line-height:1.45}.kvs-banner--pending,.kvs-banner--resubmitted{background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.2)}.kvs-banner--pending ion-icon,.kvs-banner--resubmitted ion-icon,.kvs-banner--pending h3,.kvs-banner--resubmitted h3{color:#60a5fa}.kvs-banner--pending p,.kvs-banner--resubmitted p{color:var(--ion-color-medium)}.kvs-banner--fixable{background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.25)}.kvs-banner--fixable ion-icon,.kvs-banner--fixable h3{color:#fb7185}.kvs-banner--fixable p{color:var(--ion-color-medium)}.kvs-banner--fatal{background:rgba(190,18,60,.1);border:1px solid rgba(190,18,60,.3)}.kvs-banner--fatal ion-icon,.kvs-banner--fatal h3{color:#f43f5e}.kvs-banner--fatal p{color:var(--ion-color-medium)}.kvs-banner--interview{background:rgba(45,212,191,.08);border:1px solid rgba(45,212,191,.25)}.kvs-banner--interview ion-icon,.kvs-banner--interview h3{color:#2dd4bf}.kvs-banner--interview p{color:var(--ion-color-medium)}.kvs-section{flex-direction:column;gap:12px;display:flex}.kvs-section__title{color:var(--shph-primary-text);margin:0;font-size:14px;font-weight:700}.kvs-timeline{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.kvs-timeline__item{gap:14px;padding-bottom:20px;display:flex;position:relative}.kvs-timeline__item:not(:last-child):after{content:"";background:var(--ion-color-light-shade,#e0e0e0);width:2px;position:absolute;top:32px;bottom:0;left:15px}.kvs-timeline__item--completed:not(:last-child):after{background:var(--ion-color-success,#2dd36f)}.kvs-timeline__item--current:not(:last-child):after{background:var(--ion-color-warning,#ffc409)}.kvs-timeline__dot{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.kvs-timeline__item--completed .kvs-timeline__dot{background:var(--ion-color-success,#2dd36f);color:#fff}.kvs-timeline__item--current .kvs-timeline__dot{background:var(--ion-color-warning,#ffc409);color:#fff}.kvs-timeline__item--pending .kvs-timeline__dot{background:var(--ion-color-light,#f4f5f8);color:var(--ion-color-medium);border:2px solid var(--ion-color-light-shade,#e0e0e0)}.kvs-timeline__body{flex-direction:column;gap:2px;padding-top:4px;display:flex}.kvs-timeline__label{color:var(--shph-primary-text);font-size:13.5px;font-weight:600}.kvs-timeline__item--pending .kvs-timeline__label{color:var(--ion-color-medium)}.kvs-timeline__time{color:var(--ion-color-medium);font-size:11.5px}.kvs-docs{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.kvs-doc{border:1px solid var(--ion-color-light-shade,#e0e0e0);background:var(--ion-card-background,#fff);border-radius:10px;overflow:hidden}.kvs-doc__thumb{background:var(--ion-color-light,#f4f5f8);justify-content:center;align-items:center;width:100%;height:80px;display:flex;overflow:hidden}.kvs-doc__thumb img{object-fit:cover;width:100%;height:100%}.kvs-doc__thumb ion-icon{color:var(--ion-color-medium);font-size:28px}.kvs-doc__info{flex-direction:column;gap:2px;padding:8px 10px;display:flex}.kvs-doc__name{color:var(--shph-primary-text);font-size:12px;font-weight:600}.kvs-doc__status{font-size:11px;font-weight:600}.kvs-doc__status--auditing{color:var(--ion-color-warning)}.kvs-doc__status--approved{color:var(--ion-color-success)}.kvs-doc__status--rejected{color:var(--ion-color-danger)}.kvs-doc__status--audited{color:var(--ion-color-medium)}.kvs-interview{background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.2);border-radius:10px;gap:12px;padding:14px;display:flex}.kvs-interview ion-icon{color:#2dd4bf;flex-shrink:0;margin-top:2px;font-size:22px}.kvs-interview__label{color:var(--ion-color-medium);text-transform:uppercase;font-size:11px;font-weight:600}.kvs-interview__date{color:var(--shph-primary-text);margin:2px 0 0;font-size:14px;font-weight:600}.kvs-interview__notes{color:var(--ion-color-medium);margin:6px 0 0;font-size:12.5px}.kvs-cta{--border-radius:12px;margin-top:8px}.kvs-resubmission-notice{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:14px;gap:14px;margin-bottom:16px;padding:16px;display:flex}.kvs-resubmission-notice ion-icon{color:#f59e0b;flex-shrink:0;margin-top:2px;font-size:28px}.kvs-resubmission-notice__body{flex-direction:column;flex:1;gap:6px;display:flex}.kvs-resubmission-notice__body h4{color:#f59e0b;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.kvs-resubmission-notice__body p{color:var(--ion-color-medium);margin:0;font-size:13px;line-height:1.5}.kvs-support{background:var(--ion-color-light,#f4f5f8);border-radius:14px;gap:12px;margin-top:16px;padding:16px;display:flex}.kvs-support ion-icon{color:var(--ion-color-medium);flex-shrink:0;margin-top:2px;font-size:24px}.kvs-support__text{color:var(--shph-primary-text);margin:0 0 2px;font-size:13px}.kvs-support__btn{--padding-start:0;--padding-end:0;height:auto;font-weight:600}.kvs-return{--border-radius:12px;margin-top:12px}.kyc-rejection-page .krd-loading,.kyc-rejection-page .krd-empty{color:var(--ion-color-medium);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.kyc-rejection-page .krd-empty ion-icon{color:var(--ion-color-success);opacity:.5;font-size:48px}.krd-container{flex-direction:column;gap:20px;max-width:540px;margin:0 auto;padding-bottom:40px;display:flex}.krd-banner{background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.25);border-radius:14px;gap:12px;padding:16px;display:flex}.krd-banner ion-icon{color:#fb7185;flex-shrink:0;margin-top:2px;font-size:24px}.krd-banner h3{color:#fb7185;margin:0 0 4px;font-size:15px;font-weight:700}.krd-banner p{color:var(--ion-color-medium);margin:0;font-size:13px;line-height:1.45}.krd-section{flex-direction:column;gap:10px;display:flex}.krd-section__title{color:var(--shph-primary-text);margin:0;font-size:14px;font-weight:700}.krd-section__hint{color:var(--ion-color-medium);margin:0;font-size:12.5px}.krd-doc-card{border:1px solid var(--ion-color-light-shade,#e0e0e0);background:var(--ion-card-background,#fff);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.krd-doc-card__head{align-items:center;gap:12px;padding:14px;display:flex}.krd-doc-card__icon{color:#fb7185;background:rgba(244,63,94,.1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.krd-doc-card__info{flex-direction:column;flex:1;gap:2px;display:flex}.krd-doc-card__name{color:var(--shph-primary-text);font-size:14px;font-weight:600}.krd-doc-card__reason{color:var(--ion-color-danger);font-size:12.5px}.krd-doc-card__preview{background:var(--ion-color-light,#f4f5f8);width:100%;height:120px;overflow:hidden}.krd-doc-card__preview img{object-fit:cover;opacity:.6;width:100%;height:100%}.krd-doc-card__action{border-top:1px solid var(--ion-color-light-shade,#e0e0e0);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.krd-doc-card__selected{color:var(--ion-color-success);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex;overflow:hidden}.krd-doc-card__selected ion-icon{flex-shrink:0}.krd-notes{background:var(--ion-color-light,#f4f5f8);border-radius:10px;gap:10px;padding:14px;display:flex}.krd-notes ion-icon{color:var(--ion-color-medium);flex-shrink:0;margin-top:2px;font-size:18px}.krd-notes p{color:var(--shph-primary-text);margin:0;font-size:13px;line-height:1.5}.krd-footer{flex-direction:column;gap:10px;margin-top:8px;display:flex}.krd-error{background:rgba(var(--ion-color-danger-rgb), .08);border-radius:8px;align-items:center;gap:6px;padding:10px 12px;font-size:13px;display:flex}.krd-submit{--border-radius:12px}.krd-fineprint{text-align:center;color:var(--ion-color-medium);margin:0;font-size:11.5px}.d-none{display:none!important}.verification-status-card{margin:8px 0}
