
:root{--bg:#f2f2f7;--card:#ffffff;--ink:#1c1c1e;--muted:#8e8e93;--line:#e5e5ea;--acc:#2f6df6;--acc-soft:#e8f0fe;
--ok:#34a853;--ok-bg:#e9f6ec;--bad:#e5484d;--bad-bg:#fdecec;--amber:#f5a623;--fill:#eeeef2;--sh:0 1px 0 rgba(0,0,0,.03),0 8px 24px -16px rgba(0,0,0,.18)}
@media (prefers-color-scheme:dark){:root{--bg:#000;--card:#1c1c1e;--ink:#f2f2f7;--muted:#98989f;--line:#2c2c2e;--acc:#4d8cff;--acc-soft:#16233d;
--ok:#4cd964;--ok-bg:#15301c;--bad:#ff6b6b;--bad-bg:#3a1d1f;--fill:#2c2c2e;--sh:none}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}
.top{position:sticky;top:0;z-index:5;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;display:flex;justify-content:space-between;align-items:center;background:rgba(242,242,247,.86);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid var(--line)}
@media (prefers-color-scheme:dark){.top{background:rgba(0,0,0,.8)}}
.brand{font-weight:600;font-size:17px;letter-spacing:-.2px}.clock{font-variant-numeric:tabular-nums;color:var(--muted);font-size:15px;font-weight:500;margin-left:auto;margin-right:14px}.topr{display:flex;align-items:center}.topbtn{color:var(--acc);font-size:17px;font-weight:500;padding:4px 2px}
.wrap{max-width:620px;margin:0 auto;padding:10px 16px 24px}
h1{font-size:34px;letter-spacing:-.6px;margin:8px 0 2px;font-weight:700}
.sub{margin:0 0 16px;color:var(--muted);font-size:15px}
h2{font-size:20px;letter-spacing:-.3px;margin:0 0 10px;font-weight:700}
.card{background:var(--card);border-radius:14px;padding:14px 16px;margin:0 0 14px;box-shadow:var(--sh)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--card);border-radius:14px;box-shadow:var(--sh);margin-bottom:18px;overflow:hidden}
.stat{padding:14px 8px;text-align:center}.stat+.stat{border-left:.5px solid var(--line)}
.stat b{display:block;font-size:24px;line-height:1.1;font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--muted);font-weight:500}
.stat.s3 b{color:var(--acc)}a.stat{cursor:pointer}a.stat:hover{background:var(--fill)}
.seg{display:flex;background:var(--fill);border-radius:10px;padding:2px;margin:0 0 18px;position:relative}
.seg .tab{flex:1;border:0;background:transparent;border-radius:8px;padding:7px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .2s,box-shadow .2s}
.seg .tab.on{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.grp{font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin:18px 16px 6px;display:flex;justify-content:space-between}
.grp-late{color:var(--bad)}
.list{background:var(--card);border-radius:14px;box-shadow:var(--sh);overflow:hidden;margin-bottom:4px}
.ev{display:flex;align-items:flex-start;gap:12px;padding:12px 16px 12px 14px;position:relative;transition:opacity .3s,transform .3s,max-height .35s,padding .35s;max-height:300px}
.ev+.ev:before{content:"";position:absolute;left:54px;right:0;top:0;border-top:.5px solid var(--line)}
.ev.poof{opacity:0;transform:translateX(24px);max-height:0;padding-top:0;padding-bottom:0}
.done-form{flex:0 0 26px;margin:0}.chk{width:26px;height:26px;margin-top:1px;border-radius:50%;border:1.5px solid var(--muted);background:transparent;cursor:pointer;display:grid;place-items:center;transition:.15s;padding:0;color:#fff;font-size:14px;font-weight:700}
.chk:active{transform:scale(.88)}.chk.did{background:var(--acc);border-color:var(--acc);animation:tick .3s}
.k-faktura .chk{border-color:var(--acc)}
@keyframes tick{50%{transform:scale(1.18)}}
.evbody{flex:1;min-width:0;display:block}
.evtitle{font-size:17px;font-weight:600;letter-spacing:-.2px;line-height:1.3;display:flex;justify-content:space-between;gap:10px}
.evtitle .when{flex:none;font-size:15px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.ev.late .when{color:var(--bad)}.ev.today .when{color:var(--acc)}
.meta{display:flex;flex-wrap:wrap;gap:2px 10px;color:var(--muted);font-size:15px;margin-top:2px}.meta .sum{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.meta .kind{color:var(--acc)}.k-udalost .meta .kind{color:var(--muted)}
.note{margin:3px 0 0;color:var(--muted);font-size:15px;white-space:pre-line}
.chev{flex:none;color:var(--line);font-size:20px;align-self:center;filter:brightness(.8)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--fill);color:var(--acc);border-radius:12px;padding:12px 16px;font-weight:600;cursor:pointer;min-height:48px;transition:transform .1s,opacity .2s;font-size:17px}
.btn:active{transform:scale(.97);opacity:.8}
.btn.primary{background:var(--acc);color:#fff}.btn.ok{color:var(--ok);background:var(--ok-bg)}.btn.danger{color:var(--bad);background:transparent}.btn.ghost{background:transparent}
.btn.big{width:100%;border-radius:14px;min-height:50px}.btn[disabled]{opacity:.4}
.lnk{background:none;border:0;color:var(--acc);font:inherit;font-weight:500;padding:8px;cursor:pointer}
.form{padding:0;overflow:hidden}
.form .row{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:50px;position:relative}
.form .row+.row:before{content:"";position:absolute;left:16px;right:0;top:0;border-top:.5px solid var(--line)}
.form .row>span{flex:0 0 auto;min-width:108px;font-size:16px;color:var(--ink)}
.form input,.form select,.form textarea{flex:1;min-width:0;font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;padding:13px 0;text-align:right;outline:0}
.form input::placeholder,.form textarea::placeholder{color:var(--muted)}
.form textarea{text-align:left;resize:none;padding:13px 0}.form .row.col{flex-direction:column;align-items:stretch;gap:0}.form .row.col>span{flex:none;padding-top:12px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.form select{-webkit-appearance:none;appearance:none;direction:rtl;padding-right:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238e8e93' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right center}
.form input[type=date],.form input[type=time]{text-align:right;-webkit-appearance:none;appearance:none}
.amt input{font-weight:600}.amt .cur{color:var(--muted);flex:none}
.grplbl{font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin:18px 16px 6px}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 2px}.chips label{margin:0;position:relative}.chips input{position:absolute;opacity:0;width:0;height:0}
.chips span{display:inline-block;padding:8px 14px;border-radius:999px;font-weight:500;color:var(--ink);font-size:15px;background:var(--card);box-shadow:var(--sh);transition:.15s;cursor:pointer}
.chips input:checked+span{color:#fff;background:var(--acc)}.chips input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.quick{display:flex;gap:6px;flex-wrap:wrap;padding:8px 16px 12px}.quick button{border:0;background:var(--acc-soft);color:var(--acc);font-weight:600;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.hint{font-size:13px;color:var(--muted);margin:8px 16px 0;line-height:1.4}
.actions{padding:18px 0 0}
.dangerbox{margin-top:8px;text-align:center}
.flash{padding:11px 16px;border-radius:12px;margin:4px 0 14px;font-weight:500;background:var(--ok-bg);color:var(--ok);text-align:center;font-size:15px}.flash.err{background:var(--bad-bg);color:var(--bad)}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(16px);opacity:0;background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:500;font-size:15px;z-index:9;transition:.25s;pointer-events:none;white-space:nowrap;box-shadow:0 8px 24px -8px rgba(0,0,0,.4)}
.toast.show{opacity:1;transform:translateX(-50%)}
.empty{text-align:center;color:var(--muted);padding:56px 10px;font-size:16px}
.login{max-width:360px;margin:56px auto;text-align:left;padding:22px 20px}
.login h1{font-size:28px;margin:0 0 4px}.login .sub{margin-bottom:18px}.login input{width:100%;font:inherit;font-size:17px;background:var(--fill);border:0;border-radius:12px;padding:13px 14px;color:var(--ink);margin:0 0 12px;outline:0}
.login input:focus{box-shadow:0 0 0 3px var(--acc-soft)}
.fab{position:fixed;right:20px;bottom:calc(84px + env(safe-area-inset-bottom));width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:300;color:#fff;background:var(--acc);box-shadow:0 8px 20px -6px rgba(47,109,246,.55);z-index:6;transition:transform .15s;line-height:1}.fab:active{transform:scale(.92)}
.bottom{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:5}
@media (prefers-color-scheme:dark){.bottom{background:rgba(28,28,30,.88)}}
.bottom a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;color:var(--muted);padding:3px 0;min-height:46px;justify-content:center}
.bottom a svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bottom a.on{color:var(--acc)}
.attrow{justify-content:space-between}.attlink{display:flex;flex-direction:column;padding:10px 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--acc)}.attlink small{color:var(--muted);font-size:12px}.attadd{gap:10px;padding:10px 16px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;font-size:15px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all;text-align:right}
code{background:var(--fill);padding:2px 7px;border-radius:6px;font-size:14px;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.donebox{margin-top:22px;color:var(--muted);font-size:15px}.donebox summary{cursor:pointer;padding:8px 16px;font-weight:500;color:var(--acc);list-style:none}.donebox summary::-webkit-details-marker{display:none}
.donerow{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--card)}.donerow+.donerow{border-top:.5px solid var(--line)}.donerow s{color:var(--muted)}
.notecard{padding:14px 16px}.notecard p{margin:0 0 6px;white-space:pre-line}.noterow{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}
.cal{padding:10px 8px 8px;overflow:hidden}.calhead{display:flex;justify-content:space-between;align-items:center;margin:0 4px 6px;font-weight:600;font-size:17px}
.calhead button{border:0;background:transparent;width:38px;height:38px;border-radius:50%;font-size:22px;color:var(--acc);cursor:pointer}.calhead .mtitle{width:auto;font-size:17px;font-weight:600;color:var(--ink);padding:6px 12px;border-radius:10px;text-transform:capitalize}.calhead .mtitle:after{content:' ›';color:var(--acc);display:inline-block;transform:rotate(90deg)}.calhead .mtitle.open:after{transform:rotate(-90deg)}.calhead .mtitle:hover{background:var(--fill)}
.picker{padding:4px 4px 8px;border-bottom:.5px solid var(--line);margin-bottom:8px;animation:fu .2s ease-out}.months button{position:relative}.months button i{position:absolute;top:4px;right:6px;font-style:normal;font-size:10px;font-weight:700;background:var(--acc);color:#fff;border-radius:999px;min-width:16px;height:16px;line-height:16px;padding:0 4px}.months button.on i{background:#fff;color:var(--acc)}.months{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:4px}.months button{border:0;background:var(--fill);border-radius:10px;padding:10px 4px;font-weight:500;cursor:pointer;color:var(--ink)}.months button.on{background:var(--acc);color:#fff}.months button.now{font-weight:700;color:var(--acc)}.months button.on.now{color:#fff}.pickfoot{display:flex;justify-content:flex-end;padding:4px 8px 0}
.calgrid{touch-action:pan-y}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0}.calgrid .wd{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:2px 0 8px;text-transform:uppercase}.calgrid .wd.we{color:var(--bad);opacity:.7}
.calgrid.slide-l{animation:sl .22s ease-out}.calgrid.slide-r{animation:sr .22s ease-out}@keyframes sl{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}@keyframes sr{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
#daylist{animation:fu .25s ease-out}@keyframes fu{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.day{position:relative;height:46px;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:500;font-size:16px;cursor:pointer;border:0;background:transparent;color:var(--ink);font-variant-numeric:tabular-nums;padding:0}.day em{font-style:normal;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;transition:background .15s,color .15s,transform .12s}.day.we em{color:var(--muted)}.day:hover em{background:var(--fill)}
.day.other{opacity:.35}.day.today em{color:var(--acc);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--acc)}.day.sel em{background:var(--acc)!important;color:#fff!important;box-shadow:none}.day.sel .dots i{background:var(--acc)}
.day:active em{transform:scale(.88)}.dots{display:flex;gap:2px;height:5px;margin-top:2px}.dots i{width:5px;height:5px;border-radius:50%;display:block}.dots b{font-size:9px;line-height:5px;color:var(--muted);font-weight:600}
.d-faktura{background:var(--acc)}.d-pripomienka{background:var(--amber)}.d-udalost{background:var(--muted)}.d-done{background:var(--ok)}
#daylist .grp{margin-top:14px}

@media (min-width:900px){
 body{padding-bottom:24px}
 .top{padding:14px 28px 14px 260px}
 .wrap{max-width:1120px;margin:0 0 0 232px;padding:16px 28px 40px}
 .bottom{top:0;bottom:0;right:auto;width:232px;display:flex;flex-direction:column;gap:2px;padding:24px 14px;border-top:0;border-right:.5px solid var(--line)}
 .bottom:before{content:"Kalendár";font-size:22px;font-weight:700;letter-spacing:-.4px;padding:4px 12px 18px;color:var(--ink)}
 .bottom a{flex-direction:row;justify-content:flex-start;gap:12px;font-size:15px;padding:9px 12px;min-height:0;border-radius:10px}
 .bottom a svg{width:22px;height:22px}.bottom a.on{background:var(--acc-soft)}
 .fab{display:none}.seg{display:none}
 .agenda{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0 32px;align-items:start}
 .agenda>h1,.agenda>.sub,.agenda>.stats{grid-column:1/-1}
 #tab-month{display:block!important;position:sticky;top:76px}#tab-list{display:block!important}
 .stats{max-width:640px}.ev{padding:12px 16px}.evbody{cursor:pointer}.ev:hover{background:var(--fill)}
 .form,.chips,.grplbl,.hint,.actions,.dangerbox{max-width:640px}
 .cal{padding:14px 12px 10px}.day{font-size:15px}
 .login{margin-top:120px}
}
.ctx{position:fixed;z-index:20;min-width:210px;background:var(--card);border-radius:12px;box-shadow:0 12px 40px -8px rgba(0,0,0,.35),0 0 0 .5px var(--line);padding:6px;animation:fu .12s ease-out}
.ctx button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;padding:10px 12px;border-radius:8px;font-size:15px;cursor:pointer;color:var(--ink)}.ctx button:hover,.ctx button:focus-visible{background:var(--fill);outline:0}
.ctx button.red{color:var(--bad)}.ctx .sep{border-top:.5px solid var(--line);margin:4px 8px}.ctx .ttl{padding:6px 12px 4px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
[data-ctx]{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.day{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.ctxhold{background:var(--fill)!important}
.offline{background:var(--amber);color:#3a2a00;text-align:center;padding:8px 14px;font-size:14px;font-weight:500}
.bottom a.dsk{display:none}@media (min-width:900px){.bottom a.dsk{display:flex}}
.seg.years .tab{text-align:center;text-decoration:none}
.crow summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 16px;cursor:pointer}.crow summary::-webkit-details-marker{display:none}.crow+.crow{border-top:.5px solid var(--line)}
.crow .cname{font-weight:600}.crow .csum{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.crow small{grid-column:1/-1;color:var(--muted)}
.citems{padding:0 16px 12px 16px}.citems div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:.5px dashed var(--line);font-size:15px}.citems small{color:var(--muted)}.citems b{font-variant-numeric:tabular-nums;white-space:nowrap}
.ev[draggable=true]{cursor:grab}.ev.dragging{opacity:.4}.day.drop em{background:var(--acc-soft);box-shadow:inset 0 0 0 2px var(--acc)}
.dropzone{transition:box-shadow .15s,background .15s}.dropzone.over{box-shadow:0 0 0 2px var(--acc);background:var(--acc-soft)}
#stagelist:not(:empty){padding:4px 16px 12px}#stagelist div{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:5px 0;border-top:.5px dashed var(--line)}#stagelist small{color:var(--muted)}#stagelist button{border:0;background:none;color:var(--bad);font:inherit;cursor:pointer}
.upprog{height:3px;background:var(--acc);width:0;transition:width .2s;margin:0 16px 8px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
