:root{--bg:#fafbff;--surface:#fff;--box-surface:#fff;--border:#9aa6b2;--text:#000;--muted:#000;--accent:#000;--shadow-soft:0 10px 24px rgba(58,45,32,.08);--shadow-subtle:0 2px 10px rgba(58,45,32,.06)}body.theme-dark{--bg:#0b1621;--surface:#142334;--border:#2c4157;--text:#e3eef9;--muted:#9bb8d3;--accent:#2dd4bf;--shadow-soft:0 10px 24px rgba(8,15,23,.35);--shadow-subtle:0 2px 10px rgba(8,15,23,.25)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.top-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;pointer-events:none;background:transparent;overflow:hidden}.top-progress:before{content:"";position:absolute;top:0;bottom:0;width:35%;background:linear-gradient(90deg,rgba(15,118,110,.2),var(--accent),rgba(15,118,110,.2));transform:translateX(-120%);opacity:0;transition:opacity .2s ease}.top-progress.is-active:before{opacity:1;animation:topbar-slide 1.1s ease-in-out infinite}@keyframes topbar-slide{0%{transform:translateX(-120%)}to{transform:translateX(320%)}}.pub-shell{min-height:100vh;display:flex;flex-direction:column}.pub-container{width:min(1120px,100%);margin:0 auto;padding:0 16px}.pub-header{border-bottom:1px solid var(--border);background:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 20px rgba(24,39,75,.06)}.pub-header-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:72px}.pub-brand{font-weight:700;color:var(--text);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.pub-brand-logo{width:158px;height:55px;display:block;max-width:100%}.pub-nav{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.pub-nav a{color:var(--text);padding:6px 10px;border-radius:999px}.pub-nav a:hover{background:#eef2f6}.pub-nav a:active{background:#e4eaf0}.pub-search-dock{z-index:40;border-bottom:1px solid var(--border);background:#ffffffea;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pub-search-dock .pub-container{padding-top:10px;padding-bottom:10px}.pub-theme-btn{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:4px 9px;cursor:pointer}.pub-search-wrap{position:relative;width:100%}.pub-search-form{display:flex;gap:8px;align-items:stretch;flex-wrap:nowrap}.pub-search-input-wrap{position:relative;flex:1 1 420px;min-width:240px;display:flex;align-items:center;height:46px}.pub-search-input{width:100%;min-width:0;border:1px solid var(--border);border-radius:999px;padding:0 96px 0 14px;font-size:16px;background:var(--surface);color:var(--text);height:46px;line-height:1.2}.pub-search-inset-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid #0f766e;border-radius:999px;background:#0f766e;color:#fff;padding:7px 16px;height:32px;line-height:1;cursor:pointer}.pub-search-inset-btn:disabled{opacity:.5;cursor:not-allowed}.pub-city-select:focus,.pub-search-input:focus{outline:none;border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}.pub-city-select{border:1px solid var(--border);border-radius:8px;padding:0 12px;font-size:15px;background:var(--surface);color:var(--text);min-width:200px;flex:0 0 240px;height:46px;line-height:1.2}.pub-search-btn{border:1px solid #0f766e;border-radius:8px;background:#0f766e;color:#fff;padding:11px 14px;cursor:pointer}.pub-search-btn:disabled{opacity:.5;cursor:not-allowed}.pub-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;border:1px solid var(--border);border-radius:10px;background:#fff;z-index:20;max-height:300px;overflow:auto}.pub-search-item{padding:8px 10px;border-bottom:1px solid #eef2f6;font-size:14px}.pub-search-item:last-child{border-bottom:none}.pub-search-item-btn{width:100%;background:transparent;border:none;text-align:left;display:flex;justify-content:space-between;cursor:pointer}.pub-search-item-btn:hover{background:#f0fdfa}.pub-search-item-btn.is-active{background:#ccfbf1}.pub-search-type{color:var(--muted);text-transform:uppercase;font-size:12px}.pub-main{flex:1 1;padding-top:22px;padding-bottom:28px}.pub-footer{border-top:1px solid var(--border);background:#ffffffaa}.pub-footer-inner{display:grid;grid-gap:16px;gap:16px;padding:20px 0 10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.pub-footer-title{margin:0 0 6px;font-size:.95rem;color:var(--text);font-weight:600}.pub-footer-text{margin:0 0 10px;color:var(--muted);font-size:14px}.pub-footer-links{display:flex;flex-direction:column;gap:6px}.pub-footer-link{color:#0f5132;text-decoration:none;font-size:14px}.pub-footer-link:hover{text-decoration:underline}.pub-footer-meta{margin:0;padding:10px 0 18px;color:var(--muted);font-size:13px;border-top:1px solid var(--border)}.pub-hero{margin-bottom:18px}.pub-title{margin:0 0 8px;font-size:clamp(1.6rem,2.5vw,2.4rem)}.pub-subtitle{margin:0;color:var(--muted);max-width:760px}.pub-card{border:1px solid var(--border);border-radius:12px;background:var(--box-surface);padding:16px;margin-top:14px;box-shadow:var(--shadow-subtle)}.pub-card-title{margin:0 0 10px;font-size:1.2rem}.pub-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.pub-grid-2{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pub-biz-card{border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--surface);display:grid;grid-gap:10px;gap:10px;box-shadow:var(--shadow-subtle)}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#f4f7fb}.app-sidebar{border-right:1px solid #d7e3ea;background:#fff;padding:20px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh;box-shadow:0 8px 24px rgba(15,23,42,.06)}.app-logo{display:inline-block;font-weight:700;font-size:1.1rem;color:#0f172a;margin-bottom:18px}.app-nav-section{margin:0 0 12px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:600}.app-nav{display:flex;flex-direction:column;gap:6px}.app-nav-link{padding:10px 12px;border-radius:10px;color:#334e68;border:1px solid transparent;text-decoration:none;font-weight:600}.app-nav-link:hover{background:#eef3f8;border-color:#d6e2ec;text-decoration:none}.app-nav-link.is-active{background:#0f766e;border-color:#0f766e;color:#fff;font-weight:600}.app-main{padding:24px}.app-topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.app-topbar-left{display:grid;grid-gap:4px;gap:4px}.app-topbar-right{display:flex;align-items:center;gap:12px}.app-search{position:relative;min-width:260px}.app-search-icon{position:absolute;left:12px;top:50%;width:18px;height:18px;color:#94a3b8;transform:translateY(-50%)}.app-search-input{width:100%;border:1px solid #e2e8f0;border-radius:999px;padding:10px 12px 10px 38px;background:#fff;font-size:.9rem;color:#0f172a}.app-icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;display:grid;place-items:center;color:#475569;cursor:pointer}.app-icon-btn:hover{background:#f1f5f9}.app-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#0f766e,#22c55e);color:#fff;font-weight:700;display:grid;place-items:center;font-size:.95rem}.app-user-meta{display:grid;grid-gap:2px;gap:2px}.app-user-name{font-weight:600;color:#0f172a;font-size:.95rem}.app-user-role{font-size:.8rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.app-logout{padding:6px 10px}.app-user{position:relative}.app-user-trigger{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:6px 10px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;min-width:200px}.app-user-trigger:hover{background:#f8fafc}.app-caret{color:#94a3b8}.app-user-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 16px 30px rgba(15,23,42,.12);display:grid;grid-gap:4px;gap:4px;padding:8px;z-index:20}.app-user-menu-link{padding:8px 10px;border-radius:8px;color:#0f172a;text-decoration:none;background:transparent;border:none;text-align:left;font-size:.9rem}.app-user-menu-link:hover{background:#f1f5f9}.app-title{margin:0;font-size:1.7rem;color:#102a43}.app-subtitle{margin:4px 0 0;color:#486581;max-width:72ch}.app-user{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-chip{padding:6px 10px;border-radius:999px;border:1px solid #c4d4df;background:#fff;color:#334e68;font-size:.85rem}.app-content{display:grid;grid-gap:14px;gap:14px}.app-card{border:1px solid #d1dee8;border-radius:14px;background:#fff;padding:16px}.app-card h2,.app-card h3{margin-top:0}.app-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.app-loading{min-height:100vh;display:grid;place-items:center;color:#334e68}.admin-shell{min-height:100vh;display:flex;background:#f3f6fb;color:#0f172a}.admin-sidebar{position:fixed;inset:0 auto 0 0;width:256px;background:#fff;border-right:1px solid #e2e8f0;box-shadow:0 10px 24px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:8px;z-index:50;transform:translateX(-100%);transition:transform .3s ease,width .3s ease}.admin-sidebar.is-open{transform:translateX(0)}.admin-sidebar.is-collapsed{width:88px;transform:translateX(0)}.admin-brand{display:flex;align-items:center;gap:12px;padding:22px 20px 14px}.admin-brand-icon{width:40px;height:40px;border-radius:14px;background:#4f46e5;color:#fff;display:grid;place-items:center;font-weight:700;letter-spacing:.4px;box-shadow:0 10px 18px rgba(79,70,229,.35)}.admin-brand-text{font-size:1.1rem;font-weight:700;color:#0f172a}.admin-nav{display:grid;grid-gap:6px;gap:6px;padding:6px 14px 14px}.admin-nav-link{display:grid;grid-template-columns:24px 1fr;align-items:center;grid-gap:12px;gap:12px;padding:10px 12px;border-radius:12px;color:#64748b;text-decoration:none;transition:background .2s ease,color .2s ease}.admin-nav-link:hover{background:#eef2ff;color:#1e1b4b;text-decoration:none}.admin-nav-link.is-active{background:#eef2ff;color:#4338ca;box-shadow:0 10px 18px rgba(67,56,202,.12)}.admin-nav-icon{color:currentColor}.admin-nav-label{font-size:.95rem;font-weight:600}.admin-user{margin-top:auto;padding:16px;border-top:1px solid #eef2f7;display:flex;align-items:center;gap:12px}.admin-user-avatar{width:40px;height:40px;border-radius:999px;background:#e0e7ff;color:#4338ca;display:grid;place-items:center;font-weight:700}.admin-user-meta{display:grid;grid-gap:2px;gap:2px}.admin-user-name{margin:0;font-size:.9rem;font-weight:700;color:#0f172a}.admin-user-role{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.admin-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:40}.admin-main{flex:1 1;margin-left:0;min-width:0;display:flex;flex-direction:column}.admin-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;height:64px;background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.admin-topbar-left,.admin-topbar-right{display:flex;align-items:center;gap:12px}.admin-toggle{border:1px solid #e2e8f0;background:#fff;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#64748b;cursor:pointer;transition:background .2s ease,color .2s ease}.admin-toggle:hover{background:#eef2f7;color:#1e293b}.admin-breadcrumbs{display:none;align-items:center;gap:8px;font-size:.9rem;color:#94a3b8}.admin-breadcrumbs-current{color:#0f172a;font-weight:600}.admin-icon-btn{position:relative;width:38px;height:38px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:grid;place-items:center;cursor:pointer;transition:background .2s ease,color .2s ease}.admin-icon-btn:hover{background:#eef2ff;color:#4338ca}.admin-icon-dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:999px;background:#f43f5e;border:2px solid #fff}.admin-divider{width:1px;height:26px;background:#e2e8f0}.admin-account{position:relative}.admin-account-btn{border:1px solid #e2e8f0;background:#fff;padding:4px 10px;border-radius:999px;display:flex;align-items:center;gap:8px;cursor:pointer}.admin-account-label{display:none;font-size:.9rem;font-weight:600;color:#334155}.admin-account-avatar{width:32px;height:32px;border-radius:999px;background:#e2e8f0;display:grid;place-items:center;color:#475569}.admin-account-caret{color:#94a3b8}.admin-menu{position:absolute;right:0;top:calc(100% + 8px);width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 18px 36px rgba(15,23,42,.18);padding:8px;display:grid;grid-gap:4px;gap:4px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.admin-account:hover .admin-menu{opacity:1;visibility:visible;transform:translateY(0)}.admin-menu-link,.admin-menu-logout{border:none;background:transparent;text-align:left;width:100%;padding:8px 10px;border-radius:10px;font-size:.9rem;display:flex;align-items:center;gap:8px;color:#334155;cursor:pointer}.admin-menu-link:hover,.admin-menu-logout:hover{background:#eef2ff;color:#4338ca;text-decoration:none}.admin-menu-sep{height:1px;background:#e2e8f0;margin:4px 0}.admin-menu-logout{color:#e11d48}.admin-menu-logout:hover{background:#ffe4e6;color:#be123c}.admin-content{padding:24px 20px 32px;flex:1 1}.admin-page{max-width:1200px;margin:0 auto}.admin-page-header{margin-bottom:20px}.admin-title{margin:0;font-size:2rem;font-weight:800;color:#0f172a}.admin-subtitle{margin:8px 0 0;color:#64748b;font-weight:500}.admin-fade-in{animation:admin-fade-in .5s ease}@keyframes admin-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (min-width:901px){.admin-sidebar.is-open~.admin-main{margin-left:256px}.admin-sidebar.is-collapsed~.admin-main{margin-left:88px}.admin-backdrop{display:none}.admin-breadcrumbs{display:flex}.admin-account-label{display:inline}}.app-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border-radius:10px;border:1px solid transparent;padding:9px 12px;cursor:pointer;font-size:.95rem}.btn-primary{background:#0f766e;border-color:#0f766e;color:#fff}.btn-ghost{border-color:#c6d7e3;background:#fff;color:#243b53}.form-input,.form-select,.form-textarea{width:100%;border:1px solid #cbd5f5;border-radius:12px;padding:11px 12px;background:#fff;color:#0f172a;font-size:.95rem;line-height:1.4;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.form-textarea{min-height:108px;resize:vertical}.form-row{display:grid;grid-gap:6px;gap:6px;margin-bottom:10px}.form-field{position:relative;display:grid}.form-input-password{padding-right:74px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:none;background:transparent;font-size:.8rem;font-weight:700;color:#4f46e5;cursor:pointer}.password-strength{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.strength-label{font-size:.8rem;font-weight:600;color:#64748b}.strength-bars{display:grid;grid-template-columns:repeat(4,26px);grid-gap:6px;gap:6px}.strength-bars span{height:6px;border-radius:999px;background:#e2e8f0}.password-strength.strength-1 .strength-bars span:nth-child(-n+1),.password-strength.strength-2 .strength-bars span:nth-child(-n+2),.password-strength.strength-3 .strength-bars span:nth-child(-n+3),.password-strength.strength-4 .strength-bars span:nth-child(-n+4){background:#4f46e5}.password-strength.strength-0 .strength-bars span:nth-child(-n+1){background:#f87171}.auth-card{max-width:520px;margin:48px auto;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:24px;box-shadow:0 16px 30px rgba(15,23,42,.08)}.auth-header{display:grid;grid-gap:6px;gap:6px;margin-bottom:18px}.auth-title{margin:0;font-size:1.6rem;font-weight:800;color:#0f172a}.auth-subtitle{margin:0;color:#64748b;font-size:.95rem}.auth-form{display:grid;grid-gap:12px;gap:12px}.auth-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-message{margin-top:12px;border-radius:12px;padding:10px 12px;font-weight:600;border:1px solid transparent}.form-message.is-success{background:#e7f5ff;border-color:#a5d8ff;color:#0b3d91}.form-message.is-error{background:#ffe4e6;border-color:#fda4af;color:#9f1239}.form-input.is-error,.form-select.is-error,.form-textarea.is-error{border-color:#e11d48;box-shadow:0 0 0 4px rgba(225,29,72,.12)}.form-row label{font-weight:600;font-size:.9rem;color:#1f2937}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.15);background:#fff}.form-input::placeholder,.form-textarea::placeholder{color:#94a3b8}.form-help{font-size:.82rem;color:#64748b}.form-error{font-size:.82rem;color:#b91c1c;font-weight:600}.form-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-inline .form-input,.form-inline .form-select{flex:1 1 200px}.form-group{border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff;box-shadow:0 10px 18px rgba(15,23,42,.06)}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:#4f46e5}select.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#64748b 0),linear-gradient(135deg,#64748b 50%,transparent 0);background-position:calc(100% - 16px) 50%,calc(100% - 10px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:32px}.admin-shell input:not([type=checkbox]):not([type=radio]),.admin-shell select,.admin-shell textarea,.pub-shell input:not([type=checkbox]):not([type=radio]),.pub-shell select,.pub-shell textarea{border:1px solid #cbd5f5;border-radius:12px;padding:10px 12px;background:#fff;color:#0f172a;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.admin-shell input:not([type=checkbox]):not([type=radio]):focus,.admin-shell select:focus,.admin-shell textarea:focus,.pub-shell input:not([type=checkbox]):not([type=radio]):focus,.pub-shell select:focus,.pub-shell textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.15)}.msg{border-radius:10px;padding:10px 12px}.msg-error{background:#ffe8e8;border:1px solid #eab4b4;color:#7a2525}.msg-success{background:#e6fbf2;border:1px solid #a7e7cd;color:#205a43}.auth-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}@media (max-width:900px){.admin-sidebar{width:260px}.admin-sidebar.is-collapsed{width:260px;transform:translateX(-100%)}.admin-main{margin-left:0}.admin-breadcrumbs{display:none}.app-shell{grid-template-columns:1fr}.app-sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid #d7e3ea}.app-main{padding:14px}}.pub-biz-card-list{grid-template-columns:220px minmax(0,1fr);align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:var(--shadow-subtle)}.pub-biz-image-wrap{border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#fbf3e7;min-height:130px}.pub-biz-image-link{display:block;width:100%;height:100%}.pub-ad{border:1px dashed var(--border);border-radius:12px;padding:14px;background:color-mix(in oklab,var(--surface) 92%,#9ebff4 8%);display:grid;grid-gap:12px;gap:12px}.pub-ad-media{width:100%;aspect-ratio:16/5;border-radius:10px;border:1px solid var(--border);background:linear-gradient(135deg,rgba(15,118,110,.12),rgba(14,165,233,.12));display:grid;place-items:center;color:var(--muted);font-size:14px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.pub-ad-body{display:grid;grid-gap:6px;gap:6px}.pub-ad-title{margin:0;font-size:1.1rem}.pub-ad-actions{display:flex;flex-wrap:wrap;gap:8px}.pub-ad-form{margin-top:6px}.pub-ad-form,.pub-ad-grid{display:grid;grid-gap:10px;gap:10px}.pub-ad-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.pub-ad-inline{background:color-mix(in oklab,var(--surface) 90%,#38bdf8 10%)}.pub-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);display:grid;place-items:center;padding:16px;z-index:60}.pub-modal{width:min(720px,100%);max-height:min(85vh,720px);overflow:auto;background:var(--surface);border-radius:14px;padding:18px;border:1px solid var(--border);box-shadow:0 10px 30px rgba(15,23,42,.2)}.pub-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.pub-modal-title{margin:0 0 4px;font-size:1.2rem}.pub-ad-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;color:#fff;border:1px solid #0f766e;font-weight:600}.pub-ad-btn:hover{text-decoration:none}.pub-ad-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;border:1px solid var(--border);color:var(--text);background:var(--surface);font-weight:600}.pub-ad-link:hover{text-decoration:none;background:#f0fdfa}.pub-biz-image{display:block;width:100%;height:100%;object-fit:cover}.pub-biz-body{display:grid;align-content:start;grid-gap:6px;gap:6px}.pub-biz-title{margin:0 0 6px;font-size:1.03rem}.pub-biz-address{margin:0 0 5px;color:var(--muted)}.pub-biz-meta{margin:0;color:var(--muted);font-size:13px}.pub-list-results{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px}.pub-tab-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px;border-radius:999px;background:color-mix(in oklab,var(--surface) 86%,#d9eafd 14%)}.pub-tab-btn,.pub-tab-row{border:1px solid var(--border)}.pub-tab-btn{border-radius:999px;padding:7px 12px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:600;font-size:15px}.pub-tab-btn.is-active{background:color-mix(in oklab,#0f766e 86%,#fff 14%);border-color:#0f766e;color:#fff}.pub-menu-list{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.pub-menu-item{border:1px solid var(--border);border-radius:10px;padding:12px;background:color-mix(in oklab,var(--surface) 94%,#cbd5f5 6%);box-shadow:var(--shadow-subtle)}.pub-menu-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.pub-menu-count{font-size:12px;color:var(--muted)}.pub-menu-items{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.pub-menu-row{border-top:1px dashed var(--border);padding-top:8px}.pub-menu-row:first-child{border-top:none;padding-top:0}.pub-menu-row-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.pub-menu-name{font-weight:700;font-size:15px}.pub-menu-price{color:#0f766e;font-weight:600;white-space:nowrap}.pub-menu-desc{margin-top:4px;line-height:1.5}.pub-menu-chips{display:flex;flex-wrap:wrap;gap:8px}.pub-menu-chip{border:1px solid var(--border);border-radius:999px;padding:5px 10px;background:color-mix(in oklab,var(--surface) 90%,#22c55e 10%);font-size:13px}.pub-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-subtle)}.pub-table{width:100%;border-collapse:collapse;font-size:14px}.pub-table td,.pub-table th{border-bottom:1px solid var(--border);padding:10px;text-align:left;vertical-align:top}.pub-table th{background:color-mix(in oklab,var(--surface) 90%,#e0f2fe 10%);font-weight:600}.pub-stars{color:#d97706;letter-spacing:.5px}.pub-chip-list{display:flex;flex-wrap:wrap;gap:8px}.pub-chip{border:1px solid var(--border);border-radius:999px;padding:5px 10px;color:var(--text);background:#e2ecfc}.pub-chip:hover{text-decoration:none;background:#9ebff4}body.theme-dark .pub-chip{color:#f8fafc;border-color:#36516a;background:#1e3a4d}body.theme-dark .pub-chip:hover{background:#24506a}.pub-link-group{margin-bottom:12px}.pub-link-title{margin:0 0 8px;font-size:1rem}.pub-muted{color:var(--muted)}.pub-compact p{margin:4px 0;font-size:13px}.pub-code{display:inline-block;padding:2px 6px;border-radius:6px;background:#e2e8f0;color:#334e68;font-size:13px}.pub-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.pub-pagination{margin-top:12px;display:flex;align-items:center;gap:10px}.pub-page-link{border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--text);background:#fff}.pub-breadcrumbs{margin:0 0 10px;color:var(--muted);font-size:14px}.pub-showcase{margin-top:10px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.pub-showcase-main,.pub-showcase-thumb{border:1px solid var(--border);border-radius:12px;overflow:hidden;padding:0;margin:0;background:var(--surface);cursor:pointer}.pub-showcase-main{min-height:300px}.pub-showcase-main img,.pub-showcase-thumb img{display:block;width:100%;height:100%;object-fit:cover}.pub-showcase-side{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.pub-showcase-thumb{min-height:145px}.pub-inline-btn{margin-top:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:7px 10px;cursor:pointer}.pub-inline-btn:hover{background:#ecfeff}.pub-contact-panel{margin:10px 0;padding:10px;border:1px solid var(--border);border-radius:10px;background:color-mix(in oklab,var(--surface) 94%,#22c55e 6%)}.pub-contact-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pub-contact-gate{position:fixed;inset:0;z-index:1200;background:rgba(2,8,23,.7);display:grid;place-items:center;padding:14px}.pub-contact-card{width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.pub-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(2,8,23,.92);display:grid;align-items:center;justify-items:center;grid-template-columns:80px minmax(0,1fr) 80px;grid-template-rows:auto 1fr auto;padding:14px;grid-gap:10px;gap:10px}.pub-lightbox-close{grid-column:3;grid-row:1;justify-self:end;padding:6px 12px}.pub-lightbox-close,.pub-lightbox-nav{border:1px solid #cbd5e1;border-radius:999px;background:rgba(15,23,42,.8);color:#f8fafc;cursor:pointer}.pub-lightbox-nav{width:44px;height:44px}.pub-lightbox-nav.prev{grid-column:1;grid-row:2;justify-self:center}.pub-lightbox-nav.next{grid-column:3;grid-row:2;justify-self:center}.pub-lightbox-frame{grid-column:2;grid-row:2;width:min(1000px,88vw);height:min(76vh,760px);border-radius:14px;overflow:hidden;border:1px solid rgba(148,163,184,.4);background:#020617}.pub-lightbox-frame img{width:100%;height:100%;object-fit:contain;display:block}.pub-lightbox-counter{grid-column:2;grid-row:3;color:#e2e8f0;font-size:14px}.pub-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-top:10px}.pub-media-card{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-subtle)}.pub-media-card img{display:block;width:100%;height:150px;object-fit:cover}.pub-facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:10px;gap:10px;margin-top:10px}.pub-fact{background:color-mix(in oklab,var(--surface) 92%,#fff 8%)}.pub-fact,.pub-hours-block{border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:var(--shadow-subtle)}.pub-hours-block{margin:10px 0;background:color-mix(in oklab,var(--surface) 94%,#e9d6bd 6%)}.pub-review-list{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.pub-review-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:color-mix(in oklab,var(--surface) 95%,#f3d8b3 5%);box-shadow:var(--shadow-subtle)}@media (max-width:720px){.pub-header-inner{flex-wrap:wrap;padding:10px 0;justify-content:center}.pub-brand,.pub-nav{width:100%;justify-content:center}.pub-nav{gap:12px}.pub-brand-logo{width:158px;height:55px}.pub-search-form{flex-direction:column;gap:10px}.pub-city-select,.pub-search-btn,.pub-search-input-wrap{width:100%}.pub-search-input{padding-right:88px}.pub-search-input-wrap{height:46px;max-height:46px}.pub-city-select{flex:1 1 auto}.pub-search-btn{justify-content:center}.pub-ad-media{aspect-ratio:16/7}.pub-ad-grid,.pub-biz-card-list,.pub-showcase{grid-template-columns:1fr}.pub-showcase-main{min-height:220px}.pub-showcase-thumb{min-height:110px}.pub-lightbox{grid-template-columns:50px minmax(0,1fr) 50px;padding:8px}.pub-lightbox-frame{width:min(1000px,92vw);height:min(70vh,640px)}}.pub-shell{background:#f7f9fc;font-family:Trebuchet MS,Segoe UI,sans-serif}.pub-header{position:relative;border-bottom:1px solid rgba(148,163,184,.3);background:hsla(0,0%,100%,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(15,23,42,.08)}.pub-header-inner{min-height:76px}.pub-brand{font-weight:800;font-size:1.05rem;color:#0f172a}.pub-nav a{background:transparent;border:1px solid transparent;padding:6px 14px;font-weight:600;color:#1e293b}.pub-nav a:hover{background:#eef2ff;border-color:#c7d2fe;text-decoration:none}.pub-theme-btn{border:1px solid #cbd5f5;background:#fff;color:#3730a3;font-weight:600;padding:6px 12px;border-radius:999px}.pub-search-dock{position:-webkit-sticky;position:sticky;top:0;z-index:60;border-bottom:1px solid rgba(148,163,184,.35);background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.pub-city-select,.pub-search-input{border-color:#cbd5f5;background:#fff;box-shadow:0 10px 20px rgba(15,23,42,.08)}.pub-search-btn,.pub-search-inset-btn{background:#4338ca;border-color:#4338ca;box-shadow:0 12px 22px rgba(67,56,202,.24)}.pub-search-btn:hover,.pub-search-inset-btn:hover{background:#3730a3;border-color:#3730a3}.pub-main{padding-top:28px;padding-bottom:32px}.pub-hero{background:linear-gradient(120deg,hsla(0,0%,100%,.9),rgba(238,242,255,.7));border:1px solid rgba(148,163,184,.3);border-radius:18px;padding:22px;box-shadow:0 12px 24px rgba(15,23,42,.08)}.pub-title{color:#0f172a;font-weight:800}.pub-subtitle{color:#475569}.pub-ad,.pub-biz-card,.pub-card,.pub-fact,.pub-hours-block,.pub-menu-item,.pub-review-card{border-color:rgba(148,163,184,.35);box-shadow:0 12px 24px rgba(15,23,42,.08)}.pub-biz-card,.pub-card{background:#fff}.pub-biz-image-wrap{background:#eef2ff;border-color:rgba(148,163,184,.4)}.pub-ad{background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(16,185,129,.12))}.pub-ad-btn{background:#0f766e;border-color:#0f766e;box-shadow:0 10px 16px rgba(15,118,110,.24)}.pub-ad-btn:hover{background:#0b5b55;border-color:#0b5b55}.pub-chip{border-color:#cbd5f5;background:#eef2ff;color:#312e81}.pub-chip:hover{background:#c7d2fe}.pub-inline-btn,.pub-page-link{border-color:#cbd5f5;background:#fff}.pub-inline-btn:hover,.pub-page-link:hover{background:#eef2ff;text-decoration:none}.pub-footer{border-top:1px solid rgba(148,163,184,.35);background:hsla(0,0%,100%,.9)}.pub-footer-meta{color:#64748b}body.theme-dark .pub-shell{background:#0b1220;color:#e2e8f0}body.theme-dark .pub-header{background:rgba(15,23,42,.9);border-bottom-color:rgba(30,41,59,.9);box-shadow:0 16px 34px rgba(2,6,23,.7)}body.theme-dark .pub-brand,body.theme-dark .pub-nav a{color:#e2e8f0}body.theme-dark .pub-nav a:hover{background:rgba(30,41,59,.7);border-color:rgba(71,85,105,.7)}body.theme-dark .pub-theme-btn{border-color:rgba(71,85,105,.8);background:rgba(15,23,42,.85);color:#c7d2fe}body.theme-dark .pub-search-dock{background:rgba(15,23,42,.95);border-bottom-color:rgba(30,41,59,.9)}body.theme-dark .pub-city-select,body.theme-dark .pub-search-input{border-color:rgba(71,85,105,.8);background:rgba(15,23,42,.95);color:#e2e8f0;box-shadow:0 16px 26px rgba(2,6,23,.5)}body.theme-dark .pub-search-input::placeholder{color:rgba(226,232,240,.6)}body.theme-dark .pub-search-btn,body.theme-dark .pub-search-inset-btn{background:#4f46e5;border-color:#4f46e5;box-shadow:0 16px 26px rgba(79,70,229,.38)}body.theme-dark .pub-search-btn:hover,body.theme-dark .pub-search-inset-btn:hover{background:#4338ca;border-color:#4338ca}body.theme-dark .pub-ad,body.theme-dark .pub-biz-card,body.theme-dark .pub-card,body.theme-dark .pub-contact-card,body.theme-dark .pub-fact,body.theme-dark .pub-hero,body.theme-dark .pub-hours-block,body.theme-dark .pub-menu-item,body.theme-dark .pub-modal,body.theme-dark .pub-review-card,body.theme-dark .pub-table-wrap{background:rgba(15,23,42,.95);border-color:rgba(30,41,59,.9);color:#e2e8f0;box-shadow:0 20px 40px rgba(2,6,23,.6)}body.theme-dark .pub-title{color:#f8fafc}body.theme-dark .pub-biz-address,body.theme-dark .pub-biz-meta,body.theme-dark .pub-footer-text,body.theme-dark .pub-muted,body.theme-dark .pub-review-card,body.theme-dark .pub-subtitle{color:#94a3b8}body.theme-dark .pub-ad-media,body.theme-dark .pub-biz-image-wrap{background:rgba(30,41,59,.8);border-color:rgba(51,65,85,.7)}body.theme-dark .pub-ad{background:linear-gradient(135deg,rgba(79,70,229,.22),rgba(15,23,42,.85))}body.theme-dark .pub-ad-btn{background:#4f46e5;border-color:#4f46e5;color:#eef2ff;box-shadow:0 16px 26px rgba(79,70,229,.38)}body.theme-dark .pub-ad-btn:hover{background:#4338ca;border-color:#4338ca}body.theme-dark .pub-chip{background:rgba(30,41,59,.9);border-color:rgba(71,85,105,.9);color:#e2e8f0}body.theme-dark .pub-chip:hover{background:rgba(59,130,246,.25)}body.theme-dark .pub-inline-btn,body.theme-dark .pub-page-link{background:rgba(15,23,42,.95);border-color:rgba(71,85,105,.85);color:#e2e8f0}body.theme-dark .pub-inline-btn:hover,body.theme-dark .pub-page-link:hover{background:rgba(30,41,59,.9)}body.theme-dark .pub-footer{background:rgba(15,23,42,.95);border-top-color:rgba(51,65,85,.7)}body.theme-dark .pub-footer-link,body.theme-dark .pub-footer-meta,body.theme-dark .pub-footer-title{color:#e2e8f0}body.theme-dark .pub-footer-link:hover{color:#c7d2fe}body.theme-dark .admin-shell{background:#0b1220;color:#e2e8f0}body.theme-dark .admin-sidebar{background:rgba(15,23,42,.95);border-right-color:rgba(30,41,59,.9);box-shadow:0 18px 32px rgba(2,6,23,.6)}body.theme-dark .admin-brand-text,body.theme-dark .admin-nav-link,body.theme-dark .admin-title,body.theme-dark .admin-user-name{color:#e2e8f0}body.theme-dark .admin-nav-link{color:#94a3b8}body.theme-dark .admin-nav-link.is-active,body.theme-dark .admin-nav-link:hover{background:rgba(79,70,229,.2);color:#e0e7ff}body.theme-dark .admin-user{border-top-color:rgba(30,41,59,.9)}body.theme-dark .admin-user-avatar{background:rgba(79,70,229,.25);color:#c7d2fe}body.theme-dark .admin-breadcrumbs,body.theme-dark .admin-subtitle,body.theme-dark .admin-user-role{color:#94a3b8}body.theme-dark .admin-topbar{background:rgba(15,23,42,.9);border-bottom-color:rgba(30,41,59,.9)}body.theme-dark .admin-account-btn,body.theme-dark .admin-icon-btn,body.theme-dark .admin-toggle{background:rgba(15,23,42,.95);border-color:rgba(71,85,105,.85);color:#cbd5f5}body.theme-dark .admin-icon-btn:hover,body.theme-dark .admin-toggle:hover{background:rgba(79,70,229,.18);color:#e0e7ff}body.theme-dark .admin-account-avatar{background:rgba(30,41,59,.9);color:#cbd5f5}body.theme-dark .admin-menu{background:rgba(15,23,42,.95);border-color:rgba(30,41,59,.9);box-shadow:0 18px 36px rgba(2,6,23,.7)}body.theme-dark .admin-menu-link,body.theme-dark .admin-menu-logout{color:#cbd5f5}body.theme-dark .admin-menu-link:hover{background:rgba(79,70,229,.18);color:#e0e7ff}body.theme-dark .admin-menu-logout:hover{background:hsla(0,91%,71%,.18);color:#fecaca}body.theme-dark .form-input,body.theme-dark .form-select,body.theme-dark .form-textarea{border-color:rgba(71,85,105,.85);background:rgba(15,23,42,.95);color:#e2e8f0}body.theme-dark .form-input:focus,body.theme-dark .form-select:focus,body.theme-dark .form-textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.25)}body.theme-dark .form-row label{color:#e2e8f0}body.theme-dark .password-toggle{color:#c7d2fe}body.theme-dark .strength-label{color:#94a3b8}body.theme-dark .strength-bars span{background:rgba(51,65,85,.9)}body.theme-dark .form-help{color:#94a3b8}body.theme-dark .auth-card,body.theme-dark .form-group{border-color:rgba(30,41,59,.9);background:rgba(15,23,42,.95)}body.theme-dark .auth-card{box-shadow:0 18px 36px rgba(2,6,23,.7)}body.theme-dark .auth-title{color:#f8fafc}body.theme-dark .auth-subtitle{color:#94a3b8}body.theme-dark .form-message.is-success{background:rgba(56,189,248,.18);border-color:rgba(56,189,248,.4);color:#e0f2fe}body.theme-dark .form-message.is-error{background:hsla(0,91%,71%,.18);border-color:hsla(0,91%,71%,.4);color:#fecaca}body.theme-dark .form-input.is-error,body.theme-dark .form-select.is-error,body.theme-dark .form-textarea.is-error{border-color:hsla(0,91%,71%,.8);box-shadow:0 0 0 4px hsla(0,91%,71%,.2)}body.theme-dark .admin-shell input:not([type=checkbox]):not([type=radio]),body.theme-dark .admin-shell select,body.theme-dark .admin-shell textarea,body.theme-dark .pub-shell input:not([type=checkbox]):not([type=radio]),body.theme-dark .pub-shell select,body.theme-dark .pub-shell textarea{border-color:rgba(71,85,105,.85);background:rgba(15,23,42,.95);color:#e2e8f0}body.theme-dark .admin-shell input:not([type=checkbox]):not([type=radio]):focus,body.theme-dark .admin-shell select:focus,body.theme-dark .admin-shell textarea:focus,body.theme-dark .pub-shell input:not([type=checkbox]):not([type=radio]):focus,body.theme-dark .pub-shell select:focus,body.theme-dark .pub-shell textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 4px rgba(79,70,229,.25)}