@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --olive:#5E6A2E; --olive-d:#454F22; --cream:#F4F1E6; --surface:#FFFFFF;
  --ink:#2C2A20; --muted:#857F6A; --line:#E4DFCC; --foam:#FAF8F0;
  --amber:#C9791A; --amber-d:#A85F0C; --gold:#E5B23A;
  --green:#3F7A4B; --red:#B23B3B;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif; color:var(--ink);
  background:var(--cream); min-height:100vh; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Oswald',sans-serif; letter-spacing:.3px; margin:0;}
a{color:inherit; text-decoration:none;}
.inline{display:inline;}

/* ---------- inputs / botões ---------- */
.inp{width:100%; padding:11px 12px; border:1.5px solid var(--line); border-radius:11px;
  background:var(--foam); font-size:15px; font-family:inherit; color:var(--ink); outline:none;}
.inp:focus{border-color:var(--olive); box-shadow:0 0 0 3px rgba(94,106,46,.16); background:#fff;}
select.inp{appearance:none;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:11px 16px;
  border-radius:12px; border:none; font-family:'Oswald',sans-serif; font-size:15px; font-weight:600;
  letter-spacing:.4px; cursor:pointer; transition:.15s; color:#fff;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--amber);} .btn-primary:hover{background:var(--amber-d);}
.btn-amber{background:var(--gold); color:#3a2c12;}
.btn-green{background:var(--green);}
.btn-ghost{background:transparent; color:var(--muted); border:1.5px solid var(--line);}
.btn-block{width:100%;} .btn.lg{padding:14px;}
.icon-btn{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border-radius:10px; border:1.5px solid var(--line); background:#fff; color:var(--ink); cursor:pointer;}
.icon-btn:hover{background:var(--foam);}
.icon-btn.danger{color:var(--red); border-color:#eccdcd;}
.icon-btn.light{border-color:rgba(255,255,255,.28); background:transparent; color:#fff;}

/* ---------- appbar ---------- */
.appbar{position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between;
  background:var(--olive); color:#fff; padding:10px 16px; box-shadow:0 2px 14px rgba(0,0,0,.18);}
.appbar-brand{display:flex; align-items:center; gap:10px;}
.appbar-logo{width:34px; height:34px; border-radius:9px; object-fit:cover; background:var(--olive-d);}
.appbar-brand span{font-family:'Oswald'; font-size:18px; letter-spacing:1px;}
.appbar-brand b{color:var(--gold);}
.appbar-right{display:flex; align-items:center; gap:10px;}
.appbar-user{font-size:13px; color:#eae6d6; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

.content{max-width:760px; margin:0 auto; padding:18px 14px 64px;}
.back-btn{display:inline-flex; align-items:center; gap:6px; color:var(--muted);
  font-weight:600; font-size:14px; margin-bottom:8px;}
.module-head{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.module-head h1{font-size:24px;}
.mh-emoji{font-size:24px;}

/* ---------- flash ---------- */
.flash{padding:11px 14px; border-radius:11px; font-size:14px; font-weight:500; margin-bottom:14px;}
.flash-ok{background:#e6f0e3; border:1px solid #c2d8b8; color:#3d5e2f;}
.flash-err{background:#fbe9e9; border:1px solid #eccaca; color:var(--red);}

/* ---------- login ---------- */
.login-body{background:radial-gradient(120% 80% at 50% -10%, #6c7a36 0%, var(--olive-d) 70%);}
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;}
.login-card{width:100%; max-width:360px; background:var(--surface); border-radius:20px; padding:26px 24px 28px;
  box-shadow:0 24px 60px rgba(0,0,0,.4); text-align:center;}
.login-logo{width:150px; max-width:70%; height:auto; border-radius:12px; margin:0 auto;}
.login-sub{color:var(--muted); font-size:13px; margin:10px 0 18px;}
.login-card .field{text-align:left;}
.login-tip{font-size:12px; color:var(--muted); margin-top:14px;}
.login-card .btn-block{margin-top:6px;}

/* ---------- fields ---------- */
.field{display:flex; flex-direction:column; gap:5px; margin-bottom:12px;}
.field-lbl{font-size:12.5px; font-weight:600; color:var(--muted);}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}

/* ---------- home modules ---------- */
.welcome{margin-bottom:16px;}
.welcome h2{font-size:26px;}
.welcome p{color:var(--muted); font-size:14px; margin-top:2px;}
.grid-cards{display:grid; grid-template-columns:1fr; gap:12px;}
@media(min-width:560px){.grid-cards{grid-template-columns:1fr 1fr;}}
.module-card{display:flex; align-items:center; gap:14px; background:var(--surface); border:1.5px solid var(--line);
  border-radius:16px; padding:16px; transition:.16s;}
a.module-card:hover{border-color:var(--olive); box-shadow:0 8px 20px rgba(94,106,46,.14); transform:translateY(-2px);}
.module-card.soon{opacity:.55;}
.module-emoji{width:48px; height:48px; flex-shrink:0; border-radius:14px; background:var(--olive); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:24px;}
.module-label{font-family:'Oswald'; font-size:17px; display:flex; align-items:center; gap:8px;}
.module-desc{font-size:12.5px; color:var(--muted); margin-top:2px;}
.soon-tag,.open-tag{font-family:'Inter'; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px;
  background:var(--line); color:var(--muted); padding:2px 6px; border-radius:6px;}
.open-tag{background:#fbeede; color:var(--amber-d);}

/* ---------- subtabs ---------- */
.subtabs{display:flex; gap:8px; overflow-x:auto; padding-bottom:8px; margin-bottom:14px;}
.subtabs::-webkit-scrollbar{display:none;}
.pill{display:inline-flex; align-items:center; white-space:nowrap; padding:8px 14px; border-radius:999px;
  border:1.5px solid var(--line); background:#fff; color:var(--muted); font-weight:600; font-size:13.5px;}
.pill.active{background:var(--olive); color:#fff; border-color:var(--olive);}

/* ---------- cards / listas ---------- */
.stack{display:flex; flex-direction:column; gap:10px;}
.card{background:var(--surface); border:1.5px solid var(--line); border-radius:14px; padding:13px 14px;}
.card.pad{padding:16px;}
.form-card{margin-bottom:14px;}
.card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
.card-title{font-family:'Oswald'; font-size:16px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.card-sub{font-size:12.5px; color:var(--muted); margin-top:2px;}
.card-actions{display:flex; gap:6px; flex-shrink:0;}
.row-between{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.section-note{font-size:13px; color:var(--muted); font-weight:500;}
.meta-line{display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:10px; font-size:12.5px; color:var(--muted);}
.right-col{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.hours-pill{font-family:'Oswald'; font-size:13px; background:var(--foam); border:1px solid var(--line);
  padding:4px 9px; border-radius:8px; color:var(--olive-d);}
.mb{margin-bottom:12px;} .mt{margin-top:14px;}
.form-actions{display:flex; gap:10px; margin-top:6px;}
.form-actions .btn{flex:1;}

/* ---------- badges ---------- */
.badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;}
.badge{font-size:11px; font-weight:600; padding:3px 9px; border-radius:7px; background:var(--foam);
  border:1px solid var(--line); color:var(--muted); display:inline-flex; align-items:center; gap:4px;}
.badge-gold{background:#fbf0d6; border-color:#eccf93; color:#8a6310;}
.badge-green{background:#e4f1e6; border-color:#bcdcc2; color:var(--green);}
.badge-muted{background:#f1ece3;}

/* ---------- checkboxes / permissões ---------- */
.check-row{display:flex; align-items:flex-start; gap:11px; padding:11px; border:1.5px solid var(--line);
  border-radius:11px; cursor:pointer; margin-bottom:8px; background:var(--foam);}
.check-row input{width:20px; height:20px; margin:1px 0 0; accent-color:var(--amber); flex-shrink:0;}
.check-row small{display:block; color:var(--muted); font-size:12px; margin-top:1px;}
.check-row.disabled{opacity:.5;}
.perm-box{margin:4px 0 6px; padding-top:8px; border-top:1px dashed var(--line);}
.perm-title{display:flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--muted); margin-bottom:10px;}

/* ---------- ponto manual ---------- */
.manual{margin-top:12px; border-top:1px dashed var(--line); padding-top:10px;}
.manual summary{cursor:pointer; color:var(--amber-d); font-weight:600; font-size:13px;}
.manual-box{margin-top:12px;}

/* ---------- cálculo / pagamento ---------- */
.calc-box{margin-top:12px; background:var(--foam); border:1.5px solid var(--line); border-radius:12px; padding:13px;}
.calc-box.thin{margin-top:10px; padding:11px;}
.calc-line{display:flex; justify-content:space-between; gap:12px; font-size:13.5px; padding:7px 0; border-bottom:1px dashed var(--line);}
.calc-line:last-child{border-bottom:none;}
.calc-line.strong{font-family:'Oswald'; font-size:18px; color:var(--amber-d); padding-top:11px; margin-top:4px; border-top:2px solid var(--line); border-bottom:none;}
.note-line{font-size:12px; color:var(--muted); margin-top:8px;}

.pay-card summary{display:flex; align-items:flex-start; justify-content:space-between; gap:10px; cursor:pointer; list-style:none;}
.pay-card summary::-webkit-details-marker{display:none;}

/* ---------- misc ---------- */
.mini-row{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 11px;
  background:var(--foam); border:1px solid var(--line); border-radius:10px; font-size:13.5px;}
.muted-mini{font-size:12.5px; color:var(--muted);}
.warn{background:#fbf0d6; color:#8a6310; border:1px solid #eccf93; padding:9px 11px; border-radius:10px; font-size:12.5px; margin-bottom:12px;}
.empty{display:flex; flex-direction:column; align-items:center; gap:8px; padding:36px 16px; color:var(--muted); text-align:center; font-size:30px;}
.empty p{font-size:13.5px; margin:0;}

/* ---------- estoque ---------- */
.badge-red{background:#fbe6e6; border-color:#eccaca; color:var(--red);}
.low-txt{color:var(--red); font-weight:600;}
.hours-pill.in{color:var(--green); border-color:#bcdcc2;}
.hours-pill.out{color:var(--red); border-color:#eccaca;}
input[type=file].inp{padding:9px; background:#fff;}

/* ---------- inventário ---------- */
.in-txt{color:var(--green); font-weight:600;}
.inv-head{display:grid; grid-template-columns:1fr 56px 96px; gap:8px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.4px; color:var(--muted); padding:8px 0 4px; border-bottom:1px solid var(--line);}
.inv-head span:nth-child(2),.inv-head span:nth-child(3){text-align:center;}
.inv-row{display:grid; grid-template-columns:1fr 56px 96px; gap:8px; align-items:center; padding:7px 0; border-bottom:1px dashed var(--line);}
.inv-name{font-size:14px;}
.inv-cur{font-size:13px; color:var(--muted); text-align:center;}
.inv-inp{padding:8px; text-align:center;}

/* ---------- compras ---------- */
.buy-row{display:grid; grid-template-columns:1fr 70px 84px 36px; gap:6px; align-items:center; margin-bottom:8px;}
.buy-row .inp{padding:9px 8px;}
.buy-del{width:36px; height:38px; font-size:20px; line-height:1;}
