:root{--navy: #01031a;--text: #111827;--muted: #6b7280;--border: #e5e7eb;--bg: #f5f7fb;--white: #ffffff;--danger: #b91c1c;--ok: #166534;--amber: #b45309}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Inter,system-ui,sans-serif;color:var(--text);background:var(--bg)}a{color:var(--navy)}h1,h2,h3{color:var(--navy);margin:0 0 .5rem}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--white)}.card{background:var(--white);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #0000000f;padding:28px}.auth-card{width:min(420px,100%)}label{display:block;font-size:13px;color:var(--muted);margin:0 0 12px}input,select,textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;font:inherit}textarea{min-height:110px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--navy);color:#fff;border:0;border-radius:10px;padding:11px 16px;font-weight:600;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--navy)}.btn.danger{background:var(--danger)}.btn.full{width:100%}.alert{padding:10px 12px;border-radius:10px;font-size:14px;margin:12px 0 0}.alert.error{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}.alert.ok{background:#f0fdf4;color:var(--ok);border:1px solid #bbf7d0}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--navy);color:#fff;padding:28px 18px}.side a,.side button.linkish{display:block;color:#dbeafe;text-decoration:none;padding:10px 12px;border-radius:8px;background:transparent;border:0;width:100%;text-align:left;font:inherit;cursor:pointer}.side a.active,.side a:hover{background:#ffffff14;color:#fff}.side .brand{font-size:20px;font-weight:700;margin-bottom:24px}.main{padding:32px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stat{padding:20px}.stat strong{font-size:28px;display:block;color:var(--navy)}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px}.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px}.badge.ok{background:#dcfce7;color:var(--ok)}.badge.wait{background:#fef3c7;color:var(--amber)}.badge.premium{background:#fde68a;color:#92400e}.muted{color:var(--muted)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;max-height:220px;overflow:auto;border:1px solid var(--border);padding:10px;border-radius:10px}.check-grid label{margin:0;color:var(--text);font-size:13px;display:flex;gap:8px;align-items:center}.check-grid input{width:auto;margin:0}.tabs{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.tabs button{background:#fff;border:1px solid var(--border);border-radius:999px;padding:8px 14px;cursor:pointer}.tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}pre.terms{white-space:pre-wrap;background:#fff;padding:20px;border-radius:12px;border:1px solid var(--border);line-height:1.55}.filters{display:grid;grid-template-columns:1.4fr repeat(4,minmax(120px,1fr));gap:10px;margin:16px 0}.filters-dates{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-bottom:12px}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--border);background:#fff}.table th{white-space:nowrap;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.table td{vertical-align:top}.table tbody tr.row-premium{background:#fffbeb}.table tbody tr.row-premium:hover{background:#fef3c7}.featured-bar{background:linear-gradient(90deg,#f59e0b,#fbbf24);color:#78350f;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:6px 10px;width:fit-content}.stat-link{text-decoration:none;color:inherit;display:block}.stat-link:hover{box-shadow:0 10px 28px #0000001a}.table th button{background:none;border:0;font:inherit;cursor:pointer;color:inherit;padding:0}.partner-cell{display:flex;gap:12px;align-items:center}.logo-thumb{width:40px;height:40px;border-radius:10px;object-fit:contain;background:#f8fafc;border:1px solid var(--border);flex:0 0 40px}.logo-thumb.placeholder,.preview-logo.placeholder{display:grid;place-items:center;font-weight:700;color:var(--navy);background:#eef2ff}.contact-card{border:1px solid var(--border);border-radius:12px;padding:14px;display:grid;gap:8px}.phone-preview{width:380px;max-width:100%;border:12px solid #0b1220;border-radius:40px;background:#0b1220;overflow:hidden;box-shadow:0 24px 60px #01031a47}.phone-status{display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;font-weight:600;padding:10px 22px 6px}.phone-body{background:linear-gradient(180deg,#e8eefc,#f7f9fc 140px,#fff);min-height:640px;padding:0 0 20px;display:grid;gap:0}.preview-hero{position:relative;margin:0 0 -28px}.phone-banner{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;background:#dbe4f5}.phone-banner.app{aspect-ratio:4 / 3;border-radius:16px}.banner-link{position:relative;display:block;color:inherit;text-decoration:none}.hero-cta{position:absolute;right:14px;bottom:36px;background:#fff;color:var(--navy);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none;box-shadow:0 8px 20px #0000002e}.preview-sheet{position:relative;margin:0 14px;background:#fff;border-radius:22px;padding:16px;box-shadow:0 16px 40px #0f172a1a;display:grid;gap:14px}.phone-head{display:flex;gap:12px;align-items:center}.preview-logo{width:68px;height:68px;object-fit:contain;border-radius:18px;background:#f8fafc;border:1px solid var(--border);flex:0 0 68px;box-shadow:0 8px 18px #01031a14}.preview-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#64748b;font-weight:700}.preview-name{font-size:20px;line-height:1.2;margin:2px 0 6px;color:var(--navy)}.preview-desc{margin:0;font-size:14px;line-height:1.55;color:#334155}.preview-block h4{margin:0 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.hours-list{display:grid;gap:6px;font-size:13px}.hours-list div{display:flex;justify-content:space-between;gap:12px}.preview-contact{border:1px solid var(--border);border-radius:14px;padding:10px 12px;margin-top:8px;background:#f8fafc}.preview-contact strong{display:block;margin-bottom:6px}.preview-links{display:flex;flex-wrap:wrap;gap:8px}.chip-link{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;color:var(--navy);text-decoration:none;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}.chip-link.site{background:var(--navy);color:#fff}.preview-cta{margin:16px 14px 0;display:grid;gap:8px}.preview-cta .btn{text-decoration:none}.preview-pair{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}.preview-caption{font-size:13px;margin:0 0 8px}.banner-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.price-table{width:100%;border-collapse:collapse}.price-table td{padding:8px 0;border-bottom:1px solid var(--border)}.price-table td:last-child{text-align:right;font-weight:600}.ficha-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:24px;align-items:start}.ficha-fields{display:grid;gap:12px}.ficha-side{display:grid;gap:10px;position:sticky;top:16px}.ficha-side label{margin:0}@media(max-width:980px){.ficha-layout{grid-template-columns:1fr}.ficha-side{position:static}}.coverage-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:20px;align-items:start}@media(max-width:900px){.coverage-layout{grid-template-columns:1fr}}.pt-map{border:1px solid var(--border);border-radius:14px;background:var(--white);padding:14px}.pt-map.is-disabled{opacity:.65;pointer-events:none}.pt-map-legend{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px;font-size:13px}.pt-map-legend-left{display:flex;align-items:center;gap:10px;min-width:0}.pt-map-legend strong{color:var(--navy)}.pt-map-legend span{color:var(--muted);text-align:right}.pt-map-back{border:1px solid var(--border);background:var(--white);color:var(--navy);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.pt-map-back:hover{border-color:var(--navy);background:var(--bg)}.pt-map-svg{width:100%;max-height:520px;height:auto;display:block;background:transparent}.pt-district,.pt-concelho{outline:none;-webkit-tap-highlight-color:transparent}.pt-district:focus,.pt-concelho:focus{outline:none}.pt-district:focus-visible{stroke:var(--navy);stroke-width:2.4}.pt-concelho:focus-visible{stroke:var(--navy);stroke-width:1.8}.pt-district{fill:#8fb27d;stroke:#fff;stroke-width:1.1;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s ease,stroke .15s ease,opacity .15s ease}.pt-district:hover{fill:#6f9660;stroke:#fff}.pt-district.is-selected{fill:var(--navy);stroke:#fff;stroke-width:2}.pt-district.is-dim{opacity:.28;cursor:pointer}.pt-district.is-dim:hover{opacity:.55}.pt-district.is-focus{fill:#b7d1a3;stroke:none;pointer-events:none}.pt-concelho{fill:#cfe1c1;stroke:#fff;stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .12s ease,stroke .12s ease}.pt-concelho:hover{fill:#6f9660;stroke:#fff;stroke-width:1.6}.pt-concelho.is-selected{fill:var(--navy);stroke:#fff;stroke-width:1.6}.pt-concelho.is-selected:hover{fill:var(--navy)}.pt-inset rect{fill:var(--bg);stroke:var(--border);stroke-dasharray:3 3;stroke-width:1.2}.pt-inset text{fill:var(--muted);font-size:14px;font-weight:600;font-family:Inter,system-ui,sans-serif}.pt-map-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;min-height:28px}.pt-map-chips .muted{color:var(--muted)}.pt-chip{border:1px solid var(--border);background:var(--white);color:var(--navy);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.pt-chip:hover{border-color:var(--navy)}@media(max-width:800px){.layout{grid-template-columns:1fr}.side{display:flex;flex-wrap:wrap;gap:8px}.side .brand{width:100%;margin-bottom:8px}.filters,.filters-dates{grid-template-columns:1fr 1fr}}
