/* Podací — vzhled podle mockupu (tokeny světlý + tmavý, Barlow + IBM Plex Mono) */
:root{
  --ink:#12171C; --ink-2:#4A5761; --ink-3:#5E6B75;
  --ground:#EFF2F4; --surface:#FFFFFF; --surface-2:#F7F9FA;
  --line:#D8E0E5; --line-soft:#E7ECEF;
  --accent:#0B5D75; --accent-soft:#E0EFF3; --accent-ink:#08475A;
  --warn:#A65209; --warn-soft:#FBEEDF; --warn-line:#E8C79A;
  --err:#A32020; --err-soft:#FBE4E4;
  --ok:#166534; --ok-soft:#E1F0E5;
  --busy:#4B4397; --busy-soft:#E9E7F7;
  --ship:#7A2E6E; --ship-soft:#F6E6F3;
  --shadow:0 1px 2px rgba(18,23,28,.06), 0 6px 20px -12px rgba(18,23,28,.28);
  --radius:7px;
  --topbar-h:50px; --nav-h:64px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --ink:#E6ECEF; --ink-2:#A0AEB7; --ink-3:#78868F;
  --ground:#0E1317; --surface:#161D22; --surface-2:#1B242A;
  --line:#2B363E; --line-soft:#222C33;
  --accent:#4FA6C1; --accent-soft:#123039; --accent-ink:#8FCBDD;
  --warn:#E0A461; --warn-soft:#33240F; --warn-line:#5C4520;
  --err:#F08A8A; --err-soft:#3A1515;
  --ok:#67B183; --ok-soft:#14291B;
  --busy:#9E97E0; --busy-soft:#1D1A38;
  --ship:#CF8FC2; --ship-soft:#301029;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.7);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --ink:#E6ECEF; --ink-2:#A0AEB7; --ink-3:#78868F;
  --ground:#0E1317; --surface:#161D22; --surface-2:#1B242A;
  --line:#2B363E; --line-soft:#222C33;
  --accent:#4FA6C1; --accent-soft:#123039; --accent-ink:#8FCBDD;
  --warn:#E0A461; --warn-soft:#33240F; --warn-line:#5C4520;
  --err:#F08A8A; --err-soft:#3A1515;
  --ok:#67B183; --ok-soft:#14291B;
  --busy:#9E97E0; --busy-soft:#1D1A38;
  --ship:#CF8FC2; --ship-soft:#301029;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.7);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px; line-height:1.45; -webkit-font-smoothing:antialiased;
}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace; font-variant-numeric:tabular-nums}
.cond{font-family:"Barlow Semi Condensed","Barlow",sans-serif}
[hidden]{display:none!important}
a{color:var(--accent)}
button{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
input,select,textarea{font:inherit; color:var(--ink)}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ---------- přihlášení ---------- */
.login{min-height:100%; display:grid; place-items:center; padding:24px}
.login-box{width:100%; max-width:380px; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); padding:26px 24px}
.login-box h1{margin:0 0 4px; font-size:24px; font-weight:700; letter-spacing:-.02em; display:flex; align-items:center; gap:9px}
.login-box p.sub{margin:0 0 18px; color:var(--ink-2)}
.login-tabs{display:flex; gap:4px; margin-bottom:14px}
.login-tabs button{flex:1; font-weight:600; background:transparent; border:1px solid transparent; border-radius:var(--radius); padding:8px; cursor:pointer; color:var(--ink-2); min-height:44px}
.login-tabs button[aria-selected="true"]{background:var(--surface-2); border-color:var(--line); color:var(--ink)}
.login .err{color:var(--err); background:var(--err-soft); border-radius:6px; padding:8px 10px; margin:0 0 10px; font-size:13.5px}

/* ---------- app shell ---------- */
#app{height:100dvh; height:100vh; display:flex; flex-direction:column; overflow:hidden}
@supports (height:100dvh){#app{height:100dvh}}
#app[inert]{pointer-events:none}
.topbar{display:flex; align-items:center; gap:14px; padding:8px 14px; border-bottom:1px solid var(--line); background:var(--surface-2); min-height:var(--topbar-h); position:sticky; top:0; z-index:30}
.brand{display:flex; align-items:center; gap:8px; font-weight:700; letter-spacing:-.01em; white-space:nowrap; text-decoration:none; color:var(--ink)}
.brand .dot{width:9px; height:9px; border-radius:2px; background:var(--accent)}
.search{position:relative; flex:1; min-width:0; max-width:560px}
.search input{
  width:100%; font:inherit; padding:7px 11px 7px 32px; color:var(--ink);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); min-height:36px;
}
.search input:focus{outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent)}
.search .mag{position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--ink-3); font-size:13px; pointer-events:none}
.kbd{
  font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-3);
  border:1px solid var(--line); border-bottom-width:2px; border-radius:4px; padding:1px 5px;
}
.who{display:flex; align-items:center; gap:7px; margin-left:auto; white-space:nowrap}
.who button{background:transparent; border:1px solid transparent; border-radius:var(--radius); padding:5px 8px; cursor:pointer; display:flex; align-items:center; gap:7px; min-height:36px}
.who button:hover{border-color:var(--line); background:var(--surface)}
.avatar{width:26px; height:26px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font-size:11px; font-weight:700}
.theme-btn{font-size:16px; line-height:1}

#view{flex:1; display:flex; flex-direction:column; min-height:0; overflow:hidden}
#view > *{min-height:0}
.formwrap, .me{overflow-y:auto}
#nova-body{overflow-y:auto}
#nova-body > .chat{flex:1; min-height:0}

/* ---------- rozvržení chat | nástěnka ---------- */
.split{display:grid; grid-template-columns:352px 1fr; flex:1; min-height:0; overflow:hidden}
.nova{overflow:hidden}
.chat{border-right:1px solid var(--line); display:flex; flex-direction:column; background:var(--surface); min-height:0}
.chat-head, .board-head{
  padding:9px 13px; border-bottom:1px solid var(--line-soft);
  font-family:"Barlow Semi Condensed",sans-serif; font-size:11px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3);
  display:flex; align-items:center; justify-content:space-between; gap:8px;
}
.msgs{flex:1; padding:14px 13px; display:flex; flex-direction:column; gap:11px; overflow-y:auto; min-height:0}
.msg{max-width:92%; padding:9px 11px; border-radius:9px; font-size:13.5px; overflow-wrap:anywhere}
.msg.me{align-self:flex-end; background:var(--accent-soft); color:var(--accent-ink); border-bottom-right-radius:3px}
.msg.ai{align-self:flex-start; background:var(--surface-2); border:1px solid var(--line-soft); border-bottom-left-radius:3px}
.msg.sys{align-self:center; color:var(--ink-3); font-size:12.5px; font-style:italic}
.msg p{margin:0 0 6px} .msg p:last-child{margin:0}
.msg strong{font-weight:600}
.msg img{max-width:100%; border-radius:6px; display:block; margin-top:6px}
.img-count{font-size:12.5px; opacity:.8; margin-top:4px}
.msg.busy::after{content:"…"; animation:dots 1s steps(3,end) infinite}
@keyframes dots{0%{content:"."}33%{content:".."}66%{content:"..."}}

.ask{border:1px solid var(--warn-line); background:var(--warn-soft); border-radius:9px; padding:10px 11px; font-size:13px}
.ask-title{color:var(--warn); font-weight:600; display:flex; gap:6px; align-items:flex-start; margin-bottom:7px; line-height:1.35}
.chips{display:flex; flex-wrap:wrap; gap:6px}
.chip{
  font:inherit; font-size:12.5px; font-weight:500; cursor:pointer; min-height:32px;
  background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:99px; padding:4px 11px;
}
.chip:hover{border-color:var(--accent); color:var(--accent)}
.chip.primary{background:var(--accent); border-color:var(--accent); color:#fff}
.chip.ghost{color:var(--ink-3)}

.matchcard{border:1px solid var(--line); border-radius:9px; padding:9px 10px; background:var(--surface); font-size:13px}
.matchcard .name{font-weight:600}
.matchcard .meta{color:var(--ink-3); font-size:12.5px; margin:2px 0 8px}
.composer{border-top:1px solid var(--line-soft); padding:10px 12px; display:flex; gap:8px; align-items:center}
.composer input[type="text"]{flex:1; min-width:0; font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface-2); color:var(--ink); min-height:40px}
.composer input:focus{outline:2px solid var(--accent); outline-offset:-1px}
.send{font:inherit; font-weight:600; background:var(--accent); color:#fff; border:0; border-radius:var(--radius); padding:8px 13px; cursor:pointer; min-height:40px}
.send:disabled{opacity:.5; cursor:not-allowed}
.iconbtn{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); min-width:40px; min-height:40px; cursor:pointer; font-size:17px; display:grid; place-items:center}
.iconbtn:hover{border-color:var(--accent); color:var(--accent)}
.budget{font-size:11.5px; color:var(--ink-3); padding:4px 13px 8px; text-align:right}
.chat-off{padding:16px 13px; color:var(--ink-2); font-size:13.5px}

/* ---------- nástěnka ---------- */
.board{display:flex; flex-direction:column; background:var(--ground); min-height:0; overflow-y:auto}
.board-head{background:var(--surface); border-bottom:1px solid var(--line)}
.board-head .plain{text-transform:none; letter-spacing:0; font-family:Barlow; font-size:12.5px; font-weight:500}
.cols{display:grid; grid-template-columns:1.55fr 1fr; gap:1px; background:var(--line-soft); flex:1; align-items:start}
.col{background:var(--ground); padding:10px 9px; display:flex; flex-direction:column; gap:8px; min-width:0; min-height:100%}
.col-head{display:flex; align-items:baseline; justify-content:space-between; gap:6px; padding:0 2px 2px}
.col-name{font-family:"Barlow Semi Condensed",sans-serif; font-weight:600; font-size:12px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-2)}
.col-count{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--ink-3)}
.col-auto{font-size:10.5px; color:var(--ink-3); font-style:italic; padding:0 2px 4px; margin-top:-4px}
.empty{color:var(--ink-3); font-size:13px; padding:14px 6px; text-align:center}

.done-row{
  display:flex; align-items:center; gap:8px; padding:7px 9px; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); font-size:12.5px; cursor:pointer; text-align:left; width:100%;
}
.done-row:hover{border-color:var(--accent)}
.done-row .flag{font-size:13px}
.done-row .dn{font-weight:600; flex:1; min-width:0; overflow-wrap:anywhere}
.done-row .dt{color:var(--ink-3); font-family:"IBM Plex Mono",monospace; font-size:11px; white-space:nowrap}
.more{
  font:inherit; font-size:12.5px; font-weight:600; color:var(--accent); background:transparent;
  border:1px dashed var(--line); border-radius:var(--radius); padding:7px; cursor:pointer; width:100%; min-height:36px;
}
.more:hover{border-color:var(--accent)}

.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:9px 10px; display:flex; flex-direction:column; gap:6px; cursor:pointer;
  border-left:3px solid var(--line); text-align:left; width:100%;
}
.card:hover{border-color:var(--accent); box-shadow:var(--shadow)}
.card.s-new{border-left-color:var(--ink-3)}
.card.s-miss{border-left-color:var(--warn)}
.card.s-ready{border-left-color:var(--accent)}
.card.s-order{border-left-color:var(--ok)}
.card.s-sent{border-left-color:var(--ship)}
.card.s-check{border-left-color:var(--busy)}
.card-top{display:flex; align-items:baseline; gap:6px; flex-wrap:wrap}
.flag{font-size:14px; line-height:1; flex:none}
.card-name{font-weight:600; font-size:14.5px; overflow-wrap:anywhere; min-width:0}
.card-city{color:var(--ink-3); font-size:13px; overflow-wrap:anywhere}
.card-meta{display:flex; flex-wrap:wrap; gap:4px 8px; font-size:11.5px; color:var(--ink-2)}
.card-foot{display:flex; align-items:center; gap:6px; font-size:11px; color:var(--ink-3); margin-top:1px}
.who-mini{width:17px; height:17px; border-radius:50%; display:grid; place-items:center; font-size:9.5px; font-weight:700; color:#fff; flex:none; background:var(--accent)}
.ml-auto{margin-left:auto}

.tag{
  font-family:"Barlow Semi Condensed",sans-serif; font-weight:600; font-size:11px;
  letter-spacing:.04em; padding:1px 6px; border-radius:3px; white-space:nowrap; display:inline-block;
}
.t-warn{background:var(--warn-soft); color:var(--warn)}
.t-err{background:var(--err-soft); color:var(--err)}
.t-ok{background:var(--ok-soft); color:var(--ok)}
.t-acc{background:var(--accent-soft); color:var(--accent-ink)}
.t-busy{background:var(--busy-soft); color:var(--busy)}
.t-ship{background:var(--ship-soft); color:var(--ship)}
.t-plain{background:var(--surface-2); color:var(--ink-2); border:1px solid var(--line-soft)}

/* ---------- vyhledávání ---------- */
.results{
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:40;
  background:var(--surface); border:1px solid var(--line); border-radius:9px; box-shadow:var(--shadow);
  overflow:hidden; max-height:70vh; overflow-y:auto;
}
.results.static{position:static; box-shadow:none; max-height:none; border-radius:var(--radius); margin-top:10px}
.res-group{font-family:"Barlow Semi Condensed",sans-serif; font-size:10.5px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3); padding:8px 12px 4px; border-top:1px solid var(--line-soft)}
.res-group:first-child{border-top:0}
.res{display:flex; align-items:center; gap:9px; padding:7px 12px; cursor:pointer; min-height:44px}
.res:hover, .res.on{background:var(--accent-soft)}
.res-main{flex:1; min-width:0}
.res-title{font-size:13.5px; font-weight:500; overflow-wrap:anywhere}
.res-title mark{background:transparent; color:var(--accent); font-weight:700; padding:0}
.res-sub{font-size:12px; color:var(--ink-3); overflow-wrap:anywhere}
.res-act{font:inherit; font-size:12px; font-weight:600; color:var(--accent); white-space:nowrap; border:1px solid var(--line); border-radius:99px; padding:2px 9px; background:var(--surface); cursor:pointer; min-height:32px}
.res-act:hover{border-color:var(--accent)}
.res-empty{padding:12px; color:var(--ink-3); font-size:13px}

/* ---------- detail karty ---------- */
.detail{display:grid; grid-template-columns:1fr 300px; flex:1; min-height:0; background:var(--surface); overflow:hidden}
.detail-main{padding:0; border-right:1px solid var(--line); min-width:0; overflow-y:auto}
.side{overflow-y:auto}
.dhead{padding:14px 18px 12px; border-bottom:1px solid var(--line)}
.dtitle{display:flex; align-items:center; gap:9px; flex-wrap:wrap}
.dtitle h2{margin:0; font-size:20px; font-weight:700; letter-spacing:-.01em; overflow-wrap:anywhere}
.dmeta{color:var(--ink-3); font-size:12.5px; margin-top:5px; overflow-wrap:anywhere}
.back{background:transparent; border:0; color:var(--accent); font-weight:600; cursor:pointer; padding:0 0 6px; font-size:13px; min-height:32px}
.sec{border-bottom:1px solid var(--line-soft); padding:13px 18px}
.sec-h{
  font-family:"Barlow Semi Condensed",sans-serif; font-size:11px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-3); margin:0 0 9px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.lock{font-size:10.5px; color:var(--busy); background:var(--busy-soft); border-radius:3px; padding:1px 6px; letter-spacing:.03em; text-transform:none}
.fields{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px 18px}
.f-label{font-size:11px; color:var(--ink-3); margin-bottom:1px}
.f-val{font-size:13.5px; font-weight:500; overflow-wrap:anywhere; min-height:22px}
.f-val.edit{border-bottom:1px dashed var(--line); cursor:text}
.f-val.edit:hover{border-bottom-color:var(--accent); color:var(--accent)}
.f-val.empty{color:var(--ink-3); font-weight:400; font-style:italic}
.f-val.hist{background:var(--warn-soft); border-radius:3px; padding:0 4px}
.f-val input, .f-val select{width:100%; font:inherit; padding:4px 6px; border:1px solid var(--accent); border-radius:4px; background:var(--surface); color:var(--ink)}
.f-src{font-size:10.5px; color:var(--warn); margin-left:4px}
.issue{color:var(--err); font-size:12px; margin-top:2px}

table.items{width:100%; border-collapse:collapse; font-size:13px}
.items th{
  text-align:left; font-family:"Barlow Semi Condensed",sans-serif; font-weight:600; font-size:11px;
  letter-spacing:.07em; text-transform:uppercase; color:var(--ink-3); padding:0 8px 5px 0; border-bottom:1px solid var(--line-soft);
}
.items td{padding:6px 8px 6px 0; border-bottom:1px solid var(--line-soft); vertical-align:middle}
.items td.num, .items th.num{text-align:right; font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums}
.items tr:last-child td{border-bottom:0}
.items .del{background:transparent; border:0; color:var(--ink-3); cursor:pointer; font-size:15px; min-width:32px; min-height:32px}
.items .del:hover{color:var(--err)}
.items input{width:100%; font:inherit; padding:5px 6px; border:1px solid var(--line); border-radius:4px; background:var(--surface); color:var(--ink); min-height:32px}
.items .num input{text-align:right}
.addrow{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; align-items:center}
.addrow input{flex:1; min-width:120px; font:inherit; padding:6px 8px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); min-height:36px}

.tasks{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px}
.task{display:flex; align-items:center; gap:10px; font-size:13.5px; min-height:36px}
.task input[type="checkbox"]{width:20px; height:20px; accent-color:var(--accent); flex:none}
.task.done label{color:var(--ink-3); text-decoration:line-through}
.task label{cursor:pointer; flex:1; overflow-wrap:anywhere}

.warnbox{border:1px solid var(--warn-line); background:var(--warn-soft); color:var(--warn); border-radius:6px; padding:8px 10px; font-size:13px; margin-bottom:8px}
.errbox{border:1px solid var(--err); background:var(--err-soft); color:var(--err); border-radius:6px; padding:8px 10px; font-size:13px; margin-bottom:8px}
.okline{color:var(--ok)}
details.carrier-note summary{cursor:pointer; color:var(--accent); font-weight:600; font-size:13px; min-height:32px; display:flex; align-items:center}
details.carrier-note textarea{width:100%; font:inherit; padding:8px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); min-height:60px}

.actions{display:flex; flex-wrap:wrap; gap:8px; padding:13px 18px; align-items:center}
.actions .hint{font-size:12.5px; color:var(--ink-3); max-width:34ch}
.btn{font:inherit; font-weight:600; font-size:13px; cursor:pointer; border-radius:var(--radius); padding:8px 13px; border:1px solid var(--line); background:var(--surface); color:var(--ink); min-height:36px}
.btn:hover{border-color:var(--accent); color:var(--accent)}
.btn.primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn.primary:hover{filter:brightness(1.08); color:#fff}
.btn.danger{color:var(--err); border-color:var(--err)}
.btn.big{font-size:14px; padding:10px 18px}
.btn:disabled{opacity:.5; cursor:not-allowed; filter:none}
.btn.link{border:0; background:transparent; color:var(--accent)}
.btn.sm{min-height:30px; font-size:12px; padding:4px 8px}
.btn.link.sm{padding:0 4px}
.btn.warn{border-color:var(--warn); color:var(--warn)}
.diff .changed{background:var(--warn-soft); border-radius:4px; padding:2px 4px}
.sec-sum{cursor:pointer; list-style:none}
.sec-sum::-webkit-details-marker{display:none}
.sec-chev{display:inline-block; width:8px; height:8px; border-right:2px solid var(--ink-3); border-bottom:2px solid var(--ink-3); transform:rotate(-45deg); transition:transform .15s; margin:0 4px 2px 0; flex:none}
details[open] > .sec-sum .sec-chev{transform:rotate(45deg)}
.sec-pre{flex-basis:100%; text-transform:none; letter-spacing:0; font-family:Barlow,sans-serif; font-weight:500; color:var(--ink-2); font-size:14px; overflow-wrap:anywhere}
details[open] > .sec-sum .sec-pre{display:none}

.side{display:flex; flex-direction:column; background:var(--surface-2); min-width:0}
.side-h{
  padding:10px 14px; border-bottom:1px solid var(--line-soft);
  font-family:"Barlow Semi Condensed",sans-serif; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3);
}
.side-h.top{border-top:1px solid var(--line-soft)}
.log{padding:11px 14px; display:flex; flex-direction:column; gap:11px; font-size:12.5px}
.log-row{display:flex; gap:9px}
.log-dot{width:7px; height:7px; border-radius:50%; background:var(--line); margin-top:5px; flex:none}
.log-row.hi .log-dot{background:var(--accent)}
.log-who{font-weight:600}
.log-when{color:var(--ink-3); font-size:11.5px; font-family:"IBM Plex Mono",monospace}
.log-what{color:var(--ink-2); overflow-wrap:anywhere}
.log-what del{color:var(--ink-3); text-decoration-thickness:1px}
.log-what ins{text-decoration:none; font-weight:600; color:var(--ink)}
.comment-form{padding:0 14px 14px; display:flex; gap:6px}
.comment-form input{flex:1; min-width:0; font:inherit; padding:7px 9px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); min-height:36px}

/* ---------- formulář ---------- */
.formwrap{max-width:640px; margin:0 auto; padding:20px 18px 40px; width:100%}
.formwrap h2{margin:0 0 4px; font-size:22px; font-weight:700; letter-spacing:-.01em}
.formwrap p.sub{margin:0 0 16px; color:var(--ink-2)}
.form-row{display:grid; gap:5px; margin-bottom:11px; position:relative}
.form-row label{font-size:12px; color:var(--ink-2); font-weight:500}
.form-row input, .form-row textarea, .form-row select{font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); min-height:40px; width:100%}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{outline:2px solid var(--accent); outline-offset:-1px}
.form-row input[aria-invalid="true"]{border-color:var(--err)}
.two{display:grid; grid-template-columns:1fr 1fr; gap:11px}
.three{display:grid; grid-template-columns:2fr 1fr 1fr; gap:11px}
.hint{font-size:12px; color:var(--ink-3); margin:-4px 0 12px}
.seg{display:flex; gap:6px; flex-wrap:wrap}
.seg button{flex:1; min-height:44px; font-weight:600; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); cursor:pointer; padding:6px 10px}
.seg button[aria-pressed="true"]{background:var(--accent); border-color:var(--accent); color:#fff}
.form details{border:1px solid var(--line-soft); border-radius:var(--radius); padding:8px 12px; margin:6px 0 14px}
.form details summary{cursor:pointer; font-weight:600; color:var(--accent); min-height:32px; display:flex; align-items:center}
.form details .inner{padding-top:10px}
.pointbox{border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; background:var(--surface-2); margin-bottom:11px; font-size:13.5px}
.pointbox .pn{font-weight:600}
.pointbox .pa{color:var(--ink-2); font-size:13px}
.pointbox.ok{border-color:var(--ok)}
.pointbox.bad{border-color:var(--err); color:var(--err)}
.suggest{position:absolute; top:100%; left:0; right:0; z-index:20; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); max-height:240px; overflow-y:auto}
.suggest button{display:block; width:100%; text-align:left; background:transparent; border:0; padding:8px 10px; cursor:pointer; min-height:40px}
.suggest button:hover, .suggest button.on{background:var(--accent-soft)}
.suggest .s{font-size:12px; color:var(--ink-3)}
.tabs{display:flex; gap:4px; border-bottom:1px solid var(--line); padding:0 12px; background:var(--surface)}
.tabs button{flex:1; font-weight:600; background:transparent; border:0; border-bottom:2px solid transparent; padding:10px 8px; cursor:pointer; color:var(--ink-2); min-height:48px; font-size:15px}
.tabs button[aria-selected="true"]{color:var(--accent); border-bottom-color:var(--accent)}

/* ---------- Já ---------- */
.me{max-width:520px; margin:0 auto; padding:24px 18px; width:100%}
.me .row{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line-soft); min-height:52px; font-size:15px}
.me .row span:first-child{color:var(--ink-3)}

/* ---------- toast, dialogy, sheet ---------- */
.toast{
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:100;
  background:var(--ink); color:var(--ground); padding:10px 16px; border-radius:9px; font-size:14px; box-shadow:var(--shadow);
  display:flex; gap:12px; align-items:center; max-width:min(92vw,520px);
}
.toast.err{background:var(--err); color:#fff}
.toast.hidden{display:none}
.toast-action{background:transparent; border:1px solid currentColor; color:inherit; border-radius:6px; padding:4px 9px; cursor:pointer; font-weight:600; min-height:32px}
.backdrop{position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:80; display:flex; align-items:center; justify-content:center; padding:16px}
.backdrop.bottom{align-items:flex-end; padding:0}
.dialog{background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); width:100%; max-width:520px; max-height:90vh; overflow-y:auto; padding:18px 18px 16px}
.dialog h3{margin:0 0 8px; font-size:17px; font-weight:700}
.dialog .body{font-size:14px; color:var(--ink-2); line-height:1.5}
.dialog .body ul{margin:6px 0; padding-left:18px}
.dialog .btns{display:flex; gap:9px; justify-content:flex-end; margin-top:14px; flex-wrap:wrap}
.dialog input, .dialog textarea, .dialog select{width:100%; font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--ink); margin-top:6px; min-height:40px}
.sheet{
  background:var(--surface); border-top:1px solid var(--line); width:100%; max-width:640px; margin:0 auto;
  border-radius:16px 16px 0 0; padding:14px 16px calc(16px + env(safe-area-inset-bottom)); box-shadow:0 -8px 24px -18px rgba(0,0,0,.5); max-height:92vh; overflow-y:auto;
}
.sheet-h{font-size:17px; font-weight:700; margin-bottom:6px}
.sheet-l{font-size:15px; color:var(--ink-2); line-height:1.5; margin-bottom:8px}
.sheet-l b{color:var(--ink)}
.sheet-w{font-size:14px; color:var(--warn); background:var(--warn-soft); border-radius:6px; padding:6px 9px; margin-bottom:8px}
.sheet-n{font-size:14px; color:var(--err); background:var(--err-soft); border-radius:6px; padding:6px 9px; margin-bottom:8px}
.sheet-btns{display:flex; gap:9px; margin-top:10px}
.sheet-btns .btn{padding:0; min-height:50px; font-size:16px; flex:1}
.sheet-btns .btn.primary{flex:1.5}
.sheet details{margin-top:10px; font-size:13px}
.sheet details summary{cursor:pointer; color:var(--accent); font-weight:600; min-height:32px; display:flex; align-items:center}
.sheet pre{font-family:"IBM Plex Mono",monospace; font-size:11.5px; background:var(--surface-2); padding:8px; border-radius:6px; overflow:auto; max-height:240px}
.diff{display:flex; flex-direction:column; gap:4px; margin:8px 0}
.diff div{display:flex; gap:8px; font-size:13.5px}
.diff .k{color:var(--ink-3); min-width:110px}
.offline{background:var(--warn-soft); color:var(--warn); text-align:center; padding:4px; font-size:12.5px}

/* ---------- mobil ---------- */
.ph-nav{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:35;
  grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line);
  background:var(--surface-2); padding:6px 0 calc(8px + env(safe-area-inset-bottom));
}
.nav-i{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:12px; color:var(--ink-3); font-weight:500; min-height:52px; background:transparent; border:0; cursor:pointer}
.nav-i span{font-size:22px; line-height:1.1}
.nav-i[aria-current="page"]{color:var(--accent); font-weight:600}
.ph-h{padding:13px 15px 9px}
.ph-title{font-size:19px; font-weight:700; letter-spacing:-.01em}
.ph-sub{color:var(--ink-3); font-size:14px; margin-top:3px; display:flex; gap:5px; align-items:center; flex-wrap:wrap}
.pills{display:none; gap:10px; padding:0 15px 12px; overflow-x:auto}
.pill{
  font:inherit; font-size:15px; font-weight:600; white-space:nowrap; cursor:pointer;
  background:var(--surface-2); color:var(--ink-2); border:1px solid var(--line);
  border-radius:99px; padding:0 16px; min-height:44px; display:inline-flex; align-items:center;
}
.pill[aria-pressed="true"]{background:var(--accent); border-color:var(--accent); color:#fff}
.sticky-order{display:none}
.only-mobile{display:none}

@media (max-width:900px){
  body{font-size:16px}
  #app{padding-bottom:var(--nav-h)}
  .ph-nav{display:grid}
  .topbar .search, .topbar .kbd{display:none}
  .topbar .who .name{display:none}
  .split{grid-template-columns:1fr}
  .split > .chat{display:none}
  .cols{display:block; background:var(--ground)}
  .cols .col{display:none; min-height:0}
  .cols .col[data-on="true"]{display:flex}
  .col-head, .col-auto{display:none}
  .pills{display:flex}
  .ph-h{display:block}
  .card{border-radius:9px; padding:11px 12px; min-height:44px}
  .card-name{font-size:17px}
  .card-city{font-size:15px}
  .card-meta{font-size:13.5px}
  .card-foot{font-size:13px}
  .tag{font-size:12.5px}
  .done-row{font-size:15px; min-height:48px}
  .detail{display:block; overflow-y:auto}
  .detail-main{border-right:0; border-bottom:1px solid var(--line); overflow:visible}
  .f-val{font-size:16px; min-height:44px; display:flex; align-items:center; flex-wrap:wrap; gap:4px}
  .f-label{font-size:13px}
  .fields{gap:12px 16px}
  .btn, .btn.sm, .btn.link.sm{min-height:44px; font-size:15px; padding:8px 12px}
  .chip{min-height:44px; font-size:15px}
  .items .del{min-width:44px; min-height:44px}
  .items td:last-child{white-space:normal}
  .items td:last-child .btn{display:inline-flex; margin:2px 0}
  /* text, který nese rozhodnutí nebo chybu, na mobilu 16 px (§13) */
  .diff div, .issue, .warnbox, .errbox, .ask, .matchcard, .pointbox, .dmeta, .log{font-size:16px}
  .matchcard .meta, .pointbox .pa, .log-when, .budget{font-size:14px}
  .actions .hint, .sticky-order .hint{font-size:15px; max-width:none}
  .sec-h{font-size:13px; min-height:44px; margin:0; padding:2px 0}
  details[open] > .sec-sum{margin-bottom:9px}
  .lock{font-size:12px}
  .board-head{display:none}
  .done-row{flex-wrap:wrap}
  .done-row .dn{flex-basis:calc(100% - 30px); overflow-wrap:break-word}
  .done-row .dt{display:none}
  .items{font-size:15px}
  .task{font-size:16px; min-height:44px}
  .task input[type="checkbox"]{width:24px; height:24px}
  .actions{padding:13px 15px}
  .sec{padding:12px 15px}
  .dhead{padding:14px 15px 10px}
  .log{font-size:14.5px}
  .log-when{font-size:13px}
  .msg{font-size:16px}
  .composer input[type="text"]{font-size:16px; min-height:44px}
  .send, .iconbtn{min-height:44px}
  .form-row input, .form-row textarea, .form-row select{font-size:16px; min-height:44px}
  .form-row label{font-size:14px}
  .hint{font-size:14px}
  .three{grid-template-columns:1fr 1fr}
  .three > :first-child{grid-column:1 / -1}
  .search input{font-size:16px; min-height:44px}
  .res-title{font-size:16px}
  .res-sub{font-size:14px}
  .res-act{font-size:14px; min-height:40px}
  .only-mobile{display:block}
  .only-desktop{display:none!important}
  .sticky-order{display:flex; flex-wrap:wrap; position:sticky; bottom:0; background:var(--surface); border-top:1px solid var(--line); padding:10px 15px calc(10px + env(safe-area-inset-bottom)); gap:8px; z-index:20}
  .sticky-order .btn{flex:1 1 100%; min-height:50px; font-size:16px}
  .sticky-order .hint{flex-basis:100%; color:var(--ink-3)}
  .sticky-order .tag{align-self:center}
  .toast{bottom:calc(var(--nav-h) + 14px); font-size:15px}
  .dialog{font-size:16px}
  .dialog .body{font-size:15px}
  .fullsheet{position:fixed; inset:0; z-index:60; background:var(--surface); display:flex; flex-direction:column}
  .fullsheet .fs-body{flex:1; overflow-y:auto; display:flex; flex-direction:column; min-height:0}
  .fullsheet .chat{display:flex; flex:1; border:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important; scroll-behavior:auto!important}}
