:root{--brand-primary:#E8177B;--brand-secondary:#1A1030;--brand-accent:#F5C518;--bg:#120b22;--surface:#1d1436;--surface-2:#271a48;--text:#f4f0fb;--muted:#b6a9d6;--border:#3a2c5e;--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}.container{max-width:1100px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--brand-secondary) 60%,var(--bg));position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.site-header .bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.brand{font-weight:800;font-size:20px;letter-spacing:-.02em}.brand .dot{color:var(--brand-primary)}.tagline{color:var(--muted);font-size:14px}.header-right{display:flex;align-items:center;gap:16px}.authnav-btn{padding:8px 14px;font-size:13px}.linklike{background:none;border:none;color:var(--brand-primary);cursor:pointer;padding:0;font:inherit}@media (max-width:620px){.header-right .tagline{display:none}}.hero{padding:48px 0 24px}.hero h1{font-size:clamp(28px,5vw,44px);line-height:1.1;margin:0 0 10px;letter-spacing:-.03em}.hero p{color:var(--muted);margin:0;max-width:60ch}.layout{display:grid;grid-template-columns:260px 1fr;grid-gap:28px;gap:28px;padding:24px 0 64px}@media (max-width:780px){.layout{grid-template-columns:1fr}}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;align-self:start}.filters h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 14px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;margin-bottom:6px;color:var(--text)}.field input,.field select{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 10px;font-size:14px}.range-row{display:flex;gap:8px}.btn{display:inline-block;background:var(--brand-primary);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:600;font-size:14px;cursor:pointer}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:18px;gap:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .12s ease,border-color .12s ease}.card:hover{transform:translateY(-3px);border-color:var(--brand-primary)}.card .thumb{aspect-ratio:4/5;background:linear-gradient(140deg,var(--brand-secondary),var(--brand-primary));display:flex;align-items:flex-end;padding:14px;font-weight:700;font-size:18px}.card .body{padding:14px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}.chip{font-size:12px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 9px}.price{margin-top:10px;font-weight:700}.price small{color:var(--muted);font-weight:400}.empty{border:1px dashed var(--border);border-radius:var(--radius);padding:40px;text-align:center;color:var(--muted)}.notice{background:color-mix(in srgb,var(--brand-accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--brand-accent) 40%,var(--border));border-radius:var(--radius);padding:14px 16px;color:var(--text);font-size:14px}.detail{padding:32px 0 64px}.detail h1{margin:0 0 4px}.attr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:14px;gap:14px;margin:24px 0}.attr{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.attr .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.attr .v{font-weight:600;margin-top:4px}.wizard-steps{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 22px;flex-wrap:wrap}.wizard-steps li{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);padding:5px 10px;border-radius:999px;border:1px solid var(--border)}.wizard-steps li.current{color:var(--text);border-color:var(--brand-primary)}.wizard-steps li.done{color:var(--text)}.wizard-steps .num{width:20px;height:20px;border-radius:50%;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.wizard-steps li.current .num{background:var(--brand-primary);color:#fff}.wizard-steps li.done .num{background:color-mix(in srgb,var(--brand-primary) 40%,var(--surface-2))}.wizard-body{min-height:120px}.wizard-nav{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.map-loading{height:320px;border-radius:12px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted)}.leaflet-container,.map-loading{background:var(--surface-2)}.map-pin-dot{display:block;width:16px;height:16px;border-radius:50%;background:var(--brand-primary);border:3px solid #fff;box-shadow:0 0 0 2px var(--brand-primary)}.area-list{list-style:none;padding:0;margin:18px 0 0}.area-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border);font-size:14px}.tooltip{position:relative;cursor:help;color:var(--muted)}.tooltip .tooltip-text{visibility:hidden;opacity:0;position:absolute;left:0;bottom:130%;width:240px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--text);z-index:5;transition:opacity .12s}.tooltip:focus .tooltip-text,.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.muted-tag{color:var(--muted)}.muted-tag,.req-tag{font-weight:400;font-size:12px}.req-tag{color:var(--brand-accent)}.upload-drop{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:12px;padding:22px;cursor:pointer;color:var(--muted);font-weight:600}.upload-drop:hover{border-color:var(--brand-primary);color:var(--text)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.photo{position:relative;border-radius:10px;overflow:hidden;border:2px solid transparent;background:var(--surface-2)}.photo.is-primary{border-color:var(--brand-primary)}.photo img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.photo .badge{position:absolute;top:6px;left:6px;background:var(--brand-primary);color:#fff;font-size:11px;padding:2px 7px;border-radius:999px}.photo-actions{padding:6px 8px;font-size:12px}.connect-card,.photo-actions{display:flex;justify-content:space-between}.connect-card{align-items:center;gap:16px;border:1px solid var(--border);border-radius:12px;padding:16px}.geo-search{display:flex;gap:8px;margin-bottom:12px}.geo-search input{flex:1 1;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 12px;font-size:14px}.geo-search .btn{white-space:nowrap}.booking-list{list-style:none;padding:0;margin:20px 0 0}.booking-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--surface)}.booking-row:hover{border-color:var(--brand-primary)}.booking-title{font-weight:700}.booking-sub{color:var(--muted);font-size:13px;margin-top:2px}.status-badge{font-size:12px;padding:3px 10px;border-radius:999px;white-space:nowrap;border:1px solid var(--border);color:var(--muted)}.status-badge.s-agreed,.status-badge.s-preConfirmed{color:var(--brand-accent);border-color:color-mix(in srgb,var(--brand-accent) 40%,var(--border))}.status-badge.s-completed{color:#34d399;border-color:#2f855a55}.status-badge.s-cancelled,.status-badge.s-declined,.status-badge.s-expired{color:#f87171;border-color:#ef444455}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.quote-box{background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--brand-accent) 35%,var(--border));border-radius:12px;padding:12px 14px;margin-bottom:12px}.chat-thread{height:360px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.bubble{max-width:75%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.35;word-wrap:break-word}.bubble.mine{align-self:flex-end;background:var(--brand-primary);color:#fff;border-bottom-right-radius:4px}.bubble.theirs{align-self:flex-start;background:var(--surface-2);color:var(--text);border-bottom-left-radius:4px}.chat-input{display:flex;gap:8px;margin-top:12px}.chat-input input{flex:1 1;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px}.chat-actions{margin-top:18px}.action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.confirm-note{color:var(--brand-accent);font-size:14px}.review-form{margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.dash-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:14px}.checklist{list-style:none;padding:0;margin:0 0 16px}.checklist li{display:flex;align-items:center;gap:10px;padding:8px 0;color:var(--muted);border-bottom:1px solid var(--border)}.checklist li.done{color:var(--text)}.checklist .check{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:var(--surface-2);border:1px solid var(--border)}.checklist li.done .check{background:#2f855a;border-color:#2f855a;color:#fff}.soon-tag{margin-left:auto;font-size:11px;color:var(--brand-accent);border:1px solid color-mix(in srgb,var(--brand-accent) 40%,var(--border));border-radius:999px;padding:2px 8px}.group-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.dash-edit{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 14px}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .12s ease,border-color .12s ease}.item-card:hover{transform:translateY(-3px);border-color:var(--brand-primary)}.item-thumb{position:relative;aspect-ratio:1;background:var(--surface-2);display:grid;place-items:center}.item-thumb img{width:100%;height:100%;object-fit:cover}.item-thumb-empty{color:var(--muted);font-size:13px}.item-sold{position:absolute;top:8px;left:8px;background:#111;color:#fff;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border)}.item-body{padding:12px}.item-title{font-weight:700}.item-detail{display:grid;grid-template-columns:1fr 1fr;grid-gap:28px;gap:28px}@media (max-width:720px){.item-detail{grid-template-columns:1fr}}.item-gallery img{width:100%;border-radius:var(--radius);aspect-ratio:1;object-fit:cover;background:var(--surface-2)}.item-thumbs{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-top:8px}.item-thumbs img{aspect-ratio:1}.service-add{display:flex;gap:12px;align-items:flex-end}.service-add .field{margin-bottom:0}.service-menu{list-style:none;padding:0;margin:0 0 20px}.service-menu-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border);font-size:14px}.booking-request{margin-top:12px;border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--surface)}.request-services{border:none;padding:0;margin:0 0 12px}.request-services legend{font-weight:600;padding:0;margin-bottom:6px}.service-option{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border);font-size:14px}.request-subtotal{margin-top:10px;font-size:14px}.request-fields{margin-top:4px}.request-summary{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:var(--surface)}.request-summary-services{list-style:none;padding:0;margin:8px 0 0;font-size:14px}.request-summary-services li{padding:2px 0}.request-summary-fields{margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:8px 16px;gap:8px 16px}.request-summary-fields dt{color:var(--muted);font-size:12px}.request-summary-fields dd{margin:0;font-size:14px}