
:root{
  --bg:#f5f5f7;--panel:#ffffff;--panel2:#fbfbfd;--text:#1d1d1f;--muted:#6e6e73;
  --line:rgba(0,0,0,.10);--accent:#b43b1f;--accent2:#e35f32;--good:#137a46;--danger:#b42318;
  --shadow:0 18px 60px rgba(0,0,0,.09);--soft-shadow:0 8px 30px rgba(0,0,0,.06);
  --radius:26px;--radius-sm:16px;--header:rgba(255,255,255,.86)
}
body[data-design-theme="botanical"]{--accent:#0f6a43;--accent2:#38a36f}
body[data-design-theme="neon"]{--accent:#7757ff;--accent2:#31d8c8;--bg:#11121a;--panel:#1b1c27;--panel2:#202231;--text:#f7f7fb;--muted:#aaaabd;--line:rgba(255,255,255,.12);--header:rgba(19,20,29,.88)}
body[data-design-theme="street"]{--accent:#b42318;--accent2:#ef7b45}
body[data-design-theme="minimal"]{--accent:#0066cc;--accent2:#48a1ff}
body[data-design-theme="heritage"]{--accent:#6b3b22;--accent2:#a86b43}
@media(prefers-color-scheme:dark){body[data-appearance="system"]{--bg:#0f1013;--panel:#191a1f;--panel2:#202127;--text:#f5f5f7;--muted:#a1a1a8;--line:rgba(255,255,255,.12);--header:rgba(15,16,19,.88);--shadow:0 18px 60px rgba(0,0,0,.32)}}
body[data-appearance="dark"],body[data-mode="dark"]{--bg:#0f1013;--panel:#191a1f;--panel2:#202127;--text:#f5f5f7;--muted:#a1a1a8;--line:rgba(255,255,255,.12);--header:rgba(15,16,19,.88);--shadow:0 18px 60px rgba(0,0,0,.32)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.site-header{position:sticky;top:0;z-index:50;min-height:76px;padding:12px max(18px,4vw);display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.directory-brand,.admin-brand,.install-brand{display:flex;align-items:center;gap:12px;min-width:0}
.directory-brand>span:last-child,.admin-brand>span:last-child,.install-brand>div{display:grid;line-height:1.15}
.directory-brand strong,.admin-brand strong,.install-brand strong{font-size:17px;letter-spacing:-.02em}
.directory-brand small,.admin-brand small,.install-brand small{color:var(--muted);font-size:11px;margin-top:4px}
.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent2));color:#fff;font-size:21px;font-weight:900;box-shadow:0 10px 25px color-mix(in srgb,var(--accent) 28%,transparent)}
.desktop-nav{display:flex;align-items:center;gap:26px;font-weight:750}
.desktop-nav a:hover{color:var(--accent)}
.header-actions{display:flex;align-items:center;gap:10px}
.mode-toggle,.admin-link,.button{border:0;cursor:pointer;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;transition:.18s ease}
.mode-toggle{width:42px;height:42px;background:var(--panel);color:var(--text);border:1px solid var(--line)}
.admin-link{padding:11px 17px;background:var(--text);color:var(--bg)}
.page-shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:44px 0 90px}
.hero{min-height:510px;display:grid;grid-template-columns:1.16fr .84fr;gap:44px;align-items:center;padding:24px 0 54px}
.hero-copy h1{font-size:clamp(48px,7vw,84px);line-height:.95;letter-spacing:-.055em;margin:12px 0 22px;max-width:850px}
.hero-copy p{font-size:19px;color:var(--muted);max-width:680px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-size:11px;font-weight:900}
.search-card,.panel,.result-card,.restaurant-card,.stat-card,.review-card,.install-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.search-card{padding:26px;display:grid;gap:16px}
.search-card h2{margin:0;font-size:26px;letter-spacing:-.03em}
.form-stack{display:grid;gap:16px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:grid;gap:7px;font-weight:760}
label small{font-weight:500;color:var(--muted)}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--text);padding:13px 14px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}
textarea{min-height:120px;resize:vertical}
.button{padding:12px 18px;background:var(--accent);color:#fff}
.button:hover{transform:translateY(-1px);box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 22%,transparent)}
.button.primary{background:linear-gradient(135deg,var(--accent),var(--accent2))}
.button.ghost{background:var(--panel);color:var(--text);border:1px solid var(--line)}
.button.danger{background:var(--danger);color:#fff}
.button.small{padding:8px 12px;font-size:12px}
.actions,.inline-actions,.filter-bar,.pill-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:34px 0 18px}
.section-head h1,.section-head h2{margin:0;letter-spacing:-.035em}
.section-head p{margin:5px 0 0;color:var(--muted)}
.result-list{display:grid;gap:18px}
.result-card{overflow:hidden;display:grid;grid-template-columns:180px 1fr 285px;min-height:210px}
.result-image{background:var(--panel2);min-height:100%;position:relative}
.result-image img{width:100%;height:100%;object-fit:cover}
.result-image .fallback{height:100%;display:grid;place-items:center;font-size:40px;font-weight:900;color:var(--accent)}
.result-main{padding:23px;display:grid;align-content:start;gap:9px}
.result-main h2{margin:0;font-size:24px;letter-spacing:-.03em}
.result-main p{margin:0;color:var(--muted)}
.restaurant-line{display:flex;align-items:center;gap:9px;font-weight:800}
.restaurant-logo{width:30px;height:30px;border-radius:9px;object-fit:cover;background:var(--panel2)}
.result-compare{padding:23px;border-left:1px solid var(--line);display:grid;align-content:center;gap:10px;background:color-mix(in srgb,var(--panel2) 72%,transparent)}
.price{font-size:34px;font-weight:900;letter-spacing:-.045em}
.old-price{text-decoration:line-through;color:var(--muted);font-size:14px;margin-left:8px}
.compare-row{display:flex;justify-content:space-between;gap:14px;color:var(--muted)}
.compare-row strong{color:var(--text)}
.badge,.rating-pill,.status-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:11px;font-weight:850}
.status-pill.open,.badge.allowed{background:color-mix(in srgb,#22a561 14%,var(--panel));color:#168148}
.status-pill.closed,.badge.disallowed{background:color-mix(in srgb,#d44332 12%,var(--panel));color:#b42318}
.badge.pending{background:color-mix(in srgb,#f5a623 14%,var(--panel));color:#956000}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.restaurant-card{overflow:hidden;display:flex;flex-direction:column}
.restaurant-hero{height:150px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,var(--panel2)),var(--panel2));position:relative}
.restaurant-hero img{width:100%;height:100%;object-fit:cover}
.restaurant-card-body{padding:20px;display:grid;gap:10px;flex:1}
.restaurant-card h3{margin:0;font-size:21px}
.restaurant-card p{margin:0;color:var(--muted)}
.restaurant-meta{display:flex;gap:8px;flex-wrap:wrap}
.restaurant-page-head{display:grid;grid-template-columns:130px 1fr auto;gap:22px;align-items:center}
.restaurant-page-logo{width:130px;height:130px;border-radius:30px;object-fit:cover;background:var(--panel2);border:1px solid var(--line)}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.product-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.product-card img{width:100%;height:170px;object-fit:cover;background:var(--panel2)}
.product-card-body{padding:17px;display:grid;gap:8px;flex:1}
.product-card h3{margin:0}
.product-card p{margin:0;color:var(--muted)}
.panel{padding:24px}
.notice{padding:14px 16px;border-radius:16px;margin-bottom:18px;border:1px solid}
.notice.success{background:#ecf8f1;color:#11683b;border-color:#bfe5cf}
.notice.error{background:#fff0ef;color:#8e2018;border-color:#efc3bf}
.empty-state{padding:50px 24px;text-align:center;color:var(--muted)}
.review-list{display:grid;gap:12px}
.review-card{padding:18px;box-shadow:var(--soft-shadow)}
.review-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.review-card p{margin-bottom:0;color:var(--muted)}
.star{color:#f5a623}
.site-footer{padding:38px max(18px,5vw);background:var(--text);color:var(--bg);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.site-footer>div:first-child{display:grid;gap:5px}
.site-footer span,.site-footer small{opacity:.72}
.footer-links{display:flex;gap:18px}
.install-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 15%,transparent),transparent 42%),var(--bg)}
.install-shell{width:min(860px,100%)}
.install-card{padding:32px}
.install-card h1{font-size:clamp(38px,6vw,62px);line-height:1;letter-spacing:-.05em;margin:18px 0}
.install-card h2{margin:10px 0 0}
.install-brand{margin-bottom:28px}
.admin-body{min-height:100vh;display:grid;grid-template-columns:270px 1fr;background:var(--bg)}
.admin-sidebar{position:sticky;top:0;height:100vh;background:#151518;color:#fff;padding:22px;display:flex;flex-direction:column;gap:26px}
.admin-sidebar .brand-mark{width:38px;height:38px;border-radius:12px}
.admin-sidebar nav{display:grid;gap:7px}
.admin-sidebar nav a{padding:11px 12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;color:#e8e8ea;font-weight:720}
.admin-sidebar nav a:hover{background:#2a2a2f}
.nav-count{min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:var(--accent);font-size:11px}
.admin-sidebar-bottom{margin-top:auto;display:grid;gap:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
.admin-sidebar-bottom span{font-weight:800}
.admin-sidebar-bottom a{color:#bbb}
.admin-workspace{min-width:0}
.admin-topbar{padding:24px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--header);backdrop-filter:blur(18px)}
.admin-topbar h1{margin:2px 0 0;letter-spacing:-.04em}
.admin-main{padding:26px 30px 70px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.stat-card{padding:20px;box-shadow:var(--soft-shadow)}
.stat-card span{color:var(--muted)}
.stat-card strong{display:block;font-size:35px;letter-spacing:-.04em;margin-top:6px}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}
table{width:100%;border-collapse:collapse;min-width:820px;background:var(--panel)}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel2)}
td small{color:var(--muted)}
.table-actions{display:flex;gap:8px;flex-wrap:wrap}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;overflow-wrap:anywhere}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.tabs a{padding:8px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-weight:750}
.tabs a.active{background:var(--text);color:var(--bg)}
@media(max-width:1050px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .result-card{grid-template-columns:150px 1fr}
  .result-compare{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr)}
  .cards,.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-grid{grid-template-columns:1fr}
}
@media(max-width:780px){
  .desktop-nav{display:none}
  .admin-link{display:none}
  .page-shell{width:min(100% - 24px,1240px);padding-top:24px}
  .hero-copy h1{font-size:50px}
  .form-grid,.cards,.product-grid{grid-template-columns:1fr}
  .result-card{grid-template-columns:1fr}
  .result-image{height:210px}
  .result-compare{grid-template-columns:1fr}
  .restaurant-page-head{grid-template-columns:90px 1fr}
  .restaurant-page-logo{width:90px;height:90px;border-radius:22px}
  .restaurant-page-head>.button{grid-column:1/-1}
  .site-footer{grid-template-columns:1fr}
  .admin-body{display:block}
  .admin-sidebar{position:static;height:auto;padding:14px;gap:12px}
  .admin-sidebar nav{display:flex;overflow:auto}
  .admin-sidebar nav a{white-space:nowrap}
  .admin-sidebar-bottom{display:none}
  .admin-topbar{padding:18px}
  .admin-main{padding:18px}
}
@media(max-width:520px){
  .site-header{padding:10px 13px}
  .directory-brand small{display:none}
  .brand-mark{width:38px;height:38px}
  .hero-copy h1{font-size:43px}
  .search-card,.panel,.install-card{padding:20px;border-radius:22px}
  .stats{grid-template-columns:1fr}
  .section-head{align-items:flex-start;flex-direction:column}
  .price{font-size:30px}
}
.check-row{grid-template-columns:auto 1fr;align-items:center;justify-content:start}.check-row input{width:auto}.dashboard-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.dashboard-row:last-child{border-bottom:0}.dashboard-row>div{min-width:0;display:grid;gap:3px}.dashboard-row small{color:var(--muted);overflow-wrap:anywhere}.empty-compact{padding:18px 0;color:var(--muted)}.filter-bar input{flex:1 1 280px}.filter-bar select{width:auto;min-width:170px}.notice.ok{background:#ecf8f1;color:#11683b;border-color:#bfe5cf}.notice:not(.success):not(.error):not(.ok){background:var(--panel2);color:var(--text);border-color:var(--line)}
@media(max-width:780px){.table-wrap{margin:0 -4px}.panel>.table-wrap{width:calc(100% + 8px)}.dashboard-row{align-items:flex-start}.filter-bar{align-items:stretch}.filter-bar select,.filter-bar .button{width:100%}}
