:root{
  --bg:#0b0f14;
  --surface:#0f1720;
  --card:#121a25;
  --text:#e5eef7;
  --muted:#93a4b8;
  --primary:#2dd4bf;
  --primary-600:#14b8a6;
  --accent:#60a5fa;
  --accent-2:#f59e0b;
  --danger:#ef4444;
  --border:#1f2a37;
  --ring: 0 0 0 3px rgba(45,212,191,.35);
  --bg-gradient: linear-gradient(180deg, #0b0f14 0%, #0b1220 100%);
}

[data-theme="light"]{
  --bg:#f4f6f8;
  --surface:#ffffff;
  --card:#ffffff;
  --text:#0f1720;
  --muted:#475569;
  --primary:#0ea5e9;
  --primary-600:#0284c7;
  --accent:#2563eb;
  --accent-2:#d97706;
  --danger:#b91c1c;
  --border:#e5e7eb;
  --bg-gradient: linear-gradient(180deg, #f7fafc 0%, #eef2f7 100%);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg-gradient);color:var(--text);font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji","Segoe UI Emoji"; -webkit-font-smoothing:antialiased;}
a{color:var(--accent)}

/* Topbar */
.topbar{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.topbar{padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right))}
.brand{font-weight:800;letter-spacing:.4px}
.status{opacity:.85;color:var(--muted)}
.auth{display:flex;gap:8px;align-items:center}
.auth input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.auth button{padding:10px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;cursor:pointer}
.auth button:hover{border-color:var(--primary)}

/* Layout */
.layout{display:grid;grid-template-columns:2fr 1fr;gap:16px;padding:16px}
@media (max-width: 980px){ .layout{grid-template-columns:1fr} }

/* Catalog */
.search{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.search input{flex:1;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(2,8,23,.35);border-color:#233041}
.card img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:10px;border:1px solid var(--border)}
.card .name{font-weight:700;margin-top:8px}
.card .price{color:var(--primary)}

.cart{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px}
.cart-lines .line{display:grid;grid-template-columns:1fr 80px 80px 40px;gap:8px;align-items:center;margin-bottom:8px}
.cart input{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}
.discounts{display:flex;gap:8px;align-items:center;margin:10px 0}
.discounts #discType{appearance:none;-webkit-appearance:none;padding:10px 12px;border-radius:10px;border:1px solid var(--primary);background:var(--primary);color:#062222;font-weight:700;cursor:pointer}
.discounts #discType:focus{outline:none;box-shadow:var(--ring)}
.totals{border-top:1px dashed var(--border);padding-top:12px;margin-top:12px}
.grand{font-size:22px;font-weight:800;color:var(--primary)}
.checkout{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.checkout select,.checkout button{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}
.checkout button{background:var(--primary);color:#062222;border-color:var(--primary);font-weight:700}
.checkout button:focus{outline:none;box-shadow:var(--ring)}

/* Remove item button integrated */
.cart-lines .line .rm{height:40px;width:40px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.cart-lines .line .rm:hover{border-color:var(--danger);color:var(--danger)}

/* Toast */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#0b1320;color:var(--text);padding:12px 16px;border-radius:10px;border:1px solid var(--border);backdrop-filter: blur(8px);box-shadow:0 10px 30px rgba(2,8,23,.35)}

/* Buttons */
.btn-primary{padding:12px;border-radius:10px;border:1px solid var(--primary);background:var(--primary);color:#062222;font-weight:700;cursor:pointer}
.btn-secondary{padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}
.btn-ghost{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}

/* Modal */
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:60}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(2,8,23,.55);backdrop-filter:blur(6px)}
.modal-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;min-width:280px;max-width:92vw}
.modal-title{font-weight:800;margin-bottom:12px}
.modal-actions{display:flex;gap:8px;flex-wrap:wrap}
.modal-close{position:absolute;top:8px;right:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;cursor:pointer;padding:6px}

/* Drawer */
.drawer{position:fixed;inset:0;display:block;z-index:55}
.drawer[hidden]{display:none}
.drawer::before{content:"";position:absolute;inset:0;background:rgba(2,8,23,.4)}
.drawer-card{position:absolute;top:0;right:0;height:100%;width:min(420px,92vw);background:var(--surface);border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:12px}
.drawer-header{display:flex;gap:12px;align-items:center}
.drawer-title{font-weight:800}
.drawer-sub{color:var(--muted);font-size:14px}
.drawer-actions{margin-top:auto;display:flex;gap:8px}
.field{display:flex;flex-direction:column;gap:6px}
.field input{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}

/* Simple icons */
.icon{width:40px;height:40px;border-radius:10px;display:inline-block;border:1px solid var(--border);background:var(--surface);position:relative}
.icon.wa::before{content:"";position:absolute;inset:8px;background:conic-gradient(from 0deg,#25D366,#128C7E);border-radius:6px}
.icon.mail::before{content:"";position:absolute;left:8px;right:8px;top:10px;bottom:10px;border:2px solid var(--text);border-radius:4px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 0);}
.icon.mail::after{content:"";position:absolute;left:8px;right:8px;top:10px;height:0;border-top:2px solid var(--text);transform:skewY(12deg)}

/* Admin/Stock tables */
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
th,td{border-bottom:1px solid var(--border);padding:10px;text-align:left}
th{background:#0b1320;color:var(--muted)}

.admin .form{background:var(--card);}
.admin .form input,.admin .form select{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.admin .toolbar input{padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.admin button{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}
.admin button:hover{border-color:var(--primary)}

/* File input compound control */
.admin .form .file{display:flex;align-items:center}
.admin .form .file .name{flex:0 0 25%;max-width:25%;padding:8px 10px;border:1px solid var(--border);border-right:none;border-top-left-radius:8px;border-bottom-left-radius:8px;background:var(--surface);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin .form label.file-inline{display:flex;align-items:center;gap:8px}
.admin .form label.file-inline .file{flex:1}
.admin .form .file .btn{padding:8px 10px;border:1px solid var(--border);border-top-right-radius:8px;border-bottom-right-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap}
.admin .form .file .btn:hover{border-color:var(--primary)}
.admin .form .file .hidden-file{display:none}

/* Printing */
.ticket{font-family:monospace;max-width:320px;margin:0 auto}
.h1{font-weight:800}
.sep{border-top:1px dashed #000;margin:8px 0}

/* Mobile optimizations */
@media (max-width: 680px){
  .layout{padding:10px}
  .search{flex-direction:column;gap:8px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .card img{height:auto}
  .cart-lines .line{grid-template-columns:1fr 64px 64px 36px}
}
@media (max-width: 480px){
  .layout{padding:8px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .card{border-radius:12px;padding:8px}
  .card img{height:auto}
  .cart{padding:12px}
  .cart-lines .line{grid-template-columns:1fr 56px 56px 32px;gap:6px}
  .checkout{gap:6px}
  .checkout select,.checkout button{padding:10px}
}
