:root{--bg:#f3f6fa;--fg:#1d2733;--mut:#6b7a8a;--card:#fff;--line:#dde4ec;--acc:#1f4e79;--acc2:#e3edf7;--err:#c62828;--ok:#1b7f3b;--side:#16324f;--hi:#4a90c2;--shadow:0 1px 2px #1f4e7914,0 4px 14px #1f4e790d}
@media (prefers-color-scheme:dark){:root{--bg:#0f151d;--fg:#e4e9f0;--mut:#93a1b2;--card:#17212d;--line:#283546;--acc:#5aa3dc;--acc2:#1e3550;--err:#ff7b7b;--ok:#5fd68a;--side:#0b1520;--hi:#5aa3dc;--shadow:0 1px 2px #0006}}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--fg);display:flex;min-height:100vh}
aside{width:230px;background:var(--side);color:#dfe3ee;padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}
.brand{font-weight:700;padding:4px 10px 16px;font-size:16px}nav{display:flex;flex-direction:column;gap:2px;flex:1}
nav a{color:#c3c9da;text-decoration:none;padding:8px 10px;border-radius:7px}nav a:hover{background:#ffffff14}nav a.on{background:var(--acc);color:#fff}
.logout{font-size:13px;padding:8px 10px;color:#98a0b5}.logout .link{color:#c3c9da}
main{flex:1;padding:28px 34px;max-width:1100px;min-width:0}main.solo{margin:auto;max-width:460px}
h1{margin:0 0 18px;font-size:24px}h2{margin:28px 0 10px;font-size:17px}h3{margin:18px 0 6px}
a{color:var(--acc)}.muted{color:var(--mut)}.neg{color:var(--err)}.okc{color:var(--ok)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin:0 0 16px}.narrow{margin-top:12vh}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:12px}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);background:var(--bg)}
.r{text-align:right;font-variant-numeric:tabular-nums}tr.sum td{font-weight:700;background:var(--bg)}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mut);margin-bottom:12px;flex:1}label.chk{flex-direction:row;align-items:center;gap:8px;color:var(--fg);flex:0 0 auto;margin-top:18px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--fg);width:100%}
input.s{width:70px}input.m{width:120px}input[type=checkbox]{width:auto}input[type=file]{margin-bottom:12px}
.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.row>label{min-width:140px}.row>button,.row>a{margin-bottom:12px}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:7px;padding:9px 16px;font:inherit;cursor:pointer;text-decoration:none}
.btn.sec{background:var(--acc2);color:var(--acc)}.btn.danger{background:transparent;color:var(--err);border:1px solid var(--err)}
.link{background:none;border:0;color:var(--acc);cursor:pointer;font:inherit;padding:0}.inline{display:inline}.actions{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px}.alert.err{background:#c6282820;color:var(--err)}.alert.ok{background:#1b7f3b20;color:var(--ok)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.stat span{display:block;color:var(--mut);font-size:13px}.stat b{font-size:21px;font-variant-numeric:tabular-nums}
.hidden{display:none!important}
.alert.warn{background:#d9890020;color:var(--fg);border:1px solid #d98900}
.badge{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;font-weight:600}.badge.ok{background:#1b7f3b25;color:var(--ok)}.badge.wait{background:#d9890030;color:#b36b00}.badge.bad{background:#c6282825;color:var(--err)}
.dot{background:var(--err);color:#fff;border-radius:99px;padding:0 7px;font-size:12px;font-weight:700}
table.kv th{width:230px;text-transform:none;letter-spacing:0;font-size:13px}code{font-size:12px;background:var(--bg);padding:1px 5px;border-radius:4px;word-break:break-all}
.total{font-size:16px}#items input,#items select{padding:6px 8px}
@media print{aside,.btn,form{display:none}main{padding:0}}

/* menu: na počítači viditelné, na mobilu za tlačítkem */
.navtoggle{display:none}.burger{display:none}.topbar{display:block}
.filters{margin:6px 0 10px}.filters a{padding:2px 4px}.filters a.on{font-weight:700;text-decoration:underline}
.bulkbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:10px 14px;margin-bottom:10px}.bulkbar label{margin:0}
.chkcol{width:32px;text-align:center}.chkcol input{width:18px;height:18px}
.qrbox{display:flex;gap:14px;align-items:center;max-width:420px}.qrbox svg{display:block;border:1px solid #ddd}
.bank-q{width:100%;max-width:320px;margin:6px 0}.bank-results{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.bank-hit{display:block;text-align:left;white-space:normal;cursor:pointer;margin:2px 0}.bank-hit input{width:auto;min-height:0;margin-right:6px}
.invnote{white-space:pre-line;margin:6px 0 12px}
@media (max-width:800px){
  body{flex-direction:column;font-size:16px}
  aside{width:100%;height:auto;position:sticky;top:0;z-index:20;padding:0;flex-direction:column;max-height:100vh;overflow-y:auto;padding-top:env(safe-area-inset-top)}
  .topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;min-height:52px}
  .brand{padding:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:48px;height:44px;align-items:center;cursor:pointer;border-radius:8px;margin:0;flex:0 0 auto}
  .burger span{display:block;width:24px;height:2px;background:#dfe3ee;border-radius:2px;transition:transform .2s,opacity .2s}
  .navtoggle:checked~.topbar .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .navtoggle:checked~.topbar .burger span:nth-child(2){opacity:0}
  .navtoggle:checked~.topbar .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  nav,.logout{display:none}
  .navtoggle:checked~nav{display:flex;flex-direction:column;padding:4px 10px 8px}
  .navtoggle:checked~.logout{display:block;padding:8px 18px 14px;border-top:1px solid #ffffff1a}
  nav a{padding:12px 12px;font-size:16px}
  main{padding:16px max(16px,env(safe-area-inset-right)) 28px max(16px,env(safe-area-inset-left))}
  h1{font-size:21px;margin-bottom:14px}
  input,select,textarea{font-size:16px;min-height:44px}
  input[type=checkbox]{min-height:0;width:20px;height:20px}
  input.s,input.m{width:100%}
  .row{gap:0 12px}.row>label{min-width:100%;flex:1 1 100%}
  label.chk{margin-top:4px}
  .btn,button.btn{min-height:44px;padding:11px 16px;text-align:center}
  .actions{flex-direction:column}.actions>.btn,.actions>form{width:100%}.actions>form .btn{width:100%}
  .row>.btn,.row>button{width:100%}
  .grid{grid-template-columns:1fr 1fr}.stat b{font-size:18px}
  .card{padding:14px}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:14px}
  th,td{padding:8px;white-space:nowrap}td.wrap,td:has(input){white-space:normal}
  table.kv th{width:auto}
  .bulkbar{align-items:stretch}.bulkbar>*{flex:1 1 100%}.bulkbar .btn{width:100%}
  .chkcol{width:44px}.chkcol input{width:22px;height:22px}
  #items input,#items select{min-width:90px}#items input[name=description]{min-width:180px}
}
@media (max-width:420px){.grid{grid-template-columns:1fr}}
@media print{.burger,.navtoggle,.topbar{display:none}}


/* Vzhled prostředí: sladěno s PDF doklady (modrá, měkké stíny, zaoblení) */
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
aside{background:linear-gradient(180deg,var(--side),#0f2438);border-right:3px solid var(--hi);padding:20px 12px}
.brand{font-size:15px;letter-spacing:.01em;color:#fff;border-bottom:1px solid #ffffff1f;margin:0 4px 12px;padding:4px 6px 14px}
nav a{color:#b8c9db;font-size:14px;padding:8px 12px;border-radius:8px;transition:background .15s,color .15s}
nav a:hover{background:#ffffff18;color:#fff}
nav a.on{background:#ffffff22;color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--hi)}
.logout{border-top:1px solid #ffffff1f;margin-top:8px;padding-top:12px}.logout .link{color:#b8c9db}
main{padding:30px 38px}
h1{font-size:25px;font-weight:700;color:var(--acc);letter-spacing:-.01em;padding-bottom:10px;border-bottom:2px solid var(--line);position:relative}
h1:after{content:"";position:absolute;left:0;bottom:-2px;width:64px;height:2px;background:var(--hi)}
h2{color:var(--acc);font-size:16px}
.card,.stat,table{box-shadow:var(--shadow);border-radius:12px}
.stat{border-top:3px solid var(--hi)}.stat b{color:var(--acc)}
th{background:var(--acc2);color:var(--acc);font-weight:700;border-bottom:1px solid var(--line)}
tbody tr:nth-child(even) td,table tr:nth-child(even) td{background:color-mix(in srgb,var(--acc2) 35%,transparent)}
tr.sum td{background:var(--acc2)!important;color:var(--acc)}
tbody tr:hover td{background:var(--acc2)}
input,select,textarea{border-radius:8px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--hi);box-shadow:0 0 0 3px #4a90c230}
.btn{border-radius:8px;font-weight:600;box-shadow:0 1px 2px #1f4e7933;transition:filter .15s,transform .05s}
.btn:hover{filter:brightness(1.1)}.btn:active{transform:translateY(1px)}
.btn.sec{box-shadow:none}
.alert{border-radius:10px}
.badge{letter-spacing:.01em}
body>main.solo{background:transparent}.narrow{box-shadow:0 10px 30px #1f4e7922;border-top:4px solid var(--hi)}
@media (max-width:800px){main{padding:16px max(16px,env(safe-area-inset-right)) 28px max(16px,env(safe-area-inset-left))}aside{border-right:0;border-bottom:3px solid var(--hi)}}
