/* =============================================================================
   Regni ceníky — vzhled GUI (světlý i tmavý režim)
   ============================================================================= */
:root{
  --bg:#eef1f6; --bg2:#e6eaf2;
  --surface:#ffffff; --surface-2:#f7f9fc; --surface-3:#eef2f8;
  --ink:#1b2432; --ink-2:#5a6474; --ink-3:#8b94a3;
  --line:#e3e8f0; --line-2:#d5dce7;
  --brand:#4f46e5; --brand-2:#4338ca; --brand-soft:#ecebfd;
  --ok:#0f9d58; --ok-soft:#e4f6ec;
  --warn:#b45309; --warn-soft:#fdf1de;
  --bad:#dc2626; --bad-soft:#fdeaea;
  --shadow-sm:0 1px 2px rgba(20,30,55,.06);
  --shadow:0 4px 14px rgba(20,30,55,.08),0 1px 3px rgba(20,30,55,.06);
  --shadow-lg:0 12px 34px rgba(20,30,55,.14);
  --radius:14px; --radius-sm:9px;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0e1420; --bg2:#0b111b;
    --surface:#151d2b; --surface-2:#1a2434; --surface-3:#202b3d;
    --ink:#e8edf5; --ink-2:#a7b2c4; --ink-3:#727e92;
    --line:#263248; --line-2:#31405b;
    --brand:#818cf8; --brand-2:#a5b4fc; --brand-soft:#232a46;
    --ok:#34d399; --ok-soft:#122a24;
    --warn:#fbbf24; --warn-soft:#2c2410;
    --bad:#f87171; --bad-soft:#2c1717;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow:0 6px 20px rgba(0,0,0,.45);
    --shadow-lg:0 16px 40px rgba(0,0,0,.55);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; color:var(--ink);
  background:linear-gradient(180deg,var(--bg),var(--bg2)) fixed;
  font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1{font-size:1.55rem;letter-spacing:-.01em;margin:.1rem 0 1.2rem}
h2{font-size:1.05rem;letter-spacing:-.01em;margin:0 0 .8rem}
h3{font-size:.9rem;margin:1rem 0 .35rem;color:var(--ink-2);font-weight:600}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
code{background:var(--surface-3);padding:.12em .4em;border-radius:6px;font-size:.88em;
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
.muted{color:var(--ink-2)}

/* ---- topbar ---- */
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;
  padding:.7rem 1.4rem;background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}
.topbar .brand{display:flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:-.01em}
.topbar .brand::before{content:"";width:22px;height:22px;border-radius:7px;
  background:linear-gradient(135deg,var(--brand),#8b5cf6);box-shadow:0 2px 6px rgba(79,70,229,.5)}
.topbar nav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.topbar nav a{padding:.44rem .8rem;border-radius:999px;color:var(--ink-2);font-weight:500;font-size:.92rem}
.topbar nav a:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}
.topbar nav a.active{background:var(--brand);color:#fff;box-shadow:0 3px 10px rgba(79,70,229,.4)}
.topbar .logout{margin:0}
.linklike{background:none;border:0;color:var(--ink-2);cursor:pointer;font:inherit;padding:.4rem .6rem;border-radius:8px}
.linklike:hover{background:var(--surface-3);color:var(--ink)}

main{max-width:1140px;margin:1.6rem auto;padding:0 1.4rem}
main.install,main.login{max-width:520px;margin-top:min(9vh,5rem)}

/* ---- flash ---- */
.flash{padding:.75rem 1rem;border-radius:var(--radius-sm);margin:.55rem 0;
  border:1px solid transparent;font-size:.93rem;display:flex;gap:.5rem;align-items:flex-start}
.flash::before{font-weight:700}
.flash-ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent);color:var(--ok)}
.flash-ok::before{content:"✓"}
.flash-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn)}
.flash-warn::before{content:"!"}
.flash-err{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent);color:var(--bad)}
.flash-err::before{content:"✕"}

/* ---- cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:1rem;margin:1rem 0 1.6rem}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;overflow:hidden}
.card::after{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand);opacity:.85}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.card .num{font-size:2rem;font-weight:750;letter-spacing:-.02em;line-height:1.1}
.card .num.small{font-size:1rem;font-weight:600}
.card .lbl{color:var(--ink-2);font-size:.83rem;margin-top:.2rem}
.card.bad::after{background:var(--bad)}
.card.bad .num{color:var(--bad)}

/* ---- panels (settings etc.) ---- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.2rem 1.3rem;box-shadow:var(--shadow-sm);margin:0 0 1.2rem}
.panel h2{border-bottom:1px solid var(--line);padding-bottom:.6rem}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--line-2);
  color:var(--ink);padding:.52rem .95rem;border-radius:10px;cursor:pointer;font:inherit;font-size:.92rem;
  font-weight:550;box-shadow:var(--shadow-sm);transition:transform .1s,background .12s,border-color .12s;line-height:1}
.btn:hover{background:var(--surface-3);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(135deg,var(--brand),#7c3aed);border-color:transparent;color:#fff;
  box-shadow:0 4px 12px rgba(79,70,229,.35)}
.btn-primary:hover{filter:brightness(1.06);background:linear-gradient(135deg,var(--brand),#7c3aed)}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.runbar,.searchbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.7rem 0 1rem}
.inline{display:inline}

/* ---- forms ---- */
form .grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.1rem;margin:.3rem 0 .2rem}
label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--ink-2);font-weight:500}
input,select{font:inherit;padding:.56rem .7rem;border:1px solid var(--line-2);border-radius:10px;
  background:var(--surface-2);color:var(--ink);transition:border-color .12s,box-shadow .12s;width:100%}
input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
input[readonly]{color:var(--ink-2);cursor:pointer}
input.mini{padding:.34rem .45rem;width:6.2rem;text-align:right;font-variant-numeric:tabular-nums}
.actions{margin:1.1rem 0}

/* url řádky v nastavení */
.urlrow{display:flex;align-items:center;gap:.6rem;margin:.4rem 0}
.urlrow .tag{flex:0 0 150px;font-size:.82rem;color:var(--ink-2);font-weight:600}
.urlrow input{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem}

/* ---- tables ---- */
.tablewrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
table.grid-table{width:100%;border-collapse:collapse;background:var(--surface);overflow:hidden}
.tablewrap .grid-table{border:0}
.grid-table th,.grid-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.grid-table thead th{position:sticky;top:0;background:var(--surface-3);font-size:.72rem;color:var(--ink-2);
  text-transform:uppercase;letter-spacing:.04em;font-weight:700;z-index:1}
.grid-table tbody tr{transition:background .1s}
.grid-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.grid-table tbody tr:hover{background:var(--brand-soft)}
.grid-table tr:last-child td{border-bottom:0}
.grid-table tr.dim{opacity:.5}
.grid-table .tld{font-weight:650}
.nums{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.nowrap{white-space:nowrap}

/* ---- badges ---- */
.badge{display:inline-block;padding:.16rem .55rem;border-radius:999px;font-size:.76rem;font-weight:600;
  background:var(--surface-3);color:var(--ink-2);border:1px solid transparent;white-space:nowrap}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.bad{background:var(--bad-soft);color:var(--bad)}
.badge.run{background:var(--brand-soft);color:var(--brand-2)}

/* ---- log ---- */
pre.log{background:#0b1220;color:#cfe0f5;padding:.9rem 1.1rem;border-radius:var(--radius-sm);overflow:auto;
  font:12.5px/1.55 ui-monospace,"SF Mono",Menlo,Consolas,monospace;max-height:17rem;
  border:1px solid #1b2740;box-shadow:inset 0 1px 8px rgba(0,0,0,.35)}

/* ---- install checks ---- */
ul.checks{list-style:none;padding:0;margin:.4rem 0 1rem}
ul.checks li{padding:.5rem .2rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.5rem}
ul.checks li.ok{color:var(--ok)} ul.checks li.bad{color:var(--bad)}
ul.checks .hint{color:var(--ink-3);font-size:.8rem;margin-left:auto;font-weight:400}

/* ---- login / install card ---- */
main.login,main.install{background:var(--surface);border:1px solid var(--line);
  padding:1.8rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
main.login h1,main.install h1{text-align:left}
main.login h1{display:flex;align-items:center;gap:.6rem}
main.login h1::before{content:"";width:28px;height:28px;border-radius:9px;
  background:linear-gradient(135deg,var(--brand),#8b5cf6);box-shadow:0 3px 8px rgba(79,70,229,.5)}
main.login form{display:flex;flex-direction:column;gap:.9rem;margin-top:.4rem}
main.login .btn{justify-content:center;margin-top:.3rem}
main.install h2{margin-top:1.4rem}

.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin:1.2rem 0}

@media(max-width:640px){
  form .grid{grid-template-columns:1fr}
  .urlrow{flex-direction:column;align-items:stretch;gap:.2rem}
  .urlrow .tag{flex:none}
  main{padding:0 1rem}
}
