/* virtualne.pro — administrace ve vzhledu AdminKit (věrný reskin bez Bootstrapu).
   Tokeny extrahované z adminkit/src/scss (sidebar #222E3C, primární #3B7DDD,
   plocha #f5f7fb, Inter, karty bez rámečku se stínem 0 0 .875rem). */

@font-face{
  font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/assets/vendor/inter/inter-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/assets/vendor/inter/inter-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --stage:#e6ebf2; --surface:#ffffff; --surface-2:#f8f9fa; --hair:#e9ecef; --hair-2:#dee2e6;
  --ink:#495057; --head:#212529; --muted:#6c757d; --faint:#77808a;
  --rail:#222e3c; --rail-2:#2a3648; --rail-hair:rgba(255,255,255,.06); --rail-ink:#e9ecef; --rail-dim:rgba(233,236,239,.5);
  --accent:#3b7ddd; --accent-ink:#2f6fd0; --accent-soft:#e8f0fc;
  --ok:#1c7f4d; --ok-bg:#e6f3ec; --ok-line:#c3e3d1; --warn:#9a5b12; --warn-bg:#fbf2e3; --warn-line:#ecd7ab; --err:#c22626; --err-bg:#fcecec; --err-line:#f1cbcb;
  --r:.2rem; --r-sm:.2rem; --r-card:.25rem;
  --shadow:0 0 .875rem 0 rgba(33,37,41,.09);
  --sidebar-w:260px; --content:880px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,"Cascadia Mono",monospace;
}
*{box-sizing:border-box} html,body{margin:0}
body{font:.875rem/1.5 var(--font);background:var(--stage);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
.mono,.slug,code{font-family:var(--mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
code{background:var(--surface-2);padding:.1em .4em;border-radius:var(--r);font-size:.86em;color:var(--head)}
.muted{color:var(--muted)} .faint{color:var(--faint)} .center{text-align:center}
svg{display:block;flex:none}
h1,h2,h3{margin:0;color:var(--head)}
::selection{background:rgba(59,125,221,.22)}
html{scrollbar-width:thin;scrollbar-color:var(--hair-2) transparent}

/* ================= LAYOUT ================= */
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:none;background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;letter-spacing:-.01em;text-decoration:none}
.brand .mark{width:30px;height:30px;border-radius:6px;border:1.5px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}
.brand .mark svg{width:17px;height:17px}
.brand b span{color:var(--accent)}
.sidebar .brand{color:#f8f9fa;padding:1.15rem 1.5rem;font-size:1.15rem}
.sidebar .brand .mark{border-color:var(--accent);color:#8fb4ea}
.sidebar .brand b span{color:#8fb4ea}
.nav{display:flex;flex-direction:column;padding:.6rem 0 1rem;flex:1;overflow-y:auto;scrollbar-width:thin}
.nav a{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.625rem;border-left:3px solid transparent;color:var(--rail-dim);font-weight:400;font-size:.875rem;transition:color .12s,background .12s}
.nav a svg{width:18px;height:18px;opacity:.85}
.nav a:hover{color:rgba(233,236,239,.75);text-decoration:none}
.nav a.active{color:var(--rail-ink);background:linear-gradient(90deg,rgba(59,125,221,.1) 0%,rgba(59,125,221,.0875) 50%,transparent 100%);border-left-color:var(--accent)}
.subnav{display:flex;flex-direction:column;margin:.1rem 0 .3rem}
.subnav a{display:flex;align-items:center;gap:.5rem;padding:.45rem 1.625rem .45rem 3.35rem;border-left:3px solid transparent;color:var(--rail-dim);font-size:.82rem}
.subnav a:hover{color:rgba(233,236,239,.75);text-decoration:none}
.subnav a.active{color:var(--rail-ink);background:linear-gradient(90deg,rgba(59,125,221,.1) 0%,rgba(59,125,221,.0875) 50%,transparent 100%);border-left-color:var(--accent)}
.subnav .badge{margin-left:auto;background:var(--accent);color:#fff;border-radius:99px;font-size:.72rem;line-height:1.5;padding:0 .5rem;font-weight:600;font-variant-numeric:tabular-nums}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:.9rem;background:var(--surface);box-shadow:0 0 2rem 0 rgba(33,37,41,.1);padding:.875rem 1.375rem;position:relative;z-index:5}
.topbar .nav-open{display:none;color:var(--muted);cursor:pointer}
.topbar .nav-open svg{width:22px;height:22px}
.topbar .tb-brand{display:none}
.topbar .who{margin-left:auto;display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.875rem}
.topbar .who b{color:var(--head);font-weight:600}
.topbar .role{color:var(--faint);font-size:.78rem}
.topbar .avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.82rem;flex:none}
.topbar .out{color:var(--muted);padding:.35rem;border-radius:var(--r);display:flex}
.topbar .out:hover{background:var(--surface-2);color:var(--head)}
.topbar .out svg{width:17px;height:17px}
.wrap{max-width:var(--content);margin:0 auto;padding:1.9rem 1.6rem 3.5rem;width:100%}
body.has-nav .wrap{max-width:none}   /* administrace využívá celou šířku obrazovky */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:1.15rem;margin-top:1.15rem}
.dash-grid>.card,.dash-grid>.card+.card{margin-top:0}
.dash-grid+.card{margin-top:1.25rem}
@media(max-width:980px){.dash-grid{grid-template-columns:1fr}}
.foot{text-align:center;color:var(--faint);padding:1.5rem;font-size:.8rem}

body.auth-only{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--stage)}
body.auth-only .main{width:100%}
body.auth-only .wrap{max-width:400px;padding:1.5rem;margin:0 auto}

/* mobilní přepínač lišty (bez JS) */
.nav-cb,.nav-scrim{display:none}
@media(max-width:820px){
  .app-shell{display:block}
  .topbar .nav-open{display:flex}
  .topbar .tb-brand{display:flex;font-size:.95rem}
  .topbar .tb-brand .mark{width:24px;height:24px}.topbar .tb-brand .mark svg{width:14px;height:14px}
  .topbar .tb-brand b span{color:var(--accent)}
  .sidebar{position:fixed;left:0;top:0;height:100vh;z-index:30;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 0 50px rgba(0,0,0,.3)}
  .nav-cb:checked ~ .app-shell .sidebar{transform:translateX(0)}
  .nav-cb:checked ~ .nav-scrim{display:block;position:fixed;inset:0;background:rgba(15,20,28,.5);z-index:25}
  .wrap{padding:1.2rem 1rem 3rem}
  @supports (backdrop-filter: blur(4px)){.nav-cb:checked ~ .nav-scrim{backdrop-filter:blur(2px)}}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}

/* ================= PAGE HEAD ================= */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin:0 0 1.4rem;flex-wrap:wrap}
.page-head h1{font-size:1.35rem;letter-spacing:-.01em;font-weight:600;text-wrap:balance}
.page-head .sub{color:var(--muted);font-size:.86rem;margin:.28rem 0 0;text-wrap:pretty}
.page-head .tools{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.page-sec{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:600;margin:2rem 0 .9rem;display:flex;align-items:center;gap:.9rem}
.page-sec:first-child{margin-top:0}

/* ================= TLAČÍTKA ================= */
.btn,button{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--r);padding:.45rem .85rem;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;line-height:1.4;white-space:nowrap;transition:background .12s,transform .06s}
.btn:hover,button:hover{background:var(--accent-ink);border-color:var(--accent-ink);text-decoration:none}
.btn:active,button:active{transform:scale(.985)}
.btn svg,button svg{width:15px;height:15px}
.btn-ghost{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface);color:var(--ink);border:1px solid var(--hair-2);border-radius:var(--r);padding:.45rem .8rem;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,transform .06s}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.btn-ghost:active{transform:scale(.985)}
.btn-ghost svg{width:15px;height:15px;color:currentColor}
.btn-danger{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--err);border:1px solid var(--err-line);border-radius:var(--r);padding:.45rem .8rem;font:inherit;font-size:.875rem;font-weight:560;cursor:pointer}
.btn-danger:hover{background:var(--err-bg)}.btn-danger svg{width:15px;height:15px}
.icon-btn{display:inline-flex;padding:.4rem;border-radius:var(--r);background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer}
.icon-btn:hover{background:var(--surface-2);border-color:var(--hair-2);color:var(--head)}.icon-btn svg{width:16px;height:16px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ================= KARTY ================= */
.card{background:var(--surface);border:1px solid #e4e8ee;border-radius:var(--r-card);padding:1.25rem 1.5rem;box-shadow:var(--shadow)}
.card + .card{margin-top:1.25rem}
.card > .card-head{display:flex;align-items:center;gap:.6rem;margin:0 0 1.15rem;padding-bottom:.95rem;border-bottom:1px solid var(--hair)}
.card > .card-head svg{width:18px;height:18px;color:var(--muted)}
.card > .card-head h2{font-size:1rem;letter-spacing:0;font-weight:600}
.card.danger{box-shadow:var(--shadow),inset 0 0 0 1px var(--err-line)}
.card.danger > .card-head{border-color:var(--err-line)}
.card.danger > .card-head svg,.card.danger > .card-head h2{color:var(--err)}

/* ================= FORMULÁŘE ================= */
.form-sec{padding:1.4rem 0;border-top:1px solid var(--hair);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;align-items:start}
.form-sec-h,.form-sec .fs-tree,.form-sec .tree,.form-sec .pw,.form-sec .check,.form-sec label:has(textarea),.form-sec .hint,.form-sec .form-adv{grid-column:1/-1}
.form-sec .row{display:contents}
@media(max-width:760px){.form-sec{grid-template-columns:1fr}}
.form-sec:first-of-type{padding-top:0;border-top:0}
.form-sec:last-of-type{padding-bottom:0}
.form-sec-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-weight:600;margin:0 0 1.1rem}
.field{margin:0 0 1.1rem}.field:last-child{margin-bottom:0}
.field > label,label.field{display:block;font-weight:500;font-size:.875rem;margin:0 0 .4rem;color:var(--head)}
.form label{display:block;margin:0 0 1.1rem;font-weight:500;font-size:.875rem;color:var(--head)}
.form input,.form select,.form textarea{width:100%;max-width:none;margin-top:.4rem;padding:.5rem .75rem;background:var(--surface);color:var(--ink);border:1px solid #ced4da;border-radius:var(--r);font:inherit;font-size:.875rem;transition:border-color .1s,box-shadow .1s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(59,125,221,.25)}
.form input::placeholder{color:var(--faint)}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 1.5rem;align-items:start;margin:0}
.form .row > label,.form .row .col{flex:1;min-width:190px;margin:0 0 1.1rem}
.check{display:flex;align-items:flex-start;gap:.55rem;font-weight:400;font-size:.875rem;margin:0 0 1.1rem;color:var(--ink)}
.check input{width:auto;margin:.15rem 0 0}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.form-actions{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1.4rem;padding-top:1.25rem;border-top:1px solid var(--hair)}
.fe{display:block;color:var(--err);font-weight:500;font-size:.82rem;margin-top:.35rem}
.fh{display:block;color:var(--muted);font-weight:400;font-size:.8rem;margin-top:.35rem}
.slug-input{display:flex;align-items:center;margin-top:.4rem;border:1px solid #ced4da;border-radius:var(--r);overflow:hidden;transition:border-color .1s,box-shadow .1s;max-width:none}
.slug-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(59,125,221,.25)}
.slug-input span{color:var(--faint);font-family:var(--mono);padding:0 .1rem 0 .75rem;font-size:.85rem}
.slug-input input{border:0;margin:0;border-radius:0;box-shadow:none!important}
.slug-input input:focus{box-shadow:none}
fieldset{border:0;padding:0;margin:0;min-width:0}
fieldset.pw{border:1px solid var(--hair);border-radius:var(--r-card);padding:1rem 1.1rem;background:var(--surface-2)}
fieldset.pw legend{padding:0 .4rem;color:var(--muted);font-weight:600;font-size:.8rem}
.radio{display:flex;align-items:center;gap:.5rem;font-weight:400;font-size:.875rem;margin:.5rem 0}
.radio input{width:auto;margin:0}
.narrow{max-width:280px;margin-bottom:1rem}
.card .grid-table{box-shadow:none;border-radius:var(--r)}
.grid-table+.card{margin-top:1.25rem}
form.inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
form.inline label{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.875rem}form.inline input{width:auto;margin-top:0}

/* ================= AUTH ================= */
.auth{background:var(--surface);border:0;border-radius:var(--r-card);padding:2rem 1.9rem;box-shadow:0 .5rem 1.5rem rgba(33,37,41,.08)}
.auth .brand{margin:0 0 1.5rem;color:var(--head)}
.auth .brand b span{color:var(--accent)}
.auth h1{font-size:1.25rem;margin:0 0 .35rem;letter-spacing:-.01em;font-weight:600}
.auth .lede{color:var(--muted);font-size:.875rem;margin:0 0 1.3rem;line-height:1.55;text-wrap:pretty}
.auth button{width:100%;justify-content:center;padding:.6rem;font-size:.9rem;margin-top:.2rem}
.auth .alt{text-align:center;margin:1.2rem 0 0;font-size:.83rem;color:var(--muted)}

/* ================= ALERTY ================= */
.alert{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:var(--r);margin:0 0 1.25rem;font-weight:500;font-size:.875rem;border:1px solid transparent}
.alert svg{width:16px;height:16px;flex:none}
.alert.err{background:var(--err-bg);color:#a31d1d;border-color:var(--err-line)}
.alert.ok{background:var(--ok-bg);color:#135f3a;border-color:var(--ok-line)}

/* ================= PANEL SKENU ================= */
.scan-panel{background:var(--surface);border:0;border-radius:var(--r-card);box-shadow:var(--shadow);margin-bottom:1.25rem;overflow:hidden}
.scan-panel .sp-head{display:flex;align-items:center;gap:.55rem;padding:.8rem 1.25rem;border-bottom:1px solid var(--hair);font-weight:600;font-size:.875rem;color:var(--head)}
.scan-panel .sp-head svg{width:17px;height:17px}
.scan-panel.warn .sp-head svg{color:var(--warn)} .scan-panel .sp-head svg{color:var(--accent)}
.scan-panel .sp-head .cnt{margin-left:auto;font-size:.78rem;color:var(--faint);font-weight:500}
.scan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.5rem;padding:.9rem 1.25rem}
.scan-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;border:1px solid var(--hair-2);border-radius:var(--r);font-family:var(--mono);font-size:.78rem;color:var(--ink);background:var(--surface-2);min-width:0}
.scan-item:hover{border-color:var(--accent);color:var(--accent);text-decoration:none;background:var(--accent-soft)}
.scan-item svg{width:14px;height:14px;flex:none}
.scan-item .f{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}

/* ================= STROM VÝBĚRU (klient) ================= */
.tree{border:1px solid var(--hair-2);border-radius:var(--r);overflow:hidden;margin:.2rem 0 0}
.tree .t-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .85rem;border-bottom:1px solid var(--hair);cursor:pointer;font-size:.875rem;font-weight:400;margin:0}
.tree .t-row:last-child{border-bottom:0}
.tree .t-row:hover{background:var(--surface-2)}
.tree .t-row input{width:auto;margin:0}
.tree .t-row .tico{color:var(--muted);display:flex}.tree .t-row .tico svg{width:16px;height:16px}
.tree .t-row.off{color:var(--faint)}.tree .t-row em{color:var(--faint);font-style:normal;font-size:.8rem}
.tree .t-row input[type=radio]{accent-color:var(--accent)}

/* ================= TABULKA ================= */
.grid-table{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--surface);border:0;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow)}
.grid-table th,.grid-table td{text-align:left;padding:.72rem 1rem;border-bottom:1px solid var(--hair);vertical-align:middle;overflow:hidden}
.grid-table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;background:var(--surface);position:sticky;top:0;z-index:1}
.grid-table tr:last-child td{border-bottom:0}.grid-table tbody tr:hover{background:var(--surface-2)}
.grid-table .name{display:flex;align-items:center;gap:.6rem;min-width:0}
.grid-table .name .tico{color:var(--muted);display:flex}.grid-table .name .tico svg{width:17px;height:17px}
.grid-table .name .nm{min-width:0}
.grid-table .name b{font-weight:600;color:var(--head);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid-table .name .path{font-family:var(--mono);font-size:.75rem;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid-table .sub{font-family:var(--mono);font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid-table .slug{display:block;font-family:var(--mono);font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid-table .acc{display:flex;gap:.3rem;flex-wrap:wrap}
.grid-table .actions{display:flex;gap:.25rem;align-items:center;justify-content:flex-end}
.grid-table form.inline{gap:.4rem}.grid-table form.inline input{width:100%;margin-top:0}
.grid-table col.c-link{width:340px}.grid-table col.c-acc{width:184px}.grid-table col.c-act{width:88px}
.grid-table col.c-date{width:140px}.grid-table col.c-pw{width:200px}.grid-table col.c-num{width:84px}.grid-table col.c-state{width:104px}

/* ================= ŠTÍTKY ================= */
.tag{display:inline-flex;align-items:center;gap:.28rem;font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:var(--r);border:1px solid transparent;line-height:1.25;white-space:nowrap}
.tag svg{width:11px;height:11px;stroke-width:2.2}
.tag.lock{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.tag.pub{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.tag.unlisted{background:var(--surface-2);color:var(--muted);border-color:var(--hair-2)}
.tag.listed,.tag.on{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.tag.off{background:var(--err-bg);color:var(--err);border-color:transparent}
.dot-on{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block}

/* ================= STAV ÚLOŽIŠTĚ ================= */
.smb-status{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-radius:var(--r-card);background:var(--surface-2);border:1px solid var(--hair);margin:.2rem 0 0}
.smb-status .dot{width:9px;height:9px;border-radius:50%;flex:none}
.smb-status.up .dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-bg)}
.smb-status.down .dot{background:var(--err);box-shadow:0 0 0 4px var(--err-bg)}

/* ================= /MOJE ================= */
.topbar-client{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.375rem;background:var(--surface);box-shadow:0 0 2rem 0 rgba(33,37,41,.1)}
.topbar-client .brand{color:var(--head)}.topbar-client .brand b span{color:var(--accent)}
.topbar-client .who{color:var(--muted);font-size:.875rem;display:flex;align-items:center;gap:.7rem}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.tile{display:flex;flex-direction:column;background:var(--surface);border:0;border-radius:var(--r-card);padding:1.2rem;color:var(--ink);min-height:132px;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s}
.tile:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 .5rem 1.5rem -6px rgba(59,125,221,.35)}
@media(prefers-reduced-motion:reduce){.tile{transition:none}.tile:hover{transform:none}}
.tile .tico{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;margin-bottom:.8rem}
.tile .tico svg{width:18px;height:18px}
.tile h2{font-size:1rem;margin:0 0 .25rem;letter-spacing:0;font-weight:600}
.tile p{color:var(--muted);margin:0;font-size:.83rem;flex:1}
.tile .go{color:var(--accent);font-weight:600;font-size:.83rem;margin-top:.9rem;display:flex;align-items:center;gap:.3rem}
.tile .go svg{width:14px;height:14px}

/* ================= DASHBOARD ================= */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,220px));gap:.9rem;margin-bottom:1.15rem}
.tiles .tile{display:block;background:var(--surface);border:1px solid #e4e8ee;border-radius:var(--r-card);box-shadow:var(--shadow);padding:1rem 1.15rem;color:var(--ink);min-height:0;transition:none;transform:none}
.tiles .tile:hover{text-decoration:none;transform:none;box-shadow:var(--shadow)}
.tiles .tile .num{display:block;font-size:1.5rem;font-weight:700;line-height:1.3;color:var(--head);font-variant-numeric:tabular-nums}
.tiles .tile .lbl{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted);margin-top:.1rem}
.kv{display:grid;grid-template-columns:fit-content(320px) 1fr;align-items:baseline;gap:.2rem 1.5rem;padding:.5rem 0;border-top:1px solid var(--hair);font-size:.875rem}
.kv:first-of-type{border-top:0}
.kv .k{color:var(--muted)}

/* graf návštěv (HTML/CSS sloupce, jedna série, plná šířka) */
.chart{display:flex;gap:.7rem;margin:.4rem 0 .8rem}
.ch-y{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;height:150px;color:var(--faint);font-size:.72rem;font-variant-numeric:tabular-nums;min-width:2ch;line-height:1}
.ch-plot{flex:1;min-width:0}
.ch-bars{display:flex;align-items:flex-end;gap:2px;height:150px;border-bottom:1px solid var(--hair-2);background-image:linear-gradient(var(--hair),var(--hair)),linear-gradient(var(--hair),var(--hair));background-size:100% 1px,100% 1px;background-position:0 0,0 50%;background-repeat:no-repeat}
.ch-bar{flex:1;min-width:1px;background:var(--accent);border-radius:2px 2px 0 0}
.ch-bar:hover{background:var(--accent-ink)}
.ch-x{display:flex;justify-content:space-between;color:var(--faint);font-size:.72rem;margin-top:4px}
.tools .btn-ghost.active{border-color:var(--accent);color:var(--accent)}

/* ============ stromový výběr složky úložiště (formulář uzlu) ============ */
.fs-tree{border:1px solid var(--hair-2);border-radius:var(--r-card);background:var(--surface-2);padding:.4rem;max-height:360px;overflow:auto;margin-top:.4rem;scrollbar-width:thin}
.fs-tree details{margin:0}
.fs-tree summary{display:flex;align-items:center;gap:.5rem;padding:.42rem .55rem;border-radius:var(--r);cursor:pointer;color:var(--muted);font-weight:500;list-style:none;user-select:none}
.fs-tree summary::-webkit-details-marker{display:none}
.fs-tree summary::before{content:"";width:6px;height:6px;border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);transform:rotate(-45deg);transition:transform .12s;flex:none}
.fs-tree details[open]>summary::before{transform:rotate(45deg)}
.fs-tree summary:hover{background:var(--surface);color:var(--head)}
.fs-tree summary svg,.fs-item svg{width:15px;height:15px;flex:none;color:var(--muted)}
.fs-kids{padding-left:1.1rem}
.fs-item{display:flex;align-items:center;gap:.5rem;padding:.42rem .55rem;border-radius:var(--r);cursor:pointer;font-size:.86rem;position:relative}
.fs-item:hover{background:var(--surface)}
.fs-item input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0}
.fs-item:has(input:checked){background:var(--accent-soft);color:var(--accent-ink);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}
.fs-item:has(input:checked) svg{color:var(--accent-ink)}
.fs-item.off{color:var(--faint);cursor:not-allowed}
.fs-item.off:hover{background:transparent}
.fs-name{overflow-wrap:anywhere}
.fs-badge{margin-left:auto;font-size:.72rem;color:var(--faint);background:var(--surface);border:1px solid var(--hair);border-radius:99px;padding:.05rem .55rem;white-space:nowrap}
.fs-item:has(input:checked) .fs-badge{background:var(--accent);border-color:transparent;color:#fff}
#fs-detected{display:inline-block;margin:.6rem 0 0;font-size:.8rem;color:var(--accent-ink);background:var(--accent-soft);border-radius:99px;padding:.15rem .7rem;font-weight:600}
.form-adv{margin-top:1.4rem;border-top:1px solid var(--hair);padding-top:1rem}
.form-adv summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:.875rem;user-select:none}
.form-adv[open] summary{margin-bottom:.6rem}
.hint{color:var(--faint);font-size:.82rem;margin:.45rem 0 0}

/* ================= TMAVÝ REŽIM (dle systému; sidebar zůstává #222e3c) ================= */
@supports (color: light-dark(#000,#fff)){
  :root{
    color-scheme:light dark;
    --stage:light-dark(#f5f7fb,#141a23);
    --surface:light-dark(#ffffff,#202a38);
    --surface-2:light-dark(#f8f9fa,#1a2330);
    --hair:light-dark(#e9ecef,rgba(255,255,255,.08));
    --hair-2:light-dark(#dee2e6,rgba(255,255,255,.15));
    --ink:light-dark(#495057,#cfd6df);
    --head:light-dark(#212529,#e8ecf1);
    --muted:light-dark(#6c757d,#9aa5b1);
    --faint:light-dark(#77808a,#818d9a);
    --accent:light-dark(#3b7ddd,#5b93e4);
    --accent-ink:light-dark(#2f6fd0,#82abec);
    --accent-soft:light-dark(#e8f0fc,#263650);
    --ok:light-dark(#1c7f4d,#4fc38a);   --ok-bg:light-dark(#e6f3ec,#15301f);   --ok-line:light-dark(#c3e3d1,#265c3c);
    --warn:light-dark(#9a5b12,#e3aa5a); --warn-bg:light-dark(#fbf2e3,#33270f); --warn-line:light-dark(#ecd7ab,#6b5220);
    --err:light-dark(#c22626,#ef7f7f);  --err-bg:light-dark(#fcecec,#3a1a1a);  --err-line:light-dark(#f1cbcb,#6e2a2a);
    --shadow:light-dark(0 0 .875rem 0 rgba(33,37,41,.09),0 0 .875rem 0 rgba(0,0,0,.3));
  }
  .form input,.form select,.form textarea{border-color:light-dark(#ced4da,rgba(255,255,255,.16))}
  .slug-input{border-color:light-dark(#ced4da,rgba(255,255,255,.16))}
  .alert.err{color:light-dark(#a31d1d,#f3a1a1)}
  .alert.ok{color:light-dark(#135f3a,#7fd3a8)}
  .topbar{box-shadow:light-dark(0 0 2rem 0 rgba(33,37,41,.1),0 0 2rem 0 rgba(0,0,0,.35))}
  .topbar-client{box-shadow:light-dark(0 0 2rem 0 rgba(33,37,41,.1),0 0 2rem 0 rgba(0,0,0,.35))}
  ::selection{background:light-dark(rgba(59,125,221,.22),rgba(91,147,228,.35))}
  html{scrollbar-color:light-dark(#dee2e6,#37455a) transparent}
}

@supports (color: light-dark(#000,#fff)){
  .card,.tiles .tile{border-color:light-dark(#e4e8ee,rgba(255,255,255,.08))}
}

/* modální okno bez JS (checkbox toggle) */
.modal-cb{position:absolute;opacity:0;width:0;height:0}
.modal{position:fixed;inset:0;z-index:100050;display:none;align-items:center;justify-content:center;padding:1.2rem}
.modal-cb:checked ~ .modal{display:flex}
.modal-scrim{position:absolute;inset:0;background:rgba(15,23,42,.5)}
@supports (backdrop-filter:blur(2px)){.modal-scrim{backdrop-filter:blur(2px)}}
.modal-card{position:relative;width:100%;max-width:420px;background:var(--surface);border:1px solid #e4e8ee;border-radius:var(--r-card);box-shadow:0 20px 60px -12px rgba(15,23,42,.4);padding:1.5rem;max-height:90vh;overflow:auto}
.modal-head{display:flex;align-items:center;gap:.55rem;margin:0 0 1.2rem}
.modal-head svg{width:18px;height:18px;color:var(--accent)}
.modal-head h2{font-size:1rem;color:var(--head)}
.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.3rem}
.modal-actions label{cursor:pointer}
