:root {
  --bg: #07131f;
  --panel: #0d1d2c;
  --panel-2: #132638;
  --panel-3: #193149;
  --text: #f5f8fb;
  --muted: #90a6ba;
  --line: rgba(255,255,255,.09);
  --accent: #32d0b4;
  --accent-2: #18a88f;
  --danger: #ff6b6b;
  --warning: #ffbf69;
  --shadow: 0 14px 38px rgba(0,0,0,.28);
  --radius: 20px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif; }
body { min-height: 100dvh; overscroll-behavior-y: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100dvh; padding: calc(14px + var(--safe-top)) 14px calc(94px + var(--safe-bottom)); max-width: 900px; margin: 0 auto; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.brand { display:flex; align-items:center; gap:12px; min-width:0; }
.logo { width:46px; height:46px; border-radius:16px; background:linear-gradient(145deg,var(--accent),#5fe1ca); color:#062018; display:grid; place-items:center; font-weight:900; font-size:24px; box-shadow:0 10px 24px rgba(50,208,180,.22); }
.brand h1 { margin:0; font-size:21px; letter-spacing:-.02em; }
.brand p { margin:2px 0 0; color:var(--muted); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.icon-btn, .ghost-btn, .primary-btn, .danger-btn { border:0; border-radius:14px; min-height:44px; padding:0 15px; color:var(--text); background:var(--panel-2); font-weight:700; }
.icon-btn { width:44px; padding:0; display:grid; place-items:center; font-size:20px; }
.primary-btn { background:var(--accent); color:#062018; box-shadow:0 10px 24px rgba(50,208,180,.2); }
.danger-btn { background:rgba(255,107,107,.14); color:#ff9c9c; }
.small-btn { min-height:36px; padding:0 12px; border-radius:12px; border:0; background:var(--panel-3); color:var(--text); font-weight:700; }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:12px; margin:20px 2px 10px; }
.section-head h2 { margin:0; font-size:18px; }
.section-head span { color:var(--muted); font-size:13px; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.stat { background:linear-gradient(150deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:18px; padding:14px; min-width:0; box-shadow:var(--shadow); }
.stat .label { color:var(--muted); font-size:12px; }
.stat .value { margin-top:5px; font-size:19px; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.accounts { display:grid; gap:10px; }
.account-card { width:100%; border:1px solid var(--line); background:linear-gradient(150deg,var(--panel),var(--panel-2)); color:var(--text); border-radius:var(--radius); padding:16px; text-align:left; box-shadow:var(--shadow); display:flex; justify-content:space-between; align-items:center; gap:15px; }
.account-main { min-width:0; }
.account-title { font-size:18px; font-weight:850; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-meta { margin-top:5px; color:var(--muted); font-size:13px; }
.account-total { font-size:20px; font-weight:900; white-space:nowrap; color:var(--accent); }
.empty { border:1px dashed rgba(255,255,255,.16); border-radius:22px; padding:34px 20px; text-align:center; color:var(--muted); background:rgba(255,255,255,.025); }
.empty strong { display:block; color:var(--text); margin-bottom:7px; font-size:18px; }
.fab { position:fixed; z-index:20; right:max(18px, calc((100vw - 900px)/2 + 18px)); bottom:calc(84px + var(--safe-bottom)); width:62px; height:62px; border:0; border-radius:22px; background:var(--accent); color:#062018; font-size:31px; font-weight:500; box-shadow:0 16px 35px rgba(50,208,180,.35); }
.bottom-nav { position:fixed; z-index:15; bottom:0; left:0; right:0; height:calc(72px + var(--safe-bottom)); padding:8px 12px var(--safe-bottom); background:rgba(7,19,31,.9); backdrop-filter:blur(18px); border-top:1px solid var(--line); display:flex; justify-content:center; }
.bottom-nav-inner { width:min(900px,100%); display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.nav-btn { border:0; border-radius:15px; background:transparent; color:var(--muted); font-size:11px; font-weight:700; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.nav-btn .nav-icon { font-size:21px; line-height:1; }
.nav-btn.active { background:var(--panel-2); color:var(--accent); }
.form-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow); }
.field { margin-bottom:14px; }
.field:last-child { margin-bottom:0; }
.field label { display:block; color:var(--muted); font-size:12px; margin:0 0 7px 2px; }
.field input, .field select, .field textarea { width:100%; min-height:48px; border:1px solid var(--line); border-radius:14px; background:var(--panel-2); color:var(--text); padding:0 14px; outline:none; }
.field textarea { padding-top:12px; min-height:92px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(50,208,180,.12); }
.row { display:flex; gap:10px; }
.row > * { flex:1; }
.actions { display:flex; gap:10px; margin-top:14px; }
.actions > * { flex:1; }
.tabs { display:flex; gap:8px; overflow-x:auto; padding:2px 0 10px; scrollbar-width:none; }
.tabs::-webkit-scrollbar { display:none; }
.tab { flex:0 0 auto; border:1px solid var(--line); border-radius:999px; min-height:38px; padding:0 15px; background:var(--panel); color:var(--muted); font-weight:750; }
.tab.active { color:#062018; background:var(--accent); border-color:transparent; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.product { border:1px solid var(--line); border-radius:18px; background:linear-gradient(150deg,var(--panel),var(--panel-2)); color:var(--text); min-height:98px; padding:14px; text-align:left; display:flex; flex-direction:column; justify-content:space-between; box-shadow:var(--shadow); }
.product-name { font-weight:800; line-height:1.2; }
.product-price { color:var(--accent); font-weight:900; font-size:17px; margin-top:12px; }
.account-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.account-header .back { flex:0 0 auto; }
.account-header .title-wrap { min-width:0; flex:1; }
.account-header h2 { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-header p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.cart { display:grid; gap:8px; margin-top:12px; }
.cart-row { border:1px solid var(--line); border-radius:16px; background:var(--panel); padding:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.cart-title { font-weight:800; }
.cart-sub { color:var(--muted); font-size:12px; margin-top:4px; }
.qty { display:flex; align-items:center; gap:8px; }
.qty button { width:34px; height:34px; border:0; border-radius:11px; color:var(--text); background:var(--panel-3); font-size:20px; }
.qty strong { min-width:22px; text-align:center; }
.checkout { position:sticky; bottom:calc(78px + var(--safe-bottom)); margin-top:15px; padding:13px; background:rgba(13,29,44,.95); backdrop-filter:blur(16px); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); }
.checkout-line { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.checkout-line strong { font-size:24px; color:var(--accent); }
.search { width:100%; min-height:46px; border:1px solid var(--line); border-radius:15px; background:var(--panel); color:var(--text); padding:0 14px; margin-bottom:10px; outline:none; }
.list { display:grid; gap:9px; }
.list-item { border:1px solid var(--line); border-radius:16px; background:var(--panel); padding:13px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.list-main { min-width:0; }
.list-title { font-weight:800; }
.list-sub { margin-top:4px; color:var(--muted); font-size:12px; }
.list-actions { display:flex; align-items:center; gap:7px; }
.pill { display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:800; background:var(--panel-3); color:var(--muted); }
.pill.cash { color:#aaf4cf; background:rgba(50,208,180,.12); }
.pill.card { color:#b7ccff; background:rgba(105,147,255,.12); }
.modal-wrap { position:fixed; inset:0; z-index:50; background:rgba(1,7,12,.72); backdrop-filter:blur(8px); display:flex; align-items:flex-end; justify-content:center; padding:16px 16px calc(16px + var(--safe-bottom)); }
.modal { width:min(640px,100%); max-height:88dvh; overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:26px; box-shadow:0 30px 70px rgba(0,0,0,.45); padding:18px; }
.modal h3 { margin:0 0 15px; }
.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.choice { min-height:78px; border:1px solid var(--line); background:var(--panel-2); color:var(--text); border-radius:18px; font-weight:850; }
.choice.active { border-color:var(--accent); color:var(--accent); box-shadow:0 0 0 3px rgba(50,208,180,.10); }
.toast { position:fixed; z-index:100; left:50%; transform:translateX(-50%) translateY(20px); bottom:calc(88px + var(--safe-bottom)); background:#edf8f5; color:#082019; border-radius:14px; padding:11px 16px; font-weight:750; opacity:0; pointer-events:none; transition:.22s ease; box-shadow:var(--shadow); max-width:calc(100vw - 30px); text-align:center; }
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
.warning-box { border:1px solid rgba(255,191,105,.25); background:rgba(255,191,105,.08); color:#ffe0ad; border-radius:16px; padding:13px; font-size:13px; line-height:1.45; }
.divider { height:1px; background:var(--line); margin:16px 0; }
@media (min-width:700px) {
  .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .accounts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.cloud-status{font-size:11px;margin-left:6px}.cloud-status.online{color:#39d98a}.cloud-status.error{color:#ff6b6b}.cloud-status.connecting{color:#ffd166}.cloud-status.local{color:var(--muted)}
textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text);padding:12px;font:inherit;resize:vertical}

/* Bistro Shark – světlý motiv */
:root {
  --bg: #f4f7fb;
  --panel: #ffffff;
  --panel-2: #f7f9fc;
  --panel-3: #eaf1fb;
  --surface-2: #f7f9fc;
  --text: #102033;
  --muted: #64748b;
  --line: #dce4ee;
  --accent: #0877f9;
  --accent-2: #0564d5;
  --danger: #dc3545;
  --warning: #b76e00;
  --shadow: 0 8px 24px rgba(31, 52, 76, .08);
}
html, body { background: var(--bg); color: var(--text); }
.logo { background: linear-gradient(145deg, #0877f9, #28a7ff); color: #fff; box-shadow: 0 10px 24px rgba(8,119,249,.22); }
.icon-btn, .ghost-btn { background: #fff; border: 1px solid var(--line); color: var(--text); }
.primary-btn { background: var(--accent); color:#fff; box-shadow:0 8px 20px rgba(8,119,249,.22); }
.danger-btn { background:#fff1f2; color:#be123c; border:1px solid #fecdd3; }
.small-btn { background:var(--panel-3); color:var(--text); }
.stat, .account-card, .product { background:#fff; box-shadow:var(--shadow); }
.account-card:active, .product:active { transform:scale(.99); }
.account-total, .product-price, .checkout-line strong { color:#07873f; }
.empty { border-color:#bdc8d6; background:#fff; }
.fab { background:var(--accent); color:#fff; box-shadow:0 16px 34px rgba(8,119,249,.28); }
.bottom-nav { background:rgba(255,255,255,.94); border-top:1px solid var(--line); box-shadow:0 -6px 22px rgba(31,52,76,.06); }
.nav-btn.active { background:#eaf3ff; color:var(--accent); }
.field input, .field select, .field textarea, .search, textarea { background:#fff; color:var(--text); }
.field input:focus, .field select:focus, .field textarea:focus, .search:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(8,119,249,.12); }
.tab { background:#fff; color:var(--muted); }
.tab.active { color:#fff; background:var(--accent); }
.qty button { color:var(--text); background:#edf3fb; }
.checkout { background:rgba(255,255,255,.96); }
.pill.cash { color:#087a3f; background:#e8f8ef; }
.pill.card { color:#075fd1; background:#eaf3ff; }
.modal-wrap { background:rgba(15,23,42,.42); }
.modal { background:#fff; box-shadow:0 30px 70px rgba(15,23,42,.22); }
.choice { background:#f8fafc; color:var(--text); }
.choice.active { color:var(--accent); border-color:var(--accent); box-shadow:0 0 0 3px rgba(8,119,249,.10); }
.toast { background:#102033; color:#fff; }
.warning-box { border-color:#f1c878; background:#fff8e8; color:#7a4a00; }
.cloud-status.online { color:#07873f; }
.cloud-status.error { color:#dc3545; }
.cloud-status.connecting { color:#a45f00; }
@media (min-width: 1000px) {
  .app-shell { max-width:1200px; }
  .accounts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .product-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .fab { right:max(18px, calc((100vw - 1200px)/2 + 18px)); }
  .bottom-nav-inner { width:min(1200px,100%); }
}


/* Verze 3 – abecední mřížka a stálé účty */
.accounts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.account-card { min-width:0; padding:13px; }
.account-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-meta { line-height:1.3; }
.bottom-nav-inner { grid-template-columns:repeat(5,1fr); }
.permanent-card { display:flex; flex-direction:column; padding:0; overflow:hidden; }
.permanent-open { width:100%; flex:1; border:0; background:transparent; color:var(--text); text-align:left; padding:14px; }
.credit-label { color:var(--muted); font-size:11px; margin-top:12px; }
.credit-value { color:#07873f; font-size:21px; font-weight:900; margin-top:2px; }
.recharge-btn { border:0; border-top:1px solid var(--line); min-height:42px; background:#eaf3ff; color:var(--accent); font-weight:850; }
.three-choices { grid-template-columns:repeat(3,1fr); }
.choice small { font-size:11px; font-weight:700; }
@media (max-width:520px) {
  .accounts { gap:7px; }
  .account-card { padding:10px; border-radius:14px; }
  .account-title { font-size:14px; }
  .account-meta { font-size:10px; }
  .account-total { font-size:16px; }
  .permanent-open { padding:10px; }
  .credit-value { font-size:16px; }
  .recharge-btn { font-size:11px; padding:4px; }
  .nav-btn { font-size:10px; }
  .nav-btn .nav-icon { font-size:18px; }
}

.custom-product {
  border: 2px dashed #2563eb;
  background: #eff6ff;
}
.custom-product .product-name,
.custom-product .product-price {
  color: #1d4ed8;
}
.success-box{padding:14px 16px;border-radius:14px;background:#ecfdf3;border:1px solid #a7e6bd;color:#165c32;line-height:1.45}.receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.receipt-actions .primary-btn{grid-column:1/-1}@media(max-width:560px){.receipt-actions{grid-template-columns:1fr}.receipt-actions .primary-btn{grid-column:auto}}

/* Verze 7 – vyhledávání, storna, statistiky, uzávěrka a dashboard */
.dashboard-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 18px}.dashboard-grid .stat{min-width:0}.dashboard-grid .featured{grid-column:span 2;background:linear-gradient(135deg,#eef6ff,#fff)}.stat-note{margin-top:6px;color:var(--muted);font-size:12px;font-weight:700}.history-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.history-toolbar .field{margin:0}.history-dashboard{grid-template-columns:repeat(5,minmax(0,1fr))}.cart-controls{display:flex;align-items:center;gap:8px}.void-item-btn{border:1px solid #fecaca;background:#fff1f2;color:#b91c1c;border-radius:10px;padding:7px 9px;font-size:11px;font-weight:850}.pill.credit{color:#7c3aed;background:#f3e8ff}.rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eaf3ff;color:var(--accent);font-weight:900;flex:0 0 auto}.top-products .list-item{align-items:center}
@media(max-width:760px){.dashboard-grid,.history-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid .featured{grid-column:1/-1}.history-toolbar{grid-template-columns:1fr}.cart-row{align-items:flex-start}.cart-controls{flex-direction:column-reverse;align-items:flex-end}.void-item-btn{padding:6px 8px}}

/* Verze 8 – propracovaný světlý vzhled */
:root{
  --bg:#f3f6fa;
  --panel:#ffffff;
  --panel-2:#f7f9fc;
  --panel-3:#edf3fa;
  --surface-2:#f7f9fc;
  --text:#142033;
  --muted:#68778d;
  --line:#dbe3ed;
  --accent:#1264d8;
  --accent-2:#0b4fae;
  --success:#168454;
  --danger:#c93545;
  --warning:#a96508;
  --shadow:0 8px 24px rgba(28,45,68,.07),0 1px 3px rgba(28,45,68,.05);
  --shadow-hover:0 15px 34px rgba(28,45,68,.12),0 2px 7px rgba(28,45,68,.07);
  --radius:18px;
}
html,body{background:radial-gradient(circle at 50% -20%,#fff 0,#f5f8fc 32%,var(--bg) 68%);}
.app-shell{padding-top:calc(18px + var(--safe-top));}
.topbar{margin-bottom:20px;padding:6px 2px;}
.logo{width:50px;height:50px;border-radius:15px;background:linear-gradient(145deg,#176ee4,#0d55be);box-shadow:0 9px 20px rgba(18,100,216,.24);font-size:25px;}
.brand h1{font-size:23px;font-weight:900;letter-spacing:-.035em;}
.brand p{font-size:12px;font-weight:650;color:#75849a;}
.icon-btn,.ghost-btn,.primary-btn,.danger-btn,.small-btn{transition:transform .14s ease,box-shadow .14s ease,background .14s ease;border-radius:12px;}
.icon-btn:active,.ghost-btn:active,.primary-btn:active,.danger-btn:active,.small-btn:active{transform:scale(.97);}
.primary-btn{background:linear-gradient(180deg,#1b70e5,#105bc9);box-shadow:0 7px 17px rgba(18,100,216,.20);font-weight:850;}
.ghost-btn{background:#fff;border:1px solid #d6dfeb;box-shadow:0 2px 5px rgba(28,45,68,.04);}
.section-head{margin-top:24px;margin-bottom:11px;align-items:center;}
.section-head h2{font-size:19px;font-weight:900;letter-spacing:-.025em;}
.section-head span{font-weight:700;background:#eaf0f7;border-radius:999px;padding:5px 9px;}
.dashboard-grid{gap:12px;margin:12px 0 22px;}
.stat{border:1px solid rgba(207,218,231,.9);border-radius:17px;padding:15px 16px;background:linear-gradient(160deg,#fff,#fbfcfe);box-shadow:var(--shadow);position:relative;overflow:hidden;}
.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#cbd7e6;}
.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.055em;font-weight:850;color:#75849a;}
.stat .value{font-size:22px;letter-spacing:-.035em;margin-top:7px;color:#17243a;}
.stat-note{font-size:11px;font-weight:750;}
.dashboard-grid .featured{background:linear-gradient(145deg,#eef5ff,#fff);border-color:#c9dcf8;}
.dashboard-grid .featured:before{background:var(--accent);}
.dashboard-grid .featured .value{color:var(--accent-2);font-size:27px;}
.dashboard-grid .stat:nth-child(2):before{background:#805ad5;}
.dashboard-grid .stat:nth-child(3):before{background:#159668;}
.dashboard-grid .stat:nth-child(4):before{background:#dd8b20;}
.dashboard-grid .stat:nth-child(5):before{background:#3992c8;}
.accounts{gap:12px;}
.account-card{border:1px solid #d9e2ed;background:#fff;border-radius:17px;padding:14px 15px;box-shadow:var(--shadow);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;position:relative;overflow:hidden;}
.account-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2a73d9;opacity:.82;}
.account-card:hover{box-shadow:var(--shadow-hover);border-color:#c3d3e7;transform:translateY(-1px);}
.account-card:active{transform:scale(.985);}
.account-title{font-size:17px;font-weight:900;letter-spacing:-.02em;}
.account-meta{font-weight:650;color:#79869a;}
.account-total{font-size:19px;color:var(--success);letter-spacing:-.025em;}
.permanent-card:before{background:#805ad5;}
.permanent-open{padding:15px 15px 13px 18px;}
.credit-label{text-transform:uppercase;letter-spacing:.05em;font-weight:800;}
.credit-value{color:#6c45bd;font-size:20px;}
.recharge-btn{background:#f5f1ff;color:#6841b5;border-top-color:#e4dafa;}
.empty{background:linear-gradient(145deg,#fff,#fafcff);border:1px dashed #bfcbd9;border-radius:18px;box-shadow:0 3px 10px rgba(28,45,68,.03);}
.fab{width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,#1d72e4,#0b56bd);box-shadow:0 13px 28px rgba(18,100,216,.30);}
.bottom-nav{height:calc(76px + var(--safe-bottom));padding-top:9px;background:rgba(255,255,255,.93);box-shadow:0 -7px 24px rgba(25,42,64,.07);}
.bottom-nav-inner{background:#f5f8fc;border:1px solid #dfe6ef;border-radius:17px;padding:4px;gap:3px;max-width:820px;height:58px;}
.nav-btn{border-radius:13px;font-size:10px;font-weight:800;color:#748399;transition:.15s ease;}
.nav-btn .nav-icon{font-size:19px;}
.nav-btn.active{background:#fff;color:var(--accent);box-shadow:0 3px 10px rgba(28,45,68,.09);}
.tabs{gap:7px;padding-bottom:12px;}
.tab{min-height:39px;border-color:#d9e2ed;padding:0 14px;font-weight:800;box-shadow:0 2px 5px rgba(28,45,68,.025);}
.tab.active{background:linear-gradient(180deg,#1d71e2,#105bc8);box-shadow:0 5px 12px rgba(18,100,216,.18);}
.product-grid{gap:11px;}
.product{min-height:104px;border-radius:16px;border:1px solid #dae3ed;background:linear-gradient(155deg,#fff,#fbfcfe);padding:14px 15px;box-shadow:var(--shadow);transition:.14s ease;position:relative;overflow:hidden;}
.product:after{content:"+";position:absolute;right:11px;bottom:9px;width:27px;height:27px;border-radius:9px;background:#edf4ff;color:var(--accent);display:grid;place-items:center;font-size:20px;font-weight:800;}
.product:hover{transform:translateY(-1px);box-shadow:var(--shadow-hover);border-color:#c6d5e7;}
.product-name{font-size:14px;font-weight:850;padding-right:7px;}
.product-price{color:var(--success);font-size:16px;padding-right:34px;}
.custom-product{border:1.5px dashed #4587dc;background:linear-gradient(145deg,#eef6ff,#fff);}
.custom-product:after{background:#1264d8;color:#fff;}
.search{min-height:49px;border-radius:14px;border-color:#d4deea;padding-left:16px;background:#fff;box-shadow:0 3px 10px rgba(28,45,68,.04);}
.account-header{background:#fff;border:1px solid #dbe3ed;border-radius:17px;padding:10px 12px;box-shadow:var(--shadow);}
.account-header h2{font-size:20px;letter-spacing:-.025em;}
.cart{gap:9px;}
.cart-row{border-radius:15px;border-color:#dbe3ed;background:#fff;box-shadow:0 3px 10px rgba(28,45,68,.035);padding:12px 13px;}
.cart-title{font-weight:900;}
.cart-sub{font-weight:650;}
.qty button{border:1px solid #d8e2ee;background:#f4f7fb;border-radius:10px;font-weight:800;}
.void-item-btn{border-radius:9px;}
.checkout{bottom:calc(82px + var(--safe-bottom));border-radius:17px;border-color:#ccd8e6;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(25,42,64,.13);}
.checkout-line strong{color:var(--success);font-size:26px;letter-spacing:-.04em;}
.form-card,.list-item{border-color:#dbe3ed;border-radius:16px;box-shadow:var(--shadow);}
.list-item{background:#fff;}
.list-title{font-weight:900;}
.pill{background:#eef2f7;font-weight:850;}
.pill.cash{background:#e9f8f0;color:#117449;}
.pill.card{background:#eaf2ff;color:#155bbb;}
.pill.credit{background:#f2ecff;color:#6941b8;}
.modal-wrap{background:rgba(20,32,51,.38);}
.modal{border-radius:22px;border:1px solid rgba(215,225,237,.95);box-shadow:0 28px 68px rgba(20,32,51,.23);}
.modal h3{font-size:21px;letter-spacing:-.025em;}
.choice{border-radius:15px;background:#f8fafc;border-color:#dbe3ed;}
.choice.active{background:#eef5ff;}
.field label{font-weight:800;color:#66758a;}
.field input,.field select,.field textarea{border-radius:12px;border-color:#d6e0eb;}
.rank{background:linear-gradient(145deg,#eaf3ff,#f5f9ff);border:1px solid #d6e5fa;}
.toast{border-radius:12px;box-shadow:0 12px 30px rgba(20,32,51,.20);}
@media(min-width:900px){
  .app-shell{max-width:1240px;padding-left:22px;padding-right:22px;}
  .dashboard-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .dashboard-grid .featured{grid-column:span 2;}
  .accounts{grid-template-columns:repeat(3,minmax(0,1fr));}
  .product-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media(max-width:620px){
  .app-shell{padding-left:10px;padding-right:10px;}
  .topbar{margin-bottom:14px;}
  .logo{width:44px;height:44px;border-radius:13px;}
  .brand h1{font-size:20px;}
  .dashboard-grid{gap:8px;}
  .stat{padding:12px;}
  .stat .value{font-size:19px;}
  .dashboard-grid .featured .value{font-size:22px;}
  .accounts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .account-card{padding:11px 10px 11px 13px;}
  .account-title{font-size:14px;}
  .account-total{font-size:16px;}
  .bottom-nav-inner{border-left:0;border-right:0;border-bottom:0;border-radius:14px 14px 0 0;}
  .product-grid{gap:8px;}
  .product{min-height:94px;padding:12px;}
}

/* =========================================================
   VERZE 9 — SKUTEČNĚ NOVÉ ROZLOŽENÍ „CONTROL DESK“
   ========================================================= */
:root{
  --v9-navy:#14213d;
  --v9-blue:#2563eb;
  --v9-cyan:#0ea5e9;
  --v9-green:#16a34a;
  --v9-orange:#f59e0b;
  --v9-purple:#7c3aed;
  --v9-canvas:#eef3f8;
}
html,body{background:var(--v9-canvas);}
.app-shell{max-width:1480px;padding:22px 22px calc(104px + var(--safe-bottom));}

/* horní lišta jako výrazný pracovní header */
.topbar{
  min-height:82px;
  margin:0 0 22px;
  padding:16px 18px;
  background:linear-gradient(120deg,#14213d 0%,#1e3a5f 58%,#164e63 100%);
  border-radius:24px;
  box-shadow:0 18px 44px rgba(20,33,61,.20);
  color:#fff;
}
.brand h1{font-size:25px;color:#fff;}
.brand p{color:rgba(255,255,255,.72);font-size:13px;}
.topbar .logo{background:#fff;color:var(--v9-navy);box-shadow:none;border-radius:14px;}
.topbar .icon-btn{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.20);box-shadow:none;}
.topbar .cloud-status.local{color:#dbeafe}.topbar .cloud-status.online{color:#86efac}

/* dashboard jako skutečné dlaždice s barevným záhlavím */
.dashboard-grid{grid-template-columns:2fr repeat(4,1fr);gap:14px;margin:0 0 26px;}
.dashboard-grid .stat{
  min-height:122px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:18px;
  border:0;
  border-radius:22px;
  background:#fff;
  box-shadow:0 10px 28px rgba(30,53,78,.09);
}
.dashboard-grid .stat:before{left:18px;top:17px;bottom:auto;width:38px;height:7px;border-radius:999px;background:#94a3b8;}
.dashboard-grid .stat .label{font-size:12px;letter-spacing:.07em;margin-top:18px;}
.dashboard-grid .stat .value{font-size:28px;margin-top:8px;}
.dashboard-grid .featured{
  color:#fff;
  background:linear-gradient(135deg,#2563eb,#0ea5e9);
  box-shadow:0 16px 34px rgba(37,99,235,.25);
}
.dashboard-grid .featured:before{background:rgba(255,255,255,.75);}
.dashboard-grid .featured .label,.dashboard-grid .featured .stat-note{color:rgba(255,255,255,.78);}
.dashboard-grid .featured .value{color:#fff;font-size:36px;}
.dashboard-grid .stat:nth-child(2):before{background:var(--v9-purple)}
.dashboard-grid .stat:nth-child(3):before{background:var(--v9-green)}
.dashboard-grid .stat:nth-child(4):before{background:var(--v9-blue)}
.dashboard-grid .stat:nth-child(5):before{background:var(--v9-orange)}

.section-head{margin:26px 2px 12px;}
.section-head h2{font-size:22px;color:#172033;}
.section-head span{background:#dde7f2;color:#52647a;}

/* účty jako kompaktní POS dlaždice, nikoliv řádky */
.accounts{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;}
.account-card{
  min-height:148px;
  align-items:flex-end;
  padding:20px;
  border:0;
  border-radius:22px;
  background:linear-gradient(145deg,#fff,#f8fafc);
  box-shadow:0 10px 28px rgba(30,53,78,.09);
}
.account-card:before{left:0;right:0;top:0;bottom:auto;width:auto;height:7px;background:linear-gradient(90deg,#2563eb,#0ea5e9);opacity:1;}
.account-card:after{content:"→";position:absolute;right:18px;top:18px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e8f0ff;color:#2563eb;font-weight:900;}
.account-title{font-size:21px;white-space:normal;line-height:1.15;padding-right:35px;}
.account-meta{margin-top:8px;font-size:12px;}
.account-total{font-size:25px;color:#15803d;align-self:flex-end;}
.empty{grid-column:1/-1;background:#fff;border:2px dashed #cbd5e1;border-radius:24px;}

/* stálé účty mají vlastní výraznou identitu */
.permanent-card{min-height:190px;align-items:stretch;}
.permanent-card:before{background:linear-gradient(90deg,#7c3aed,#c026d3);}
.permanent-card:after{content:"★";background:#f3e8ff;color:#7c3aed;}
.permanent-open{padding:20px 20px 10px;}
.credit-value{font-size:30px;color:#6d28d9;}
.recharge-btn{margin:0 14px 14px;border:0;border-radius:13px;background:#ede9fe;color:#6d28d9;}

/* detail účtu: menu v moderních kartách */
.tabs{padding:3px 2px 14px;gap:9px;}
.tab{min-height:44px;padding:0 18px;border:0;background:#dfe8f2;color:#506176;font-weight:850;}
.tab.active{background:var(--v9-navy);color:#fff;box-shadow:0 7px 16px rgba(20,33,61,.18);}
.search{height:56px;border:0;border-radius:18px;padding:0 18px;background:#fff;box-shadow:0 7px 20px rgba(30,53,78,.08);font-size:16px;}
.product-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.product{
  min-height:132px;
  padding:17px;
  border:0;
  border-radius:21px;
  background:#fff;
  box-shadow:0 8px 23px rgba(30,53,78,.08);
  position:relative;
  transition:transform .12s ease,box-shadow .12s ease;
}
.product:after{content:"+";position:absolute;right:14px;bottom:14px;width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:#e7efff;color:#2563eb;font-size:21px;font-weight:900;}
.product:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(30,53,78,.13);}
.product-name{font-size:16px;padding-right:8px;}
.product-price{font-size:19px;color:#172033;padding-right:42px;}
.custom-product{border:2px dashed #60a5fa;background:#eff6ff;box-shadow:none;}

.cart{gap:11px;}
.cart-row{padding:15px 16px;border:0;border-radius:18px;background:#fff;box-shadow:0 6px 18px rgba(30,53,78,.07);}
.qty button{background:#e7efff;color:#1d4ed8;}
.checkout{border:0;border-radius:22px;background:rgba(255,255,255,.98);box-shadow:0 15px 38px rgba(30,53,78,.16);}

/* Historie / seznamy */
.form-card,.list-item{border:0;background:#fff;box-shadow:0 7px 20px rgba(30,53,78,.07);}
.list{gap:11px;}
.list-item{border-radius:18px;padding:15px 16px;}
.rank{background:var(--v9-navy);color:#fff;}

/* plovoucí tlačítko */
.fab{width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,#2563eb,#0ea5e9);box-shadow:0 16px 30px rgba(37,99,235,.30);}

/* skutečně jiné desktopové rozložení: boční navigace */
@media (min-width:800px){
  .app-shell{padding-left:126px;padding-bottom:28px;}
  .bottom-nav{
    top:18px;bottom:18px;left:max(18px,calc((100vw - 1480px)/2 + 18px));right:auto;
    width:88px;height:auto;padding:14px 9px;
    border:0;border-radius:26px;
    background:var(--v9-navy);
    box-shadow:0 18px 44px rgba(20,33,61,.25);
    align-items:center;
  }
  .bottom-nav-inner{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:10px;}
  .nav-btn{min-height:68px;border-radius:18px;color:#94a3b8;font-size:10px;}
  .nav-btn .nav-icon{font-size:23px;}
  .nav-btn.active{background:#fff;color:var(--v9-blue);box-shadow:0 8px 18px rgba(0,0,0,.18);}
  .fab{right:max(28px,calc((100vw - 1480px)/2 + 28px));bottom:28px;}
  .history-dashboard{grid-template-columns:2fr repeat(4,1fr);}
}

@media (min-width:1250px){
  .accounts{grid-template-columns:repeat(3,minmax(0,1fr));}
  .product-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}

@media (max-width:760px){
  .app-shell{padding:12px 12px calc(92px + var(--safe-bottom));}
  .topbar{border-radius:20px;padding:13px 14px;min-height:70px;}
  .brand h1{font-size:20px;}
  .dashboard-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .dashboard-grid .featured{grid-column:1/-1;min-height:112px;}
  .dashboard-grid .stat{min-height:105px;padding:14px;}
  .dashboard-grid .stat .value{font-size:21px;}
  .accounts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .account-card{min-height:130px;padding:15px;display:block;}
  .account-title{font-size:16px;}
  .account-total{font-size:21px;margin-top:16px;}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .product{min-height:116px;padding:14px;}
}

/* v10: visible release marker and Chromebook-first control desk */
.version-pill{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;padding:2px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:900;letter-spacing:.04em;vertical-align:1px}
@media (min-width:800px){
  .app-shell{max-width:1600px;margin:0 auto;padding-left:132px!important;}
  .topbar{position:sticky;top:18px;z-index:8;}
  .main{min-height:calc(100vh - 150px);}
  .accounts{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .dashboard-grid{grid-template-columns:2fr repeat(4,minmax(0,1fr))!important;}
  .dashboard-grid .featured{grid-column:auto!important;}
}
@media (min-width:800px) and (max-width:1100px){
  .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  .account-card{min-height:150px;}
}

/* SharkPOS v11 – pouze kompaktnější dlaždice otevřených účtů.
   Ostatní vzhled zůstává beze změny oproti v10. */
.accounts:not(.permanent-grid) .account-card {
  min-height: 104px;
  padding: 15px 18px 14px;
  align-items: flex-end;
}
.accounts:not(.permanent-grid) .account-card::after {
  content: none;
  display: none;
}
.accounts:not(.permanent-grid) .account-title {
  padding-right: 0;
}
.accounts:not(.permanent-grid) .account-meta {
  margin-top: 7px;
}
@media (max-width: 760px) {
  .accounts:not(.permanent-grid) .account-card {
    min-height: 92px;
    padding: 13px 14px 12px;
  }
}

/* SharkPOS v11.2 – kompaktní dlaždice položek v menu.
   Mění se pouze velikost produktových dlaždic; ostatní vzhled a funkce zůstávají stejné. */
.product-grid {
  gap: 9px;
}
.product {
  min-height: 76px;
  padding: 10px 11px;
  border-radius: 15px;
}
.product::after {
  right: 8px;
  bottom: 8px;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  font-size: 17px;
}
.product-name {
  font-size: 13px;
  line-height: 1.12;
  padding-right: 4px;
}
.product-price {
  margin-top: 5px;
  padding-right: 30px;
  font-size: 15px;
  line-height: 1;
}

@media (min-width: 1400px) {
  .product-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 1100px) and (max-width: 1399px) {
  .product-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 800px) and (max-width: 1099px) {
  .product-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 521px) and (max-width: 799px) {
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 520px) {
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }
  .product {
    min-height: 74px;
    padding: 9px 10px;
  }
}

/* v11.3: cloud status remains visually identical, but is clickable. */
.cloud-status-btn {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  cursor: pointer;
}


/* v11.5 – funkční správa menu; vzhled pokladny zůstává beze změny */
.menu-manager-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:12px}
.menu-manager-search{margin:0}
.menu-manager-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.menu-filter-tabs{margin-bottom:2px}
.menu-manager-item{align-items:center}
.menu-manager-item.is-hidden{opacity:.64;background:#f7f9fc}
.menu-manager-right{display:flex;align-items:center;gap:14px;justify-content:flex-end;min-width:0}
.menu-manager-buttons,.category-manager-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.menu-order-btn{min-width:38px;padding:0 9px;font-size:16px}
.menu-order-btn:disabled{opacity:.32;cursor:not-allowed;transform:none}
.category-manager-row{align-items:center}
@media(max-width:760px){
  .menu-manager-toolbar{grid-template-columns:1fr}
  .menu-manager-actions{justify-content:stretch}
  .menu-manager-actions>*{flex:1}
  .menu-manager-item{align-items:flex-start;flex-direction:column}
  .menu-manager-right{width:100%;justify-content:space-between;align-items:flex-end}
}
@media(max-width:480px){
  .menu-manager-right{align-items:flex-start;flex-direction:column}
  .menu-manager-buttons,.category-manager-actions{justify-content:flex-start}
  .category-manager-row{align-items:flex-start;flex-direction:column}
}


/* v11.5.3 – Bistro Shark branding */
.brand{gap:14px}
.logo.brand-logo-box{width:128px;height:58px;border-radius:16px;padding:6px 10px;background:#fff;box-shadow:0 10px 24px rgba(12,18,36,.10);display:flex;align-items:center;justify-content:center;overflow:hidden}
.brand-logo-image{width:108px;height:auto;display:block}
.topbar .brand h1{letter-spacing:-.03em}
@media (max-width:760px){.logo.brand-logo-box{width:106px;height:50px;padding:5px 8px}.brand-logo-image{width:90px;height:auto}}


/* v11.5.6 – výběr a správa kategorií přímo při editaci položky */
.category-inline-actions{
  display:flex;
  gap:8px;
  margin:-2px 0 14px;
  flex-wrap:wrap;
}
.category-inline-actions .ghost-btn{
  flex:1;
  min-width:170px;
}
@media(max-width:560px){
  .category-inline-actions{
    flex-direction:column;
  }
  .category-inline-actions .ghost-btn{
    width:100%;
    min-width:0;
  }
}


/* v11.5.7 – výrazně kompaktnější přehled na úvodní stránce */
.home-dashboard{
  gap:8px;
  margin:0 0 10px;
}
.home-dashboard .stat{
  min-height:58px;
  padding:9px 12px 8px;
  border-radius:15px;
  justify-content:center;
}
.home-dashboard .stat::before{
  left:12px;
  top:9px;
  width:24px;
  height:4px;
}
.home-dashboard .stat .label{
  margin-top:5px;
  font-size:9px;
  line-height:1.1;
  letter-spacing:.06em;
}
.home-dashboard .stat .value{
  margin-top:3px;
  font-size:18px;
  line-height:1.05;
}
.home-dashboard .featured .value{
  font-size:21px;
}
.home-dashboard .stat-note{
  margin-top:2px;
  font-size:9px;
  line-height:1.05;
}
.home-dashboard + .section-head{
  margin-top:10px;
}

@media(max-width:760px){
  .home-dashboard{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-bottom:8px;
  }
  .home-dashboard .featured{
    grid-column:1/-1;
    min-height:58px;
  }
  .home-dashboard .stat{
    min-height:55px;
    padding:8px 10px 7px;
  }
  .home-dashboard .stat .value{
    font-size:17px;
  }
  .home-dashboard .featured .value{
    font-size:20px;
  }
}


/* v11.5.8 – čtyři rozpracované účty vedle sebe na tabletu a Chromebooku */
@media(min-width:800px){
  .accounts:not(.permanent-grid){
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:12px;
  }
  .accounts:not(.permanent-grid) .account-card{
    min-width:0;
    padding-left:15px;
    padding-right:15px;
  }
  .accounts:not(.permanent-grid) .account-title{
    font-size:19px;
    overflow-wrap:anywhere;
  }
  .accounts:not(.permanent-grid) .account-total{
    font-size:22px;
    white-space:nowrap;
  }
}

@media(min-width:800px) and (max-width:1050px){
  .accounts:not(.permanent-grid) .account-card{
    padding-left:12px;
    padding-right:12px;
  }
  .accounts:not(.permanent-grid) .account-title{
    font-size:17px;
  }
  .accounts:not(.permanent-grid) .account-meta{
    font-size:11px;
  }
  .accounts:not(.permanent-grid) .account-total{
    font-size:20px;
  }
}


/* v11.6.0 – spropitné v platebním toku */
.tip-panel{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fbff;
}
.tip-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
}
.tip-panel-head span{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.tip-presets{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.tip-preset{
  min-height:44px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font-weight:800;
}
.tip-preset.active{
  border-color:var(--primary);
  background:#eaf2ff;
  color:var(--primary);
  box-shadow:inset 0 0 0 1px var(--primary);
}
.tip-custom-field{
  margin-top:10px;
  margin-bottom:0;
}
.checkout-breakdown{
  margin-top:14px;
  padding:12px 14px;
  border-radius:15px;
  background:#f7f9fc;
  border:1px solid var(--line);
}
.checkout-line.compact-line{
  margin-bottom:7px;
}
.checkout-line.compact-line strong{
  font-size:18px;
  color:var(--text);
}
.checkout-line.grand-total{
  margin:10px 0 0;
  padding-top:10px;
  border-top:1px solid var(--line);
}
.checkout-line.grand-total strong{
  font-size:25px;
  color:var(--success);
}
@media(max-width:480px){
  .tip-presets{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
