*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;background:#f5f4f2;color:#1d1d1f;font-size:15px}
a{color:#B5002A;text-decoration:none;font-weight:600}
.abar{display:flex;align-items:center;gap:26px;background:#171314;color:#fff;padding:13px 24px;border-bottom:3px solid var(--p,#C8102E)}
/* Directory badge: --p comes from the CURRENT directory's own theme_primary (set inline in _layout.php),
   so this pill and the header's bottom border both change color when the admin URL changes directory -
   the fast visual cue that this is a DIFFERENT directory's data, not the same list scrolled differently. */
.acurdir{background:var(--p,#C8102E);color:#fff;font-weight:800;font-size:.86rem;padding:6px 14px;border-radius:999px;display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.acurdom{font-weight:600;font-size:.72rem;opacity:.85}
.abrand{font-weight:800;letter-spacing:.4px}.abrand b{color:#e8899e}
.abar nav{display:flex;gap:18px;flex:1}
.abar nav a{color:#ddd;font-weight:600;font-size:.92rem}.abar nav a:hover{color:#fff}
.auser{font-size:.85rem;color:#bbb}.auser a{color:#e8899e}
.awrap{max-width:1080px;margin:0 auto;padding:28px 20px 60px}
h1{font-size:1.35rem;font-weight:800;margin-bottom:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:24px}
.stat{background:#fff;border:1px solid #e7e4e0;border-radius:12px;padding:18px}
.stat .n{font-size:1.7rem;font-weight:800}.stat .l{font-size:.85rem;color:#777}
.warn{background:#fdf3e4;border:1px solid #f0d9ae;color:#854f0b;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-weight:600;font-size:.92rem}
.ok{background:#e8f5ee;border:1px solid #bfe3d0;color:#0f6e56;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-weight:600;font-size:.92rem}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e7e4e0;border-radius:12px;overflow:hidden}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid #f0eeeb;font-size:.92rem}
th{background:#faf9f7;font-size:.8rem;text-transform:uppercase;letter-spacing:.6px;color:#888}
tr:hover td{background:#fdfcfb}
.btn{display:inline-block;background:#B5002A;color:#fff;font-weight:700;font-size:.9rem;border:0;border-radius:999px;padding:10px 22px;cursor:pointer}
.btn-line{background:#fff;color:#B5002A;border:2px solid #B5002A;padding:8px 20px}
/* One-click EN->ES translate trigger next to a Spanish field (owner 9/9) — small and quiet, not a primary action. */
.btn-translate{display:inline-block;margin-top:6px;background:#fff;color:#555;border:1px solid #ccc;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;cursor:pointer}
.btn-translate:disabled{opacity:.6;cursor:default}
/* Restaurants list tabs: All / Paid / Free. Colored with --p (the CURRENT directory's own accent, set
   inline per-page in _layout.php) so the active tab matches whichever directory's admin this is, same as
   the header badge. */
.admtabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:2px solid #e7e4e0}
.admtab{padding:9px 16px;font-weight:700;font-size:.92rem;color:#777;border-bottom:3px solid transparent;margin-bottom:-2px}
.admtab span{display:inline-block;margin-left:6px;background:#eee;color:#555;border-radius:999px;padding:1px 9px;font-size:.8rem;font-weight:700}
.admtab.is-active{color:var(--p,#B5002A);border-bottom-color:var(--p,#B5002A)}
.admtab.is-active span{background:var(--p,#B5002A);color:#fff}
.admtab:hover{color:var(--p,#B5002A)}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#fff;border:1px solid #e7e4e0;border-radius:12px;padding:22px}
.formgrid .full{grid-column:1/-1}
label{display:block;font-size:.8rem;font-weight:700;color:#666;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #ddd;border-radius:8px;background:#fff}
textarea{resize:vertical}
.checks{display:flex;flex-wrap:wrap;gap:10px}
.checks label{display:flex;align-items:center;gap:6px;font-size:.88rem;text-transform:none;letter-spacing:0;font-weight:600;color:#333;background:#faf9f7;border:1px solid #e7e4e0;border-radius:999px;padding:7px 14px;margin:0;cursor:pointer}
#pinmap{width:100%;height:300px;border-radius:10px;border:1px solid #ddd}
.geo-row{display:flex;gap:10px;align-items:end}
.geo-row>div{flex:1}
.loginwrap{max-width:370px;margin:9vh auto;background:#fff;border:1px solid #e7e4e0;border-radius:14px;padding:30px}
.loginwrap h1{text-align:center}
.loginwrap img{max-width:80%;height:auto;display:block;margin:0 auto 14px}
.loginwrap form{display:flex;flex-direction:column;gap:12px}
@media (max-width:700px){.formgrid{grid-template-columns:1fr}.abar nav{gap:12px}.auser span{display:none}}
/* Phone width (owner 10/28, Members page check at 375 px): the header used to run off the right edge on every admin
   page. Same wrap recipe as body.owner below: directory pill + user on the first line, nav links on their own line. */
@media (max-width:760px){.abar{flex-wrap:wrap;gap:8px 14px;padding:12px 16px}.abar nav{order:3;flex-basis:100%;flex-wrap:wrap;gap:8px 14px}.acurdir{white-space:normal;font-size:.8rem}.auser{margin-left:auto}}

/* Tier controls (owner 10/14) */
.tierbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e7e4e0;border-radius:12px;padding:12px 16px;margin-bottom:12px;font-size:.92rem}
.tierbar label{display:flex;gap:8px;align-items:center;font-weight:600}
.tierbar select,.tierbar input[type=date]{width:auto;padding:7px 10px}
.tierhint{color:#777;font-size:.85rem}
.tierpill{display:inline-block;border-radius:999px;padding:2px 11px;font-size:.8rem;font-weight:800;background:#eee;color:#555}
.tierpill.tier-free{background:#f6ecd0;color:#8a6d1f}
.tierpill.tier-t1{background:#e3eefb;color:#1f5a99}
.tierpill.tier-t2{background:#e6e0f6;color:#5a3aa0}
.tierpill.tier-t3{background:#f6dfe3;color:#a01f3a}
.tierpill.tier-none{background:#f0eeeb;color:#888}
.admtabs{flex-wrap:wrap}

/* Restaurant-owner portal (owner 10/14) */
body.owner .awrap{max-width:820px}
.olead{text-align:center;color:#777;margin:-8px 0 14px;font-weight:600}
.ohint{margin-top:14px;font-size:.82rem;color:#777;text-align:center}
.ocard{background:#fff;border:1px solid #e7e4e0;border-radius:14px;padding:22px;margin-bottom:16px}
.ocard h2{font-size:1.25rem;font-weight:800}
.ocard h3{font-size:1.02rem;font-weight:800;margin-bottom:10px}
.ocard.locked{background:#faf9f7;border-style:dashed}
.ocard.locked h3{color:#888}
.olocknote{font-size:.9rem;color:#888;font-weight:600}
.osub{font-size:.9rem;color:#666;margin-bottom:10px}
.opills{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.opill{display:inline-flex;align-items:center;gap:8px;background:#faf9f7;border:1px solid #e7e4e0;border-radius:999px;padding:5px 12px;font-size:.85rem;font-weight:700}
.oform label{display:block;font-size:.84rem;font-weight:700;color:#444;margin-bottom:12px}
.oform label input,.oform label select,.oform label textarea{margin-top:5px;font-weight:400}
.oform .checks label{display:flex;margin:0}
.ogrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
.ogrid .full{grid-column:1/-1}
.olabel{font-size:.84rem;font-weight:700;color:#444;margin:6px 0 8px}
.othumb{display:block;max-height:90px;max-width:100%;border-radius:8px;border:1px solid #e7e4e0;margin-top:10px}
.oinline{display:inline-flex !important;align-items:center;gap:6px;margin:10px 0 0 12px;font-weight:600}
.oplaceholder{margin-top:10px;display:flex;align-items:center;justify-content:center;min-height:90px;border:2px dashed #d9cdbf;border-radius:10px;color:#999;font-size:.88rem;font-weight:600;background:#fdfbf9}
.osave{position:sticky;bottom:0;background:linear-gradient(transparent,#f5f4f2 35%);padding:18px 0 6px;text-align:center}
.otable{box-shadow:none}
.otable th{width:34%;background:none;text-transform:none;letter-spacing:0;font-size:.88rem;color:#555}
@media (max-width:700px){.ogrid{grid-template-columns:1fr}}
.oform label{text-transform:none;letter-spacing:0}
.oform input[type=file]{display:block;margin-top:6px;font-size:.85rem;max-width:100%}
@media (max-width:700px){
  body.owner .abar{flex-wrap:wrap;gap:8px 14px;padding:12px 16px}
  body.owner .abar nav{order:3;flex-basis:100%}
  body.owner .auser{margin-left:auto}
}
