/* RECLO UI: vlastné ovládacie prvky. Farby preberá z témy (--fg/--ink, --bg/--card, --line, --mut). */
:root{--u-fg:var(--fg,var(--ink,#111));--u-bg:var(--bg,var(--card,#fff));--u-line:var(--line,#ddd);--u-mut:var(--mut,#666);--u-soft:var(--soft,rgba(128,128,128,.12))}
.ui-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;border:0!important;clip:rect(0 0 0 0)}
.cs{position:relative;display:block;min-width:0}
.cs-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--u-line);border-radius:8px;background:var(--u-bg);color:var(--u-fg);font:inherit;font-size:15px;text-align:left;cursor:pointer;box-sizing:border-box;transition:border-color .15s}
.cs-btn:hover,.cs-btn[aria-expanded=true]{border-color:var(--u-fg)}.cs-btn:focus-visible{outline:2px solid var(--u-fg);outline-offset:2px}
.cs-btn:disabled{opacity:.5;cursor:not-allowed}
.cs-btn>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-btn.ph>span,.cs-btn em{color:var(--u-mut);font-style:normal}
.cs-btn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.cs-btn[aria-expanded=true] svg{transform:rotate(180deg)}
.ui-pop{position:fixed;z-index:10000;background:var(--u-bg);color:var(--u-fg);border:1px solid var(--u-line);border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,.18);overflow:auto;box-sizing:border-box;font-family:inherit}
.ui-list{padding:6px;display:flex;flex-direction:column;gap:2px;max-width:calc(100vw - 16px)}
.ui-opt{display:block;width:100%;text-align:left;border:0;background:none;color:inherit;font:inherit;font-size:15px;padding:11px 12px;min-height:44px;border-radius:8px;cursor:pointer}
.ui-opt:hover,.ui-opt:focus-visible{background:var(--u-soft);outline:0}.ui-opt.on{background:var(--u-fg);color:var(--u-bg)}
/* posuvník */
.cr{padding:14px 0;touch-action:none}.cr-tr{position:relative;height:4px;border-radius:2px;background:var(--u-line);cursor:pointer}
.cr-fi{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--u-fg)}
.cr-th{position:absolute;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;padding:0;border-radius:50%;border:2px solid var(--u-fg);background:var(--u-bg);box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:grab}
.cr-th:focus-visible{outline:2px solid var(--u-fg);outline-offset:3px}.cr{margin:0 13px}
/* kalendár */
.ui-cal{padding:14px;width:min(320px,calc(100vw - 16px))}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;text-transform:capitalize}
.cal-n{width:40px;height:40px;border:0;border-radius:50%;background:none;color:inherit;font-size:22px;cursor:pointer}.cal-n:hover{background:var(--u-soft)}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.cal-w{font-size:11px;color:var(--u-mut);padding:4px 0}
.cal-d{aspect-ratio:1;min-height:38px;border:0;border-radius:50%;background:none;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.cal-d:hover{background:var(--u-soft)}.cal-d.td{box-shadow:inset 0 0 0 1px var(--u-fg)}.cal-d.on{background:var(--u-fg);color:var(--u-bg)}
.cal-t{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--u-line)}.cal-t span{margin-right:auto;font-size:13px;color:var(--u-mut)}
.cal-t button{width:34px;height:34px;border:1px solid var(--u-line);border-radius:8px;background:none;color:inherit;font-size:16px;cursor:pointer}.cal-t b{min-width:24px;text-align:center}
.cal-f{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--u-line)}
.cal-f button{flex:1;min-height:40px;border:1px solid var(--u-line);border-radius:8px;background:none;color:inherit;font:inherit;font-size:14px;cursor:pointer}.cal-f .pri{background:var(--u-fg);color:var(--u-bg);border-color:var(--u-fg)}
/* checkbox / rádio bez natívneho vzhľadu */
input[type=checkbox],input[type=radio]{-webkit-appearance:none;appearance:none;width:20px;height:20px;flex:none;border:1.5px solid var(--u-fg);background:var(--u-bg);margin:0;display:inline-grid;place-content:center;cursor:pointer;border-radius:4px;vertical-align:middle}
input[type=radio]{border-radius:50%}
input[type=checkbox]::after{content:"";width:10px;height:6px;border:solid var(--u-bg);border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);margin-top:-2px;transition:transform .12s}
input[type=radio]::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--u-bg);transform:scale(0);transition:transform .12s}
input[type=checkbox]:checked,input[type=radio]:checked{background:var(--u-fg)}input[type=checkbox]:checked::after{transform:rotate(-45deg) scale(1)}input[type=radio]:checked::after{transform:scale(1)}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--u-fg);outline-offset:2px}input[type=checkbox]:disabled{opacity:.5}

/* všetko hranaté (okrem radio a posuvníka) */
.cs-btn,.ui-pop,.ui-opt,.cal-n,.cal-d,.cal-t button,.cal-f button,.ui-pop *{border-radius:0!important}
