/* MaG – COSM eucert s.r.o. | jednotný vzhľad administrácie (bez CDN) */
:root{
  --brand:#1F3A93; --brand-600:#1a3280; --brand-700:#142761; --brand-900:#0d1a42; --brand-50:#eef2fb; --brand-100:#dbe3f6;
  --star:#F5C400; --ink:#1b2333; --ink-2:#4a556b; --muted:#6b7588; --line:#e3e7ef; --bg:#f4f6fb; --card:#ffffff;
  --green:#14804a; --green-bg:#e3f5ea; --amber:#a15c00; --amber-bg:#fff2d9; --red:#b42318; --red-bg:#fde8e6;
  --blue:#1f5fbf; --blue-bg:#e5effd; --purple:#6b3fb8; --purple-bg:#efe7fb; --gray:#5c6577; --gray-bg:#eef0f4;
  --radius:10px; --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08); --sidebar:248px;
  font-size:15px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.25;color:var(--brand-900)}
h1{font-size:1.45rem} h2{font-size:1.15rem} h3{font-size:1rem} h4{font-size:.92rem}
p{margin:.3rem 0 .7rem}
code,.mono{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.85em}
.muted{color:var(--muted)} .small{font-size:.84rem} .tiny{font-size:.76rem} .right{text-align:right} .center{text-align:center}
.nowrap{white-space:nowrap} .wrap{white-space:normal} .strong{font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- layout */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar);background:linear-gradient(180deg,var(--brand-700),var(--brand-900));color:#dfe6fb;position:fixed;inset:0 auto 0 0;
  overflow-y:auto;z-index:40;display:flex;flex-direction:column;transition:transform .2s}
.sidebar .brand{display:flex;align-items:center;gap:.7rem;padding:1rem 1rem .8rem;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand img{width:58px;height:auto;background:#fff;border-radius:8px;padding:3px}
.sidebar .brand .t1{font-weight:700;font-size:1.15rem;color:#fff;letter-spacing:.02em}
.sidebar .brand .t2{font-size:.72rem;color:#b9c5ec}
.sidebar nav{padding:.5rem .5rem 1rem;flex:1}
.sidebar .sec{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#8fa0d6;margin:1rem .7rem .35rem}
.sidebar a.item{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:8px;color:#e4e9fb;font-size:.92rem;min-height:40px}
.sidebar a.item svg{width:18px;height:18px;flex:none;opacity:.85}
.sidebar a.item:hover{background:rgba(255,255,255,.08);text-decoration:none}
.sidebar a.item.active{background:#fff;color:var(--brand-700);font-weight:600}
.sidebar a.item.active svg{opacity:1}
.sidebar .me{border-top:1px solid rgba(255,255,255,.08);padding:.8rem 1rem;display:flex;gap:.6rem;align-items:center}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--star);color:var(--brand-900);display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:none}
.sidebar .me .n{color:#fff;font-size:.88rem;font-weight:600}
.sidebar .me .r{color:#aebbe6;font-size:.72rem}
.main{flex:1;margin-left:var(--sidebar);min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:1rem;padding:.6rem 1.4rem;min-height:60px}
.topbar .crumbs{font-size:.76rem;color:var(--muted)}
.topbar .title{font-weight:700;color:var(--brand-900);font-size:1.05rem}
.topbar .grow{flex:1}
.topbar form.search input{width:260px;max-width:40vw}
.topbar .status{font-size:.8rem;color:var(--green)}
.iconbtn{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink-2)}
.iconbtn svg{width:19px;height:19px}
.iconbtn .dot{position:absolute;top:4px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:.65rem;display:grid;place-items:center;font-weight:700}
.hamburger{display:none}
.content{padding:1.3rem 1.4rem 3rem;max-width:1500px;width:100%}
.page-head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.page-head .grow{flex:1;min-width:240px}
.page-head .sub{color:var(--muted);font-size:.9rem;margin-top:.15rem}
.page-head .actions{display:flex;gap:.5rem;flex-wrap:wrap}
.scrim{display:none}

/* ---------- karty a mriežky */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem}
.card>.hd{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.card>.hd h2,.card>.hd h3{margin:0;font-size:1rem}
.card>.hd .grow{flex:1}
.card>.bd{padding:1rem}
.card>.bd.tight{padding:0}
.card>.ft{padding:.7rem 1rem;border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 var(--radius) var(--radius)}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)} .g-1-2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--shadow)}
.kpi .l{font-size:.78rem;color:var(--muted)}
.kpi .v{font-size:1.9rem;font-weight:700;color:var(--brand-900);line-height:1.2;margin:.15rem 0}
.kpi .s{font-size:.78rem;color:var(--muted)}
.kpi.green{border-left-color:var(--green)} .kpi.amber{border-left-color:#e0a100} .kpi.red{border-left-color:var(--red)} .kpi.purple{border-left-color:var(--purple)}
.dl{display:grid;grid-template-columns:minmax(140px,max-content) 1fr;gap:.35rem 1rem;margin:0}
.dl dt{color:var(--muted);font-size:.84rem} .dl dd{margin:0;font-weight:500;word-break:break-word}
.banner{border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;border:1px solid;display:flex;gap:.7rem;align-items:flex-start}
.banner.dark{background:var(--brand-900);border-color:var(--brand-900);color:#fff}
.banner .big{font-size:2.4rem;font-weight:700;line-height:1}

/* ---------- tabuľky */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}
table.t th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:.6rem .7rem;border-bottom:1px solid var(--line);background:#fafbfd;white-space:nowrap}
table.t td{padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
table.t tr:last-child td{border-bottom:0}
table.t tbody tr:hover{background:#f8faff}
table.t tr.sel{background:var(--brand-50)}
table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums}
table.t.compact td,table.t.compact th{padding:.4rem .55rem}
table.t tfoot td{font-weight:700;background:#fafbfd}
.row-link{cursor:pointer}

/* ---------- odznaky a čipy */
.badge{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap;background:var(--gray-bg);color:var(--gray);border:1px solid transparent}
.badge.green{background:var(--green-bg);color:var(--green)} .badge.amber{background:var(--amber-bg);color:var(--amber)}
.badge.red{background:var(--red-bg);color:var(--red)} .badge.blue{background:var(--blue-bg);color:var(--blue)}
.badge.purple{background:var(--purple-bg);color:var(--purple)} .badge.gray{background:var(--gray-bg);color:var(--gray)}
.badge.outline{background:#fff;border-color:var(--line);color:var(--ink-2)}
.chip{display:inline-block;padding:.1rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;background:var(--c,#eee);color:#1b2333;border:1px solid rgba(0,0,0,.06);white-space:nowrap;margin:1px 0}
.pill{display:inline-flex;gap:.3rem;align-items:center;padding:.2rem .6rem;border-radius:999px;background:var(--brand-50);color:var(--brand-700);font-size:.78rem;font-weight:600}
.dotc{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.35rem;vertical-align:middle;background:var(--muted)}
.dotc.green{background:var(--green)} .dotc.amber{background:#e0a100} .dotc.red{background:var(--red)} .dotc.blue{background:var(--blue)}

/* ---------- formuláre */
label{font-size:.82rem;font-weight:600;color:var(--ink-2);display:block;margin-bottom:.25rem}
.field{margin-bottom:.85rem}
.field .help{font-size:.76rem;color:var(--muted);margin-top:.2rem}
.req::after{content:" *";color:var(--red)}
input:not([type]),input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],input[type=tel],input[type=url],select,textarea{
  width:100%;padding:.55rem .65rem;border:1px solid #cfd6e4;border-radius:8px;font:inherit;font-size:.92rem;background:#fff;color:var(--ink);min-height:42px}
textarea{min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-100);border-color:var(--brand)}
input[readonly],input:disabled,select:disabled,textarea[readonly]{background:#f3f5f9;color:var(--ink-2)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--brand);vertical-align:middle}
.check{display:flex;gap:.5rem;align-items:center;font-weight:500;font-size:.9rem;color:var(--ink);margin:.2rem 0}
.checks{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem}
.form-row{display:grid;gap:0 1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.form-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}
fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem;margin:0 0 1rem}
legend{font-weight:700;color:var(--brand-900);padding:0 .4rem;font-size:.92rem}
.radio-row{display:flex;gap:1rem;flex-wrap:wrap}
.inline-form{display:inline}
.err-list{margin:.2rem 0 .5rem 1rem;color:var(--red)}

/* ---------- tlačidlá */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;border:1px solid #cfd6e4;background:#fff;color:var(--ink);
  font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;min-height:42px;text-decoration:none;white-space:nowrap}
.btn:hover{background:#f5f7fb;text-decoration:none}
.btn svg{width:16px;height:16px}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff} .btn.primary:hover{background:var(--brand-600)}
.btn.danger{background:#fff;border-color:#f1b8b2;color:var(--red)} .btn.danger:hover{background:var(--red-bg)}
.btn.success{background:var(--green);border-color:var(--green);color:#fff}
.btn.warn{background:#fff7e6;border-color:#f3cd7a;color:var(--amber)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:.3rem .6rem;min-height:32px;font-size:.8rem}
.btn[disabled],.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}

/* ---------- upozornenia */
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:.7rem;border:1px solid;font-size:.9rem}
.flash.success{background:var(--green-bg);border-color:#a8dcbd;color:#0b5a32}
.flash.error{background:var(--red-bg);border-color:#f3b5ae;color:#8a1a11}
.flash.warning{background:var(--amber-bg);border-color:#f0cf8a;color:#7a4500}
.flash.info{background:var(--blue-bg);border-color:#b5cdf3;color:#173f7c}
.note{background:var(--brand-50);border:1px solid var(--brand-100);border-radius:8px;padding:.6rem .8rem;font-size:.86rem;color:var(--brand-900);margin-bottom:.8rem}
.note.warn{background:var(--amber-bg);border-color:#f0cf8a;color:#6b3d00}
.note.err{background:var(--red-bg);border-color:#f3b5ae;color:#8a1a11}
.note.ok{background:var(--green-bg);border-color:#a8dcbd;color:#0b5a32}
.empty{padding:1.6rem;text-align:center;color:var(--muted);font-size:.9rem}

/* ---------- záložky, filtre */
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}
.tabs a,.tabs button{padding:.6rem .9rem;border:0;background:none;font:inherit;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;font-size:.9rem}
.tabs a.active,.tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}
.tabs a:hover{text-decoration:none;color:var(--brand)}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}
.filters .field{margin:0;min-width:150px}
.seg{display:inline-flex;flex-wrap:wrap;gap:.35rem}
.seg a{padding:.35rem .75rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:.82rem;font-weight:600}
.seg a.active{background:var(--brand-900);border-color:var(--brand-900);color:#fff}
.seg a .n{opacity:.7;margin-left:.25rem}
.tabpane{display:none} .tabpane.active{display:block}

/* ---------- stepper fáz */
.stepper{display:flex;gap:0;align-items:flex-start;overflow-x:auto;padding:.4rem 0 .2rem}
.step{flex:1;min-width:110px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.step::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:3px;background:var(--line);z-index:0}
.step:first-child::before{display:none}
.step .c{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #c9d1e3;color:var(--muted);font-weight:700;z-index:1;font-size:.85rem}
.step .l{font-size:.78rem;font-weight:600;margin-top:.35rem;color:var(--ink-2)}
.step .s{font-size:.7rem;color:var(--muted)}
.step.done .c{background:var(--green);border-color:var(--green);color:#fff}
.step.done::before,.step.active::before{background:var(--green)}
.step.active .c{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-100)}
.step.locked .c{background:#f1f3f7}

/* ---------- výsledok výpočtu */
.calc-result{background:var(--brand-900);color:#e9eeff;border-radius:var(--radius);padding:1.1rem 1.2rem}
.calc-result h3{color:#fff}
.calc-result .big{font-size:2.6rem;font-weight:700;color:#fff;line-height:1}
.calc-result .lab{font-size:.75rem;color:#aebbe6;text-transform:uppercase;letter-spacing:.05em}
.calc-result table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.6rem}
.calc-result td,.calc-result th{padding:.35rem .4rem;border-bottom:1px solid rgba(255,255,255,.1);text-align:right}
.calc-result td:first-child,.calc-result th:first-child{text-align:left}
.calc-result th{color:#aebbe6;font-weight:600;font-size:.72rem;text-transform:uppercase}
.calc-result .warn{color:#ffd27a} .calc-result .err{color:#ff9d93}
.bar{height:8px;background:rgba(0,0,0,.08);border-radius:5px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--brand)}
.calc-result .bar{background:rgba(255,255,255,.15)} .calc-result .bar>span{background:var(--star)}
.scheme-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.scheme-pick label{border:1.5px solid var(--line);border-radius:10px;padding:.55rem .7rem;cursor:pointer;background:#fff;margin:0;font-weight:500;display:flex;gap:.5rem;align-items:flex-start}
.scheme-pick label:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.scheme-pick .nm{font-weight:700;color:var(--brand-900);font-size:.9rem}
.scheme-pick .ru{font-size:.7rem;color:var(--muted)}
.enforce{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem}
.enforce div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;font-size:.78rem}
.enforce b{display:block;font-size:.85rem;color:var(--brand-900)}

/* ---------- kalendár zdrojov */
.cal{display:grid;font-size:.75rem;border:1px solid var(--line);border-radius:10px;overflow:auto;background:#fff}
.cal .h{background:#fafbfd;color:var(--muted);text-align:center;padding:.35rem 0;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}
.cal .h.we{background:#f1f3f8}
.cal .p{padding:.45rem .6rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:sticky;left:0;background:#fff;z-index:2;min-width:170px}
.cal .p .n{font-weight:600;color:var(--ink);font-size:.82rem} .cal .p .r{color:var(--muted)}
.cal .c{border-bottom:1px solid var(--line);min-height:42px;position:relative}
.cal .c.we{background:#f7f8fb}
.cal .ev{margin:3px 2px;border-radius:6px;padding:.2rem .35rem;color:#10204d;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border:1px solid rgba(0,0,0,.08);font-size:.72rem;align-self:center}
.cal .ev.off{background:repeating-linear-gradient(45deg,#e7eaf0,#e7eaf0 6px,#dfe3ea 6px,#dfe3ea 12px);color:#4a556b}
.cal .ev.conf{outline:2px solid var(--red)}
.util{display:flex;align-items:center;gap:.4rem}
.util .bar{width:80px}

/* ---------- časová os */
.timeline{list-style:none;margin:0;padding:0 0 0 1rem;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:.1rem 0 .9rem .9rem}
.timeline li::before{content:"";position:absolute;left:-1.42rem;top:.35rem;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--brand)}
.timeline li.done::before{background:var(--green);border-color:var(--green)}
.timeline li.late::before{background:var(--red);border-color:var(--red)}
.timeline .when{font-size:.76rem;color:var(--muted)}

/* ---------- karty osôb */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;box-shadow:var(--shadow)}
.person .top{display:flex;gap:.6rem;align-items:center;margin-bottom:.5rem}
.person .top .avatar{background:var(--brand);color:#fff}
.person .lbl{font-size:.68rem;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;margin-top:.4rem}
.matrix td.cell{text-align:center;font-size:.75rem;min-width:70px}
.matrix td.ok{background:#eef9f2} .matrix td.warn{background:#fff7e6} .matrix td.bad{background:#fdeeee}

/* ---------- login */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 10% -10%,#2a4bb3 0,transparent 60%),linear-gradient(160deg,var(--brand-700),var(--brand-900));padding:1rem}
.login-card{width:100%;max-width:420px;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.25);padding:2rem 2rem 1.5rem}
.login-card .logo{display:block;margin:0 auto .6rem;width:170px;height:auto}
.login-card h1{text-align:center;font-size:1.3rem;margin:.2rem 0 .1rem}
.login-card .sub{text-align:center;color:var(--muted);font-size:.86rem;margin-bottom:1.3rem}
.login-card .btn{width:100%}
.login-foot{text-align:center;color:#c6d0f2;font-size:.75rem;margin-top:1rem}
.pw-rules{font-size:.8rem;color:var(--muted);margin:.3rem 0 1rem 1.1rem;padding:0}
.pw-rules li.ok{color:var(--green)}

/* ---------- error */
.error-page{max-width:560px;margin:8vh auto;text-align:center}
.error-page .code{font-size:4rem;font-weight:800;color:var(--brand)}

/* ---------- spoločné doplnky */
svg.ic{width:1.1em;height:1.1em;flex:none;vertical-align:-.15em}
.card>.hd>svg.ic{width:18px;height:18px;color:var(--brand)}
.help{font-size:.76rem;color:var(--muted);margin-top:.2rem}
.page-head .actions{align-items:center}
.grid>*,.card,.card>.bd{min-width:0}
.card>.bd.tight{overflow-x:auto}
.grid.g2,.grid.g-2-1,.grid.g-1-2{align-items:start}
.stepper{max-width:100%}
table.t.crit td:nth-child(1){width:2.2rem} table.t.crit td:nth-child(3){width:230px;white-space:nowrap} table.t.crit td:nth-child(4){width:32%}
table.t.crit .radio-row{flex-wrap:nowrap} table.t.crit .check{margin:0}
.file-names{font-size:.8rem;color:var(--ink-2)}
.topbar .status.warn{color:var(--amber)}
.txt-red{color:var(--red)} .txt-star{color:var(--star)} .txt-green{color:var(--green)}
.lbl{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:.15rem 0 .2rem}
.bar>span.green{background:var(--green)} .bar>span.amber{background:#e0a100} .bar>span.red{background:var(--red)}
.avatar.sm{width:24px;height:24px;font-size:.62rem;background:var(--brand-100);color:var(--brand-900)}
.quote{background:#f7f9fd;border-left:3px solid var(--brand);padding:.5rem .75rem;border-radius:0 8px 8px 0;font-size:.9rem;white-space:pre-line}
.files{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}
.files .file{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.84rem}
.files .file svg{width:15px;height:15px}
.file-btn{position:relative;overflow:hidden}
.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.radio-row.tight{gap:.6rem}
.grow{flex:1}
details>summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:.84rem;list-style:none;padding:.2rem 0}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"▸ ";color:var(--muted)} details[open]>summary::before{content:"▾ "}
.workload{margin-bottom:.9rem} .workload .row{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem;flex-wrap:wrap}
.excerpt{max-width:340px;color:var(--ink-2)}
.filters-card .bd{padding:.8rem 1rem .2rem} .filters-card .filters{margin-bottom:.6rem}

/* ---------- REV-02 preskúmanie správy */
.review-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:1rem;align-items:start}
.rnav{position:sticky;top:76px;padding:.5rem;max-height:calc(100vh - 92px);overflow:auto}
.rnav-h{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;padding:.4rem .5rem}
.rnav a{display:flex;justify-content:space-between;gap:.4rem;align-items:center;padding:.45rem .55rem;border-radius:7px;color:var(--ink-2);font-size:.86rem;min-height:36px}
.rnav a:hover{background:var(--brand-50);text-decoration:none}
.rnav a.strong{color:var(--brand)}
.rnav .cnt{font-size:.7rem;background:var(--gray-bg);color:var(--gray);border-radius:999px;padding:.05rem .45rem;font-weight:700;white-space:nowrap}
.rnav .cnt.nc{background:var(--red-bg);color:var(--red)}
.rbody section{scroll-margin-top:76px}
.rbody article{scroll-margin-top:76px}
.rating-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:.4rem}
.rating-strip>div{background:#f7f9fd;border:1px solid var(--line);border-radius:8px;padding:.45rem .5rem;text-align:center}
.rating-strip b{display:block;font-size:1.2rem;color:var(--brand-900)} .rating-strip span{font-size:.7rem;color:var(--muted)}
.rating-strip .g b{color:var(--green)} .rating-strip .r b{color:var(--red)} .rating-strip .a b{color:var(--amber)} .rating-strip .b b{color:var(--blue)}
.clause,.finding{border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;margin-bottom:.7rem;background:#fff}
.clause.nc,.finding{border-left:4px solid var(--red)}
.clause-h{display:flex;gap:.5rem;align-items:flex-start;flex-wrap:wrap;font-size:.92rem}
.clause-no{font-weight:700;color:var(--brand-900);min-width:3.2rem}
.evidence{display:grid;gap:.3rem;margin:.5rem 0 .2rem;font-size:.88rem;background:#fafbfd;border-radius:8px;padding:.5rem .65rem}
.evidence .lbl{display:inline;margin-right:.4rem}
.thumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}
.thumbs a{display:flex;flex-direction:column;width:140px;font-size:.7rem;color:var(--muted);text-decoration:none}
.thumbs img{width:140px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#f1f3f7}
.car-box{background:#f5f8ff;border:1px solid var(--brand-100);border-radius:8px;padding:.6rem .75rem;margin:.5rem 0}
.cosm-comment{background:var(--purple-bg);border:1px solid #d9c8f5;border-radius:8px;padding:.55rem .75rem;margin:.5rem 0;color:#3b2470}
.thread{margin-top:.5rem}
.cmt{border:1px solid #e1e6f3;background:#f8f6ff;border-radius:8px;padding:.5rem .65rem;margin:.4rem 0}
.cmt.resolved{background:#f4f8f5;border-color:#cfe6d7;opacity:.85}
.cmt.reply{background:#fff;margin-left:1.4rem}
.cmt-h{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.84rem}
.cmt-b{font-size:.9rem;margin:.25rem 0 .1rem;white-space:pre-line}
.reply-box form,.add-cmt form{display:flex;flex-direction:column;gap:.4rem;margin-top:.3rem}
.reply-box textarea,.add-cmt textarea{min-height:56px}
.reply-box .btn,.add-cmt .btn{align-self:flex-start}
.add-cmt summary svg{width:14px;height:14px;vertical-align:-2px}
table.t.crit td{vertical-align:middle} table.t.crit textarea{min-height:44px;font-size:.84rem}
table.t.crit tr.bad{background:#fff5f4}
.outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}
.outcome{display:flex;gap:.6rem;align-items:flex-start;border:2px solid var(--line);border-radius:10px;padding:.7rem .8rem;cursor:pointer;margin:0;background:#fff}
.outcome b{display:block;font-size:.95rem;color:var(--ink)} .outcome small{font-weight:500;color:var(--muted);font-size:.76rem}
.outcome input{margin-top:.2rem}
.outcome.ok:has(input:checked){border-color:var(--green);background:var(--green-bg)}
.outcome.ret:has(input:checked){border-color:#e0a100;background:var(--amber-bg)}
.outcome.no:has(input:checked){border-color:var(--red);background:var(--red-bg)}
.declaration{align-items:flex-start;background:var(--brand-50);border:1px solid var(--brand-100);padding:.6rem .7rem;border-radius:8px;font-size:.86rem;margin:.4rem 0 .8rem}
.declaration input{margin-top:.15rem;flex:none}
.remark-group{margin-bottom:1rem}

/* ---------- klientsky portál */
.portal-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:1rem;margin-bottom:1rem}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}
.tile .btn{align-self:flex-start;margin-top:.3rem}
.status-tile{background:linear-gradient(150deg,var(--brand-700),var(--brand-900));color:#fff;border-color:var(--brand-900)}
.status-tile .lbl,.status-tile .dim{color:#b9c5ec}
.status-tile .norms{font-size:1.35rem;font-weight:700;letter-spacing:.01em;margin:.2rem 0}
.status-tile .badge{font-size:.78rem}
.big-t{font-size:1.15rem;font-weight:700;color:var(--brand-900)}
.big-n{font-size:2.4rem;font-weight:800;color:var(--brand-900);line-height:1} .big-n.hot{color:#d97a00}
ul.mini{list-style:none;margin:.2rem 0 0;padding:0;font-size:.86rem} ul.mini li{padding:.2rem 0;border-bottom:1px dashed var(--line)} ul.mini li:last-child{border:0}
table.t.activity td:first-child{width:130px}
.nc-card>.hd{flex-wrap:wrap} .nc-card>.hd h2{font-size:.98rem}
.nc-card .bd>p{margin-top:0}
.car-form{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.8rem}
.frozen{margin:0 0 1rem;padding:.9rem 1rem;background:#f7f9fd;border:1px dashed #b9c6e6;border-radius:10px;font-size:1.02rem;font-weight:600;color:var(--brand-900)}
.scope-card>.hd svg{width:18px;height:18px;color:var(--brand)}
.chips-line{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}
.older{margin-top:.25rem}
.inv-card>.hd{flex-wrap:wrap} .inv-card>.hd .strong{font-size:1.02rem}
.inv-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(0,1.5fr) auto;gap:1rem;align-items:center}
.inv-steps{list-style:none;display:flex;margin:0;padding:0;counter-reset:s}
.inv-steps li{flex:1;position:relative;padding-top:22px;font-size:.76rem;text-align:center;color:var(--muted)}
.inv-steps li b{display:block;color:var(--ink-2);font-size:.78rem}
.inv-steps li::before{content:"";position:absolute;top:4px;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #c9d1e3;z-index:1}
.inv-steps li::after{content:"";position:absolute;top:10px;left:-50%;width:100%;height:2px;background:var(--line)}
.inv-steps li:first-child::after{display:none}
.inv-steps li.done::before{background:var(--green);border-color:var(--green)}
.inv-steps li.late::before{background:var(--red);border-color:var(--red)}
.objection{margin-top:.8rem}

/* ---------- verejný register */
body.public{background:#f4f6fb;display:flex;flex-direction:column;min-height:100vh}
.pub-wrap{max-width:1080px;margin:0 auto;padding:0 1.2rem;width:100%}
.pub-head{background:linear-gradient(120deg,var(--brand-700),var(--brand-900));color:#fff}
.pub-head .pub-wrap{display:flex;align-items:center;gap:1rem;min-height:68px;flex-wrap:wrap}
.pub-brand{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none;flex:1}
.pub-brand:hover{text-decoration:none}
.pub-brand img{background:#fff;border-radius:7px;padding:3px;height:40px;width:auto}
.pub-brand b{display:block;font-size:1.08rem} .pub-brand small{display:block;color:#b9c5ec;font-size:.75rem}
.pub-nav{display:flex;gap:1rem} .pub-nav a{color:#dfe6fb;font-size:.88rem;font-weight:600}
.pub-main{padding-top:1.4rem;padding-bottom:2.5rem;flex:1}
.pub-hero{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:1.6rem 1.6rem 1.2rem;margin-bottom:1.2rem}
.pub-hero h1{font-size:1.7rem;margin-bottom:.2rem}
.pub-search{display:flex;align-items:center;gap:.5rem;border:2px solid #cfd6e4;border-radius:12px;padding:.3rem .35rem .3rem .8rem;margin-top:.9rem;background:#fff}
.pub-search:focus-within{border-color:var(--brand)}
.pub-search .ico svg{width:20px;height:20px;color:var(--muted)}
.pub-search input{border:0;outline:0;flex:1;font-size:1.05rem;min-height:46px;padding:.2rem}
.pub-search input:focus{outline:0}
.pub-stats{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:.8rem;font-size:.84rem;color:var(--muted)} .pub-stats b{color:var(--brand-900)}
.res-h{font-size:1rem;color:var(--ink-2);margin:.4rem 0 .7rem}
.cert-row{display:grid;grid-template-columns:170px minmax(0,1fr) 200px;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;margin-bottom:.7rem;box-shadow:var(--shadow)}
.cert-row .num{font-weight:800;font-size:1.05rem;color:var(--brand-900)}
.cert-row .org{font-weight:700;font-size:1.05rem}
.cert-row .c3{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;text-align:right}
.badge.lg{font-size:.8rem;padding:.25rem .7rem} .badge.xl{font-size:1rem;padding:.4rem 1rem}
.acc-warn{color:var(--amber);font-weight:600}
.pub-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.pub-changes{list-style:none;margin:0;padding:0} .pub-changes li{padding:.35rem 0;border-bottom:1px solid var(--line)} .pub-changes li:last-child{border:0}
.pub-crumbs{font-size:.84rem;color:var(--muted);margin-bottom:.8rem}
.cert-detail .cert-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.2rem 1.2rem .9rem;border-bottom:1px solid var(--line)}
.cert-detail h1{font-size:1.6rem;margin:0}
.cert-detail .org{font-size:1.2rem;font-weight:700;margin-top:.3rem}
.cert-detail .st{text-align:right}
.cert-detail>.note{margin:.8rem 1.2rem 0}
.cert-dl{grid-template-columns:minmax(170px,max-content) 1fr;gap:.6rem 1.2rem}
.pub-foot{background:#fff;border-top:1px solid var(--line);padding:1rem 0;color:var(--ink-2);font-size:.84rem}
.pub-foot .pub-wrap{display:grid;gap:.3rem}

/* ---------- tlač */
@media print{.sidebar,.topbar,.no-print,.page-head .actions{display:none!important}.main{margin:0}.content{padding:0}.card{box-shadow:none;break-inside:avoid}}

/* ---------- responzívne (tablet 10" na výšku aj na šírku, mobil) */
@media (max-width:1180px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-2-1,.g-1-2{grid-template-columns:1fr}}
@media (max-width:1100px){.review-layout{grid-template-columns:1fr}.rnav{position:static;max-height:none;display:flex;flex-wrap:wrap;gap:.2rem}.rnav-h{width:100%}.rnav a{flex:0 1 auto;border:1px solid var(--line)}
  .portal-hero{grid-template-columns:1fr 1fr}.status-tile{grid-column:1/-1}.inv-grid{grid-template-columns:1fr}.inv-grid .right{text-align:left}}
@media (max-width:820px){.outcomes{grid-template-columns:1fr}.cert-row{grid-template-columns:1fr}.cert-row .c3{align-items:flex-start;text-align:left}.pub-grid{grid-template-columns:1fr}}
@media (max-width:980px){
  :root{--sidebar:260px}
  .sidebar{transform:translateX(-100%);box-shadow:0 0 40px rgba(0,0,0,.3)}
  body.nav-open .sidebar{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(10,20,50,.4);z-index:35}
  .main{margin-left:0}
  .hamburger{display:inline-grid}
  .topbar form.search{display:none}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .g2,.g3,.g4{grid-template-columns:1fr}
  .content{padding:1rem .8rem 3rem}
  .topbar{padding:.5rem .8rem}
  .dl{grid-template-columns:1fr}
  .kpi .v{font-size:1.5rem}
  .portal-hero{grid-template-columns:1fr}
  .pub-hero{padding:1.1rem}.pub-search .btn{padding:.5rem .7rem}
  .cert-dl{grid-template-columns:1fr}
  table.t.stack thead{display:none}
  table.t.stack tr{display:block;border-bottom:1px solid var(--line);padding:.4rem 0}
  table.t.stack td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.25rem .6rem}
  table.t.stack td::before{content:attr(data-l);color:var(--muted);font-size:.75rem}
}
