/* Portal do restaurante (página web própria, mesma cara da plataforma). */
.cmp-portal { min-height:100vh; padding:0 clamp(16px,4vw,48px) 120px; }
.cmp-portal .cmp-main { padding-top:6px; }
.cmp-portal-top { position:sticky; top:0; z-index:40; background:rgba(246,245,240,.94); backdrop-filter:blur(10px); margin:0 calc(-1 * clamp(16px,4vw,48px)); padding:14px clamp(16px,4vw,48px); gap:14px 24px; flex-wrap:nowrap; }
.cmp-nav { display:flex; gap:6px; flex:1; justify-content:center; }
.cmp-nav-item { position:relative; display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:99px; color:var(--muted); font-weight:650; font-size:14px; border:1px solid transparent; transition:all .15s; }
.cmp-nav-item:hover { color:var(--ink); border-color:var(--line); }
.cmp-nav-item[aria-current="page"] { background:var(--o); color:#fff; }
.cmp-nav-ic { font-size:16px; line-height:1; }
.cmp-nav-badge { font-style:normal; background:var(--bad); color:#fff; border-radius:99px; min-width:20px; height:20px; padding:0 6px; display:inline-grid; place-items:center; font-size:11px; font-weight:800; }
.cmp-nav-item[aria-current="page"] .cmp-nav-badge { background:#fff; color:var(--o); }
.cmp-portal-top .cmp-actions { flex:none; flex-wrap:nowrap; }

/* Login */
.cmp-login { min-height:100vh; display:grid; place-items:center; padding:24px 0; }
.cmp-login-card { width:min(420px,100%); background:#fff; border:1px solid var(--line); border-radius:24px; padding:clamp(24px,4vw,38px); display:grid; gap:16px; justify-items:stretch; box-shadow:0 18px 50px rgba(34,42,41,.08); }
.cmp-login-card .cmp-mark { width:56px; height:56px; font-size:28px; justify-self:center; }
.cmp-login-card h1 { font-size:30px; text-align:center; }
.cmp-login-sub { color:var(--muted); text-align:center; font-size:15px; }
.cmp-login-lost { text-align:center; color:var(--muted); font-size:14px; text-decoration:underline; }
.cmp-login-card .cmp-field input { width:100%; min-height:50px; border:1.5px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--cream); }
.cmp-login-card .cmp-field input:focus { outline:3px solid rgba(237,80,31,.35); border-color:var(--o); }

/* Pedidos */
.cmp-orders { display:grid; gap:12px; }
.cmp-order { display:flex; justify-content:space-between; align-items:center; gap:16px; text-align:left; background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 18px; transition:border-color .15s, transform .1s; width:100%; }
.cmp-order:hover { border-color:var(--ink); }
.cmp-order-main { display:grid; gap:2px; min-width:0; }
.cmp-order-main strong { font-size:17px; letter-spacing:-.02em; }
.cmp-order-main span { color:var(--muted); font-size:13px; }
.cmp-order-side { display:grid; gap:6px; justify-items:end; flex:none; }
.cmp-order-side strong { font-size:18px; }
.cmp-badge.is-ok { background:var(--ok); }
.cmp-order-side .cmp-badge:empty { display:none; }
.cmp-lines { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.cmp-lines li { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding-bottom:8px; }
.cmp-proof { max-width:100%; max-height:420px; border:1px solid var(--line); border-radius:12px; display:block; margin-top:10px; }
.cmp-hist { margin:0; padding-left:18px; font-size:13px; color:var(--muted); display:grid; gap:6px; }
.cmp-order-drawer { width:min(560px,100vw); grid-template-columns:1fr; }
.cmp-order-drawer .cmp-form { padding-bottom:40px; }
.cmp-order-drawer textarea,.cmp-order-drawer input[type=text] { width:100%; border:1.5px solid var(--line); border-radius:12px; padding:11px 14px; background:#fff; }
.cmp-todo { margin:0; padding-left:20px; display:grid; gap:8px; }
.cmp-todo a { text-decoration:underline; }
.cmp-hours-row { display:grid; grid-template-columns:90px 120px 20px 120px auto; gap:10px; align-items:center; margin:6px 0; }
.cmp-hours-row input[type=time] { min-height:42px; border:1.5px solid var(--line); border-radius:10px; padding:6px 10px; background:#fff; }
.cmp-store-form { display:grid; gap:22px; }
.cmp-store-form .cmm-mkt-card .cmm-mkt-form input[type=text],.cmp-store-form .cmm-mkt-card .cmm-mkt-form input:not([type]),.cmp-store-form .cmm-mkt-card textarea,.cmp-store-form .cmm-mkt-card select { width:100%; min-height:48px; border:1.5px solid var(--line); border-radius:12px; padding:11px 14px; background:#fff; }
.cmp-store-form input[type=color] { width:100%; border:1.5px solid var(--line); border-radius:12px; background:#fff; padding:4px; }

/* Celular: navegação como barra inferior */
@media (max-width:820px) {
  .cmp-portal-top { flex-wrap:wrap; }
  .cmp-portal-top .cmp-actions { margin-left:auto; }
  .cmp-nav { position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(255,255,255,.97); backdrop-filter:blur(10px); border-top:1px solid var(--line); padding:6px 6px calc(6px + env(safe-area-inset-bottom)); justify-content:space-around; gap:2px; }
  .cmp-nav-item { flex-direction:column; gap:2px; padding:6px 8px; font-size:11px; border-radius:12px; flex:1; justify-content:center; }
  .cmp-nav-ic { font-size:20px; }
  .cmp-nav-badge { position:absolute; top:0; right:14%; }
  .cmp-hours-row { grid-template-columns:70px 1fr 14px 1fr; }
  .cmp-hours-row .cmp-switch { grid-column:1 / -1; }
}
.cmp .cmp-field { align-content:start; }
.cmp-portal-top .cmp-id { flex:none; }
.cmp-portal-top .cmp-id strong { white-space:nowrap; }
.cmp-nav-item { white-space:nowrap; }
.cmp-nav-ic { display:inline-flex; }
@media (max-width:820px) {
  .cmp-portal-top { backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--cream); position:static; flex-wrap:nowrap; }
  .cmp-portal-top .cmp-actions a:first-child { display:none; }
  .cmp-portal-top .cmp-id strong { font-size:18px; }
  .cmp-portal-top .cmp-id small { font-size:9px; }
  .cmp-portal { padding-bottom:110px; }
}
.cmp-home-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.cmp-plan-banner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; }
.cmp-plan-banner.is-warn { border-color:var(--o); background:#fff8f5; }
.cmp-welcome { margin-bottom:18px; border-color:var(--ok); }
@media (max-width:820px) { .cmp-nav-item { padding:6px 4px; font-size:10.5px; } }
.cmm-mkt-card > .cmp-badge { justify-self:start; width:fit-content; }
.cmp-pay-option { display:grid; gap:8px; justify-items:start; border:1.5px solid var(--line); border-radius:16px; padding:18px; background:var(--cream); }
.cmp-pay-option strong { font-size:17px; letter-spacing:-.02em; }
.cmp-pay-option span { color:var(--muted); font-size:14px; }
.cmp-store-switch { min-height:38px; border:1.5px solid var(--ink); border-radius:10px; padding:4px 10px; background:#fff; font-weight:600; max-width:190px; }

