:root{--bg:#F3F6F8;--card:#fff;--line:#DCE3E9;--line2:#EDF1F4;--ink:#18222C;--ink2:#3E4E5C;--muted:#5B6B7A;--teal:#0E6B86;--teal-d:#0A4F63;--teal-l:#E3F1F5;--teal-xl:#F0F7FA;--amber:#A8511A;--amber-l:#FBEEE3;--amber-b:#F0C9A8;--late:#FFF8F1;--grey:#EEF1F4;--border:#8A9AA8;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--teal)}
h1,h2,h3{font-family:Manrope,Inter,sans-serif;letter-spacing:-.02em;margin:0}
h1{font-size:24px;font-weight:800}h2{font-size:17px;font-weight:700}.h3{font-size:15px;font-weight:700}
.wrap{max-width:1280px;margin:0 auto;padding:0 16px}
main{padding:20px 0 48px}
.muted{color:var(--muted)}.small{font-size:12.5px}.b{font-weight:600}.big{font-size:22px;font-weight:800;font-family:Manrope,Inter,sans-serif}
.teal{color:var(--teal)}.amber{color:var(--amber)}.right{margin-left:auto}.up{text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.sr{position:absolute;left:-9999px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:14px}
.card.inline{margin:0;padding:10px 14px}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.row.tight{gap:6px}.wrap-row{gap:12px 28px}
.two-col{display:flex;flex-wrap:wrap;gap:0 20px;align-items:flex-start}
.col-side{flex:1 1 300px;max-width:360px}.col-main{flex:999 1 560px;min-width:0}
.h1row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 16px;margin:4px 0 12px}
/* header */
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;min-height:60px;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:17px}
.logo{width:26px;height:26px;border-radius:7px;background:var(--teal);position:relative}.logo:before,.logo:after{content:"";position:absolute;background:#fff;border-radius:2px}.logo:before{left:11px;top:6px;width:4px;height:14px}.logo:after{left:6px;top:11px;width:14px;height:4px}
.tabs{display:flex;gap:2px;flex-wrap:wrap}.tabs a{text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:500;font-size:14px;color:var(--ink2)}.tabs a.on{background:var(--teal-l);color:var(--teal-d);font-weight:600}
.child-switch{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.child-switch select{max-width:220px}
/* controls */
input,select,button,textarea{font:inherit;color:inherit}
input[type=text],input:not([type]),input[type=date],input[type=number],select,textarea{height:40px;border:1px solid var(--border);border-radius:8px;background:#fff;padding:0 10px;min-width:0;max-width:100%}
textarea{height:auto;padding:8px 10px;width:100%;resize:vertical}
input:focus-visible,select:focus-visible,button:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--teal);margin:0;flex-shrink:0;cursor:pointer}
label.chk{display:flex;align-items:center;gap:9px;min-height:36px;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 14px;border-radius:9px;border:1px solid var(--border);background:#fff;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.ghost{border-color:var(--line);color:var(--ink2)}.btn.danger{color:#9B2226;border-color:#E4B4B4}.btn.block{display:flex;width:100%;height:46px;margin-top:8px}
.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.badge-ob{background:var(--teal-l);color:var(--teal-d)}.badge-zal{background:var(--amber-l);color:var(--amber)}.badge-out{background:var(--grey);color:var(--ink2)}.badge-late{background:var(--amber);color:#fff}
.pill{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--grey);color:var(--ink2);margin:2px 4px 2px 0}.pill.teal{background:var(--teal-l);color:var(--teal-d)}.pill.teal-solid{background:var(--teal);color:#fff;font-weight:700;font-size:11px}.pill.amber-solid{background:var(--amber);color:#fff;font-weight:700;font-size:11px}
.note{margin:10px 0 0;padding:9px 12px;border-radius:8px;font-size:13px}.note.amber{background:var(--amber-l);color:var(--amber)}.note.teal{background:var(--teal-l);color:var(--teal-d)}
.age{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0}.age b{font-family:Manrope,Inter,sans-serif;font-size:28px;font-weight:800;color:var(--teal);letter-spacing:-.02em}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}.tiles div{background:var(--bg);border-radius:10px;padding:10px;display:flex;flex-direction:column}.tiles b{font-family:Manrope,Inter,sans-serif;font-size:24px;font-weight:800}.tiles span{font-size:12px;color:var(--muted)}
.legend div{display:flex;align-items:center;gap:8px;font-size:13px;margin:4px 0}.swatch{width:16px;height:16px;border-radius:4px;border:1px solid var(--amber-b);display:inline-block}.swatch.late{background:var(--late)}
.flags{margin-top:4px}
/* groups */
.group{padding:0;overflow:hidden}.group.now{border-color:var(--teal)}
.group-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:12px 18px;background:#F8FAFB;border-bottom:1px solid var(--line2)}.group.now .group-head{background:var(--teal-xl)}
.dose{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 18px;border-bottom:1px solid var(--line2)}.dose:last-child{border-bottom:0}.dose.late{background:var(--late)}
.dose>input[type=checkbox]{width:22px;height:22px}
.dose-main{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:2px;cursor:pointer}.dose-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.dose-ctl{display:flex;flex-wrap:wrap;gap:8px;flex:0 1 440px;min-width:0}.dose-ctl select{flex:1 1 220px;font-size:13.5px}.dose-ctl input{flex:0 1 160px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#F8FAFB;color:var(--ink2)}
.src{margin-top:8px}
.empty{border:1px dashed var(--border);border-radius:10px;padding:18px;color:var(--ink2);text-align:center}
/* plan */
.seg{display:inline-flex;flex-wrap:wrap;gap:6px}.seg button{height:36px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid var(--border);background:#fff;color:var(--ink2);cursor:pointer}.seg button.on{border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}
.legend-row{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink2);margin:6px 0 10px;align-items:center}.legend-row span{display:inline-flex;align-items:center;gap:6px}
.dot{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:12px;font-weight:700;font-style:normal;box-sizing:border-box;cursor:default}
.d-done{background:var(--teal);color:#fff}.d-late{background:var(--amber);color:#fff}.d-ob{border:2px solid var(--teal);color:var(--teal-d);background:#fff}.d-zal{border:2px dashed var(--amber);color:var(--amber);background:#fff}.d-zallate{border:2px solid var(--amber);background:var(--amber-l);color:var(--amber)}.d-out{border:2px solid var(--border);background:var(--grey);color:var(--ink2)}.d-plain{border:2px solid var(--border);background:#fff}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.tl{border-collapse:collapse;min-width:1100px;width:100%}table.tl th,table.tl td{border-bottom:1px solid var(--line2);padding:4px 3px;text-align:center;font-weight:400;font-size:12px}
table.tl thead th{background:#F8FAFB;border-bottom:1px solid var(--line);padding:6px 3px;color:var(--ink2)}table.tl th.today{background:var(--teal);color:#fff}table.tl th.today span{color:#fff}
table.tl tbody th{text-align:left;position:sticky;left:0;background:#fff;min-width:150px;font-size:13px;z-index:1}
table.tl td{position:relative;height:40px;min-width:70px}table.tl td.today{background:var(--teal-xl)}table.tl td:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#E3E9EE}table.tl td .dot{position:relative;z-index:1}
.warn{background:var(--amber-l);border:1px solid var(--amber-b);color:var(--amber);border-radius:10px;padding:9px 12px;font-size:13px;margin:8px 0}
.visit{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:10px 0}.visit-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:9px 14px;background:#F8FAFB}.visit.first .visit-head{background:var(--teal);color:#fff}.visit-item{padding:9px 14px;border-top:1px solid var(--line2)}
.opt{border-top:1px solid var(--line2);padding-top:10px;margin-top:10px}
.path{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0}.path.on{border-color:var(--teal);background:var(--teal-l)}
.rules div{display:flex;gap:10px;font-size:13px;margin:6px 0}.rules b{flex:0 0 105px}
/* NOP */
.small-btn{height:34px;padding:0 10px;font-size:12.5px}
.nop{flex-basis:100%;background:#F8FAFB;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:6px;font-size:12.5px}
.nop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 14px;margin-bottom:6px}.nop-grid b{display:block;margin-bottom:2px}.nop ul{margin:0;padding-left:16px}.nop li{margin:1px 0}
@media (max-width:760px){.nop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* bilanse */
.stepper{display:grid;grid-template-columns:repeat(12,minmax(92px,1fr));min-width:1120px;position:relative;padding:4px 0}.stepper:before{content:"";position:absolute;left:46px;right:46px;top:21px;height:3px;background:var(--line)}
.step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:0 4px;position:relative}.step i{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:13px;background:#fff;border:2px solid var(--border);color:var(--ink2);box-sizing:border-box}
.step.done i{background:var(--teal);border-color:var(--teal);color:#fff}.step.hot i{background:var(--amber);border-color:var(--amber);color:#fff}.step.skip i{border-color:var(--amber);color:var(--amber)}.step.past i{background:var(--grey)}
.step b{font-size:12px}.step em{font-style:normal}
.grid-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.bil{padding:0;overflow:hidden}.bil.hot{border-color:var(--amber)}.bil.hot .group-head{background:var(--amber-l)}
.kv{display:flex;gap:10px;padding:8px 18px;font-size:13px}.kv>b{flex:0 0 84px}.kv ul{margin:0;padding-left:18px;flex:1}.kv li{margin:2px 0}
.foot{padding:10px 18px 14px;border-top:1px solid var(--line2);margin-top:4px}
/* karta */
.form{max-width:760px;margin:0 auto}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.grid2.tight{gap:2px 18px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.span2{grid-column:span 2}
.grid2 label,.grid4 label,label.block{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink2)}label.block{margin-top:10px}
.grid2 label input,.grid2 label select,.grid4 label input,.grid4 label select{font-weight:400;color:var(--ink)}
fieldset{border:1px solid var(--line2);border-radius:10px;padding:6px 12px}legend{font-size:12.5px;font-weight:600;color:var(--ink2)}
.sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:-16px -18px 10px;padding:10px 18px;background:#F8FAFB;border-bottom:1px solid var(--line2);border-radius:var(--r) var(--r) 0 0}
.exam{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 0;border-bottom:1px solid var(--line2)}.exam:last-child{border-bottom:0}.exam-l{flex:1 1 260px;min-width:0;display:flex;flex-direction:column}.exam input{flex:1 1 180px}
.tri{display:inline-flex;flex-wrap:wrap;gap:4px 10px}.tri label{display:inline-flex;align-items:center;gap:5px;font-size:13px;min-height:34px;cursor:pointer}
.tpl-list{display:flex;flex-direction:column;gap:4px}.tpl-list a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);padding:6px 10px;border-radius:10px;border:1px solid transparent;min-height:46px}.tpl-list a.on{border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}.tpl-list i{font-style:normal;font-weight:700;font-size:12px;width:22px;opacity:.8}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;z-index:9;max-width:90vw}
footer{padding:16px;text-align:center}
@media (max-width:760px){
  h1{font-size:20px}.grid-cards{grid-template-columns:1fr}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.span2{grid-column:span 1}
  .card{padding:14px}.group-head,.dose,.kv,.foot{padding-left:14px;padding-right:14px}.sec-head{margin:-14px -14px 10px;padding:10px 14px}
  .dose-ctl{flex-basis:100%;padding-left:34px}.dose-ctl select{flex-basis:100%}.dose-ctl input{flex:1 1 100%}
  .tabs{width:100%;order:3}.tabs a{flex:1;text-align:center;padding:9px 4px;font-size:12.5px}.child-switch{margin-left:0;width:100%}.child-switch select{flex:1;max-width:none}
  .col-side{max-width:none}.rules b{flex-basis:90px}.btn.block{height:48px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px}
}
@media print{
  .top,.noprint,footer,.toast,.col-side.noprint{display:none!important}
  body{background:#fff;font-size:12px}.card{border:1px solid #bbb;break-inside:avoid;margin-bottom:8px;padding:10px 12px}
  input,select,textarea{border:0;border-bottom:1px solid #999;border-radius:0;height:auto;padding:2px 4px}
  .sec-head{margin:-10px -12px 8px;padding:6px 12px}.tri label{font-size:11px}
  .scroll{overflow:visible}.rules,.path,.legend-row,.opt{display:none}
}
/* aktualności */
.news-meta .badge,.news-hero .badge{background:var(--grey);color:var(--ink2)}.badge.ok{background:var(--teal-l);color:var(--teal-d)}.badge.warn{background:var(--amber);color:#fff}
.between{justify-content:space-between}
.news-hero{border-left:4px solid var(--teal)}.news-hero h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.news-hero details{margin-top:8px}.news-hero summary{cursor:pointer;color:var(--teal-d)}
.news-list{list-style:none;margin:8px 0 0;padding:0}.news-item{padding:12px 0;border-top:1px solid var(--line)}.news-item:first-child{border-top:0}.news-item h3{font-size:15px;margin:4px 0 4px}.news-item p{margin:0 0 4px;font-size:13.5px;color:var(--ink)}.news-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tag-row .small-btn.on{border-color:var(--teal);background:var(--teal-l);color:var(--teal-d)}
