:root{color-scheme:light;--ink:#14263a;--muted:#65748a;--blue:#2563eb;--blue-light:#eff5ff;--bg:#f4f7fb;--line:#dce3ed;--card:#fff;--green:#0f766e;--orange:#b45309;--red:#b42318}*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.site{max-width:1390px;margin:auto;padding:0 22px}.topbar{background:#10233d;color:white}.topbar .inner{max-width:1390px;padding:16px 22px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-size:1.1rem;font-weight:800;letter-spacing:-.02em;color:white}.brand span{color:#7fc4ff}.top-account{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.9rem}.top-account small{opacity:.7}.top-account button{background:transparent;color:white;border:1px solid #7790af}.nav{background:white;border-bottom:1px solid var(--line)}.nav .inner{max-width:1390px;margin:auto;padding:0 22px;display:flex;flex-wrap:wrap;gap:5px}.nav a{display:inline-block;padding:13px 15px;color:#526074;font-weight:600;border-bottom:3px solid transparent}.nav a.active{color:var(--blue);border-color:var(--blue)}main.site{padding-top:28px;padding-bottom:60px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:23px;flex-wrap:wrap}h1{font-size:1.72rem;margin:0;font-weight:800;letter-spacing:-.035em}h2{font-size:1.13rem;margin:0 0 17px}h3{font-size:1rem;margin:0 0 11px}.subtitle{color:var(--muted);margin:6px 0 0}.card{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:22px;margin-bottom:18px;box-shadow:0 2px 8px #24395408}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{width:auto}.btn,button{border:1px solid var(--line);background:white;border-radius:9px;padding:9px 14px;font:inherit;color:var(--ink);cursor:pointer;font-weight:650}.btn:hover,button:hover{background:#f3f6fb;text-decoration:none}.btn-primary,button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover,button.primary:hover{background:#174fc4}.btn-danger{color:#b42318}.btn-small{font-size:.84rem;padding:6px 10px}.btn-quiet{background:transparent}button[disabled]{opacity:.4;cursor:default}input,select,textarea{border:1px solid #cbd5e1;border-radius:8px;padding:10px 11px;font:inherit;color:var(--ink);background:#fff;width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:3px solid #dceaff;border-color:#6a9bf5}input[type=checkbox]{width:auto;accent-color:var(--blue)}label{display:block;font-weight:650;font-size:.9rem;margin:0 0 6px}.field{margin-bottom:17px}.hint{font-size:.84rem;color:var(--muted)}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.fields.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.93rem}th,td{padding:12px 12px;border-bottom:1px solid #e9eef4;vertical-align:top}thead{background:#f7f9fc}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#5c6b7f;font-weight:800}tbody tr:hover{background:#fafdff}tbody tr:last-child td{border-bottom:0}.person{font-weight:750;white-space:nowrap}.muted{color:var(--muted)}.small{font-size:.83rem}.mini{font-size:.75rem}.pill{display:inline-block;border-radius:999px;background:#eaf2ff;color:#235cb3;padding:3px 9px;font-size:.79rem;font-weight:700;white-space:nowrap}.pill.green{background:#e0f5ef;color:#096d52}.pill.orange{background:#fff1d9;color:#91590c}.pill.red{background:#feeae9;color:#a5201b}.pill.grey{background:#eef1f5;color:#536176}.alert{padding:12px 16px;border:1px solid #a9d0ff;background:#ebf5ff;border-radius:10px;margin-bottom:18px}.alert.error{background:#ffefee;border-color:#f7b6b2;color:#9f2520}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.stat{padding:17px 19px;background:#fff;border:1px solid var(--line);border-radius:12px}.stat strong{display:block;font-size:1.65rem;line-height:1.25}.stat span{display:block;color:var(--muted);font-size:.83rem;margin-top:4px}.link-arrow{font-size:.85rem;font-weight:650}.row-form{display:inline}.day-today{box-shadow:inset 3px 0 #4b86e8}.weekend{background:#fafbfc}.notice{border-left:3px solid var(--blue);padding:11px 14px;margin-bottom:9px;background:#f4f8ff;border-radius:0 9px 9px 0;white-space:pre-wrap}.notice p{margin:4px 0 0}.login-wrap{max-width:470px;margin:8vh auto 0}.login-title{text-align:center;margin-bottom:22px}.login-wrap .card{padding:28px}.empty{padding:24px;color:var(--muted);text-align:center}.footer{text-align:center;color:#8a97a9;font-size:.82rem;padding:20px}.divider{border:0;border-top:1px solid var(--line);margin:22px 0}.stack{display:flex;flex-direction:column;gap:5px}.max-form{max-width:840px}.inline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rounded-tint{background:#f7faff;border-radius:12px;padding:16px;border:1px solid #e2ebfb}.mono{font-variant-numeric:tabular-nums}.narrow{white-space:nowrap}.checkbox-line{display:flex;align-items:center;gap:9px}.checkbox-line label{margin:0}.mutedline{display:block;margin-top:4px;color:var(--muted);font-size:.82rem}.w-100{width:100%}.foot-actions{margin-top:18px}.is-hidden{display:none!important}.detailnotes{max-width:330px;overflow-wrap:anywhere;font-size:.83rem;color:var(--muted)}.summary-tasks{min-width:180px;max-width:300px}.summary-tasks span{display:inline-block;margin:0 5px 4px 0}.badgebox{padding:8px 11px;border-radius:10px;background:var(--blue-light)}.top-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.date-label{min-width:200px;text-align:center}.print-only{display:none}@media(max-width:950px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fields.thirds{grid-template-columns:repeat(2,minmax(0,1fr))}th,td{padding:10px 8px}.site{padding:0 13px}main.site{padding-top:20px}.nav .inner,.topbar .inner{padding-left:13px;padding-right:13px}}@media(max-width:650px){h1{font-size:1.42rem}.card{padding:15px}.fields,.fields.thirds,.inline-grid{grid-template-columns:1fr}.page-head{flex-direction:column}.date-label{min-width:0}.nav a{padding:10px;font-size:.88rem}.topbar .inner{align-items:flex-start}.top-account{justify-content:flex-end}.stat-grid{gap:8px}.stat{padding:12px}.table-wrap{margin:0 -5px}td,th{font-size:.84rem}}@media print{.nav,.top-account,.top-controls,.btn,.actions,form,.footer{display:none!important}.card{box-shadow:none;border:0}.site{max-width:none}.print-only{display:block}body{background:white}}

.actions-end{justify-content:flex-end}

/* Wersja 2.0: kalendarz zespołu, kontrola braków i zamykanie okresu */
.calendar-legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:15px}
.calendar-wrap{border:1px solid var(--line);border-radius:10px;max-height:73vh;overflow:auto}
.calendar-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.calendar-table th,.calendar-table td{border-bottom:1px solid #e9eef4;border-right:1px solid #e9eef4;text-align:center;padding:8px 5px}
.calendar-table thead th{position:sticky;top:0;z-index:3;background:#f4f7fb}
.calendar-table .name-column{position:sticky;left:0;z-index:2;min-width:180px;width:180px;max-width:180px;text-align:left;padding:10px 13px;background:#fff;white-space:normal;box-shadow:3px 0 6px #0a192b10}
.calendar-table thead .name-column{z-index:4;background:#f4f7fb}
.calendar-table .calendar-day{min-width:79px;width:79px;font-variant-numeric:tabular-nums}
.calendar-table .calendar-day small{display:block;font-weight:500;color:var(--muted);margin-top:2px}
.calendar-table .calendar-weekend{background:#f8f9fb}
.calendar-table .calendar-today{box-shadow:inset 0 3px #2563eb}
.calendar-table .calendar-cell{min-width:79px;width:79px;max-width:79px;font-size:.75rem;line-height:1.25;word-break:break-word}
.calendar-cell a{display:block;font-weight:700;color:inherit;padding:4px 1px;border-radius:5px}
.calendar-cell a:hover{background:#ffffff90;text-decoration:underline}
.calendar-cell.cell-work{background:#dff5eb;color:#075f46}
.calendar-cell.cell-leave{background:#fff1d7;color:#855115;font-weight:800}
.calendar-cell.cell-missing{color:#a2aebe}
.month-action{display:flex;justify-content:flex-end;margin:0 0 16px}
.missing-dates{line-height:2.25}
.date-chip{display:inline-block;min-width:33px;padding:2px 7px;border:1px solid #d5deea;background:#f8faff;border-radius:7px;font-size:.82rem;font-weight:700;color:#235cb3;text-align:center}
a.date-chip:hover{background:#eaf1ff;text-decoration:none}
@media(max-width:650px){.calendar-table .name-column{min-width:130px;width:130px;max-width:130px;font-size:.8rem}.calendar-table .calendar-day,.calendar-table .calendar-cell{min-width:65px;width:65px;max-width:65px}}
@media print{.calendar-wrap{max-height:none;overflow:visible}.calendar-table{width:100%;table-layout:auto}.calendar-table th,.calendar-table td{font-size:.62rem}.calendar-table .name-column{min-width:unset;width:auto;position:static;box-shadow:none}}
