/* V2.4 — layout profissional: tipografia, grade neutra, ícones em linha. Não altera cálculos. */
:root{
  --bg:#f5f4f1;--surface:#fff;--ink:#1e1b1c;--muted:#6c6567;--faint:#9a9395;
  --line:#e4e0dc;--line-strong:#d3cdc8;
  --wine:#6e2633;--wine2:#58202a;--wine-soft:#f5eded;
  --good:#1d7a4e;--good-soft:#e8f4ed;--warn:#9a6210;--warn-soft:#fbf2e2;--bad:#b0362e;--bad-soft:#fbeceb;
  --gold:#6e2633;--cream:#faf8f5;--shadow:none;--r:8px;
}
html,body{background:var(--bg)}
body{font-family:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.5;color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2,h3,.heading h2,.panel>h3,.pcard h3,.modal-top h3,.cloud-gate h1,.cloud-gate h3,.brand h1{font-family:inherit!important;letter-spacing:-.01em}
h2,.heading h2{font-size:24px!important;font-weight:600;color:var(--ink)}
h3,.panel>h3{font-size:16px!important;font-weight:600;color:var(--ink)}
.stat strong,.cost b,.tot,.pricegrid strong,.weight-numbers,.size-tile b,.size-tile .target,td,.fm-op-summary b,.fm-price-table td{font-variant-numeric:tabular-nums}

/* Barra lateral */
aside{width:232px;background:var(--surface);border-right:1px solid var(--line);box-shadow:none;padding:18px 12px 14px;gap:14px}
aside .brand{padding:4px 6px 16px;border-bottom:1px solid var(--line);gap:10px}
aside .brand h1{font-size:15px!important;font-weight:600;color:var(--ink)}
aside .brand p{font-size:11px;letter-spacing:0;text-transform:none;color:var(--muted);margin-top:1px}
.brand .fm-brand-image{width:44px!important;height:36px!important}
nav{gap:2px}
nav button{position:relative;padding:8px 10px;border-radius:6px;color:var(--muted);font-weight:500;font-size:13.5px;gap:10px}
nav button:hover{background:#f3f1ee;color:var(--ink)}
nav button.active{background:var(--wine-soft);color:var(--wine);font-weight:600}
nav button.active:before{content:'';position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--wine)}
nav button .nav-ico{width:18px;height:18px;font-size:0}
.nav-ico svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
aside .bottom{font-size:11px;color:var(--faint);border-top:1px solid var(--line)}

/* Área principal */
main{margin-left:232px;padding:22px clamp(16px,3vw,40px) 48px;max-width:1380px}
.fm-topline{margin-bottom:6px}
.fm-breadcrumb{font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--faint)}
.fm-topline .fm-quick{display:none}
.btn.fm-tools-toggle{display:none}
.heading{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px;align-items:flex-end}
.heading .sub{color:var(--muted);font-size:13px;margin-top:2px}
.fm-footer{color:var(--faint);font-size:11px;border-top:1px solid var(--line);padding-top:14px;margin-top:32px;text-align:left}

/* Botões e campos */
.btn{border-radius:6px;padding:8px 14px;font-weight:500;font-size:13px;box-shadow:none!important;min-height:36px;display:inline-flex;align-items:center;gap:6px;background:var(--wine);border-color:var(--wine)}
.btn:hover{filter:none;background:var(--wine2)}
.btn.alt{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}
.btn.alt:hover{background:#f3f1ee}
.btn.small{min-height:32px;padding:6px 11px;font-size:12.5px}
.btn.danger{background:var(--surface);color:var(--bad);border-color:#e7c4c1}
.btn.danger:hover{background:var(--bad-soft)}
button:active{transform:none}
input,select,textarea{border-radius:6px;border:1px solid var(--line-strong);min-height:36px;padding:7px 10px;font-size:13.5px}
input:focus,select:focus,textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px #6e263318}
.field label,.pricegrid label{font-size:12px;font-weight:500;color:var(--muted)}
.search{border-radius:6px}
.save-indicator{border-radius:6px;font-size:12px}
.save-indicator.ok{background:var(--good-soft);border-color:#c5e2d1}

/* Superfícies */
.panel,.stat,.pcard,.size-tile,.pricecard,.fm-recipe-shortcut{border-radius:var(--r)!important;box-shadow:none!important;border:1px solid var(--line)}
.panel{padding:18px 20px}
.stats{gap:12px}
.stat{min-height:0;padding:14px 16px}
.stat:before{display:none}
.stat small{font-size:12px;color:var(--muted)}
.stat strong{font-family:inherit!important;font-size:22px!important;font-weight:600;color:var(--ink)}
.pcard{transition:border-color .15s}
.pcard:hover{transform:none;border-color:var(--line-strong);box-shadow:none}
.pcard h3{font-size:15px!important;margin-bottom:2px}
.pcard .body{padding:14px}
.cover{height:128px;background:#efece8;color:var(--faint)}
.cover>span{font-size:0!important}
.cover>span:after{content:'Sem foto';font-size:12px;color:var(--faint)}
.cost{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}
.cost b{font-size:17px;color:var(--ink);font-weight:600}
.tag{border-radius:4px;font-weight:500;font-size:11px;padding:2px 7px;background:#f1eeea;color:var(--muted)}
.tag.ok{background:var(--good-soft)}
.tag.bad{background:var(--bad-soft)}
.notice{color:var(--muted)}
.warning{border-radius:6px;background:var(--warn-soft);border-color:#ecd7b0;color:#6e4a12}
.info-mini{border-radius:6px;background:#f7f5f2;border-color:var(--line);color:var(--muted)}
.tblwrap{border-radius:6px;border-color:var(--line)}
th{background:#f8f7f5;font-size:11.5px;font-weight:600;color:var(--muted);text-transform:none}
td,th{padding:9px 12px}
tr:hover td{background:#fbfaf8}

/* Abas de categoria como controle segmentado */
.fm-category-tabs{display:inline-flex;gap:0;padding:3px;background:#ebe8e4;border-radius:8px;margin-bottom:18px}
.fm-category-tabs button{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:7px 16px;font-weight:500;font-size:13px}
.fm-category-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}
.fm-category-tabs span{font-size:12px;color:var(--faint);margin-left:6px}
.fm-recipe-shortcut{padding:12px 16px;font-size:13px}
.size-tile{background:var(--surface)}
.weight-panel{border-radius:6px;background:#faf9f7}
.weight-meter>div{background:var(--warn)}
.size-pill{border-radius:4px;background:var(--wine-soft)}
.fm-op-summary .fm-op-total{background:#f3f1ee;border-radius:6px}
.fm-op-summary b{color:var(--ink)}

/* Modais e login */
.modal-backdrop{background:#1b1617b3;backdrop-filter:none}
.modal-panel{border-radius:10px;box-shadow:0 20px 60px #0000003a}
.modal-top h3{font-size:18px!important}
.modal-close{border-radius:6px;font-size:16px}
.cloud-gate{background:var(--bg)}
.cloud-gate .gate-panel{border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 3px #0000000f;padding:32px}
.fm-gate-logo{width:140px;height:96px}
.cloud-gate h3{font-size:18px!important;color:var(--ink)}
.cloud-message{border-radius:6px}

/* Painel de preços por canal (V2.4) */
.fm-price-panel{margin-top:20px}
.fm-price-panel .toolbar{margin-bottom:12px;align-items:flex-end}
.fm-price-panel h3{margin:0}
.fm-price-table{min-width:720px}
.fm-price-table td.fm-ch{white-space:nowrap}
.fm-price-table tbody tr{cursor:pointer}
.fm-price-table .fm-pv{font-weight:600}
.fm-price-table .fm-mg{display:block;font-size:11.5px;color:var(--muted)}
.fm-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap}
.fm-status:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--faint)}
.fm-status.good{color:var(--good)}.fm-status.good:before{background:var(--good)}
.fm-status.warn{color:var(--warn)}.fm-status.warn:before{background:#d99a2b}
.fm-status.bad{color:var(--bad)}.fm-status.bad:before{background:var(--bad)}
.fm-status.none{color:var(--faint)}
.fm-legend{display:flex;gap:14px;flex-wrap:wrap}

/* Alertas da Operação (V2.4) */
.fm-alert{border:1px solid #ecd7b0;background:var(--warn-soft);border-radius:var(--r);padding:16px 18px;margin-bottom:16px}
.fm-alert.bad{border-color:#eac3bf;background:var(--bad-soft)}
.fm-alert h4{margin:0 0 4px;font-size:14px;font-weight:600}
.fm-alert p{margin:4px 0;color:#4e4547;font-size:13px}
.fm-mix{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.fm-mix .field input{width:100%}
.fm-mix-out{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #e6d3ad;padding-top:12px;margin-top:6px}
.fm-mix-out strong{font-size:18px}

/* Selo do Netlify cobria a navegação */
#nl-badge-frame{display:none!important}

@media(max-width:760px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  aside{width:100%;height:calc(62px + env(safe-area-inset-bottom));padding:4px 4px env(safe-area-inset-bottom);box-shadow:none;border-top:1px solid var(--line)}
  aside nav{height:56px}
  nav button{font-size:10px!important;gap:3px;color:var(--muted);flex:1 1 0;min-width:0;max-width:none;letter-spacing:-.1px}
  nav button>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  nav button.active{background:transparent;color:var(--wine)}
  nav button.active:before{left:22%;right:22%;top:0;bottom:auto;width:auto;height:2px;border-radius:0 0 2px 2px}
  nav button .nav-ico,.nav-ico svg{width:20px;height:20px}
  main{margin:0;padding:12px 14px 24px}
  .fm-mobile-bar{margin-bottom:10px}
  .fm-mobile-brand{font-family:inherit!important;font-size:15px!important;font-weight:600;color:var(--ink)}
  .fm-mobile-bar button{border-radius:6px;font-weight:500;font-size:13px;color:var(--ink)}
  .fm-topline{display:none}
  .heading h2{font-size:21px!important}
  .fm-category-tabs{display:flex}
  .fm-category-tabs button{flex:1}
  .stat strong{font-size:18px!important}
  .cover{height:96px}
}
@media print{.fm-price-panel,.fm-alert{break-inside:avoid}}
