/* DidiOnline - design system. Tokeny a komponenty viz maps/DESIGN.md. CSS pluginu pod .p-<id>, bez vlastnich hex barev. */
:root{
  --ink:#243047; --muted:#71809a; --paper:#fffaf2; --surface:#ffffff; --surface-2:#faf6ee;
  --line:#ece4d6; --accent:#f5bd3c; --accent-ink:#3b2d0b;
  --mon:#4b9ce8; --tue:#55b86b; --wed:#f0ae32; --thu:#8466d7; --fri:#e95d9a; --sat:#9aa6ba; --sun:#9aa6ba;
  --ok:#3d9a5b; --ok-soft:#dff2e4; --warn:#c9781a; --warn-soft:#fdf0dc; --err:#c94a3a; --err-soft:#fbe3df;
  --shadow:0 10px 30px rgba(57,48,37,.10); --shadow-s:0 3px 10px rgba(57,48,37,.07);
  --r-l:24px; --r-m:18px; --r-s:12px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --nav-h:64px; --soft:22%;
  --pc:var(--muted);
  color-scheme:light;
}
:root[data-theme="dark"]{
  --ink:#eef1f6; --muted:#9aa6ba; --paper:#151b26; --surface:#1e2635; --surface-2:#232c3d;
  --line:#2c3547; --accent:#f2bb45; --accent-ink:#2a2005;
  --mon:#4a8fd0; --tue:#4ea463; --wed:#d99d33; --thu:#7a62c4; --fri:#d05a8c; --sat:#5b6679; --sun:#5b6679;
  --ok:#55b673; --ok-soft:#1f3b2a; --warn:#e3a04a; --warn-soft:#3a2d1a; --err:#ec7a6a; --err-soft:#4a2723;
  --shadow:0 10px 30px rgba(0,0,0,.35); --shadow-s:0 3px 10px rgba(0,0,0,.25);
  --soft:30%;
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#eef1f6; --muted:#9aa6ba; --paper:#151b26; --surface:#1e2635; --surface-2:#232c3d;
    --line:#2c3547; --accent:#f2bb45; --accent-ink:#2a2005;
    --mon:#4a8fd0; --tue:#4ea463; --wed:#d99d33; --thu:#7a62c4; --fri:#d05a8c; --sat:#5b6679; --sun:#5b6679;
    --ok:#55b673; --ok-soft:#1f3b2a; --warn:#e3a04a; --warn-soft:#3a2d1a; --err:#ec7a6a; --err-soft:#4a2723;
    --shadow:0 10px 30px rgba(0,0,0,.35); --shadow-s:0 3px 10px rgba(0,0,0,.25);
    --soft:30%;
    color-scheme:dark;
  }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--paper);color:var(--ink);overflow-x:hidden}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.4;min-height:100dvh;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}
button:disabled{cursor:default;opacity:.55}
a{color:inherit}
a.card,a.tile,a.li,a.chip,a.dh{text-decoration:none;display:block}
a.li{display:flex}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
img{max-width:100%}
svg.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.i.s{width:16px;height:16px}
svg.i.xs{width:13px;height:13px}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:13px}
.xsmall{font-size:12px}
.b{font-weight:850}
.ok{color:var(--ok)} .warn{color:var(--warn)} .err{color:var(--err)}
.hidden{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.center{text-align:center}
.grow{flex:1;min-width:0}
.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* barvy dnu: .d1 az .d7 nastavi --dc */
.d1{--dc:var(--mon)} .d2{--dc:var(--tue)} .d3{--dc:var(--wed)} .d4{--dc:var(--thu)} .d5{--dc:var(--fri)} .d6{--dc:var(--sat)} .d7{--dc:var(--sun)}
.dc-bg{background:var(--dc);color:#fff}
.d2.dc-bg,.d3.dc-bg{color:#1d2533}
/* barva ucastnika: style="--pc:#hex" */
.pc-bg{background:var(--pc);color:#fff}
.pc-soft{background:color-mix(in srgb,var(--pc) var(--soft),var(--surface))}
.pc-ink{color:var(--pc)}
.pc-border{border-color:var(--pc)!important}

/* layout */
.app{max-width:480px;margin:0 auto;min-height:100dvh;position:relative;overflow-x:clip;
  padding:calc(env(safe-area-inset-top) + 8px) 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}
.app.nonav{padding-bottom:calc(env(safe-area-inset-bottom) + 24px)}
@media(min-width:600px){
  body{background:radial-gradient(circle at 15% 10%,rgba(245,189,60,.14),transparent 40%),radial-gradient(circle at 85% 0%,rgba(75,156,232,.12),transparent 40%),var(--paper)}
  .app{border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--paper)}
}
.screen{animation:in .28s ease-out}
@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.stack>*+*{margin-top:12px}
.stack-s>*+*{margin-top:8px}
.row{display:flex;align-items:center;gap:10px}
.row.top-al{align-items:flex-start}
.row.wrap{flex-wrap:wrap}
.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid2>.full{grid-column:1/-1}

/* hlavicka obrazovky */
.top{display:flex;align-items:center;gap:12px;padding:6px 0 14px}
.top h1{margin:0;font-size:28px;font-weight:900;letter-spacing:-.8px;line-height:1.05}
.top h1.s{font-size:22px;letter-spacing:-.4px}
.top .sub{color:var(--muted);font-weight:650;font-size:13px;margin-top:3px}
.top .grow{flex:1;min-width:0}
.back,.iconbtn{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none}
.iconbtn.bordered{border:1px solid var(--line);background:var(--surface)}
.daystrip{height:6px;border-radius:99px;margin:-4px 0 16px;background:var(--dc,var(--accent))}

/* typografie */
.label{font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.section{margin:22px 0 10px}
.section:first-child{margin-top:4px}
.h2{font-size:22px;font-weight:900;letter-spacing:-.4px;margin:0}
.h3{font-size:17px;font-weight:850;margin:0}
p{margin:0}
p+p{margin-top:8px}

/* karta */
.card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s);padding:16px;width:100%;text-align:left}
button.card{transition:transform .15s}
button.card:active{transform:scale(.98)}
.card.flat{box-shadow:none}
.card.dashed{border-style:dashed;box-shadow:none}
.card.tight{padding-top:4px;padding-bottom:4px}
.card.nopad{padding:0;overflow:hidden}
.card.hl{border:2px solid var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent)}
.card.warnc{background:var(--warn-soft);border-color:transparent;box-shadow:none}

/* odznak, pill */
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:850;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.pill.accent{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.pill.err{background:var(--err-soft);color:var(--err);border-color:transparent}
.pill.xs{padding:2px 7px;font-size:10px}
.badge{background:var(--err);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:900;display:inline-grid;place-items:center}

/* tlacitka */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;white-space:nowrap;border-radius:14px;font-weight:850;background:var(--ink);color:var(--paper);transition:transform .15s ease,opacity .15s;text-decoration:none}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.soft{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.btn.danger{background:var(--err);color:#fff}
.btn.accent{background:var(--accent);color:var(--accent-ink)}
.btn.block{width:100%}
.btn.sm{min-height:36px;padding:0 12px;font-size:13px;border-radius:12px}
.btn.icon{width:44px;padding:0}
.btn.busy{opacity:.6;pointer-events:none}
.actions{display:flex;gap:10px;margin-top:12px}
.actions>.btn{flex:1}

/* avatar */
.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:850;color:#fff;flex:none;font-size:16px;position:relative;background:var(--pc);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.avatar.s{width:28px;height:28px;font-size:12px}
.avatar.xs{width:22px;height:22px;font-size:10px}
.avatar.xl{width:96px;height:96px;font-size:38px;overflow:visible}
.avatar.xl img{border-radius:50%}
.avatar.dim{opacity:.5}
.cam{position:absolute;right:-2px;bottom:-2px;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;border:3px solid var(--paper);z-index:1}
.cam svg{width:16px;height:16px}

/* seznam */
.list .li{display:flex;align-items:center;gap:12px;padding:14px 0;min-height:56px;width:100%;text-align:left}
.list .li+.li{border-top:1px solid var(--line)}
.list .li .grow{flex:1;min-width:0}
.list .li .t{font-weight:800}
.list .li .s{font-size:13px;color:var(--muted);font-weight:600}
.list .li.top-al{align-items:flex-start}
.chev{color:var(--muted)}

/* prepinac */
.tg{width:50px;height:30px;border-radius:99px;background:var(--line);position:relative;flex:none;transition:background .2s}
.tg:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.tg.on,.tg[aria-checked="true"]{background:var(--ok)}
.tg.on:after,.tg[aria-checked="true"]:after{transform:translateX(20px)}
.opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.opt{border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;border:1.5px solid var(--line);color:var(--muted);min-height:32px}
.opt.on{border-color:var(--ink);color:var(--ink);background:var(--surface-2)}
.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:4px;gap:4px}
.seg button{flex:1;min-height:36px;border-radius:10px;font-weight:850;font-size:14px;color:var(--muted)}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-s)}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.swatches button{width:32px;height:32px;border-radius:50%;display:block;background:var(--pc)}
.swatches button.on{box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--ink)}

/* formulare */
.field{margin-top:14px}
.field>label,.field>.flabel{display:block;font-size:12px;font-weight:850;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}
.input,.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea{width:100%;min-height:48px;border-radius:14px;border:1.5px solid var(--line);padding:0 14px;font-weight:700;background:var(--surface-2);color:var(--ink);outline:none;appearance:none;-webkit-appearance:none}
.field textarea{padding:12px 14px;min-height:88px;resize:vertical;font-weight:600}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.field .hint{font-size:12px;color:var(--muted);font-weight:650;margin-top:6px}
.field .pick{display:flex;gap:10px}
.field .pick>button{flex:1;min-height:48px;border-radius:14px;border:1.5px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 12px;font-weight:750;background:var(--surface-2)}
.field .pick>button.on{border-color:var(--pc,var(--ink));background:var(--surface);box-shadow:0 0 0 2px var(--pc,var(--ink)) inset}
.formerr{margin-top:12px;background:var(--err-soft);color:var(--err);border-radius:12px;padding:10px 12px;font-size:13px;font-weight:750}

/* poznamka */
.note{display:flex;gap:10px;align-items:flex-start;background:var(--warn-soft);border-radius:14px;padding:10px 12px;font-size:13px;font-weight:700;color:var(--warn)}
.note.info{background:var(--surface-2);color:var(--ink);font-weight:650}
.note.ok{background:var(--ok-soft);color:var(--ok)}
.note .grow{flex:1}

/* prazdny stav */
.empty{text-align:center;padding:22px 12px;color:var(--muted);font-weight:650;font-size:14px}
.empty svg.i{width:34px;height:34px;margin:0 auto 8px;display:block;opacity:.7}
.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}

/* hero */
.hero{position:relative;overflow:hidden;border-radius:28px;padding:18px;color:#fff;background:var(--dc,var(--thu));box-shadow:var(--shadow);min-height:196px;display:flex;gap:10px}
.hero.d2,.hero.d3{color:#1d2533}
.hero.ok{background:#3c8a50;color:#fff}
.hero.calm{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.13);right:-70px;bottom:-90px}
.hero .txt{position:relative;z-index:1;flex:1;min-width:0;display:flex;flex-direction:column}
.hero .k{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.9;display:flex;gap:8px;align-items:center}
.hero .now{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:3px 8px;font-size:11px;letter-spacing:.04em}
.hero .t{font-size:34px;font-weight:950;letter-spacing:-1px;line-height:1;margin:10px 0 4px;overflow-wrap:anywhere}
.hero .m{font-weight:700;opacity:.92}
.hero .bar{height:8px;border-radius:99px;background:rgba(255,255,255,.28);margin-top:auto;overflow:hidden}
.hero .bar i{display:block;height:100%;background:currentColor;border-radius:99px}
.hero .next{margin-top:10px;font-size:13px;font-weight:750;opacity:.95;display:flex;align-items:center;gap:8px}
.hero .next img{width:28px;height:28px;border-radius:8px;background:#fff;object-fit:cover}
.hero .pic{position:relative;z-index:1;width:132px;height:132px;align-self:center;border-radius:26px;background:#fff;overflow:hidden;flex:none;box-shadow:0 10px 24px rgba(0,0,0,.18);transform:rotate(3deg)}
.hero .pic img{width:100%;height:100%;object-fit:cover}
@media(max-width:360px){.hero .pic{width:96px;height:96px}.hero .t{font-size:28px}}

/* casova osa */
.tl{position:relative;margin:4px 0 0;padding:0;list-style:none}
.tl li{display:flex;gap:12px;align-items:center;padding:8px 0;position:relative}
.tl li:before{content:"";position:absolute;left:50px;top:0;bottom:0;width:2px;background:var(--line)}
.tl li:first-child:before{top:50%}.tl li:last-child:before{bottom:50%}
.tl li:only-child:before{display:none}
.tl .tm{width:38px;font-size:13px;font-weight:850;color:var(--muted);text-align:right;flex:none}
.tl .dot{width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--line);position:relative;z-index:1;flex:none}
.tl .past .dot{background:var(--line)}
.tl .cur .dot{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent)}
.tl .tt{font-weight:750;flex:1;min-width:0}
.tl .tt small{display:block;font-size:12px;color:var(--muted);font-weight:650}
.tl .past .tt{color:var(--muted)}
.tl .thumbs{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;max-width:50%}
.tl .thumbs img{width:26px;height:26px;border-radius:7px;background:#fff;object-fit:cover;border:1px solid var(--line)}

/* dlazdice */
.tile{display:flex;flex-direction:column;gap:8px;min-height:138px;text-align:left}
.tile .msg{font-weight:650;font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tile .act{display:flex;gap:10px;align-items:center}
.tile .act img{width:54px;height:54px;border-radius:14px;background:#fff;object-fit:cover;border:1px solid var(--line);flex:none}
.bag{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.bag .it{flex:none;width:64px;text-align:center;font-size:11px;font-weight:750;color:var(--muted)}
.bag .it img{width:64px;height:64px;border-radius:16px;background:#fff;object-fit:cover;border:1px solid var(--line);display:block;margin-bottom:4px}

/* detail radky */
.dd .r{display:flex;align-items:center;gap:12px;padding:12px 0}
.dd .r+.r{border-top:1px solid var(--line)}
.dd .ic{width:40px;height:40px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;flex:none}

/* vice */
.more{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.more .card{display:flex;flex-direction:column;gap:10px;min-height:110px;text-align:left}
.more .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--surface-2);position:relative}
.more .ic .badge{position:absolute;top:-6px;right:-6px}

/* statistika */
.stat{display:flex;gap:10px}
.stat>div{flex:1;border-radius:var(--r-m);padding:12px;text-align:center;background:var(--surface-2)}
.stat b{display:block;font-size:28px;font-weight:950;letter-spacing:-1px}
.stat span{font-size:12px;font-weight:800}
.dev{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--ok);white-space:nowrap}
.dev:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.dev.wait{color:var(--warn)}
.dev.off{color:var(--muted)}
.dev.bad{color:var(--err)}

/* navigace */
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:20;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.navbar .in{max-width:480px;margin:0 auto;display:flex;height:var(--nav-h)}
.navbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:800;color:var(--muted);position:relative;min-height:44px;text-decoration:none}
.navbar a.on{color:var(--ink)}
.navbar a.on svg{stroke-width:2.2}
.navbar a.on:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 4px 4px;background:var(--ink)}
.navbar .nb{position:absolute;top:8px;left:calc(50% + 6px);background:var(--err);color:#fff;font-size:10px;font-weight:900;min-width:17px;height:17px;border-radius:99px;display:grid;place-items:center;padding:0 4px}

/* sheet */
.scrim{position:fixed;inset:0;background:rgba(20,24,32,.42);z-index:30;opacity:0;pointer-events:none;transition:opacity .25s}
.scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;max-width:480px;margin:0 auto;background:var(--surface);border-radius:26px 26px 0 0;padding:10px 16px calc(env(safe-area-inset-bottom) + 20px);transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);max-height:88dvh;overflow:auto;overscroll-behavior:contain}
.sheet.on{transform:none}
.sheet .grab{width:40px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 14px}
.sheet .sh-sub{color:var(--muted);font-size:13px;margin-top:4px}

/* toast */
.toasts{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top) + 10px);z-index:40;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}
.toast{background:var(--ink);color:var(--paper);border-radius:14px;padding:11px 16px;font-weight:750;font-size:14px;box-shadow:var(--shadow);max-width:440px;animation:in .25s ease-out;pointer-events:auto}
.toast.err{background:var(--err);color:#fff}
.toast.ok{background:var(--ok);color:#fff}

/* stav synchronizace */
.sync{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:750;color:var(--muted)}
.sync:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.sync.checking:before{background:var(--accent);animation:pulse 1s infinite alternate}
.sync.offline:before{background:var(--warn)}
@keyframes pulse{from{opacity:.3}to{opacity:1}}
.banner{display:flex;gap:10px;align-items:center;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:750;margin-bottom:12px;background:var(--surface-2);border:1px solid var(--line)}
.banner.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.banner .btn{margin-left:auto}

/* boot a parovani */
.boot{min-height:70dvh;display:grid;place-items:center}
.boot-logo,.pair-logo{width:84px;height:84px;border-radius:22px;background:url(/icons/icon-light-192.png) center/cover;box-shadow:var(--shadow)}
:root[data-theme="dark"] .boot-logo,:root[data-theme="dark"] .pair-logo{background-image:url(/icons/icon-dark-192.png)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .boot-logo,:root:not([data-theme="light"]) .pair-logo{background-image:url(/icons/icon-dark-192.png)}}
.boot-logo{animation:pulse 1.1s infinite alternate}
.app.pair{padding-bottom:40px;display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:calc(env(safe-area-inset-top) + 48px)}
.pair-title{margin:4px 0 6px;font-size:28px;font-weight:900;letter-spacing:-.8px}
.pair .card{width:100%}
.steps{margin:10px 0 0;padding-left:22px}
.steps li{margin:6px 0;font-weight:650}
.qr{width:200px;height:200px;margin:6px auto 14px;display:block;background:#fff;border-radius:16px;padding:10px}
.qr svg{width:100%;height:100%;display:block}
.qr svg path,.qr svg rect{fill:#243047}
.copybox{min-height:44px;border-radius:12px;border:1.5px solid var(--line);display:flex;align-items:center;padding:0 12px;font-size:13px;font-weight:700;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--surface-2);user-select:all}

/* onboarding */
.onb{padding-top:24px}
.onb .stepdots{display:flex;gap:6px;justify-content:center;margin-bottom:18px}
.onb .stepdots i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.onb .stepdots i.on{background:var(--ink);width:22px;border-radius:99px}

/* kalendar (spolecny, pouziva pece i nastaveni volnych dnu) */
.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:6px;font-size:11px;font-weight:850;color:var(--muted);text-align:center}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cd{min-width:0;aspect-ratio:1/1.12;border-radius:14px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:850;font-size:15px;transition:transform .15s;background:var(--surface-2)}
.cd:active{transform:scale(.94)}
.cd.other{opacity:.35}
.cd.today{outline:2.5px solid var(--ink);outline-offset:2px}
.cd.sel{transform:scale(1.06);box-shadow:var(--shadow);z-index:1}
.cd .free{font-size:9px;font-weight:850;color:var(--muted);letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.cd.isfree{background:var(--warn-soft)}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:12px;font-weight:750;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:14px;height:14px;border-radius:5px;display:inline-block}

/* historie */
.hist .li .ts{font-size:12px;color:var(--muted);font-weight:700;white-space:nowrap}

/* dev kit */
.kitgrid{display:flex;flex-wrap:wrap;gap:8px}
.kitgrid .sw{width:64px;height:48px;border-radius:12px;border:1px solid var(--line);font-size:9px;font-weight:800;display:flex;align-items:flex-end;padding:4px}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
