:root{
  --aussie-white:#FFFFFF; --aussie-10:#F4F4F6; --aussie-20:#E9E9ED; --aussie-30:#D6D6DC;
  --aussie-50:#9A9AA8; --aussie-70:#6B6B78; --aussie-80:#4A4A54; --aussie-90:#2A2A31; --aussie-95:#1B1B20; --aussie-100:#0F0F15;
  --poodle-primary:#7E05E8; --corgi-primary:#EFE3FB; --saluki-primary:#0F0F15;
  --bg-default: var(--aussie-white); --bg-secondary:var(--aussie-20); --bg-hover:var(--aussie-10);
  --bg-floating: var(--aussie-white); --bg-wash: rgba(153,153,172,.16); --bg-border: var(--aussie-20); --bg-border-hover: var(--aussie-30);
  --content-primary: var(--aussie-100); --content-secondary: var(--aussie-70); --content-tertiary:#8B8B98;
  --interaction-primary-bg: var(--saluki-primary); --interaction-primary-bg-hover:#2a2a31; --interaction-primary-content: var(--aussie-white); --interaction-primary-content-hover:#e9e9ed;
  --interaction-secondary-bg: var(--aussie-20); --interaction-secondary-bg-hover:#dedee3; --interaction-secondary-content: var(--aussie-100);
  --interaction-outline-border: var(--aussie-30); --interaction-outline-content: var(--aussie-100); --interaction-outline-border-hover:#b8b8c0; --interaction-outline-content-hover:#000;
  --accent-success:#30BB47; --accent-success-light:#DBF7DF;
  --accent-warning:#B8860B; --accent-warning-light:#FBF0D9;
  --accent-alert:#E23F3F; --accent-alert-light:#FCE4E4;
  --brand-platinum-day:#EFE3FB;
  --static-text-primary:#0F0F15; --static-text-invert-primary:#fff;
  --radius-base:16px; --radius-sm:12px; --radius-xs:8px; --radius-pill:999px; --radius-2xlg:20px;
  --spacing-4:4px;--spacing-6:6px;--spacing-8:8px;--spacing-12:12px;--spacing-14:14px;--spacing-16:16px;--spacing-24:24px;--spacing-32:32px;
  --font-size-xs:12px;--font-size-sm:13px;--font-size-md:15px;
  --font-line-height-2xs:16px;--font-line-height-xs:18px;--font-line-height-sm:20px;
  --font-weight-semibold:600; --font-weight-bold:700;
  --shadow-sm:0 1px 2px rgba(15,15,21,.06); --shadow-md:0 8px 24px rgba(15,15,21,.10); --shadow-focus:0 0 0 3px rgba(126,5,232,.25);
  --duration-base:160ms; --ease-out:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme: dark){
  :root{
    --bg-default:#0F0F15; --bg-secondary:#1B1B20; --bg-hover:#232329; --bg-floating:#17171d; --bg-border:#2A2A31; --bg-border-hover:#3a3a42;
    --content-primary:#FFFFFF; --content-secondary:#9A9AA8; --content-tertiary:#77777f;
    --interaction-primary-bg:#FFFFFF; --interaction-primary-bg-hover:#D6D6DC; --interaction-primary-content:#0F0F15; --interaction-primary-content-hover:#0F0F15;
    --interaction-secondary-bg:#232329; --interaction-secondary-bg-hover:#2c2c33; --interaction-secondary-content:#FFFFFF;
    --interaction-outline-border:#3a3a42; --interaction-outline-content:#fff; --interaction-outline-border-hover:#55555f; --interaction-outline-content-hover:#fff;
    --accent-success-light:#113016; --accent-warning-light:#3a2f0d; --accent-alert-light:#3a1414;
    --brand-platinum-day:#2c2138;
  }
}
:root[data-theme="dark"]{
  --bg-default:#0F0F15; --bg-secondary:#1B1B20; --bg-hover:#232329; --bg-floating:#17171d; --bg-border:#2A2A31; --bg-border-hover:#3a3a42;
  --content-primary:#FFFFFF; --content-secondary:#9A9AA8; --content-tertiary:#77777f;
  --interaction-primary-bg:#FFFFFF; --interaction-primary-bg-hover:#D6D6DC; --interaction-primary-content:#0F0F15; --interaction-primary-content-hover:#0F0F15;
  --interaction-secondary-bg:#232329; --interaction-secondary-bg-hover:#2c2c33; --interaction-secondary-content:#FFFFFF;
  --interaction-outline-border:#3a3a42; --interaction-outline-content:#fff; --interaction-outline-border-hover:#55555f; --interaction-outline-content-hover:#fff;
  --accent-success-light:#113016; --accent-warning-light:#3a2f0d; --accent-alert-light:#3a1414;
  --brand-platinum-day:#2c2138;
}
:root[data-theme="light"]{
  --bg-default:#FFFFFF; --bg-secondary:#E9E9ED; --bg-hover:#F4F4F6; --bg-floating:#FFFFFF; --bg-border:#E9E9ED; --bg-border-hover:#D6D6DC;
  --content-primary:#0F0F15; --content-secondary:#6B6B78; --content-tertiary:#8B8B98;
  --interaction-primary-bg:#0F0F15; --interaction-primary-bg-hover:#2a2a31; --interaction-primary-content:#FFFFFF; --interaction-primary-content-hover:#e9e9ed;
  --interaction-secondary-bg:#E9E9ED; --interaction-secondary-bg-hover:#dedee3; --interaction-secondary-content:#0F0F15;
  --accent-success-light:#DBF7DF; --accent-warning-light:#FBF0D9; --accent-alert-light:#FCE4E4;
  --brand-platinum-day:#EFE3FB;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg-default);color:var(--content-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:"MD Nichrome","Inter",sans-serif;margin:0;}
a{color:inherit;text-decoration:none;}
svg{display:block;}
button{font-family:inherit;}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--bg-border);position:sticky;top:0;background:var(--bg-default);z-index:10;flex-wrap:wrap;gap:12px;}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:18px;}
.brand svg{height:20px;width:auto;color:var(--poodle-primary);}
.brand-suffix{color:var(--content-secondary);font-weight:600;font-size:14px;padding-left:12px;border-left:1px solid var(--bg-border);margin-left:2px;}
.topbar-actions{display:flex;gap:10px;align-items:center;}
.role-switch{display:flex;background:var(--bg-secondary);border-radius:var(--radius-pill);padding:3px;gap:2px;}
.role-switch button{border:none;background:transparent;padding:8px 16px;border-radius:var(--radius-pill);font-weight:600;font-size:13px;cursor:pointer;color:var(--content-secondary);}
.role-switch button.active{background:var(--interaction-primary-bg);color:var(--interaction-primary-content);}

.hero{padding:32px 32px 8px;max-width:1280px;margin:0 auto;}
.hero h1{font-size:28px;letter-spacing:-.02px;margin-bottom:8px;text-wrap:balance;}
.hero p{color:var(--content-secondary);font-size:14px;max-width:640px;line-height:1.5;margin:0;}

.howit{max-width:1280px;margin:20px auto 0;padding:0 32px;}
.howit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.howit-card{background:var(--bg-floating);border:1px solid var(--bg-border);border-radius:var(--radius-base);padding:16px;display:flex;gap:12px;align-items:flex-start;}
.howit-icon{width:32px;height:32px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.howit-icon.pl{background:var(--brand-platinum-day);color:var(--poodle-primary);}
.howit-icon.org{background:var(--accent-success-light);color:var(--accent-success);}
.howit-icon.raw{background:var(--bg-secondary);color:var(--content-secondary);}
.howit-card h3{font-size:13px;margin-bottom:4px;}
.howit-card p{font-size:12px;color:var(--content-secondary);margin:0;line-height:1.4;}

.filters{max-width:1280px;margin:24px auto 0;padding:0 32px;display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;}
.search-box{flex:1;display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;background:var(--bg-floating);border:1px solid var(--bg-border);border-radius:var(--radius-sm);max-width:340px;min-width:220px;}
.search-box input{border:none;outline:none;background:transparent;font:inherit;font-size:14px;width:100%;color:var(--content-primary);}
.search-box input:focus-visible{outline:none;}
.search-box svg{color:var(--content-tertiary);flex-shrink:0;}
.tag-row{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:260px;}
.pl-tag{display:inline-flex;align-items:center;padding:7px 16px;border-radius:var(--radius-pill);border:none;font-weight:600;font-size:13px;cursor:pointer;background:var(--interaction-secondary-bg);color:var(--content-primary);transition:background var(--duration-base) var(--ease-out);}
.pl-tag:hover{background:var(--interaction-secondary-bg-hover);}
.pl-tag.sel{background:var(--interaction-primary-bg);color:var(--interaction-primary-content);}
.pl-tag:focus-visible{box-shadow:var(--shadow-focus);}

.results-meta{max-width:1280px;margin:16px auto 0;padding:0 32px;display:flex;justify-content:space-between;align-items:center;color:var(--content-secondary);font-size:13px;flex-wrap:wrap;gap:8px;}
.sort{display:flex;align-items:center;gap:8px;}
.sort select{border:1px solid var(--bg-border);border-radius:var(--radius-xs);padding:6px 10px;font:inherit;font-size:13px;background:var(--bg-floating);color:var(--content-primary);}

.grid{max-width:1280px;margin:16px auto 60px;padding:0 32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.pl-card{background:var(--bg-floating);border:1px solid var(--bg-border);border-radius:var(--radius-base);overflow:hidden;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);display:flex;flex-direction:column;cursor:pointer;}
.pl-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.pl-card:focus-visible{box-shadow:var(--shadow-focus);}
.card-media{height:88px;background:linear-gradient(135deg,var(--bg-secondary),var(--bg-hover));display:flex;align-items:center;justify-content:center;position:relative;}
.card-media .cat-chip{position:absolute;top:10px;left:10px;background:rgba(15,15,21,.72);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--radius-pill);}
.media-fallback{font-family:"MD Nichrome",sans-serif;font-size:20px;font-weight:800;color:var(--content-tertiary);}
.logo-plate{background:#fff;border-radius:12px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;padding:8px;box-shadow:0 1px 3px rgba(0,0,0,.15);}
.logo-plate img{width:100%;height:100%;object-fit:contain;}
.card-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.card-title{font-size:15px;font-weight:700;line-height:1.3;}
.card-desc{font-size:12.5px;color:var(--content-secondary);line-height:1.45;min-height:34px;}
.rating-row{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--content-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;}
.stars{display:flex;gap:1px;color:#F5A623;}
.rating-num{font-weight:700;color:var(--content-primary);}

.info-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--bg-secondary);color:var(--content-tertiary);font-size:10px;font-style:normal;cursor:help;flex-shrink:0;}
.info-tip .tip-bubble{position:absolute;bottom:135%;left:50%;transform:translateX(-50%);background:var(--content-primary);color:var(--bg-default);font-size:11.5px;font-weight:500;padding:8px 10px;border-radius:8px;width:210px;line-height:1.4;opacity:0;visibility:hidden;transition:opacity var(--duration-base) var(--ease-out);pointer-events:none;z-index:30;text-align:left;}
.info-tip:hover .tip-bubble,.info-tip:focus-visible .tip-bubble{opacity:1;visibility:visible;}

.pl-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;line-height:1;width:fit-content;}
.badge-pl{background:var(--brand-platinum-day);color:var(--poodle-primary);}
.badge-org{background:var(--accent-success-light);color:var(--accent-success);}
.badge-raw{background:var(--bg-secondary);color:var(--content-secondary);}

.card-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--bg-border);gap:8px;}
.price{font-size:13px;}
.price b{font-size:14px;}
.price .from{color:var(--content-tertiary);font-size:11px;display:block;}
.pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;cursor:pointer;font-weight:600;padding:8px 14px;border-radius:var(--radius-xs);font-size:12.5px;background:var(--interaction-secondary-bg);color:var(--interaction-secondary-content);white-space:nowrap;}
.pl-btn:hover{background:var(--interaction-secondary-bg-hover);}
.pl-btn:focus-visible{box-shadow:var(--shadow-focus);}
.pl-btn:disabled{opacity:.6;cursor:default;}
.pl-btn-primary{background:var(--interaction-primary-bg);color:var(--interaction-primary-content);}
.pl-btn-primary:hover{background:var(--interaction-primary-bg-hover);color:var(--interaction-primary-content-hover);}

.empty-state{max-width:1280px;margin:40px auto;padding:0 32px;text-align:center;color:var(--content-tertiary);font-size:14px;}

.section-note{max-width:1280px;margin:0 auto;padding:0 32px;color:var(--content-tertiary);font-size:12px;}

.legend{max-width:1280px;margin:8px auto 0;padding:0 32px;display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--content-secondary);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.legend .dot.pl{background:var(--poodle-primary);}
.legend .dot.org{background:var(--accent-success);}
.legend .dot.raw{background:var(--content-tertiary);}

/* modal */
.modal-overlay{position:fixed;inset:0;background:rgba(10,10,14,.56);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:100;overflow-y:auto;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out);}
.modal-overlay.open{opacity:1;pointer-events:auto;}
.modal-panel{background:var(--bg-default);border-radius:var(--radius-base);max-width:560px;width:100%;box-shadow:var(--shadow-md);transform:translateY(8px);transition:transform var(--duration-base) var(--ease-out);}
.modal-overlay.open .modal-panel{transform:translateY(0);}
.modal-head{display:flex;align-items:flex-start;gap:14px;padding:24px 24px 0;}
.modal-head .logo-plate,.modal-head .media-fallback-lg{flex-shrink:0;}
.media-fallback-lg{width:56px;height:56px;border-radius:12px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-family:"MD Nichrome",sans-serif;font-size:18px;font-weight:800;color:var(--content-tertiary);}
.modal-close{margin-left:auto;border:none;background:var(--bg-secondary);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--content-primary);flex-shrink:0;}
.modal-close:hover{background:var(--bg-hover);}
.modal-title{font-size:19px;font-weight:700;margin-bottom:4px;}
.modal-cat{font-size:12px;color:var(--content-secondary);margin-bottom:6px;}
.modal-body{padding:16px 24px 24px;}
.modal-desc{font-size:13.5px;color:var(--content-secondary);line-height:1.55;margin:12px 0 16px;}
.modal-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--content-tertiary);margin:20px 0 10px;}
.svc-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--bg-border);font-size:13.5px;gap:12px;}
.svc-row:last-child{border-bottom:none;}
.svc-name{color:var(--content-primary);}
.svc-price{color:var(--content-secondary);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;}
.modal-badge-note{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:12px 14px;font-size:12.5px;color:var(--content-secondary);line-height:1.5;margin-top:16px;}
.modal-footer{display:flex;gap:10px;margin-top:20px;}
.modal-footer .pl-btn{flex:1;padding:12px 16px;font-size:13.5px;}

.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.form-field label{font-size:12px;font-weight:600;color:var(--content-secondary);}
.form-field input,.form-field select,.form-field textarea{border:1px solid var(--bg-border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;font-size:13.5px;background:var(--bg-floating);color:var(--content-primary);width:100%;}
.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:none;border-color:var(--bg-border-hover);box-shadow:var(--shadow-focus);}
.form-field textarea{resize:vertical;min-height:70px;font-family:inherit;}
.form-row{display:flex;gap:12px;}
.form-row .form-field{flex:1;}
.form-hint{font-size:12px;color:var(--content-tertiary);margin:-6px 0 16px;}
.form-success{background:var(--accent-success-light);color:var(--accent-success);border-radius:var(--radius-sm);padding:12px 14px;font-size:13px;font-weight:600;margin-top:4px;}

.usp-banner{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,var(--brand-platinum-day),transparent);border:1px solid var(--bg-border);border-left:3px solid var(--poodle-primary);border-radius:var(--radius-sm);padding:12px 16px;margin-top:16px;font-size:13px;color:var(--content-primary);}
.usp-banner b{color:var(--poodle-primary);}
.usp-banner .usp-icon{color:var(--poodle-primary);flex-shrink:0;}

.city-select{border:1px solid var(--bg-border);border-radius:var(--radius-sm);padding:0 14px;height:48px;font:inherit;font-size:13.5px;background:var(--bg-floating);color:var(--content-primary);}

.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;}
.card-city{font-size:11px;color:var(--content-tertiary);white-space:nowrap;padding-top:2px;}
.featured-ribbon{position:absolute;top:10px;right:10px;background:var(--poodle-primary);color:#fff;font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:var(--radius-pill);letter-spacing:.02em;}
.pl-events-stat{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--accent-success);background:var(--accent-success-light);border-radius:var(--radius-xs);padding:5px 9px;width:fit-content;}
.usp-check{display:flex;color:var(--accent-success);flex-shrink:0;}

.claim-box{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:12px 14px;font-size:12.5px;color:var(--content-secondary);line-height:1.5;margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.claim-actions{display:flex;gap:8px;flex-wrap:wrap;}
.claim-actions .pl-btn{flex:1;padding:9px 12px;font-size:12.5px;min-width:120px;}
.claim-removal{font-size:11.5px;color:var(--content-tertiary);text-decoration:underline;cursor:pointer;background:none;border:none;padding:0;align-self:flex-start;}

.chip-row{display:flex;gap:6px;flex-wrap:wrap;}
.chip-mini{font-size:11px;font-weight:600;color:var(--content-secondary);background:var(--bg-secondary);border-radius:var(--radius-xs);padding:3px 8px;}
.chip-mini.chip-busy{color:var(--accent-warning);background:var(--accent-warning-light);}
.commission-tag{position:relative;display:inline-block;font-size:10.5px;color:var(--content-tertiary);margin-top:2px;cursor:help;text-decoration:underline dotted;}
.commission-tag:hover .tip-bubble,.commission-tag:focus-visible .tip-bubble{opacity:1;visibility:visible;}
.commission-tag .tip-bubble{bottom:auto;top:135%;left:0;transform:none;width:220px;}

.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;}
.save-btn{border:none;background:none;cursor:pointer;font-size:17px;line-height:1;color:var(--content-tertiary);padding:0;flex-shrink:0;}
.save-btn.saved{color:var(--accent-alert);}
.save-btn:focus-visible{box-shadow:var(--shadow-focus);border-radius:50%;}

.compare-check{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--content-secondary);cursor:pointer;user-select:none;}
.compare-check input{accent-color:var(--poodle-primary);}

.saved-toggle{display:flex;align-items:center;gap:6px;height:48px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--bg-border);background:var(--bg-floating);font-weight:600;font-size:13px;cursor:pointer;color:var(--content-primary);}
.saved-toggle.on{background:var(--interaction-primary-bg);color:var(--interaction-primary-content);border-color:var(--interaction-primary-bg);}

.compare-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-floating);border-top:1px solid var(--bg-border);box-shadow:var(--shadow-md);padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:90;transform:translateY(100%);transition:transform var(--duration-base) var(--ease-out);flex-wrap:wrap;}
.compare-bar.show{transform:translateY(0);}
.compare-bar-names{font-size:13px;color:var(--content-secondary);}
.compare-bar-names b{color:var(--content-primary);}
.compare-bar-actions{display:flex;gap:8px;}

.compare-table-wrap{overflow-x:auto;}
.compare-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:480px;}
.compare-table th,.compare-table td{padding:9px 10px;border-bottom:1px solid var(--bg-border);text-align:left;vertical-align:top;}
.compare-table th{color:var(--content-tertiary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;}
.compare-table td.row-label{color:var(--content-tertiary);font-weight:600;white-space:nowrap;}

.profile-views-stat{font-size:12px;color:var(--content-secondary);margin-top:6px;}

@media (max-width: 640px){
  .topbar{flex-direction:column;align-items:stretch;}
  .topbar-actions{justify-content:space-between;}
  .role-switch{flex:1;}
  .role-switch button{flex:1;text-align:center;padding:8px 6px;}
  #listCompanyBtn{white-space:nowrap;}
}
@media (prefers-reduced-motion: reduce){ *{transition:none !important;} }
