:root{
  --bg:#f4f5f7; --card:#ffffff; --ink:#1a1d24; --muted:#6b7280; --line:#e5e7eb;
  --accent:#0f766e;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; background:var(--bg); color:var(--ink);}
header{background:#166534; color:#fff; padding:14px 20px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
header h1{font-size:1.1rem; font-weight:600;}
header .sub{font-size:.8rem; color:#bbf7d0;}
nav{display:flex; gap:6px; margin-left:auto; flex-wrap:wrap;}
nav button{background:#1e293b; color:#cbd5e1; border:none; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:.85rem;}
nav button.active{background:var(--accent); color:#fff;}
main{padding:18px; max-width:1400px; margin:0 auto;}
.tools{display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; align-items:center;}
.tools button, .tools label.btn, .btn-s{background:#fff; border:1px solid var(--line); padding:7px 12px; border-radius:8px; cursor:pointer; font-size:.8rem;}
.legend{display:flex; gap:12px; flex-wrap:wrap; margin-left:auto; font-size:.78rem;}
.legend span{display:flex; align-items:center; gap:5px;}
.dot{width:10px; height:10px; border-radius:50%;}
.board{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px;}
.div-card{background:var(--card); border-radius:12px; border:1px solid var(--line); overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.05);}
.div-head{padding:12px 14px; color:#fff; position:relative;}
.div-head .num{font-size:.7rem; opacity:.85; letter-spacing:.05em;}
.div-head h2{font-size:.95rem; font-weight:600; margin:2px 0; padding-right:30px;}
.div-head .who{font-size:.78rem; margin-top:4px;}
.edit-ic{position:absolute; top:10px; right:10px; background:rgba(255,255,255,.2); border:none; color:#fff; border-radius:6px; width:26px; height:26px; cursor:pointer; font-size:.8rem;}
.div-body{padding:10px 14px;}
.dept{border-left:3px solid var(--line); padding:6px 10px; margin:8px 0; cursor:pointer; border-radius:0 8px 8px 0;}
.dept:hover{background:#f8fafc;}
.dept h3{font-size:.82rem; font-weight:600;}
.dept .fn-count{font-size:.72rem; color:var(--muted);}
.dept ul{margin:6px 0 2px 0; padding-left:16px; display:none;}
.dept.open ul{display:block;}
.dept li{font-size:.78rem; color:#374151; padding:2px 0;}
.dept li .who-s{color:var(--muted); font-size:.7rem;}
.vfp{background:#f0fdf4; border-top:1px solid var(--line); padding:10px 14px; font-size:.75rem; color:#166534;}
.vfp b{display:block; margin-bottom:3px; font-size:.7rem; text-transform:uppercase; letter-spacing:.04em;}
.goal{background:#0f766e; color:#fff; border-radius:12px; padding:14px 18px; margin-bottom:14px; font-size:.9rem; position:relative;}
.goal b{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; opacity:.8; margin-bottom:4px;}
.panel{display:none;}
.panel.active{display:block;}
.grid2{display:grid; grid-template-columns:300px 1fr; gap:14px;}
@media(max-width:800px){.grid2{grid-template-columns:1fr;}}
.list{background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; align-self:start; max-height:75vh; overflow-y:auto;}
.list .divhdr{padding:8px 12px; color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.03em; position:sticky; top:0;}
.list button{display:block; width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--line); padding:9px 12px; cursor:pointer; font-size:.8rem;}
.list button.deptb{font-weight:700; background:#f8fafc;}
.list button.hatb{padding-left:28px;}
.list button.sel{background:#ecfdf5;}
.detail{background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px;}
.detail h2{font-size:1rem; margin-bottom:4px;}
.detail .meta{font-size:.78rem; color:var(--muted); margin-bottom:10px;}
textarea{width:100%; min-height:120px; border:1px solid var(--line); border-radius:8px; padding:10px; font:inherit; font-size:.85rem;}
input[type=text],input[type=number],input[type=date],input[type=url],select{border:1px solid var(--line); border-radius:8px; padding:8px 10px; font:inherit; font-size:.83rem; background:#fff;}
.btn-p{background:var(--accent); color:#fff; border:none; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:.83rem;}
.btn-d{background:#fef2f2; color:#dc2626; border:1px solid #fecaca; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:.83rem;}
.row{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:10px 0;}
.saved{font-size:.75rem; color:var(--accent); margin-left:8px; opacity:0; transition:opacity .3s;}
.saved.show{opacity:1;}
.stat-card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:14px;}
.stat-card h3{font-size:.9rem; margin-bottom:2px;}
.stat-card .meta{font-size:.75rem; color:var(--muted); margin-bottom:8px;}
.trend-up{color:#16a34a; font-weight:600; font-size:.78rem;}
.trend-down{color:#dc2626; font-weight:600; font-size:.78rem;}
table{width:100%; border-collapse:collapse; font-size:.8rem;}
th,td{text-align:left; padding:7px 8px; border-bottom:1px solid var(--line);}
th{font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
.del{background:none; border:none; color:#dc2626; cursor:pointer; font-size:.8rem;}
.badge{display:inline-block; padding:2px 8px; border-radius:999px; font-size:.7rem; font-weight:600;}
.b-nova{background:#fef3c7; color:#92400e;}
.b-riesenie{background:#dbeafe; color:#1e40af;}
.b-hotova{background:#dcfce7; color:#166534;}
.empty{color:var(--muted); font-size:.85rem; padding:20px; text-align:center;}
.file-item{display:flex; align-items:center; gap:8px; padding:6px 10px; border:1px solid var(--line); border-radius:8px; margin:4px 0; font-size:.8rem;}
.file-item a{color:var(--accent); text-decoration:none; font-weight:600;}
.file-item .sz{color:var(--muted); font-size:.72rem;}
.file-item .del{margin-left:auto;}
#overlay{display:none; position:fixed; inset:0; background:rgba(15,23,42,.5); z-index:50; padding:20px; overflow:auto;}
#overlay.show{display:flex; align-items:flex-start; justify-content:center;}
#modal{background:#fff; border-radius:14px; padding:20px; width:100%; max-width:680px; margin:20px auto;}
#modal h2{font-size:1rem; margin-bottom:12px;}
#modal label{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin:10px 0 4px;}
#modal input[type=text],#modal select,#modal textarea{width:100%;}
.dept-edit{border:1px solid var(--line); border-radius:10px; padding:10px; margin:8px 0; background:#f8fafc;}
.dept-edit textarea{min-height:80px; font-size:.8rem;}
footer{text-align:center; color:var(--muted); font-size:.72rem; padding:20px;}
/* smernice */
.dir{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:12px;}
.dir .code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem; background:#f1f5f9; padding:2px 7px; border-radius:6px; color:#334155;}
.dir h3{font-size:.92rem; margin:6px 0 3px;}
.dir .meta{font-size:.73rem; color:var(--muted); margin-bottom:6px;}
.dir .scope{font-size:.73rem; color:#0f766e; background:#f0fdf4; border:1px solid #bbf7d0; padding:3px 8px; border-radius:6px; display:inline-block; margin:3px 0;}
.dir .body{font-size:.83rem; white-space:pre-wrap; border-top:1px dashed var(--line); margin-top:8px; padding-top:8px; display:none;}
.dir.open .body{display:block;}
.b-platna{background:#dcfce7; color:#166534;}
.b-navrh{background:#fef3c7; color:#92400e;}
.b-zrusena{background:#fee2e2; color:#991b1b;}
.rev{border-left:3px solid var(--line); padding:6px 10px; margin:6px 0; font-size:.78rem; background:#f8fafc; border-radius:0 8px 8px 0;}
.rev .rmeta{color:var(--muted); font-size:.72rem;}
.rev pre{white-space:pre-wrap; font:inherit; font-size:.78rem; margin-top:4px; display:none;}
.rev.open pre{display:block;}
.chk{display:flex; align-items:center; gap:6px; font-size:.8rem; padding:3px 0;}
.chkbox{max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:8px; padding:8px; background:#f8fafc;}
.dirlink{display:block; padding:8px 10px; border:1px solid var(--line); border-radius:8px; margin:5px 0; font-size:.8rem; cursor:pointer; background:#fff;}
.dirlink:hover{background:#f8fafc;}
.dirlink .t{font-weight:600;}
/* prihlásenie a role */
#login{position:fixed; inset:0; background:#0f172a; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px;}
#login .box{background:#fff; border-radius:16px; padding:26px; width:100%; max-width:420px;}
#login h2{font-size:1.05rem; margin-bottom:4px;}
#login p{font-size:.8rem; color:var(--muted); margin-bottom:14px;}
#login select,#login input{width:100%; margin-bottom:10px;}
.userbox{display:flex; align-items:center; gap:8px; font-size:.8rem; color:#cbd5e1;}
.rolebadge{padding:2px 8px; border-radius:999px; font-size:.68rem; font-weight:700;}
.r-admin{background:#fde68a; color:#78350f;}
.r-lead{background:#bfdbfe; color:#1e3a8a;}
.r-read{background:#e2e8f0; color:#334155;}
.hidden{display:none !important;}
/* ľudia */
.pcard{display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line); cursor:pointer; font-size:.82rem;}
.pcard:hover{background:#f8fafc;}
.pcard.sel{background:#ecfdf5;}
.avatar{width:30px; height:30px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; flex:0 0 30px;}
.pcard .nm{font-weight:600;}
.pcard .rl{font-size:.7rem; color:var(--muted);}
.inactive{opacity:.5;}
.hist{border-left:3px solid var(--accent); background:#f8fafc; border-radius:0 8px 8px 0; padding:7px 10px; margin:5px 0; font-size:.8rem;}
.hist .per{font-size:.72rem; color:var(--muted);}
.hist.now{border-left-color:#16a34a; background:#f0fdf4;}
.warn{background:#fffbeb; border:1px solid #fde68a; color:#78350f; font-size:.76rem; padding:8px 10px; border-radius:8px; margin:8px 0;}
/* školenia */
.subnav{display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap;}
.subnav button{background:#fff; border:1px solid var(--line); padding:7px 13px; border-radius:8px; cursor:pointer; font-size:.82rem;}
.subnav button.active{background:var(--accent); color:#fff; border-color:var(--accent);}
.sub.hidden{display:none;}
.s-ok{background:#dcfce7; color:#166534;}
.s-soon{background:#fef3c7; color:#92400e;}
.s-exp{background:#fee2e2; color:#991b1b;}
.s-miss{background:#e2e8f0; color:#334155;}
.pperson{background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px;}
.pperson .ph{display:flex; align-items:center; gap:10px; cursor:pointer;}
.pperson .pb{display:none; margin-top:10px;}
.pperson.open .pb{display:block;}
.cnt{display:inline-flex; gap:4px; align-items:center; margin-left:auto; flex-wrap:wrap;}
.tr-row{display:flex; align-items:center; gap:8px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; margin:5px 0; font-size:.8rem; flex-wrap:wrap;}
.tr-row .tn{font-weight:600;}
.tr-row .tm{color:var(--muted); font-size:.73rem;}
.tr-row .right{margin-left:auto; display:flex; gap:6px; align-items:center; flex-wrap:wrap;}
.scan{font-size:.73rem; color:var(--accent); text-decoration:none; border:1px solid #bbf7d0; background:#f0fdf4; padding:2px 7px; border-radius:6px;}
.kbadge{font-size:.68rem; padding:2px 7px; border-radius:999px; background:#e0e7ff; color:#3730a3;}
@media print{
  header,nav,.tools,.subnav,footer,#overlay,.no-print{display:none !important;}
  body{background:#fff;} main{padding:0;} .panel{display:none !important;}
  #print-area{display:block !important;}
  .pperson,.tr-row{break-inside:avoid;}
}
#print-area{display:none;}

/* ====== ÚLOHY (dizajn podľa TIS Plnenie úloh) ====== */
#p-tasks{
  --t-surface:#ffffff; --t-surface-1:#f8f7f4; --t-border:rgba(0,0,0,.1); --t-border-strong:rgba(0,0,0,.18);
  --t-text:#1a1a18; --t-secondary:#5f5e5a; --t-muted:#888780;
  --t-accent:#185fa5; --t-accent-bg:#e6f1fb; --t-accent-text:#0c447c; --t-accent-border:#b5d4f4;
  --t-success:#3b6d11; --t-success-bg:#eaf3de; --t-success-border:#c0dd97;
  --t-warning:#854f0b; --t-warning-bg:#faeeda; --t-warning-border:#fac775;
  --t-danger:#a32d2d; --t-danger-bg:#fcebeb; --t-danger-border:#f7c1c1;
  font-size:15px; line-height:1.5; color:var(--t-text);
}
#p-tasks .stats{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:1.5rem;}
#p-tasks .stat{background:var(--t-surface); border:.5px solid var(--t-border); border-radius:12px; padding:1rem 1.25rem; text-align:center;}
#p-tasks .stat-num{font-size:26px; font-weight:500;}
#p-tasks .stat-lbl{font-size:12px; color:var(--t-muted); margin-top:2px;}
#p-tasks .stat-num.red{color:var(--t-danger);} #p-tasks .stat-num.yellow{color:var(--t-warning);} #p-tasks .stat-num.green{color:var(--t-success);}
#p-tasks .tcard{background:var(--t-surface); border:.5px solid var(--t-border); border-radius:12px; padding:1.25rem 1.5rem; margin-bottom:1.25rem;}
#p-tasks .tcard h2{font-size:13px; font-weight:500; color:var(--t-muted); margin-bottom:12px; text-transform:uppercase; letter-spacing:.04em;}
#p-tasks .form-row{display:grid; gap:10px; align-items:end; grid-template-columns:repeat(auto-fit,minmax(155px,1fr));}
#p-tasks .form-row .field.wide{grid-column:span 2;}
#p-tasks .form-row > div:not(.field){align-self:end;}
#p-tasks .field label{display:block; font-size:12px; color:var(--t-muted); margin-bottom:5px;}
#p-tasks .field input,#p-tasks .field select{width:100%; height:38px; padding:0 12px; border-radius:8px; border:.5px solid var(--t-border-strong);
  background:var(--t-surface-1); color:var(--t-text); font-size:14px; font-family:inherit; outline:none; transition:border-color .15s;}
#p-tasks .field input:focus,#p-tasks .field select:focus{border-color:var(--t-accent); box-shadow:0 0 0 3px rgba(24,95,165,.1);}
#p-tasks .btn-t{height:38px; padding:0 18px; border-radius:8px; font-size:14px; font-family:inherit; cursor:pointer;
  display:flex; align-items:center; gap:6px; white-space:nowrap; border:none; background:var(--t-accent); color:#fff; transition:opacity .15s;}
#p-tasks .btn-t:hover{opacity:.88;}
#p-tasks .toolbar{display:flex; align-items:center; gap:8px; margin-bottom:1rem; flex-wrap:wrap;}
#p-tasks .filter-btn{padding:6px 14px; border-radius:8px; border:.5px solid var(--t-border-strong); background:var(--t-surface);
  color:var(--t-secondary); font-size:13px; font-family:inherit; cursor:pointer; transition:all .15s;}
#p-tasks .filter-btn:hover{background:var(--t-surface-1);}
#p-tasks .filter-btn.active{background:var(--t-accent-bg); border-color:var(--t-accent-border); color:var(--t-accent-text); font-weight:500;}
#p-tasks .search-input{margin-left:auto; height:34px; padding:0 12px; border-radius:8px; border:.5px solid var(--t-border-strong);
  background:var(--t-surface); color:var(--t-text); font-size:13px; font-family:inherit; width:210px; outline:none;}
#p-tasks .search-input:focus{border-color:var(--t-accent);}
#p-tasks .task-list{display:flex; flex-direction:column; gap:6px;}
#p-tasks .task-card{background:var(--t-surface); border:.5px solid var(--t-border); border-radius:12px; padding:.9rem 1.1rem;
  display:grid; grid-template-columns:28px 1fr auto auto auto; gap:12px; align-items:center; transition:border-color .15s;}
#p-tasks .task-card:hover{border-color:var(--t-border-strong);}
#p-tasks .task-card.done{opacity:.55;}
#p-tasks .task-card.overdue{border-color:var(--t-danger-border); background:var(--t-danger-bg);}
#p-tasks .task-card.soon{border-color:var(--t-warning-border);}
#p-tasks .check-btn{width:22px; height:22px; border-radius:50%; border:1.5px solid var(--t-border-strong); background:transparent;
  cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .15s; color:transparent; font-size:13px;}
#p-tasks .check-btn:hover{border-color:var(--t-success);}
#p-tasks .check-btn.checked{background:var(--t-success); border-color:var(--t-success); color:#fff;}
#p-tasks .task-name{font-size:14px;}
#p-tasks .task-card.done .task-name{text-decoration:line-through; color:var(--t-muted);}
#p-tasks .task-meta{font-size:12px; color:var(--t-muted); margin-top:3px; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
#p-tasks .task-meta i{font-size:12px;}
#p-tasks .task-meta .email-hint{color:var(--t-accent-text); font-size:11px; opacity:.7;}
#p-tasks .tbadge{font-size:11px; padding:4px 10px; border-radius:8px; white-space:nowrap; display:flex; align-items:center; gap:4px;}
#p-tasks .tbadge i{font-size:12px;}
#p-tasks .badge-ok{background:var(--t-success-bg); color:var(--t-success); border:.5px solid var(--t-success-border);}
#p-tasks .badge-soon{background:var(--t-warning-bg); color:var(--t-warning); border:.5px solid var(--t-warning-border);}
#p-tasks .badge-overdue{background:var(--t-danger-bg); color:var(--t-danger); border:.5px solid var(--t-danger-border);}
#p-tasks .badge-done{background:var(--t-surface-1); color:var(--t-muted); border:.5px solid var(--t-border);}
#p-tasks .icon-btn{background:transparent; border:none; color:var(--t-muted); cursor:pointer; padding:5px; border-radius:8px;
  font-size:17px; line-height:1; display:flex; align-items:center; transition:all .15s;}
#p-tasks .icon-btn.email:hover{color:var(--t-accent); background:var(--t-accent-bg);}
#p-tasks .icon-btn.del:hover{color:var(--t-danger); background:var(--t-danger-bg);}
#p-tasks .t-avatar{display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%;
  color:#fff; font-size:9px; font-weight:500;}
#p-tasks .t-empty{text-align:center; color:var(--t-muted); font-size:14px; padding:3rem;}
#p-tasks .t-empty i{font-size:32px; display:block; margin-bottom:10px;}
#p-tasks .src-hint{font-size:10px; background:var(--t-accent-bg); color:var(--t-accent-text); padding:1px 6px; border-radius:6px;}
#toast{position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) translateY(10px); background:#1a1a18; color:#fff;
  padding:10px 20px; border-radius:8px; font-size:14px; opacity:0; transition:all .25s; pointer-events:none; z-index:999; white-space:nowrap;}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}
@media(max-width:640px){
  #p-tasks .stats{grid-template-columns:repeat(2,1fr);}
  #p-tasks .form-row{grid-template-columns:1fr;}
  #p-tasks .task-card{grid-template-columns:28px 1fr auto auto;}
  #p-tasks .tbadge{display:none;}
}

/* legenda s počtami úloh */
.legend{gap:10px;}
.lg-p{display:flex; align-items:center; gap:6px; cursor:pointer; padding:2px 6px 2px 2px; border-radius:999px; transition:background .15s;}
.lg-p:hover{background:rgba(255,255,255,.12);}
.lg-p.on{background:rgba(255,255,255,.2);}
.lg-pill{min-width:34px; height:20px; padding:0 7px; border-radius:999px; color:#fff; font-size:.68rem; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; gap:1px; line-height:1;}
.lg-pill .od{color:#fecaca;}
.lg-pill.zero{opacity:.45;}
.lg-name{font-size:.76rem;}
#p-tasks .pfilter{display:inline-flex; align-items:center; gap:6px; background:var(--t-accent-bg); color:var(--t-accent-text);
  border:.5px solid var(--t-accent-border); border-radius:8px; padding:5px 10px; font-size:13px;}
#p-tasks .pfilter button{background:none; border:none; color:inherit; cursor:pointer; font-size:14px; line-height:1; padding:0 2px;}

/* ====== MODULY: strediská, zdroje, nástroje, admin-škály, CRM ====== */
.list .item{padding:10px 12px; border-bottom:1px solid var(--line); cursor:pointer; font-size:.8rem;}
.list .item:hover{background:#f8fafc;}
.list .item.sel{background:#ecfdf5; box-shadow:inset 3px 0 0 var(--ok, #16a34a);}
.list .item b{font-size:.83rem;}

.kv{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:6px 14px; margin:8px 0 12px;}
.kv > div{font-size:.8rem;}
.kv b{display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:700;}

.note-box{background:#f8fafc; border:1px solid var(--line); border-left:3px solid #94a3b8; border-radius:8px;
          padding:9px 12px; font-size:.82rem; margin:6px 0 12px; white-space:pre-wrap;}
.note-box.vfp-box{background:#f0fdf4; border-left-color:#16a34a; color:#166534;}
.note-box.ok-box{background:#ecfdf5; border-left-color:#16a34a; color:#166534;}

.tbl{width:100%; border-collapse:collapse; font-size:.8rem; margin:6px 0 12px;}
.tbl th{text-align:left; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);
        border-bottom:1px solid var(--line); padding:6px 8px; font-weight:700;}
.tbl td{border-bottom:1px solid var(--line); padding:7px 8px; vertical-align:middle;}
.tbl tr:hover td{background:#f8fafc;}

.scope-box{max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:8px; padding:8px; background:#f8fafc;}
.modal-actions{display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; margin-top:14px;}
.modal-actions .btn-d{margin-right:auto;}

.tree-node{margin-left:14px; border-left:1px dashed var(--line); padding-left:12px;}
.tree-row{display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:.82rem;
          padding:7px 10px; margin:5px 0; border-radius:8px; border:1px solid var(--line); background:#fff;}
.tree-row.plan{background:#eff6ff; border-color:#bfdbfe;}
.tree-row.program{background:#f5f3ff; border-color:#ddd6fe;}
.tree-row.project{background:#f0fdf4; border-color:#bbf7d0; margin-left:14px;}
.tree-row .who-s{margin-left:auto;}

.act-row{display:flex; align-items:flex-start; gap:8px; padding:8px 10px; border:1px solid var(--line);
         border-radius:8px; margin:6px 0; font-size:.82rem; background:#fff;}
.act-row > div:first-child{flex:1;}

/* Nástroje viazané na klobúk */
.tool-chip{display:inline-flex; align-items:center; gap:5px; background:#eff6ff; border:1px solid #bfdbfe;
           color:#1d4ed8; border-radius:999px; padding:3px 10px; font-size:.75rem; margin:2px 4px 2px 0; text-decoration:none;}
.tool-chip:hover{background:#dbeafe;}

/* Úlohy – druh a stav */
.kind-chip{display:inline-flex; align-items:center; gap:4px; border-radius:999px; padding:2px 8px;
           font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em;}
.kind-uloha{background:#e0e7ff; color:#3730a3;}
.kind-stretnutie{background:#fef3c7; color:#92400e;}
.kind-ziadost{background:#fae8ff; color:#86198f;}
.task-extra{font-size:.75rem; color:var(--muted); margin-top:3px; display:flex; gap:10px; flex-wrap:wrap;}

/* ====== POTVRDZOVACIE OKNO ====== */
.cfm{display:flex; gap:14px; align-items:flex-start;}
.cfm-ico{flex:0 0 40px; width:40px; height:40px; border-radius:50%; display:flex; align-items:center;
         justify-content:center; background:#eff6ff; color:#1d4ed8; font-size:1.2rem;}
.cfm-danger .cfm-ico{background:#fef2f2; color:#dc2626;}
.cfm h2{margin:0 0 6px; font-size:1rem;}
.cfm-text{font-size:.85rem; color:var(--muted); margin:0 0 10px; line-height:1.5;}
.cfm-detail{background:#f8fafc; border:1px solid var(--line); border-radius:8px; padding:9px 12px;
            font-size:.8rem; margin-bottom:10px;}
.cfm-detail b{display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
.cfm-label{display:block; font-size:.78rem; margin-bottom:4px;}
.cfm-hint{font-size:.72rem; color:var(--muted); margin-top:4px;}
.cfm-hint.ok{color:#16a34a;}
#cfm-ok:disabled{opacity:.45; cursor:not-allowed;}

/* Zmazané / neaktívne položky v zoznamoch */
.deleted-chip{display:inline-flex; align-items:center; gap:4px; background:#fef2f2; color:#dc2626;
              border:1px solid #fecaca; border-radius:999px; padding:1px 8px; font-size:.68rem; font-weight:700;}

/* Názov na prepísanie musí byť čitateľný presne tak, ako sa má zadať. */
.cfm-label{text-transform:none !important; letter-spacing:0; font-weight:400; color:var(--muted);}
.cfm-label b{text-transform:none; color:var(--text, #0f172a); font-weight:700;}
.modal-actions button{display:inline-flex; align-items:center; justify-content:center; width:auto;
                      padding:8px 14px; border-radius:8px; border:1px solid var(--line);
                      background:#fff; cursor:pointer; font-size:.83rem;}
.modal-actions button:hover{background:#f8fafc;}
.modal-actions .btn-p{background:var(--accent); color:#fff; border-color:transparent;}
.modal-actions .btn-p:hover{background:#0b5f58;}
.modal-actions .btn-d{background:#dc2626; color:#fff; border-color:transparent;}
.modal-actions .btn-d:hover{background:#b91c1c;}

/* ====== AUDIT ====== */
.au-tbl td{vertical-align:top; font-size:.78rem;}
.au-time{white-space:nowrap; color:var(--muted); font-variant-numeric:tabular-nums;}
.au-from{white-space:nowrap;}
.au-ip{font-family:ui-monospace,Consolas,monospace; font-size:.74rem; background:#f1f5f9; border-radius:6px; padding:1px 6px;}
.au-chip{display:inline-block; border-radius:999px; padding:2px 9px; font-size:.68rem; font-weight:700;
         text-transform:uppercase; letter-spacing:.03em; white-space:nowrap;}
.au-new{background:#dcfce7; color:#166534;}
.au-upd{background:#dbeafe; color:#1e40af;}
.au-del{background:#fee2e2; color:#991b1b;}
.au-perm{background:#fef3c7; color:#92400e;}
.au-diff div{margin-bottom:3px; line-height:1.45;}
.au-diff b{display:inline-block; min-width:90px; color:var(--muted); font-size:.72rem;}
.au-old{background:#fef2f2; color:#991b1b; border-radius:4px; padding:1px 5px; text-decoration:line-through;}
.au-new-v{background:#f0fdf4; color:#166534; border-radius:4px; padding:1px 5px;}

/* ====== PRÍSTUPOVÉ PRÁVA ====== */
.perm-grid{display:grid; grid-template-columns:1fr auto; gap:6px 12px; align-items:center;
           border:1px solid var(--line); border-radius:8px; padding:10px 12px; background:#f8fafc; max-height:300px; overflow:auto;}
.perm-grid .pm{font-size:.82rem;}
.perm-grid select{height:32px; font-size:.78rem; min-width:150px;}
.perm-note{font-size:.72rem; color:var(--muted); margin:6px 0 0;}

/* ====== PREPÍNAČ FIRIEM ====== */
.orgbox{position:relative; margin-left:auto; margin-right:10px;}
.org-btn{display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.12);
         border:1px solid rgba(255,255,255,.22); color:#fff; border-radius:999px;
         padding:6px 12px; cursor:pointer; font-size:.8rem; font-weight:600;}
.org-btn:hover{background:rgba(255,255,255,.2);}
.org-count{background:rgba(255,255,255,.25); border-radius:999px; padding:0 6px; font-size:.68rem;}
.org-menu{position:absolute; right:0; top:calc(100% + 6px); z-index:60; min-width:250px;
          background:#fff; border:1px solid var(--line); border-radius:10px; padding:5px;
          box-shadow:0 12px 30px rgba(15,23,42,.18);}
.org-item{display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:none;
          border:none; padding:8px 10px; border-radius:7px; cursor:pointer; font-size:.82rem; color:var(--text,#0f172a);}
.org-item:hover{background:#f1f5f9;}
.org-item.cur{background:#ecfdf5; font-weight:700;}
.org-item .who-s{margin-left:auto;}
.org-sep{height:1px; background:var(--line); margin:5px 0;}

/* ===== MOJA PLOCHA – osobná prvá strana ===== */
#p-home .hello{font-size:1.35rem; font-weight:600; margin:2px 0 3px;}
#p-home .hmeta{font-size:.82rem; color:var(--muted); margin-bottom:10px; display:flex; flex-wrap:wrap; gap:4px; align-items:center;}
#p-home .hrole{display:inline-block; padding:1px 8px; border-radius:999px; background:#e0f2fe; color:#0c4a6e; font-weight:600; font-size:.72rem;}
#p-home .hwait{color:#b45309; font-weight:600;}
#p-home .hchips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px;}
#p-home .hchip{display:inline-flex; align-items:center; gap:5px; font-size:.8rem; padding:5px 12px; border-radius:999px; background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; cursor:pointer; white-space:nowrap;}
#p-home .hchip:hover{background:#d1fae5;}
#p-home .hchip .hloc{opacity:.65; font-size:.7rem; margin-left:2px;}
#p-home .home-alert{background:#fef3c7; border:1px solid #fcd34d; color:#78350f; border-radius:10px; padding:10px 14px; margin-bottom:14px; cursor:pointer; font-size:.85rem; font-weight:600;}
#p-home .home-alert:hover{background:#fde68a;}
#p-home .home-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px;}
#p-home .hcard{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 16px; min-height:120px;}
#p-home .hcard h2{font-size:.9rem; font-weight:600; margin:0 0 10px; display:flex; align-items:center; gap:6px;}
#p-home .hcard h2 .more{margin-left:auto; font-size:.72rem; font-weight:500; color:var(--accent); cursor:pointer;}
#p-home .hcard h2 .more:hover{text-decoration:underline;}
#p-home .hrow{display:flex; align-items:center; gap:8px; padding:6px 0; border-top:1px solid var(--line); font-size:.82rem;}
#p-home .hrow:first-of-type{border-top:none;}
#p-home .hrow.click{cursor:pointer;}
#p-home .hrow.click:hover{background:#f8fafc;}
#p-home .hrow .grow{flex:1; min-width:0;}
#p-home .hrow .dt{font-size:.74rem; color:var(--muted); white-space:nowrap; min-width:72px;}
#p-home .hrow.over .dt{color:#b91c1c; font-weight:600;}
#p-home .hrow.over .grow{color:#991b1b;}
#p-home .hbtn{background:none; border:none; cursor:pointer; color:var(--muted); font-size:1rem; padding:0 2px; line-height:1;}
#p-home .hbtn:hover{color:var(--accent);}
#p-home .hdoc{background:#eef2ff; color:#3730a3; white-space:nowrap;}
#p-home .htools{display:flex; flex-wrap:wrap; gap:6px; align-items:center;}
#p-home .home-tool{display:inline-flex; align-items:center; gap:5px; background:#eff6ff; border:1px solid #bfdbfe; color:#1e3a8a; padding:6px 11px; border-radius:8px; font-size:.8rem; text-decoration:none;}
#p-home .home-tool:hover{background:#dbeafe;}
#p-home .home-tool.builtin{background:#f0fdf4; border-color:#bbf7d0; color:#14532d;}
#p-home .home-tool .x{margin-left:4px; color:#94a3b8; font-size:.75rem; line-height:1;}
#p-home .home-tool .x:hover{color:#b91c1c;}
#p-home .hadd{font-size:.76rem; color:var(--accent); cursor:pointer; padding:6px 8px; border:1px dashed #a7f3d0; border-radius:8px;}
#p-home .hadd:hover{background:#ecfdf5;}
#p-home .hempty{font-size:.78rem; color:var(--muted); padding:6px 0;}

/* ===== HLAVNÁ POKLADŇA ===== */
#p-cash .cash-toolbar{margin:0; align-items:center;}
#p-cash .cash-help{font-size:.78rem; color:var(--muted); flex:1;}
#p-cash .cash-kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin-bottom:14px;}
#p-cash .cash-kpi{background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px;}
#p-cash .cash-kpi span{display:block; font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
#p-cash .cash-kpi b{display:block; font-size:1.25rem; font-weight:600; margin-top:2px;}
#p-cash .cash-kpi.warn{background:#fffbeb; border-color:#fcd34d;}
#p-cash .cash-kpi.bad{background:#fef2f2; border-color:#fca5a5;}
#p-cash .cash-h{font-size:.9rem; font-weight:600; margin:16px 0 8px; display:flex; align-items:center; gap:6px;}
#p-cash .cash-h.bad{color:#b91c1c;}
#p-cash .cash-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px;}
#p-cash .cash-card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:6px;}
#p-cash .cash-card.main{border-color:#6ee7b7; background:#f0fdf4;}
#p-cash .cash-card.over{border-color:#fca5a5; background:#fef2f2;}
#p-cash .cash-card-head{display:flex; align-items:center; gap:8px;}
#p-cash .cash-card-head b{flex:1; font-size:.9rem;}
#p-cash .cash-card-head .badge{background:#e2e8f0; color:#334155;}
#p-cash .cash-card.main .cash-card-head .badge{background:#a7f3d0; color:#065f46;}
#p-cash .cash-balance{font-size:1.35rem; font-weight:600;}
#p-cash .cash-inbound{font-size:.76rem; color:#0369a1;}
#p-cash .cash-over{font-size:.76rem; color:#b91c1c; font-weight:600;}
#p-cash .cash-actions{display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
#p-cash .cash-actions button{font-size:.76rem; padding:5px 9px;}
#p-cash .tbl .r{text-align:right; white-space:nowrap;}
#p-cash .pos{color:#15803d; font-weight:600;}
#p-cash .neg{color:#b91c1c; font-weight:600;}
#p-cash tr.muted td{color:var(--muted); text-decoration:line-through;}
#p-cash .cash-st-odoslany{background:#fef3c7; color:#92400e;}
#p-cash .cash-st-potvrdeny{background:#dcfce7; color:#166534;}
#p-cash .cash-st-zruseny{background:#f1f5f9; color:#64748b;}
#p-cash .cash-hist td{vertical-align:top;}
@media (max-width:640px){
  #p-home .home-grid{grid-template-columns:1fr;}
  #p-cash .cash-grid{grid-template-columns:1fr;}
}
.cfm-detail strong{font-weight:700; color:var(--ink);}
.cfm-detail .pos{color:#15803d;} .cfm-detail .neg{color:#b91c1c;}

/* ===== IMPORT ŠTRUKTÚRY / ÚDAJE FIRMY ===== */
.code-box{font-family:ui-monospace,Consolas,monospace; font-size:.74rem; background:#f1f5f9; border:1px solid var(--line); border-radius:6px; padding:8px 10px; margin:8px 0; overflow-x:auto; white-space:nowrap;}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
@media (max-width:640px){ .grid3{grid-template-columns:1fr;} }

/* Nástroje – karty s tlačidlom namiesto URL odkazu */
.tools-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px;}
.tool-card{display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px;
           box-shadow:0 1px 2px rgba(15,23,42,.04); transition:box-shadow .15s, transform .15s;}
.tool-card:hover{box-shadow:0 6px 18px rgba(15,23,42,.08); transform:translateY(-1px);}
.tool-card.off{opacity:.6; background:#f8fafc;}
.tool-head{display:flex; gap:12px; align-items:flex-start;}
.tool-ico{flex:0 0 44px; height:44px; border-radius:12px; background:linear-gradient(135deg,#dcfce7,#bbf7d0); color:#166534;
          display:flex; align-items:center; justify-content:center; font-size:1.35rem;}
.tool-body{flex:1; min-width:0;}
.tool-name{font-weight:700; font-size:.95rem; color:var(--ink); line-height:1.25;}
.tool-meta{font-size:.72rem; color:var(--muted); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.tool-desc{font-size:.8rem; color:#475569; line-height:1.4;}
.tool-hats{display:flex; flex-wrap:wrap; gap:4px;}
.tool-hat{font-size:.68rem; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:999px; padding:2px 8px; color:#334155;}
.tool-hat.none{background:transparent; border-style:dashed; color:var(--muted);}
.tool-badge{font-size:.65rem; font-weight:600; background:#fee2e2; color:#991b1b; border-radius:999px; padding:1px 7px; vertical-align:middle;}
.tool-foot{margin-top:auto; padding-top:4px;}
.tool-open{display:inline-flex; width:100%; justify-content:center; align-items:center; gap:6px; background:#166534; color:#fff; border:none; border-radius:9px;
           padding:9px 14px; font-size:.82rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:background .15s;}
.tool-open:hover{background:#14532d;}
.tool-open.builtin{background:#1d4ed8;}
.tool-open.builtin:hover{background:#1e40af;}
.tool-adm{display:flex; gap:2px; flex:0 0 auto;}
@media(max-width:640px){ .tools-grid{grid-template-columns:1fr;} }
