:root{--primary:#1d4ed8;--primary-light:#3b82f6;--bg:#f1f5f9;--card-bg:#fff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--danger:#ef4444;--success:#22c55e;--radius:12px;--shadow:0 2px 12px #00000014}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.topbar{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-logo{color:var(--primary);font-size:18px;font-weight:800}.topbar-logo span{color:var(--text);margin-left:4px;font-size:13px;font-weight:400}.topbar-spacer{flex:1}.topbar-user{color:var(--text-muted);font-size:13px}.topbar-logout{color:var(--danger);background:0 0;border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.topbar-logout:hover{background:#fee2e2}.page{max-width:1100px;margin:0 auto;padding:32px 24px}.page-title{margin-bottom:4px;font-size:22px;font-weight:700}.page-sub{color:var(--text-muted);margin-bottom:24px;font-size:14px}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.filter-bar input{border:1.5px solid var(--border);border-radius:8px;outline:none;flex:1;min-width:200px;max-width:360px;padding:10px 16px;font-size:14px}.filter-bar input:focus{border-color:var(--primary)}.filter-bar select{border:1.5px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;outline:none;padding:10px 14px;font-size:13px}.partner-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.partner-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,box-shadow .15s;overflow:hidden}.partner-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f}.partner-card-logo{background:#f8fafc;justify-content:center;align-items:center;height:130px;font-size:52px;display:flex}.partner-card-logo img{object-fit:cover;width:100%;height:100%}.partner-card-body{padding:16px}.partner-card-name{margin-bottom:4px;font-size:15px;font-weight:700}.partner-card-meta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.partner-card-cat{color:#1d4ed8;background:#eff6ff;border-radius:6px;margin-top:8px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.partner-card-cta{text-align:center;background:var(--primary);color:#fff;border-radius:8px;margin-top:14px;padding:9px;font-size:13px;font-weight:600;display:block}.auth-page{background:linear-gradient(135deg,#1d4ed8 0%,#3b82f6 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-box{background:#fff;border-radius:16px;width:100%;max-width:420px;padding:40px;box-shadow:0 20px 60px #00000026}.auth-logo{color:var(--primary);margin-bottom:4px;font-size:22px;font-weight:800}.auth-sub{color:#64748b;margin-bottom:28px;font-size:13px}.auth-error{color:var(--danger);background:#fee2e2;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.form-group input{border:1.5px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s}.form-group input:focus{border-color:var(--primary)}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:11px;font-size:14px;font-weight:600;display:block}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-primary:hover:not(:disabled){background:#1e40af}.store-header{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;overflow:hidden}.store-header-top{background:linear-gradient(135deg,#1d4ed8,#60a5fa);justify-content:center;align-items:center;height:160px;font-size:64px;display:flex}.store-header-top img{object-fit:cover;width:100%;height:100%}.store-header-body{padding:24px}.store-header-name{margin-bottom:6px;font-size:22px;font-weight:800}.store-header-meta{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.store-header-meta span{align-items:center;gap:4px;display:flex}.store-header-desc{color:#475569;font-size:14px}.store-contact{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.contact-btn{border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.contact-btn-whatsapp{color:#fff;background:#22c55e}.contact-btn-web{color:var(--text);background:#f1f5f9}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.product-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.product-card-img{background:#f8fafc;justify-content:center;align-items:center;height:160px;font-size:40px;display:flex}.product-card-img img{object-fit:cover;width:100%;height:100%}.product-card-body{padding:14px}.product-card-name{margin-bottom:4px;font-size:14px;font-weight:600}.product-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px;font-size:12px;display:-webkit-box;overflow:hidden}.product-card-price{color:var(--primary);margin-bottom:10px;font-size:16px;font-weight:800}.product-card-price.consult{color:var(--text-muted);font-size:13px;font-style:italic;font-weight:400}.product-card-actions{flex-direction:column;gap:6px;display:flex}.product-btn{border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:600;display:flex}.product-btn-whatsapp{color:#fff;background:#22c55e}.product-btn-link{color:var(--text);background:#f1f5f9}.back-link{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;display:inline-flex}.back-link:hover{color:var(--primary)}.empty{text-align:center;color:#94a3b8;padding:48px 0}.empty-icon{margin-bottom:12px;font-size:48px}
