:root{font-family:Inter,Arial,Helvetica,sans-serif;color:#17243b;background:#f4f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.layout{display:flex;min-height:100vh}.sidebar{background:#14223b;color:#b8c5d7;width:246px;min-width:246px;min-height:100vh;padding:28px 17px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:white;font-size:20px;font-weight:800;letter-spacing:.07em;padding:0 8px 32px}.brand small{display:block;color:#b5c4da;font-size:10px;font-weight:500;letter-spacing:.03em;margin-top:5px}.brand-mark{background:#3973ed;color:white;width:39px;height:39px;display:grid;place-items:center;border-radius:11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;gap:12px;padding:13px 16px;border-radius:9px;font-size:14px}.sidebar nav a:hover{background:#253b5c;color:#fff}.sidefoot{margin-top:auto;border-top:1px solid #31415d;padding:20px 8px 0;font-size:11px;line-height:1.8;color:#8798b2}.main{min-width:0;flex:1}.topbar{height:70px;background:#fff;border-bottom:1px solid #e7eaf0;display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#506079;font-size:14px}.user-chip{font-weight:700;color:#1f2b43;text-align:right}.user-chip small{display:block;font-weight:400;color:#8c99ac;font-size:11px}.content{padding:32px;max-width:1800px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:800;color:#3c77de}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-title h1{font-size:29px;margin:8px 0}.page-title p,.muted{color:#7c889a;margin:0;font-size:13px;line-height:1.6}.btn{display:inline-block;border:1px solid #dce3ee;background:#fff;padding:12px 17px;border-radius:9px;font-weight:700;font-size:13px}.btn.primary{background:#346ce3;color:white;border-color:#346ce3}.btn:hover{filter:brightness(.96)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.big{font-size:16px;padding:16px 32px}.wide{width:100%}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.cards.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric,.panel{background:white;border:1px solid #e5eaf0;border-radius:13px;box-shadow:0 6px 20px rgba(20,40,70,.035)}.metric{padding:22px}.metric span{color:#78869a;font-size:12px}.metric strong{display:block;font-size:32px;margin:11px 0;color:#1f2b43}.metric strong.small{font-size:22px}.metric small{color:#8d99aa;font-size:11px}.green{color:#16a66a!important}.orange{color:#e49a23!important}.red{color:#df4f51!important}.panel{padding:22px;margin-bottom:23px}.panel h2{font-size:17px;margin:0 0 5px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.panel p{color:#8390a2;font-size:12px;margin:5px 0}.text-link{color:#376fe1;font-weight:700;font-size:12px}.table-scroll{overflow-x:auto;width:100%}.data-table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}.data-table th{color:#728096;text-align:left;font-weight:650;background:#f7f9fc;padding:13px}.data-table td{border-top:1px solid #edf0f4;padding:13px;color:#394860}.status{display:inline-block;padding:5px 9px;font-size:11px;font-weight:700;border-radius:30px}.status.a{color:#198757;background:#e8f8ef}.status.t{color:#b7750a;background:#fff5d8}.status.f{color:#bb3339;background:#fff0f0}.filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.filters label,.form-stack label,.login-panel label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#526078}select,input{padding:12px;border:1px solid #dae2ed;border-radius:8px;background:white;color:#1f2d46;min-width:150px}.report-panel{padding:22px}.print-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:18px}.print-heading h2{font-size:22px;margin:6px 0}.print-heading p{font-size:14px;color:#53627b;font-weight:700}.report-stamp{font-size:11px;color:#8090a2}.legend{display:flex;gap:17px;flex-wrap:wrap;font-size:11px;color:#64748b;margin:16px 0}.legend b{font-size:12px}.month-table{border-collapse:collapse;width:100%;min-width:1120px;table-layout:fixed}.month-table th,.month-table td{border:1px solid #cad1dc;text-align:center;padding:5px 2px}.month-table thead th{background:#f1c7ac;font-size:11px}.month-table th.month-caption{font-size:13px;letter-spacing:.13em;padding:10px}.month-table th.day-head{background:#fde7a5;width:26px}.day-head small{display:block;margin-top:5px;font-size:10px}.month-table .num{width:36px;font-size:11px}.month-table .person{width:186px;text-align:left;padding-left:8px;font-size:11px;font-weight:700}.month-table .person small{display:block;color:#8a93a2;font-size:9px;font-weight:400}.month-table .day-cell{font-size:10px;font-weight:800;height:40px}.month-table .weekend{background:#e6e8ed!important}.code-F{color:#dc4248}.code-T{color:#d18a12}.code-A2{color:#426ed8}.code-A{color:#178b5a}.code-A\*{color:#426ed8}.footnote{font-size:10px;color:#75839a;margin-top:14px;line-height:1.6}.report-actions{text-align:center;margin-bottom:25px}.alert{padding:13px 16px;border-radius:9px;margin-bottom:15px;font-size:13px;background:#e8f8ef;color:#14643d}.alert.error{background:#fff1ef;color:#b03636}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.form-stack{display:grid;gap:17px}.form-stack input{width:100%}.form-stack .check{display:flex;align-items:flex-start;gap:10px;line-height:1.5;font-weight:400}.form-stack .check input{min-width:auto;width:16px;margin:2px 0}.mark-panel{text-align:center;padding:50px}.clock{font-size:58px;color:#1e3760;font-weight:800;letter-spacing:2px}.center{text-align:center;margin:20px auto!important}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(120deg,#132a4b,#2b5593);padding:20px}.login-panel{width:100%;max-width:420px;background:white;padding:34px;border-radius:18px;box-shadow:0 24px 80px #091a3266}.login-panel .brand{padding:0;color:#142a4b}.login-panel .brand small{color:#8392a5}.login-panel h1{margin:28px 0 6px;font-size:29px}.login-panel p{font-size:13px;color:#78869a;margin-bottom:25px}.login-panel form{display:grid;gap:18px}.login-panel input{width:100%}.login-note{font-size:11px;color:#96a0b0;text-align:center;margin-top:26px}.empty{text-align:center;padding:25px!important;color:#8190a4}@media(max-width:1100px){.cards,.cards.five{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:700px){.layout{display:block}.sidebar{min-height:auto;width:100%;padding:15px}.sidebar .brand{padding:0 0 15px}.sidebar nav{display:flex;flex-wrap:wrap}.sidebar nav a{padding:9px}.sidefoot{display:none}.topbar{padding:0 18px}.content{padding:18px}.page-title{align-items:start;flex-direction:column}.cards,.cards.five{grid-template-columns:1fr 1fr}.metric{padding:13px}.metric strong{font-size:25px}.clock{font-size:40px}}@page{size:A4 landscape;margin:5mm}@media print{body{background:white!important}.sidebar,.topbar,.no-print,.page-title,.alert,.report-actions{display:none!important}.layout,.main,.content{display:block!important;width:100%!important;padding:0!important;margin:0!important;max-width:none!important}.panel.report-panel{padding:0!important;border:0!important;box-shadow:none!important;margin:0!important}.print-heading{margin-bottom:5px}.print-heading h2{font-size:14px}.report-stamp,.legend,.footnote{font-size:7px}.legend{margin:6px 0}.table-scroll{overflow:visible!important}.month-table{min-width:0!important;width:100%!important;table-layout:fixed!important}.month-table th,.month-table td{padding:2px 0!important;font-size:6px!important;border:1px solid #111!important}.month-table .num{width:7mm!important}.month-table .person{width:36mm!important;font-size:7px!important;padding-left:1mm!important;word-break:break-word}.month-table .person small{font-size:5px}.month-table .day-cell{height:7mm!important;font-size:7px!important}.month-table th.month-caption{font-size:9px}.month-table th.day-head{width:auto!important}.day-head small{font-size:6px}.month-table thead{display:table-header-group}.month-table tr{break-inside:avoid;page-break-inside:avoid}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}
