:root{
  --bg:#0e1116; --panel:#161b23; --panel2:#1c232e; --border:#2a3441;
  --text:#dbe4ee; --muted:#7e8ea1; --accent:#3ecf8e; --accent2:#e05d5d;
  --warn:#e0b25d; --radius:12px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);
  font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;}
a{color:var(--accent);text-decoration:none}
.muted{color:var(--muted)}
.error{color:var(--accent2);margin:.5rem 0}

/* ---------- login ---------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:2.2rem;width:min(92vw,340px);
  display:flex;flex-direction:column;gap:.9rem;text-align:center}
.login-card input{background:var(--bg);border:1px solid var(--border);
  border-radius:8px;padding:.65rem .8rem;color:var(--text);font-size:1rem}
.login-card button{background:var(--accent);border:0;border-radius:8px;
  padding:.65rem;font-size:1rem;font-weight:600;color:#08351f;cursor:pointer}

/* ---------- layout ---------- */
header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  padding:.9rem 1.4rem;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:rgba(14,17,22,.93);backdrop-filter:blur(6px);z-index:5}
.brand{font-size:1.25rem;font-weight:700;letter-spacing:.06em;
  display:flex;align-items:center;gap:.55rem}
.pulse{width:.72rem;height:.72rem;border-radius:50%;background:var(--accent2);
  display:inline-block;animation:beat 1.1s ease-in-out infinite}
.pulse.paused{background:var(--muted);animation:none}
@keyframes beat{0%,100%{transform:scale(1);opacity:.85}
  15%{transform:scale(1.45);opacity:1} 30%{transform:scale(1)}}
header .spacer{flex:1}
.chip{background:var(--panel2);border:1px solid var(--border);border-radius:99px;
  padding:.18rem .7rem;font-size:.8rem;color:var(--muted)}
main{max-width:1180px;margin:0 auto;padding:1.3rem;display:grid;gap:1.3rem;
  grid-template-columns:1.35fr .9fr}
@media(max-width:900px){main{grid-template-columns:1fr}}
section{background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:1.1rem 1.2rem}
section h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);margin-bottom:.8rem}

/* ---------- stat row ---------- */
.stats{grid-column:1/-1;display:grid;gap:.8rem;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.stat{background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:.8rem 1rem}
.stat b{font-size:1.45rem;display:block}
.stat span{font-size:.78rem;color:var(--muted)}

/* ---------- úkoly ---------- */
.task{border:1px solid var(--border);border-radius:10px;background:var(--panel2);
  padding:.75rem .9rem;margin-bottom:.7rem}
.task-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.task-head strong{flex:1}
.badge{font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;border-radius:6px;padding:.1rem .45rem}
.badge.sudo{background:#3b2530;color:#ff9d9d}
.badge.purchase{background:#3b3225;color:#ffd79d}
.badge.errand{background:#25313b;color:#9dcaff}
.badge.decision{background:#2c253b;color:#c99dff}
.badge.review{background:#253b2c;color:#9dffc0}
.badge.agent{background:#253b3a;color:#9dfff2}
.badge.other{background:#2a3441;color:#aab8c8}
.task pre{white-space:pre-wrap;font:.83rem/1.45 ui-monospace,Menlo,monospace;
  color:var(--muted);margin:.45rem 0 .2rem;background:var(--bg);
  border-radius:8px;padding:.55rem .7rem;overflow-x:auto}
.task .due{color:var(--warn);font-size:.78rem}
.task form{display:inline}
.task .actions{margin-top:.45rem;display:flex;gap:.5rem}
button.small{background:var(--panel);border:1px solid var(--border);
  color:var(--text);border-radius:7px;padding:.25rem .7rem;font-size:.8rem;cursor:pointer}
button.small:hover{border-color:var(--accent);color:var(--accent)}
button.small.dim:hover{border-color:var(--muted);color:var(--muted)}
.done-item{color:var(--muted);font-size:.85rem;padding:.15rem 0}
.done-item s{opacity:.75}

/* ---------- experimenty ---------- */
.exp{border-left:3px solid var(--accent);padding:.5rem .8rem;margin-bottom:.7rem;
  background:var(--panel2);border-radius:0 10px 10px 0}
.exp b{display:block}
.exp .muted{font-size:.82rem}

/* ---------- formuláře ---------- */
.newtask{display:grid;gap:.5rem;margin-top:.6rem}
.newtask input,.newtask select,.newtask textarea,.aiform input,.aiform select{
  background:var(--bg);border:1px solid var(--border);border-radius:8px;
  padding:.5rem .65rem;color:var(--text);font-size:.9rem;width:100%}
.newtask textarea{min-height:3.2rem;resize:vertical}
.row{display:flex;gap:.5rem}
.row>*{flex:1}
button.primary{background:var(--accent);border:0;border-radius:8px;
  padding:.5rem .9rem;font-weight:600;color:#08351f;cursor:pointer}
.aiform{display:grid;gap:.5rem}

/* ---------- v0.2: nav, kanban, tabulky ---------- */
.chip-nav{display:flex;gap:.35rem}
.chip-nav a{background:var(--panel2);border:1px solid var(--border);
  border-radius:99px;padding:.18rem .8rem;font-size:.82rem;color:var(--text)}
.chip-nav a:hover{border-color:var(--accent);color:var(--accent)}
.chip.warn{color:var(--warn);border-color:var(--warn)}
.timerbar{display:flex;gap:.4rem;align-items:center}
.kanban{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
@media(max-width:700px){.kanban{grid-template-columns:1fr}}
.kanban .col h2{margin-bottom:.6rem}
main.narrow{display:flex;flex-direction:column;max-width:880px}
.flash{background:#1e3529;border:1px solid var(--accent);border-radius:10px;
  padding:.6rem .9rem;margin-bottom:1rem;color:#bdf0d8;word-break:break-all}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{color:var(--muted);text-transform:uppercase;font-size:.7rem;
  letter-spacing:.08em;text-align:left;padding:.35rem .5rem}
td{padding:.45rem .5rem;border-top:1px solid var(--border);vertical-align:middle}
.row.inline{align-items:center}
.row.inline>*{flex:initial}
select.mini{background:var(--bg);border:1px solid var(--border);color:var(--muted);
  border-radius:7px;padding:.2rem .4rem;font-size:.78rem;max-width:8.5rem}
.qr{background:#fff0;border:1px solid var(--border);border-radius:10px;
  padding:.4rem;max-width:190px;display:block;margin:.5rem 0}

/* ---------- události ---------- */
.event{font:.8rem/1.5 ui-monospace,Menlo,monospace;color:var(--muted);
  padding:.12rem 0;border-bottom:1px dashed #222b36}
.event .warn{color:var(--warn)} .event .error{color:var(--accent2)}
.event time{color:#55657a;margin-right:.4rem}
code{background:var(--bg);border-radius:5px;padding:.05rem .35rem;
  font-size:.85em;color:#9dcaff}
