@charset "UTF-8";
:root{--bg:#f5f7f2;--paper:#fff;--ink:#193e30;--muted:#6a7b71;--green:#23734d;--dark:#123e2b;--lime:#d8f58b;--line:#e0e7dd;--soft:#edf3e7;--radius:18px;--vacation:#d8eee0;--sick:#f7dfe7;--doctor:#dfeaf9;--other:#fff0d1}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #579a76;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:40px;line-height:1.15;letter-spacing:-1.5px;font-weight:650;overflow-wrap:anywhere}h2{font-size:23px;line-height:1.3;letter-spacing:-.5px}h3{font-size:16px}p{color:var(--muted)}small,.muted{font-size:12px;color:var(--muted)}.eyebrow{display:block;font-size:10px;letter-spacing:1.8px;font-weight:750;color:var(--green);margin-bottom:12px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;line-height:1.25;letter-spacing:-.5px}.brand-icon{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:13px;background:var(--dark);color:var(--lime);font-size:31px;font-weight:700}.brand strong{font-weight:700}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:32px 22px;background:#fcfdf9;border-right:1px solid var(--line);display:flex;flex-direction:column}.nav-label{font-size:9px;letter-spacing:1.8px;margin:53px 10px 17px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav a{padding:12px 14px;border-radius:10px;color:#586b60}.sidebar nav a[aria-current]{background:var(--green);color:#fff;font-weight:600}.sidebar nav a:hover{background:var(--soft);color:var(--ink)}.sidebar-user{margin-top:auto;padding-top:22px;border-top:1px solid var(--line);display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}.sidebar-user strong,.sidebar-user small{display:block;overflow-wrap:anywhere}.sidebar-user form{grid-column:2}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:36px;height:36px;background:var(--soft);color:var(--green);border-radius:50%;font-weight:650}.avatar.large{width:54px;height:54px;font-size:23px}.workspace{margin-left:238px;padding:28px 40px 60px;max-width:1920px}.topline{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:36px;font-size:11px;color:var(--muted)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:24px 0 30px}.page-heading p{margin-top:12px;max-width:650px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--green);border:1px solid var(--green);color:#fff;border-radius:10px;min-height:44px;padding:10px 18px;font-size:13px;font-weight:650;white-space:normal;text-align:center}.button:hover{background:var(--dark)}.button.secondary{background:transparent;border-color:#cbd8c8;color:var(--ink)}.button.secondary:hover{background:var(--soft)}.button.full{width:100%}.link-button{border:0;background:transparent;color:var(--green);padding:4px 0;font-size:12px;cursor:pointer}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:white;font-size:18px}.icon-button:hover{background:var(--soft)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px}.padded{padding:26px}.padded>h2{margin-bottom:15px}.padded>p{margin-bottom:22px}.section-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.section-heading>a{font-size:12px;color:var(--green)}.month-nav{display:flex;align-items:center;gap:14px;margin:25px 0}.month-nav h2{min-width:165px;text-align:center;text-transform:capitalize}.month-nav .link-button{margin-left:8px}.legend{display:flex;gap:12px 22px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted);margin:18px 0}.legend>span{display:flex;gap:6px;align-items:center}.dot{display:inline-block;width:11px;height:11px;border-radius:4px;border:1px solid #0001}.type-vacation{background:var(--vacation)!important;color:#165239!important}.type-sick{background:var(--sick)!important;color:#8d244b!important}.type-doctor{background:var(--doctor)!important;color:#2c5382!important}.type-other{background:var(--other)!important;color:#775119!important}.weekend{background:#eef0ec}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:26px 0}.stat{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:23px}.stat.main{background:var(--dark);color:white}.stat>span{font-size:12px}.stat strong{font-size:35px;font-weight:600;white-space:nowrap}.stat strong small{font-size:11px;margin-left:7px;color:inherit;font-weight:400}.day-overview{overflow:hidden}.day-overview>header{display:flex;justify-content:space-between;align-items:center;padding:24px}.day-overview .eyebrow{margin-bottom:7px}.period-nav{display:flex;align-items:center;gap:8px}.period-nav .link-button{margin-left:10px}.day-ribbon{display:flex;gap:4px;overflow:auto;padding:0 24px 20px}.ribbon-day{min-width:32px;flex:1;border:1px solid var(--line);border-radius:7px;text-align:center;padding:6px 1px;font-size:12px}.ribbon-day strong,.ribbon-day span{display:block}.ribbon-day span{font-size:11px;height:13px;color:var(--green)}.ribbon-day[aria-current]{background:var(--green);color:white;border-color:var(--green)}.ribbon-day[aria-current] span{color:var(--lime)}.daily-person{display:flex;gap:13px;align-items:center;padding:16px 24px;border-top:1px solid var(--line)}.daily-person>strong{min-width:155px}.daily-person>span:last-child{margin-left:auto}.chips{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-block;border-radius:6px;font-size:11px;padding:4px 8px;white-space:normal}.empty{padding:48px 22px;text-align:center}.empty h2{margin-bottom:10px}.empty-small{padding:22px;color:var(--muted);font-size:13px}.month-person{display:grid;grid-template-columns:180px minmax(0,1fr);gap:15px;align-items:center;padding:17px 0;border-top:1px solid var(--line)}.month-person a{font-size:13px}.absence-strip{display:flex;gap:2px;min-width:0}.strip-day{flex:1;min-width:0;text-align:center;border-radius:4px;overflow:hidden;padding-top:3px;border:1px solid var(--line)}.strip-day small{font-size:9px;color:var(--muted);display:block}.strip-day.today{outline:1px solid var(--green)}.strip-slots{display:flex;flex-direction:column;height:13px;gap:1px;margin-top:3px}.strip-slots i{display:block;flex:1;min-height:5px}.strip-slots .free{background:transparent}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.inline-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-form>input{width:auto}.inline-form label{margin:0}.inline-form input{margin:0}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tabs a{font-size:12px;padding:8px 14px;border-radius:8px;color:var(--muted)}.tabs a[aria-current]{background:var(--soft);color:var(--green);font-weight:650}.tabs a:hover{background:var(--soft)}.employee-list{overflow:hidden}.employee-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 105px 105px minmax(300px,3fr);align-items:center;gap:15px;padding:22px;border-top:1px solid var(--line)}.employee-row:first-child{border-top:0}.employee-row.list-labels{font-size:10px;color:var(--muted);padding-top:14px;padding-bottom:14px;background:#fcfdf9}.person-name{display:flex;gap:10px;align-items:center;min-width:0}.person-name strong{overflow-wrap:anywhere;font-size:13px}.person-name small{display:block;font-size:10px}.balance-number strong{font-size:24px;font-weight:600;line-height:1.2}.balance-number small{display:block;font-size:10px}.negative{color:#a02f4d!important}.row-strip{min-width:0}.year-badge{padding:10px 22px;background:var(--soft);border-radius:12px;font-size:25px;font-weight:600}.profile-form{max-width:1000px}.profile-form .panel{margin-bottom:20px}label{display:block;font-size:12px;font-weight:600;margin:17px 0}label small{font-weight:400;font-size:11px;display:inline}.required{color:#a02f4d}input,select,textarea{display:block;width:100%;border:1px solid #d9e2d6;border-radius:8px;background:#fdfefa;color:var(--ink);padding:11px 12px;margin-top:6px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #87b799;outline-offset:1px}textarea{resize:vertical}label>small:last-child{display:block;margin-top:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.form-grid.three{grid-template-columns:1fr 1fr 1.4fr}.check{display:flex;align-items:center;gap:9px;font-weight:400}.check input{width:17px;height:17px;padding:0;margin:0;accent-color:var(--green);flex-shrink:0}.quota-fields{margin-top:18px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin-top:24px}.form-actions form{margin:0}.info{background:var(--soft);padding:12px 15px;border-radius:9px;font-size:12px;color:var(--muted);margin-top:18px}.notice,.error{padding:15px 20px;border-radius:10px;margin:18px 0;font-size:13px;overflow-wrap:anywhere}.notice{background:#e4f0de;color:#2b633c}.notice a{text-decoration:underline;font-weight:650}.error{background:#fae9e7;color:#973525}.back{display:inline-block;font-size:12px;color:var(--muted);margin-bottom:18px}.employee-header{padding:25px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:23px}.employee-identity{display:flex;align-items:center;gap:15px;min-width:0}.employee-identity h1{font-size:30px;letter-spacing:-.8px}.employee-identity .eyebrow{margin-bottom:5px}.header-balances{display:flex;gap:32px;align-items:center}.header-balances>div{display:flex;flex-direction:column}.header-balances strong{font-size:32px;line-height:1.2}.header-balances span{font-size:11px;color:var(--muted)}.employee-details{grid-column:1/-1;border-top:1px solid var(--line);padding-top:15px}summary{cursor:pointer;font-weight:650;font-size:13px}summary>span{float:right}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:20px}.details-grid dl{margin:0}.details-grid dl>div{display:flex;gap:12px;font-size:12px;margin:5px 0}.details-grid dt{min-width:80px;color:var(--muted)}.details-grid dd{margin:0;overflow-wrap:anywhere}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.details-grid h3{margin-bottom:8px}.details-grid p{font-size:12px}.balance-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:20px}.balance-table th,.balance-table td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.balance-table thead{background:var(--soft);font-size:11px}.scroll-table{overflow-x:auto}.calendar-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:30px 0 20px}.calendar-toolbar .eyebrow{margin-bottom:7px}.calendar-controls{display:flex;gap:18px;justify-content:space-between;align-items:end;flex-wrap:wrap}.calendar-controls .inline-form input{width:90px}.calendar-controls .inline-form label{font-size:10px}.calendar-controls .inline-form .button{min-height:42px}.calendar-months{display:grid;gap:20px;margin-bottom:24px}.calendar-months.span-3,.calendar-months.span-6,.calendar-months.span-12{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-month{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.calendar-month>h3{font-size:17px;text-transform:capitalize;margin-bottom:18px}.weekdays,.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{font-size:11px;color:var(--muted);text-align:center;margin-bottom:8px}.weekdays>span:nth-child(n+6){color:#8b938d}.day-cell{display:flex;flex-direction:column;position:relative;min-height:94px;margin:0;border:1px solid var(--line);border-radius:8px;padding:8px;cursor:pointer;font-weight:400;background:transparent;overflow:hidden}.day-cell.weekend{background:#eef0ec}.day-cell:hover{border-color:#71a486}.day-cell.today{border:2px solid var(--green);padding:7px}.day-top{display:flex;align-items:center;justify-content:space-between;font-size:12px}.day-top strong{font-weight:600}.day-chevron{color:#85968a;font-size:13px}.day-content{display:flex;flex-direction:column;gap:3px;margin-top:7px}.day-event{display:block;font-size:10px;line-height:1.3;border-radius:4px;padding:4px;overflow:hidden;overflow-wrap:anywhere}.day-free{color:#bdc8bd;text-align:center;font-size:16px;line-height:1.6}.day-checkbox{position:absolute;opacity:0;width:1px;height:1px;left:0;top:0;pointer-events:none}.day-cell:focus-within{outline:3px solid #78a98b}.day-cell.is-selected,.day-cell:has(.day-checkbox:checked){background:#e4f2d5;border:2px solid #23734d;padding:7px}.day-cell:has(.day-checkbox:disabled){opacity:.6;cursor:default}.span-3 .day-cell,.span-6 .day-cell,.span-12 .day-cell{min-height:64px;padding:4px;border-radius:5px}.span-3 .day-top,.span-6 .day-top,.span-12 .day-top{font-size:10px}.span-3 .event-word,.span-6 .event-word,.span-12 .event-word{display:none}.span-3 .day-event,.span-6 .day-event,.span-12 .day-event{font-size:9px;padding:2px}.span-3 .day-content,.span-6 .day-content,.span-12 .day-content{margin-top:4px;gap:2px}.span-3 .calendar-month,.span-6 .calendar-month,.span-12 .calendar-month{padding:12px}.span-3 .day-grid,.span-6 .day-grid,.span-12 .day-grid{gap:3px}.selection-tools{padding:20px}.selection-tools p{font-size:12px;margin-top:5px}.range-picker{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:15px 0}.range-picker label{margin:0;font-size:11px}.range-picker .link-button{align-self:center}.selection-tools>small{display:block}.save-panel{padding:24px;border-color:#9cbfa5;box-shadow:0 8px 30px #21452d09}.selection-count{font-size:13px;padding-bottom:14px;border-bottom:1px solid var(--line)}.selection-count strong{font-size:22px;color:var(--green)}.save-options{display:flex;gap:20px;flex-wrap:wrap}.save-options .check{margin:4px 0 15px}.period-record{display:flex;gap:20px;padding:13px 0;border-top:1px solid var(--line)}.period-record>a{min-width:100px;font-size:12px}.period-record p{font-size:12px;margin:3px 0}.history article{padding:20px 0;border-bottom:1px solid var(--line)}.history article>h3{margin:5px 0 12px}.audit-changes>div{font-size:11px;display:flex;gap:15px;margin:5px 0}.audit-changes strong{min-width:170px}.audit-changes span{overflow-wrap:anywhere}.audit-line{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}.form-narrow{max-width:680px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.admin-row{padding:15px 0;border-bottom:1px solid var(--line)}.admin-row small{display:block}.public-brand{max-width:1100px;margin:30px auto;padding:0 25px}.public-main{max-width:550px;margin:55px auto 70px;padding:0 20px}.login{padding:38px}.login h1{font-size:42px;margin-bottom:18px}.login>p{font-size:14px;margin-bottom:24px}.login>small{display:block;margin-top:20px}.login .button{margin-top:12px}.skip{position:absolute;top:-70px;left:10px;padding:12px;background:white;z-index:999}.skip:focus{top:10px}.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}hr{border:0;border-top:1px solid var(--line);margin:25px 0}.print-sheet{background:#fff;padding:24px;margin:25px 0;border:1px solid var(--line);border-radius:10px}.print-sheet>h1{font-size:24px;margin-bottom:13px}.print-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:780px;font-size:10px}.print-table caption{text-align:left;font-size:10px;color:var(--muted);padding-bottom:10px}.print-table .name-column{width:150px}.print-table th,.print-table td{border:1px solid #b9c5bb;padding:5px 1px;text-align:center;vertical-align:middle;height:30px}.print-table tbody th{text-align:left;padding:5px 7px;overflow-wrap:anywhere;font-weight:500}.print-table thead th{font-weight:650;background:#f5f7f2}.print-table thead th.weekend{background:#e6e9e3}.print-mark{display:block;line-height:1.4;font-size:9px;padding:2px 0;font-weight:700}.print-tip{margin-top:16px;font-size:12px}
@media(min-width:1550px){.workspace{padding-left:55px;padding-right:55px}.calendar-months.span-12{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.sidebar{width:205px;padding:27px 17px}.workspace{margin-left:205px;padding:25px}.employee-row{grid-template-columns:minmax(130px,1fr) 85px 85px;gap:10px}.employee-row .row-strip{grid-column:1/-1}.list-labels>span:last-child{display:none}.calendar-months.span-3,.calendar-months.span-6,.calendar-months.span-12{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:18px;flex-direction:column;align-items:start;gap:8px}.employee-identity h1{font-size:26px}.header-balances{gap:20px}.header-balances strong{font-size:28px}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three>label:last-child{grid-column:1/-1}}
@media(max-width:850px){.sidebar{position:static;width:auto;padding:18px 22px;display:grid;grid-template-columns:1fr auto;gap:18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:15px}.nav-label{display:none}.sidebar nav{grid-row:2;grid-column:1/-1;flex-direction:row;overflow-x:auto;gap:5px}.sidebar nav a{white-space:nowrap;font-size:12px;padding:9px 11px}.sidebar-user{margin:0;border:0;padding:0;display:flex;gap:10px}.sidebar-user .avatar{display:none}.sidebar-user strong{font-size:12px}.sidebar-user small{font-size:10px}.sidebar-user form{margin:0}.workspace{margin:0;padding:24px}.topline{margin-bottom:25px;padding-bottom:20px}.page-heading h1{font-size:34px}.page-heading{align-items:start}.daily-person>strong{min-width:100px}.month-person{grid-template-columns:145px minmax(0,1fr)}.employee-header{grid-template-columns:1fr}.header-balances{justify-content:start;gap:40px}.two-columns{grid-template-columns:1fr}.calendar-controls{gap:15px}.print-sheet{padding:15px}}
@media(max-width:550px){.workspace{padding:20px 15px 45px}.sidebar{padding:16px}.sidebar-user{display:block;text-align:right}.sidebar-user form{margin-top:3px}.brand-icon{width:36px;height:36px;font-size:27px}.sidebar nav a{font-size:11px}.topline{font-size:9px;gap:15px}.page-heading{flex-direction:column;margin:20px 0}.page-heading h1{font-size:32px}.page-heading p{font-size:12px}.stats{gap:8px;margin:20px 0}.stat{padding:14px 10px;gap:6px;border-radius:12px}.stat>span{font-size:10px;line-height:1.4;min-height:28px}.stat strong{font-size:26px}.stat strong small{font-size:9px;margin-left:3px}.month-nav{gap:8px}.month-nav h2{font-size:20px;min-width:135px}.month-nav .link-button{font-size:10px}.month-nav .icon-button{width:33px;height:33px}.padded{padding:20px}.day-overview>header{padding:20px}.day-ribbon{padding:0 20px 18px}.daily-person{padding:15px 20px;gap:10px;flex-wrap:wrap}.daily-person .chips{width:100%;padding-left:45px}.daily-person>span:last-child{display:none}.month-person{grid-template-columns:1fr;gap:10px}.absence-strip{gap:1px}.strip-day small{font-size:8px}.employee-row{padding:16px;grid-template-columns:minmax(105px,1fr) 70px 70px;gap:10px}.employee-row.list-labels{font-size:9px;padding:12px}.person-name .avatar{display:none}.person-name strong{font-size:12px}.balance-number strong{font-size:21px}.balance-number small{font-size:9px}.toolbar{flex-direction:column;align-items:stretch}.inline-form{gap:8px}.inline-form>input{flex:1;width:140px}.form-grid{grid-template-columns:1fr;gap:0}.form-grid.three{grid-template-columns:1fr}.form-grid.three>label:last-child{grid-column:auto}.employee-header{padding:20px}.employee-identity{gap:12px}.employee-identity h1{font-size:26px}.employee-identity .avatar{width:43px;height:43px;font-size:20px}.header-balances strong{font-size:28px}.details-grid{grid-template-columns:1fr;gap:20px}.calendar-toolbar{gap:10px;align-items:start;flex-wrap:wrap}.calendar-toolbar h2{font-size:20px}.calendar-controls .tabs a{padding:8px 11px;font-size:11px}.calendar-controls .button{font-size:12px}.calendar-months.span-3,.calendar-months.span-6,.calendar-months.span-12{grid-template-columns:1fr}.calendar-month{padding:12px}.day-grid{gap:3px}.day-cell{min-height:77px;padding:4px;border-radius:5px}.day-cell.today,.day-cell.is-selected,.day-cell:has(.day-checkbox:checked){padding:3px}.day-top{font-size:11px}.day-event{font-size:9px;padding:3px}.event-word{display:none}.day-content{margin-top:5px}.selection-tools{padding:17px}.range-picker{gap:10px}.range-picker label{flex:1;min-width:125px}.save-panel{padding:18px}.save-options{display:block}.save-options .check{font-size:11px}.form-actions{gap:10px}.form-actions .button{flex:1}.period-record{gap:10px}.period-record>a{min-width:78px;font-size:11px}.audit-changes>div{display:block;padding:5px 0}.audit-changes strong,.audit-changes span{display:block}.login{padding:26px}.login h1{font-size:36px}.public-main{margin-top:35px}.print-sheet>h1{font-size:20px}}
@page{size:A4 landscape;margin:8mm}
@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html,body{background:white!important;color:#17251e!important;font-size:9pt!important}.no-print,.sidebar,.skip,.topline{display:none!important}.workspace{margin:0!important;padding:0!important;max-width:none!important}.print-sheet{border:0!important;border-radius:0!important;margin:0!important;padding:0!important}.print-sheet>h1{font-size:15pt;margin:0 0 4mm}.scroll-table{overflow:visible!important}.print-table{width:100%!important;min-width:0!important;font-size:8pt;table-layout:fixed}.print-table .name-column{width:43mm}.print-table caption{font-size:8pt;color:#333;padding:0 0 3mm}.print-table th,.print-table td{padding:1mm .4mm;height:7mm;border-color:#9ca89d}.print-table tbody th{font-size:8pt;padding:1mm 2mm}.print-mark{font-size:7pt;padding:.5mm 0}.print-table tr{break-inside:avoid;page-break-inside:avoid}.print-table thead{display:table-header-group}a{color:inherit;text-decoration:none}}

.calendar-form .day-chevron{opacity:0}.calendar-form .is-selected .day-chevron,.calendar-form .day-cell:has(.day-checkbox:checked) .day-chevron{opacity:1;color:var(--green)}
@media(min-width:851px){.ribbon-day{min-width:24px}}
/* v2: table export and working hours; existing print layout is unchanged. */
.type-unpaid{background:#eadff3;color:#603e7a}.type-homeoffice{background:#d9eff0;color:#205c63}
.excel-table{border-collapse:collapse;min-width:1400px;width:100%;font-size:12px}.excel-table th,.excel-table td{border:1px solid #d8dfdb;padding:5px;text-align:center;min-width:33px}.excel-table thead tr:first-child>th:first-child,.excel-table tbody th:first-child{min-width:190px;text-align:left;position:sticky;left:0;background:#fff;z-index:1}.excel-table thead th{background:#edf4ef}.excel-table .weekend{background:#eceeed}.excel-table .print-mark{display:block;white-space:nowrap}
.hours-summary{display:flex;justify-content:space-between;gap:20px;margin:20px 0}.hours-summary small,.hours-summary strong{display:block}.hours-summary strong{font-size:28px;margin-top:8px}.hours-calendar{margin:20px 0;overflow-x:auto}.hours-weekdays,.hours-grid{display:grid;grid-template-columns:repeat(7,minmax(95px,1fr));min-width:700px}.hours-weekdays strong{text-align:center;font-size:12px;padding:12px 3px}.hours-day{min-height:135px;border:1px solid #dce4df;padding:12px 8px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:7px;overflow-wrap:anywhere}.hours-day>strong{display:flex;justify-content:space-between}.hours-day>strong span{color:#668774}.hours-day.weekend{background:#f0f1f0}.hours-day.worked{background:#e6f2e9}.hours-day.chosen{box-shadow:inset 0 0 0 2px #23734d}.hours-day.outside{background:#f8faf8}.hours-day small{font-size:11px;color:#58675d}.hours-day b{color:#23734d}.hours-day>span{font-size:12px}.hours-day:hover{background:#edf7ee}
@media(max-width:550px){.hours-summary{flex-direction:column;gap:14px}.hours-summary>div{display:flex;align-items:center;justify-content:space-between}.hours-summary strong{font-size:22px;margin:0}}
/* The optional Excel view follows the reference workbook's color key. */
.excel-table .weekend{background:#ffffcc}.excel-table .type-vacation{background:#339966;color:#fff}.excel-table .type-sick{background:#99ccff;color:#172c20}.excel-table .type-homeoffice{background:#ffcc99;color:#172c20}.excel-table .type-unpaid{background:#f00;color:#fff}

.excel-table+h3{margin-top:28px}.hours-grid,.excel-table{font-variant-numeric:tabular-nums}
/* v2.1: stronger overview colors, scoped away from the existing print/export. */
@media screen {
.view-dashboard .legend .type-vacation,.view-employees .legend .type-vacation,.view-calendar .legend .type-vacation,.absence-strip .type-vacation,.team-calendar .type-vacation{background:#8fcda6!important;color:#124e31!important;--event-edge:#2c8853}
.view-dashboard .legend .type-sick,.view-employees .legend .type-sick,.view-calendar .legend .type-sick,.absence-strip .type-sick,.team-calendar .type-sick{background:#efb2c5!important;color:#73283f!important;--event-edge:#b84970}
.view-dashboard .legend .type-doctor,.view-employees .legend .type-doctor,.view-calendar .legend .type-doctor,.absence-strip .type-doctor,.team-calendar .type-doctor{background:#accbf0!important;color:#234c7c!important;--event-edge:#5485bc}
.view-dashboard .legend .type-unpaid,.view-employees .legend .type-unpaid,.view-calendar .legend .type-unpaid,.absence-strip .type-unpaid,.team-calendar .type-unpaid{background:#cfb7e3!important;color:#54366d!important;--event-edge:#8a60ad}
.view-dashboard .legend .type-homeoffice,.view-employees .legend .type-homeoffice,.view-calendar .legend .type-homeoffice,.absence-strip .type-homeoffice,.team-calendar .type-homeoffice{background:#9dd4d7!important;color:#24575a!important;--event-edge:#3b8b92}
.view-dashboard .legend .type-other,.view-employees .legend .type-other,.view-calendar .legend .type-other,.absence-strip .type-other,.team-calendar .type-other{background:#f3d18e!important;color:#6c4d17!important;--event-edge:#b88834}
.strip-day.has-absence{border-color:#83ae93;background:#f0f7ef}.strip-day.has-absence small{color:#214d34;font-weight:750}.strip-slots{height:17px}.strip-day.has-absence .strip-slots{margin-top:4px}.strip-day.today{outline:2px solid var(--green);outline-offset:1px}
.ribbon-day.has-absence{background:#d2ead7;border-color:#79ac8a;box-shadow:inset 0 -3px #479b64;color:#154b30}.ribbon-day .absence-count{height:17px;line-height:17px;margin:4px auto 0;font-size:10px}.ribbon-day.has-absence .absence-count{min-width:18px;width:fit-content;padding:0 4px;border-radius:10px;background:#28774b;color:#fff;font-weight:750}.ribbon-day[aria-current]{background:#236e48;color:#fff;border-color:#236e48;outline:none;box-shadow:inset 0 0 0 1px #236e48}.ribbon-day[aria-current].has-absence .absence-count{background:#eef7c8;color:#204c30}.ribbon-day[aria-current]:not(.has-absence) .absence-count{color:#dceadb}
.employee-hours-badge{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding:9px 12px;border:1px solid #9abfab;border-radius:9px;background:#e4f1e9;font-size:11px;color:#29513a}.employee-hours-badge:hover{border-color:#28774b;background:#d9eddf}.employee-hours-badge .hours-enabled{font-size:10px;font-weight:650}.employee-hours-badge strong{font-size:15px;white-space:nowrap}.employee-hours-badge .hours-difference{margin-left:auto;font-size:10px}
.test-label{display:inline-block;font-size:12px;letter-spacing:0;vertical-align:middle;background:#eee7ce;color:#6c5b29;border-radius:6px;padding:5px 9px}.team-calendar-scroll{overflow-x:auto;margin-top:20px;padding-bottom:12px}.team-calendar{min-width:840px;border:1px solid #cddbd0;border-radius:14px;overflow:hidden;background:#fff}.team-weekdays,.team-dates,.team-lane{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.team-weekdays{background:#f0f5ed;border-bottom:1px solid #cddbd0}.team-weekdays strong{padding:15px 8px;font-size:12px;text-align:center}.team-weekdays strong:nth-child(n+6){background:#e9eeea;color:#657669}.team-week{min-height:130px;border-bottom:1px solid #d4dfd6;background:repeating-linear-gradient(to right,transparent 0,transparent calc(14.285714% - 1px),#e1e8e2 calc(14.285714% - 1px),#e1e8e2 14.285714%),linear-gradient(to right,transparent 71.428%,#f2f4f1 71.428%)}.team-week:last-child{border-bottom:0}.team-dates{background:repeating-linear-gradient(to right,transparent 0,transparent calc(14.285714% - 1px),#e1e8e2 calc(14.285714% - 1px),#e1e8e2 14.285714%)}.team-date{padding:8px 10px;display:flex;align-items:center;gap:3px;font-size:12px;font-weight:650;min-height:40px}.team-date>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%}.team-date.outside{color:#8a968d}.team-date.is-today>span{background:#28774b;color:white}.team-date:hover{background:#e5eee1}.team-date small{font-weight:400}.team-events{padding:2px 0 14px}.team-lane{gap:3px 0;margin-bottom:5px}.team-event{margin:0 3px;min-height:35px;padding:6px 7px;border-radius:6px;border-left:3px solid var(--event-edge,#3d875b);display:flex;align-items:center;gap:7px;font-size:11px;overflow:hidden;box-shadow:0 1px 1px #21452d0c}.team-event strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.team-event>span{font-size:10px;white-space:nowrap;flex-shrink:0}.team-event:hover{filter:brightness(.96);box-shadow:0 0 0 2px var(--event-edge,#3d875b)}.team-event.continues-before{border-radius:0 6px 6px 0;border-left-style:dashed}.team-event.continues-after{border-radius:6px 0 0 6px;border-right:2px dashed var(--event-edge,#3d875b)}.team-event.continues-before.continues-after{border-radius:0}
.cal-start-1{grid-column-start:1}.cal-start-2{grid-column-start:2}.cal-start-3{grid-column-start:3}.cal-start-4{grid-column-start:4}.cal-start-5{grid-column-start:5}.cal-start-6{grid-column-start:6}.cal-start-7{grid-column-start:7}
.cal-span-1{grid-column-end:span 1}.cal-span-2{grid-column-end:span 2}.cal-span-3{grid-column-end:span 3}.cal-span-4{grid-column-end:span 4}.cal-span-5{grid-column-end:span 5}.cal-span-6{grid-column-end:span 6}.cal-span-7{grid-column-end:span 7}
.team-event.cal-span-1{flex-wrap:wrap;gap:2px;min-height:35px}.team-event.cal-span-1 strong{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.team-event.cal-span-1>span{font-size:9px}.team-lane{align-items:stretch}
}
/* v2.2 quick month selection and a local, copyable employee report. */
.month-picker{position:relative;z-index:5}.month-picker[open]{z-index:20}.month-picker>summary{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:750;list-style:none;text-transform:capitalize;letter-spacing:-.5px;padding:4px 6px;border-radius:8px}.month-picker>summary::-webkit-details-marker{display:none}.month-picker>summary:hover{background:#e5efdf}.month-picker>summary>small{font-size:15px;color:#528365}.month-picker-popup{position:absolute;top:100%;left:0;width:300px;max-width:calc(100vw - 45px);padding:15px;background:white;border:1px solid #b9cdbc;border-radius:12px;box-shadow:0 12px 32px #153b2526}.month-picker-popup label{margin:0 0 12px}.month-picker-popup input{max-width:120px}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.month-picker-grid button{border:1px solid #dce6db;border-radius:6px;background:#f7faf5;color:#244c35;padding:10px 3px;cursor:pointer;font-size:12px}.month-picker-grid button:hover{background:#deefdf}.month-picker-grid button[aria-current]{background:#28774b;color:#fff}.report-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}.report-actions small{color:var(--muted)}.employee-report-dialog{width:min(820px,calc(100% - 32px));max-height:90vh;overflow:auto;border:1px solid #b8cbbd;border-radius:16px;padding:24px;color:var(--ink);background:#fff;box-shadow:0 25px 80px #13332340}.employee-report-dialog::backdrop{background:#142e2466}.employee-report-dialog header{display:flex;justify-content:space-between;gap:18px}.employee-report-dialog h2{font-size:22px}.employee-report-dialog header p{font-size:12px;margin-top:8px}.employee-report-dialog header button{flex-shrink:0}.employee-report-dialog textarea{font-size:13px;line-height:1.6;min-height:270px;white-space:pre-wrap}.employee-report-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.employee-report-dialog footer span{font-size:12px;color:#28774b}
@media(max-width:550px){.month-picker>summary{font-size:20px}.employee-report-dialog{padding:16px}.employee-report-dialog footer{flex-wrap:wrap}}
@media print{.report-actions,.employee-report-dialog{display:none!important}}
/* v2.2.1 compact employee header only. */
.topline-main{display:flex;align-items:center;gap:14px;min-width:0}.topline-main .breadcrumb{min-width:0}.employee-detail .topline{margin-bottom:12px;padding-bottom:10px;gap:12px}.employee-detail .topline-main{flex:1}.employee-detail .breadcrumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-back{white-space:nowrap;font-weight:650;color:var(--green)}.employee-detail .topline-date{white-space:nowrap;flex-shrink:0}.employee-detail .employee-header{padding:14px 18px;gap:11px}.employee-detail .employee-identity{gap:11px}.employee-detail .employee-identity .avatar{width:42px;height:42px;font-size:22px;flex-shrink:0}.employee-detail .employee-identity h1{font-size:26px;line-height:1.2}.employee-detail .employee-identity .eyebrow{font-size:10px;margin-bottom:4px}.employee-detail .header-balances strong{font-size:27px}.employee-detail .employee-details{padding-top:10px}.employee-quick-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 12px}.employee-quick-actions .report-actions{margin:0;gap:10px}.employee-quick-actions .button{min-height:36px;padding:8px 12px;font-size:12px}.employee-quick-actions .report-actions small{font-size:10px}.employee-detail .calendar-toolbar{margin:16px 0 10px}.employee-detail .calendar-toolbar .eyebrow{margin-bottom:3px}
@media(min-width:650px){.employee-detail .employee-header{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:550px){.employee-detail .topline{font-size:10px}.employee-detail .topline-main{gap:8px}.employee-detail .topline-date{display:none}.employee-detail .employee-header{padding:13px}.employee-detail .employee-identity h1{font-size:23px}.employee-detail .header-balances{gap:26px}.employee-quick-actions{gap:8px}.employee-quick-actions .button{font-size:11px;padding:8px 10px}.employee-quick-actions .report-actions small{display:none}}
