:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#233047;background:#f5f7fb;font-size:14px;--blue:#2563eb;--line:#e3e8f0;--muted:#708099;--nav:#111e34}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #93b7ff;outline-offset:2px}input,select,textarea{padding:10px 12px;border:1px solid #d7dfeb;border-radius:7px;background:white;color:#233047;min-width:0}input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}textarea{resize:vertical;min-height:75px}.loading{padding:60px}.layout{display:grid;grid-template-columns:218px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:#d6deed;padding:29px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;color:white;font-size:19px;font-weight:700;letter-spacing:-.5px;padding:0 10px 33px}.brand img{width:33px}.brand small{display:block;font-size:10px;letter-spacing:1.7px;color:#90a1bc;font-weight:500;margin-top:5px}.nav-label{font-size:10px;letter-spacing:1.6px;color:#7b8da8;padding:16px 13px 10px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{background:none;color:#aebcd2;border-radius:8px;text-align:left;padding:12px 13px;display:flex;align-items:center;gap:10px}.nav button.active{background:#243859;color:white}.nav button.active .nav-icon{color:#8bb4ff}.nav button:hover{background:#20304b;color:white}.nav-icon{font-size:17px;width:21px}.sidebar-bottom{margin-top:auto;border-top:1px solid #2a3851;padding-top:18px}.profile{display:flex;align-items:center;gap:10px;padding:8px}.avatar{background:#2c456e;color:#c9ddff;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;font-weight:700}.profile small{display:block;color:#8b9db9;font-size:11px;margin-top:3px}.text-btn{background:none;color:var(--muted);padding:8px}.sidebar .text-btn{color:#aebcd2}.workspace{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#778499;font-size:12px}.topbar strong{color:#3a475e;font-weight:500}.tag{padding:5px 9px;border-radius:5px;font-size:11px;background:#eaf1ff;color:#3d66a5;display:inline-block}.tag.green{background:#e8f5ee;color:#26734c}.tag.orange{background:#fff2dc;color:#976713}.tag.red{background:#fcebea;color:#a43d35}.main{padding:30px 32px;max-width:1900px;margin:auto}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}h1{font-size:28px;letter-spacing:-.9px;margin:0 0 8px;font-weight:650}h2{font-size:19px;letter-spacing:-.3px;margin:0}p{line-height:1.6}.sub{color:var(--muted);margin:0;font-size:13px}.primary,.secondary,.danger{border-radius:7px;padding:10px 15px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.primary{background:var(--blue);color:white}.primary:hover{background:#1d4ed8}.secondary{background:white;border:1px solid #dce3ee;color:#42516a}.secondary:hover{background:#f5f8fd}.danger{background:#fff0ed;color:#b84436;border:1px solid #f4d5ce}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:23px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:18px 20px;display:flex;justify-content:space-between;align-items:center}.stat span{font-size:12px;color:var(--muted)}.stat strong{display:block;font-size:27px;color:#243650;font-weight:650;letter-spacing:-.7px;margin-top:7px}.stat em{font-size:12px;font-style:normal;font-weight:400;color:#8190a4}.stat-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#eef4ff;color:#5984c5;font-size:20px}.panel{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:17px 18px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.toolbar .search{min-width:210px;flex:1;max-width:310px}.toolbar label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.toolbar select{max-width:220px}.month-nav{display:flex;align-items:center;gap:8px}.month-nav button{padding:7px 10px;background:#f0f4fa;border-radius:6px;color:#516885}.table-scroll{overflow:auto;max-height:calc(100vh - 390px);min-height:270px}.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.grid th{position:sticky;top:0;background:#f8fafc;color:#7a889b;height:53px;z-index:2;font-weight:500;border-bottom:1px solid var(--line);text-align:center;min-width:40px}.grid th b{display:block;color:#495b75;font-size:12px;margin-bottom:4px}.grid td{border-bottom:1px solid #edf0f5;text-align:center;height:53px;padding:0;border-right:1px solid #f0f3f7}.grid .person{position:sticky;left:0;z-index:3;min-width:218px;max-width:218px;background:white;text-align:left;padding:10px 14px;border-right:1px solid var(--line)}.grid th.person{z-index:5;background:#f8fafc}.person strong{font-size:11px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person small{font-size:10px;color:#8592a4;display:block;margin-top:5px}.grid .weekend{background:#f3f5f8}.grid th.weekend{background:#ecf0f5}.grid .sum{min-width:59px;color:#274c85;background:#f7faff;font-weight:600}.cell-btn{width:100%;height:52px;min-width:38px;color:#52617a;background:transparent;padding:3px;font-size:12px;position:relative}.cell-btn:hover{background:#dfebff;box-shadow:inset 0 0 0 2px #7da8ed}.cell-btn.empty{color:#b4bfce}.cell-btn small{display:block;font-size:9px;margin-top:2px}.cell-btn.filled{background:#eef5ff;color:#315c96}.cell-btn.absence{background:#fff6e7;color:#9e7027}.cell-btn.night{background:#f0ecff;color:#675295}.cell-btn.locked:after{content:'•';position:absolute;right:3px;top:0;color:#97a4b6}.inactive{color:#c5cbd3;background:#f8f9fb}.panel-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:11px;color:var(--muted);flex-wrap:wrap}.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;background:#e0ebfc}.dot.rest{background:#dbe1e9}.dot.abs{background:#f6ddb0}.dot.night{background:#d9cdfc}.note-bar{margin-top:16px;padding:12px 15px;background:#edf2fa;color:#63728a;font-size:12px;border-radius:7px;line-height:1.6}.empty-state{padding:55px;text-align:center;color:var(--muted)}.plain{border-collapse:collapse;width:100%;font-size:12px}.plain th{text-align:left;background:#f7f9fc;padding:13px 15px;color:#7b889b;font-weight:500;white-space:nowrap}.plain td{padding:13px 15px;border-bottom:1px solid #edf0f5}.plain tr:hover td{background:#fafcff}.plain .num{text-align:right;font-variant-numeric:tabular-nums}.plain button{font-size:11px;padding:6px 10px}.plain a{color:var(--blue)}.count{font-size:12px;color:var(--muted);margin-left:8px}.status-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.dept-card{border:1px solid var(--line);background:white;border-radius:9px;padding:18px;display:flex;align-items:center;justify-content:space-between}.dept-card strong{display:block;margin-bottom:8px}.dept-card .secondary{font-size:12px;padding:8px 12px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:white}.login-art{background:#132540;color:white;padding:65px;display:flex;flex-direction:column;justify-content:space-between}.login-art .brand{padding:0}.login-art h1{font-size:45px;line-height:1.2;letter-spacing:-1.6px;max-width:440px}.login-art p{color:#a6b8d2;max-width:370px;font-size:15px}.login-graphic{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;max-width:400px;margin-top:35px}.login-graphic span{height:36px;border-radius:5px;background:#243e61}.login-graphic span:nth-child(4n){background:#3b6eba}.login-graphic span:nth-child(7n){background:#1b304e}.login-form{align-self:center;padding:60px;max-width:480px;width:100%;justify-self:center}.login-form h1{font-size:29px}.login-form form{margin-top:30px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field>span,.field>label{font-size:12px;font-weight:600;color:#53627a}.field small{color:#8894a6;font-size:11px;line-height:1.5}.login-form .primary{width:100%;margin-top:7px;padding:13px}.error{color:#b13f37;background:#fff0ed;padding:10px 12px;border-radius:6px;margin:12px 0;font-size:12px}.error:empty{display:none}dialog{border:1px solid #dce4f0;border-radius:13px;box-shadow:0 24px 100px #172b4c35;padding:0;width:min(590px,94vw);max-height:90vh;color:#233047}dialog::backdrop{background:#10223d66;backdrop-filter:blur(2px)}.modal-head{padding:23px 26px 18px;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between}.modal-head p{margin:6px 0 0;font-size:12px;color:var(--muted)}.modal-body{padding:22px 26px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:16px 26px;border-top:1px solid var(--line);background:#fafbfd}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .wide{grid-column:1/-1}.close{background:none;font-size:23px;color:#8e9bb0;padding:0 4px}.checklist{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.checklist label{display:flex;align-items:center;gap:6px;font-size:12px}details{margin:6px 0 20px}summary{cursor:pointer;color:#426394;font-size:12px;margin-bottom:17px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#16392f;color:white;box-shadow:0 5px 30px #22334430;border-radius:8px;z-index:100;display:none;font-size:13px}#toast.show{display:block}#toast.bad{background:#8c3933}.print-sheet{background:white;padding:28px;border:1px solid var(--line);border-radius:10px}.print-sheet h2{text-align:center;font-size:18px}.print-meta{display:flex;justify-content:space-between;margin:24px 0 14px;font-size:12px}.print-table{width:100%;border-collapse:collapse;font-size:10px}.print-table th,.print-table td{border:1px solid #ccd3dc;padding:5px;text-align:center}.print-table th{background:#f2f5f9}.print-notes{font-size:11px;line-height:1.6;margin-top:14px}.print-warning{padding:12px;border:1px solid #efd6a4;background:#fff8e9;color:#805e26;font-size:12px;margin-bottom:18px}.signature{display:flex;justify-content:space-between;margin-top:35px;font-size:11px}.spaced{margin-top:20px}.audit-detail{font-size:11px;max-width:600px;word-break:break-word;color:#63728a} @media(min-width:1550px){.grid th{min-width:43px}.grid .person{min-width:235px}}@media(max-width:1000px){.layout{grid-template-columns:175px 1fr}.sidebar{padding:25px 10px}.brand{font-size:16px}.main{padding:24px 18px}.topbar{padding:0 20px}.stats{grid-template-columns:repeat(2,1fr)}.table-scroll{max-height:60vh}.status-list{grid-template-columns:repeat(2,1fr)}.heading{align-items:flex-start}h1{font-size:25px}.login-art{padding:35px}.login-art h1{font-size:36px}.login-form{padding:35px}}@media(max-width:650px){.layout{display:block}.sidebar{position:relative;height:auto;padding:15px}.sidebar .brand{padding-bottom:12px}.nav{flex-direction:row;overflow:auto}.nav button{white-space:nowrap;padding:9px}.nav-label,.sidebar-bottom{display:none}.topbar{height:45px;font-size:11px}.main{padding:20px 12px}.heading{flex-direction:column}.stat{padding:13px}.stat strong{font-size:23px}.toolbar{padding:12px}.grid .person{min-width:168px;max-width:168px}.status-list{grid-template-columns:1fr}.login-wrap{display:block}.login-art{padding:25px}.login-art h1,.login-art p,.login-graphic,.login-art>small{display:none}.login-form{padding:40px 25px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.checklist{grid-template-columns:repeat(3,1fr)}}@media print{@page{size:A4 landscape;margin:10mm}body{background:white}.sidebar,.topbar,.heading,.toolbar,.stats,.note-bar,#toast,dialog,.print-warning,.no-print{display:none!important}.layout{display:block}.main{padding:0}.print-sheet{border:0;padding:0}.print-table{font-size:8px}.print-table th,.print-table td{padding:3px}thead{display:table-header-group}tr{break-inside:avoid}.print-notes{font-size:9px}.panel{border:0}.table-scroll{overflow:visible;max-height:none}.plain{font-size:8px}.plain th,.plain td{padding:4px}.signature{margin-top:15px}.print-meta{margin:10px 0}.print-sheet h2{font-size:15px}}

[hidden]{display:none!important}.bulk-preview-list{max-height:180px;overflow:auto}.nav{overflow-y:auto}.dept-card>div{display:flex;flex-direction:column;gap:8px}.dept-card{gap:15px}.plain .secondary+.secondary{margin-left:6px}

/* Herceg identity: official logo palette, local assets only. */
:root{--blue:#005788;--herceg-red:#e32124;--nav:#07364f;--line:#dce5eb;--muted:#627689;background:#f3f6f8;color:#233746}
.sidebar{background:#fff;color:#233746;border-right:1px solid var(--line);padding-top:25px}
.brand{flex-direction:column;align-items:flex-start;gap:11px;padding:0 8px 24px;color:#005788;letter-spacing:0}
.brand img{width:168px;height:auto;max-width:100%;object-fit:contain}
.brand-caption{font-size:11px;line-height:1.5;font-weight:600;letter-spacing:.2px;color:#536b7b}
.nav-label{color:#788a97;padding-top:12px}
.nav button{color:#4c6474;font-weight:500;border-left:3px solid transparent;border-radius:0 7px 7px 0}
.nav button:hover{background:#f0f6f9;color:#005788}
.nav button.active{background:#eaf3f8;color:#005788;border-left-color:#e32124;font-weight:650}
.nav button.active .nav-icon{color:#005788}
.sidebar-bottom{border-top-color:var(--line)}
.sidebar .text-btn{color:#536b7b}.profile small{color:#6e8190}.avatar{background:#e6f1f7;color:#005788}
.topbar{height:72px;border-top:3px solid #e32124;background:#fff;color:#607b8d}
.topbar strong{color:#005788}
.primary{background:#005788;box-shadow:0 2px 5px #00578818}.primary:hover{background:#00436b}
.secondary{border-color:#ccdce6;color:#24516b}.secondary:hover{background:#edf5f9}
input:focus-visible,select:focus-visible,button:focus-visible{outline-color:#7bb4d2}
input[type=checkbox]{accent-color:#005788}
h1{color:#123d56}.heading .sub{line-height:1.6}
.stats{gap:17px}.stat{border-radius:12px;box-shadow:0 3px 12px #173e5605;border-top:3px solid #dcebf3}
.stat:first-child{border-top-color:#005788}.stat:nth-child(3){border-top-color:#e32124}
.stat strong{color:#0c496e}.stat-icon{background:#eaf3f8;color:#005788}
.panel{box-shadow:0 3px 14px #173e5605;border-radius:12px}
.cell-btn.filled{background:#eaf3f9;color:#005788}.cell-btn.empty{color:#69899c}
.cell-btn.absence{background:#fff1dc;color:#926014}.cell-btn.night{color:#654791}
.grid th{background:#f2f7fa;color:#607b8d}.grid th.weekend{background:#e9eff3}
.toolbar{gap:10px}.toolbar .primary,.toolbar .secondary{font-size:12px}
.tag{background:#eaf3f8;color:#005788}.tag.orange{background:#fff3df;color:#8a641d}
.note-bar{background:#ecf3f7;color:#5b7486}
.login-art{background:linear-gradient(145deg,#07364f,#005788);position:relative}
.login-art .brand{background:#fff;border-radius:10px;padding:17px 20px;width:fit-content;max-width:100%;border-bottom:3px solid #e32124}
.login-art .brand img{width:187px}.login-art .brand-caption{color:#536b7b}
.login-form .tag{background:#eaf3f8;color:#005788}
.login-graphic span{background:#ffffff16;border-color:#ffffff24}
@media(max-width:1000px){.brand img{width:140px}.brand{padding-left:3px;padding-right:3px}.brand-caption{font-size:10px}}
@media(max-width:650px){.sidebar .brand{flex-direction:row;align-items:center;gap:18px;padding-bottom:12px}.brand img{width:135px}.brand-caption{max-width:150px}.topbar{height:49px}.nav button{border-left:0;border-bottom:3px solid transparent;border-radius:6px}.nav button.active{border-bottom-color:#e32124}.login-art .brand{padding:12px 16px}.login-art .brand img{width:165px}}
@media print{.panel{box-shadow:none}.topbar,.sidebar{display:none!important}}

.print-sheet .planned-label{font-size:9pt;color:#3f4b55;text-align:center;margin:10px 0 0}
