/* Cheela Café visual system — loaded last so every module shares one finish. */
:root{
  --brand:#146a50;
  --brand-dark:#0d4939;
  --brand-deep:#082f27;
  --brand-soft:#e7f5ef;
  --accent:#d8993e;
  --accent-soft:#fff4df;
  --ink:#14211c;
  --muted:#68766f;
  --line:#dce7e1;
  --line-strong:#c6d6ce;
  --surface:#fff;
  --canvas:#f3f7f5;
  --danger:#b83c34;
  --danger-soft:#fff0ee;
  --success:#147550;
  --shadow:0 10px 32px rgba(16,62,47,.07),0 1px 2px rgba(16,62,47,.04);
  --shadow-raised:0 18px 46px rgba(10,54,40,.12),0 3px 8px rgba(10,54,40,.05);
  --radius:15px;
  --sidebar:264px;
}

html{scroll-behavior:smooth}
body{
  color:var(--ink);
  background:
    radial-gradient(circle at 92% 2%,rgba(216,153,62,.075),transparent 24rem),
    linear-gradient(180deg,#f9fbfa 0,var(--canvas) 25rem);
}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(16,84,64,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(16,84,64,.018) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,#000,transparent 48%)}
::selection{background:#bfe5d6;color:#0b3d2f}
.skip-link{position:fixed;z-index:100;left:14px;top:10px;transform:translateY(-160%);padding:9px 13px;border-radius:8px;background:#fff;color:var(--brand-dark);font-weight:800;box-shadow:var(--shadow-raised)}
.skip-link:focus{transform:none}

/* Navigation */
.sidebar{padding:20px 14px 14px;background:radial-gradient(circle at 18% 8%,rgba(49,139,106,.32),transparent 14rem),linear-gradient(170deg,#114f3e 0,var(--brand-deep) 66%,#06251f 100%);box-shadow:12px 0 40px rgba(4,34,26,.12)}
.brand{gap:13px;padding:3px 9px 22px;border-bottom:1px solid rgba(255,255,255,.09)}
.brand-mark{position:relative;width:45px;height:45px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:linear-gradient(145deg,#f4c273,#d78e2f);color:#38260b;box-shadow:0 10px 24px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.45)}
.brand strong{font-size:18px;letter-spacing:-.02em}.brand small{color:#b8d3c9;font-size:9px;letter-spacing:.1em}
.side-nav{gap:4px;padding:5px 2px 12px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.nav-label{padding:19px 11px 6px;color:#88b2a3;font-size:9px;letter-spacing:.16em}
.side-nav a{position:relative;min-height:43px;padding:8px 10px;border:1px solid transparent;border-radius:9px;color:#d3e3dd;font-size:13px;letter-spacing:.005em}
.side-nav a:hover{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.075);transform:translateX(2px)}
.side-nav a.active{border-color:rgba(255,255,255,.13);background:linear-gradient(90deg,rgba(255,255,255,.15),rgba(255,255,255,.075));box-shadow:inset 3px 0 var(--accent),0 7px 18px rgba(0,0,0,.08)}
.nav-icon{width:27px;height:27px;border-radius:7px;background:rgba(255,255,255,.07);color:#b7d5ca;font-size:16px}.active .nav-icon{background:rgba(237,175,83,.18);color:#f2bd6d}
.sidebar-user{margin-top:auto;padding:15px 7px 3px;border-top-color:rgba(255,255,255,.11)}
.avatar{width:38px;height:38px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.08))}
.sidebar-user .icon-button{width:34px;height:34px;padding:0;color:#bad2c9}.sidebar-user .icon-button:hover{background:rgba(255,255,255,.09);color:#fff}

.topbar{height:74px;padding:0 32px;border-color:rgba(198,214,206,.78);background:rgba(255,255,255,.83);box-shadow:0 7px 24px rgba(23,71,55,.035);backdrop-filter:blur(18px) saturate(140%)}
.topbar>div:first-of-type .eyebrow{color:#829088}.topbar strong{font-size:16px}
.topbar-user{gap:10px;padding:7px 11px 7px 9px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.72);color:var(--ink)}
.topbar-user>span:last-child{display:flex;flex-direction:column;line-height:1.2}.topbar-user strong{font-size:12px}.topbar-user small{font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.status-dot{width:9px;height:9px;border-radius:3px;background:#29a96f;box-shadow:0 0 0 4px rgba(41,169,111,.12)}
.mobile-menu{width:42px;height:42px;border:1px solid var(--line)!important;background:#fff!important;box-shadow:0 4px 12px rgba(20,70,54,.06)!important}

/* Page hierarchy */
.page-content{max-width:1640px;padding:32px 34px 64px}
.page-heading{position:relative;margin-bottom:27px;padding-left:16px}
.page-heading:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--accent),#efc57f)}
.page-heading h1{font-size:clamp(27px,2.4vw,35px);line-height:1.12;letter-spacing:-.042em}
.page-heading p{max-width:760px;margin-top:7px;color:#6b7972;font-size:13px}
.eyebrow{color:var(--brand);font-weight:800;letter-spacing:.14em}
h1,h2,h3{color:#17251f}h2{letter-spacing:-.025em}
.title-row{gap:20px;margin-bottom:20px}

/* Surfaces */
.card,.stats article{border:1px solid rgba(207,221,214,.92);border-radius:var(--radius);background:rgba(255,255,255,.94);box-shadow:var(--shadow)}
.card{padding:23px}.card:hover{border-color:#cbded5;box-shadow:0 12px 35px rgba(16,62,47,.085)}
.card>h2:first-child:before{content:"";width:8px;height:8px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.stats{gap:17px}.stats article{min-height:146px;padding:24px;transition:transform .18s ease,box-shadow .18s ease}.stats article:hover{transform:translateY(-2px);box-shadow:var(--shadow-raised)}
.stats article:after{height:5px;background:linear-gradient(90deg,var(--brand),#55a887)}
.stats span{font-size:10px;letter-spacing:.09em}.stats strong{font-size:27px}.stats small{font-size:11px}
.quick-actions{gap:14px}.quick-actions a{min-height:72px;padding:14px 15px;border-color:var(--line);border-radius:12px;background:rgba(255,255,255,.92)}
.quick-actions a>span{width:42px;height:42px;border:1px solid #d6eadf;border-radius:10px;background:linear-gradient(145deg,#eef9f4,#def1e8)}
.quick-actions a:hover{border-color:#a9cdbd;box-shadow:var(--shadow-raised)}
.empty-state{border:1px dashed #d4e2db;border-radius:11px;background:#fbfdfc}
.data-alert{border-radius:12px;background:linear-gradient(110deg,#fff9eb,#fffdf7);box-shadow:0 7px 22px rgba(111,76,19,.05)}

/* Forms and actions */
label{gap:7px;color:#42534b;font-size:11px;letter-spacing:.015em}
input,select,textarea{min-height:44px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px rgba(14,49,38,.025);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
input:hover,select:hover,textarea:hover{border-color:#9fb9ad;background:#fdfefd}
input:focus,select:focus,textarea:focus{outline:0!important;border-color:#278565;box-shadow:0 0 0 4px rgba(29,126,92,.12),inset 0 1px 2px rgba(14,49,38,.02)}
input::placeholder{color:#98a59f}
button,.button{min-height:42px;border-radius:9px;background:linear-gradient(180deg,#19775a,#126348);box-shadow:0 6px 15px rgba(20,106,80,.17);letter-spacing:.005em}
button:hover,.button:hover{background:linear-gradient(180deg,#126b50,#0f573f);box-shadow:0 9px 20px rgba(20,106,80,.2);transform:translateY(-1px)}
button:active,.button:active{transform:translateY(0);box-shadow:0 3px 8px rgba(20,106,80,.14)}
.secondary{border:1px solid #d9e4de;background:#f3f7f5;color:#3d5148;box-shadow:none}.secondary:hover{border-color:#c6d7cf;background:#eaf2ee;color:#183d30;box-shadow:none}
.danger-btn,.remove{border:1px solid #f0d2cf;background:var(--danger-soft);color:var(--danger);box-shadow:none}.danger-btn:hover,.remove:hover{background:#fbe1de;box-shadow:none}
.icon-button{box-shadow:none}.compact{min-height:34px!important}
.filters,.notice,.copy-strip,.bulk-copy-content{border-color:#dbe7e1;background:linear-gradient(145deg,#f8fbf9,#f3f8f5)}
.filters{padding:14px;border-radius:11px}.notice{border-left:4px solid var(--accent);background:linear-gradient(100deg,#fff5df,#fffaf0)}
.flash{position:relative;border-radius:10px;box-shadow:0 10px 26px rgba(15,61,46,.08)}

/* Tables and data density */
.table-wrap{border-radius:var(--radius);scrollbar-gutter:stable}
table{font-variant-numeric:tabular-nums}
th{height:45px;padding:12px;background:#f5f9f7;color:#64766e;border-top:1px solid #e2ebe6;border-bottom-color:#dce7e1;font-size:9px;letter-spacing:.115em}
th:first-child{border-left:1px solid #e2ebe6}th:last-child{border-right:1px solid #e2ebe6}
td{padding:14px 12px;border-bottom-color:#e6eeea}
tbody tr:hover{background:#f5faf7}
.badge{min-height:25px;padding:4px 9px;border:1px solid #dfe8e3;border-radius:7px;background:#f2f6f4;font-size:9px;letter-spacing:.06em}
.badge.confirmed{border-color:#cde7db}.badge.void{border-color:#f0d4d1}.category-badge{border-color:#cfe8da;background:#eaf7f0;color:#226a46}
.low{background:#fffaf2}.low:hover{background:#fff6e7}
.pagination{border-top:1px solid #edf2ef;margin-top:5px}

/* Menu, POS and waiter */
.category-tabs{gap:9px;padding:3px 2px 15px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}
.category-tabs button{min-height:39px;padding:8px 15px;border-radius:9px;background:#fff;color:#506159}.category-tabs button.active{background:linear-gradient(180deg,#1a775b,#126249);box-shadow:0 7px 16px rgba(20,106,80,.18)}
.menu-card{border-radius:13px;box-shadow:0 7px 22px rgba(17,58,45,.065);transform:translateZ(0)}
.menu-card>img{transition:transform .3s ease,filter .3s ease}.menu-card:hover>img{transform:scale(1.035);filter:saturate(1.07)}
.menu-card>span{border:1px solid #cfe9dd;background:#eaf7f1}.menu-card>strong{line-height:1.3}.menu-card>b{font-size:17px}
.cart{overflow:hidden;border-top:0}.cart:before{content:"";display:block;height:5px;margin:-23px -23px 20px;background:linear-gradient(90deg,var(--accent),#f0c77f)}
.cart-row{padding:12px 0}.item-count{border:1px solid #e1eae5;background:#f7faf8!important}
.total{border-top-color:#273a32}.total strong{color:var(--brand)}
.waiter-flow{border-color:#cfe4da;background:linear-gradient(90deg,#e8f6ef,#f8fbf9)}
.cart-jump{border-radius:12px}

/* Recipes, inventory and admin */
.recipe-progress article{border-radius:11px;box-shadow:0 5px 16px rgba(16,62,47,.045)}
.rapid-recipe-row,.stock-allocation-card,.manage-item,.unit-item{border-color:#dbe6e0;background:#f9fcfa}
.rapid-recipe-row:focus-within,.stock-allocation-card:hover,.manage-item[open]{border-color:#a9cbbd;box-shadow:0 5px 16px rgba(20,80,58,.07)}
.step-number{background:linear-gradient(145deg,#1b7a5d,#105840);box-shadow:0 5px 12px rgba(20,106,80,.18)}
.add-ingredient-button{border:1px dashed #a9c5b8;background:#f5faf7;color:var(--brand)}
.inventory-stock-filters{padding:8px;border:1px solid var(--line);border-radius:11px;background:#f7faf8}
.inventory-stock-filters select,.inventory-stock-filters input{background:#fff}
.section-chip-list span{border:1px solid #d2e8dd;border-radius:7px!important;background:#edf8f3!important}
details>summary{transition:color .15s ease}details>summary:hover{color:var(--brand-dark)}
.inventory-hero-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:-7px 0 20px}
.inventory-hero-metrics article{position:relative;overflow:hidden;min-height:104px;padding:16px 17px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#fff,#f8fbf9);box-shadow:0 6px 20px rgba(16,62,47,.05)}
.inventory-hero-metrics article:after{content:"";position:absolute;right:-20px;bottom:-28px;width:74px;height:74px;border:15px solid rgba(20,106,80,.055);border-radius:24px;transform:rotate(24deg)}
.inventory-hero-metrics span,.inventory-hero-metrics strong,.inventory-hero-metrics small{position:relative;z-index:1;display:block}.inventory-hero-metrics span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.inventory-hero-metrics strong{margin:5px 0 2px;color:var(--brand-dark);font:800 21px/1.2 Manrope,sans-serif}.inventory-hero-metrics small{font-size:10px}

/* Authentication */
.auth-body{background:radial-gradient(circle at 10% 10%,#d9eee5 0,transparent 28rem),radial-gradient(circle at 90% 90%,#fae8ca 0,transparent 25rem),#f4f8f6}
.auth.card{border:1px solid rgba(202,218,210,.9);box-shadow:0 28px 80px rgba(13,60,44,.14)}
.auth.card:before{box-shadow:0 10px 24px rgba(93,62,14,.16)}

/* Mobile quick navigation */
.mobile-bottom-nav{display:none}

@media(max-width:1080px){
  .page-content{padding-bottom:104px}
  .app-footer{display:none}
  .mobile-bottom-nav{position:fixed;z-index:24;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;align-items:stretch;justify-content:space-around;gap:3px;min-height:64px;padding:6px;border:1px solid rgba(199,216,208,.92);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 16px 42px rgba(8,47,36,.2);backdrop-filter:blur(18px) saturate(140%)}
  .mobile-bottom-nav a,.mobile-bottom-nav button{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:50px;padding:4px 5px;border:0;border-radius:10px;background:transparent;color:#687870;text-decoration:none;box-shadow:none;font-weight:700}
  .mobile-bottom-nav a:hover,.mobile-bottom-nav button:hover{background:#f1f7f4;color:var(--brand);box-shadow:none;transform:none}
  .mobile-bottom-nav a.active{background:var(--brand-soft);color:var(--brand)}
  .mobile-bottom-nav a.active:before{content:"";position:absolute;top:2px;width:20px;height:3px;border-radius:3px;background:var(--brand)}
  .mobile-bottom-nav span{font-size:20px;line-height:1}.mobile-bottom-nav small{max-width:100%;overflow:hidden;color:inherit;font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
  .cart-jump{bottom:calc(86px + env(safe-area-inset-bottom))!important}
  .recipe-mobile-actions{bottom:calc(82px + env(safe-area-inset-bottom))!important}
  .waiter-pos-layout{padding-bottom:58px}
}

@media(max-width:780px){.recipe-save-bar{padding-bottom:138px!important}}

@media(max-width:900px){
  .topbar{padding-left:14px;padding-right:14px}.page-content{padding-left:16px;padding-right:16px}
  .table-wrap{background:linear-gradient(90deg,#fff 0,#fff calc(100% - 18px),rgba(230,238,234,.72) 100%)}
  .table-wrap table{background:#fff}
  .inventory-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:680px){
  body:before{display:none}
  .topbar{height:64px}.topbar>div:first-of-type{min-width:0}.topbar>div:first-of-type strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .page-content{padding:20px 11px 102px}
  .page-heading{padding-left:12px}.page-heading:before{width:3px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px}
  .card,.stats article{padding:16px;border-radius:12px}.card{margin-bottom:14px}.grid-2{gap:14px}
  .stats{gap:10px}.stats article{min-height:118px}.stats strong{font-size:22px}
  .title-row{gap:12px}.title-row>.button{width:100%}
  button,.button{min-height:44px}input,select,textarea{min-height:46px;font-size:16px}
  .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-actions a{min-height:70px;padding:11px}.quick-actions a>span{width:37px;height:37px}.quick-actions small{display:none}
  .filters{padding:11px}.filter-actions{gap:8px}
  .menu-card{border-radius:11px}.menu-card:hover>img{transform:none}
  .cart:before{margin:-16px -16px 16px}
  .inventory-stock-filters{padding:7px}
  .inventory-hero-metrics{gap:8px;margin-bottom:14px}.inventory-hero-metrics article{min-height:98px;padding:14px}.inventory-hero-metrics strong{font-size:18px}
  .mobile-bottom-nav{left:7px;right:7px;bottom:calc(7px + env(safe-area-inset-bottom));min-height:62px;border-radius:14px}
}

@media(max-width:390px){
  .quick-actions{grid-template-columns:1fr}.quick-actions small{display:block}
  .mobile-bottom-nav{gap:0;padding:5px}.mobile-bottom-nav a,.mobile-bottom-nav button{padding-left:2px;padding-right:2px}.mobile-bottom-nav small{font-size:8px}
}

@media(hover:none){.stats article:hover{transform:none;box-shadow:var(--shadow)}.menu-card:hover>img{transform:none;filter:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
