*{box-sizing:border-box}body{margin:0;background:#f6f7f9;color:#202b3b;font-family:Segoe UI,Arial,sans-serif;font-size:14px}main{max-width:1240px;margin:auto;padding:0 32px}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid #dce2e8;border-radius:8px;background:white;color:#344054;padding:10px 16px}button:hover{background:#eef3f7}button:focus-visible,a:focus-visible{outline:3px solid #7abfac;outline-offset:3px}header{height:90px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e3e6eb}.brand{display:flex;gap:12px;align-items:center;color:#202b3b;text-decoration:none;font-size:22px;font-weight:750}.brand-icon{background:#18775f;color:white;width:38px;height:38px;display:grid;place-items:center;border-radius:10px;font-size:30px}.brand-description{font-size:14px;font-weight:400;border-left:1px solid #d8dee4;padding-left:16px;margin-left:5px;color:#697586}.badge{color:#6b7888;font-size:12px}.heading{display:flex;align-items:center;justify-content:space-between;padding:38px 0 28px}.eyebrow{font-size:11px;letter-spacing:2px;color:#18775f;font-weight:700;margin:0 0 12px}h1{font-size:34px;letter-spacing:-1px;margin:0 0 10px}h2{font-size:18px;margin:0}.muted{color:#778190}.heading .muted{margin:0}.primary{background:#18775f;color:white;border-color:#18775f;font-weight:600}.primary:hover{background:#115d49}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stats article{background:white;border:1px solid #e4e8ed;border-radius:12px;padding:22px 24px}.stats span,.stats small{display:block;color:#798391}.stats strong{display:block;font-size:29px;font-weight:650;margin:12px 0 8px}.stats small{font-size:12px}.panel{background:white;border:1px solid #e1e6ec;border-radius:12px;overflow:hidden}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 22px;border-bottom:1px solid #e8ecf0}.month-controls{display:flex;align-items:center;gap:10px}.month-controls h2{min-width:165px;text-align:center;text-transform:capitalize}.month-controls button{padding:6px 12px}.month-controls input{width:145px;padding:6px;border:1px solid #dce2e8;border-radius:6px;color:#576474}.tabs{display:flex;background:#f2f4f7;padding:4px;border-radius:8px}.tabs button{border:0;background:transparent;padding:8px 12px;font-size:13px}.tabs button.active{background:white;box-shadow:0 1px 4px #0001;color:#18775f;font-weight:600}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{background:#fafbfc;text-align:right;color:#7a8492;font-size:12px}.weekdays span{padding:13px 17px}.day{min-height:111px;border:0;border-top:1px solid #edf0f3;border-right:1px solid #edf0f3;border-radius:0;padding:12px;text-align:left;display:flex;flex-direction:column;gap:10px;position:relative}.day:nth-child(7n){border-right:0}.day.weekend{background:#fafbfc}.day.outside{color:#b8bfc9;background:#fcfcfd}.day-number{align-self:flex-end;width:27px;height:27px;display:grid;place-items:center}.day.current .day-number{border-radius:50%;background:#18775f;color:white}.entry-chip{border-left:3px solid #288d72;background:#eaf5ef;color:#22634e;border-radius:4px;padding:7px 8px;font-size:12px;line-height:1.6}.entry-chip strong{display:block}.calendar-footer{display:flex;justify-content:space-between;gap:12px;padding:18px 22px;color:#86909e;font-size:12px;border-top:1px solid #edf0f3}.calendar-footer i{display:inline-block;background:#288d72;width:7px;height:7px;border-radius:50%;margin-right:6px}footer{display:flex;justify-content:space-between;margin:25px 0;color:#98a0ac;font-size:10px;letter-spacing:1px}footer span{letter-spacing:0}dialog{border:0;border-radius:16px;padding:28px;width:510px;max-width:calc(100% - 28px);box-shadow:0 20px 80px #17233433}dialog::backdrop{background:#1a273a70}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dialog-heading button{border:0;padding:0 8px;font-size:26px}label{display:block;font-weight:600;font-size:13px;margin-bottom:18px}input,textarea{width:100%;margin-top:8px;border:1px solid #d9dfe6;border-radius:8px;padding:11px;background:white;color:#253246}textarea{resize:vertical}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.duration{color:#18775f;margin-top:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.danger{color:#b93a3a;margin-right:auto}#form-error,#status{color:#b93a3a}#status:empty{display:none}.report-actions{display:flex;gap:10px;align-items:center;padding:20px}.report-actions p{margin-right:auto;color:#778190}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:16px 22px;border-bottom:1px solid #e8ecf0}th{background:#f8fafb;font-size:12px;color:#627080}td:last-child{white-space:pre-wrap;overflow-wrap:anywhere;max-width:430px}tfoot th{color:#18775f}.report-note{padding:0 22px;font-size:12px}[hidden]{display:none!important}@media(max-width:900px){.toolbar{flex-wrap:wrap}.month-controls{flex-wrap:wrap}.day{min-height:100px;padding:6px}.entry-chip{font-size:10px;padding:4px}.calendar-footer{flex-wrap:wrap}}@media(max-width:600px){main{padding:0 12px}header{height:70px}.badge,.brand-description{display:none}h1{font-size:26px}.heading{gap:12px}.heading .primary{font-size:12px;padding:10px}.stats{gap:8px}.stats article{padding:14px 10px}.stats strong{font-size:20px}.stats span,.stats small{font-size:10px}.month-controls h2{min-width:130px}.toolbar{padding:14px}.day{min-height:90px;padding:3px}.entry-chip{font-size:9px}.weekdays span{padding:10px}.report-actions{flex-wrap:wrap}.report-actions p{width:100%}.dialog-actions{flex-wrap:wrap}}@media print{body{background:white}main{max-width:none;padding:0}header,.heading button,.stats,.toolbar,.report-actions,#calendar-view,footer,#status,dialog,.report-note{display:none!important}.heading{padding:0 0 20px}h1{font-size:24px}.panel{border:0}#table-view{display:block!important}th,td{padding:10px;font-size:11px}thead{display:table-header-group}tr{break-inside:avoid}}

/* Compact calendar filling the viewport. */
body{height:100vh;height:100dvh;overflow:hidden}
main{max-width:none;height:100%;padding:0 18px 14px;display:flex;flex-direction:column;gap:10px}
header{height:52px;min-height:52px;flex:none}.brand{font-size:18px}.brand-icon{width:30px;height:30px;font-size:25px}.brand-description{font-size:12px}
.stats{display:flex;gap:24px;margin:0;padding:4px 10px;flex:none}.stats article{display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;border-radius:0}.stats span{font-size:12px}.stats strong{font-size:17px;margin:0}.stats small{display:none}
.panel{flex:1;min-height:0;display:flex;flex-direction:column}.toolbar{padding:10px 14px;flex:none}.toolbar-actions{display:flex;gap:8px}.toolbar-actions button{padding:8px 12px;font-size:12px}.month-controls h2{font-size:16px}.month-controls input{margin:0}
#calendar-view{flex:1;min-height:0;display:flex;flex-direction:column}.weekdays{flex:none}.weekdays span{padding:8px 14px}.calendar{flex:1;min-height:0}.day{min-height:0;overflow:auto;padding:7px 10px;gap:5px}.entry-chip{padding:4px 7px;flex:none}.calendar-footer{padding:9px 14px;flex:none;font-size:11px}#status{flex:none;margin:0}
#report-dialog{width:1180px;max-width:calc(100vw - 48px);height:85vh;height:85dvh;max-height:calc(100dvh - 32px);padding:24px}#report-dialog[open]{display:flex;flex-direction:column}#report-dialog .dialog-heading{flex:none;margin-bottom:10px}#table-view{display:flex;flex-direction:column;flex:1;min-height:0}.report-actions{padding:8px 0 18px;flex:none}.table-scroll{flex:1;min-height:0;overflow:auto}thead th{position:sticky;top:0;z-index:1}.report-note{padding:0;flex:none;font-size:12px}
@media(max-width:600px){main{padding:0 6px 6px;gap:6px}header{height:42px;min-height:42px}.stats{gap:12px;padding:2px 4px;justify-content:space-between}.stats article{display:block}.stats span{font-size:9px}.stats strong{font-size:14px}.toolbar{padding:7px;gap:8px}.month-controls{gap:5px;width:100%}.month-controls h2{min-width:120px}.month-controls input{width:122px;padding:4px}.month-controls button{padding:5px 9px}.toolbar-actions{margin-left:auto}.toolbar-actions button{padding:6px 9px}.day{padding:3px;gap:2px;min-height:0}.day-number{width:22px;height:22px;font-size:11px}.entry-chip{font-size:9px;padding:3px;line-height:1.4}.calendar-footer{padding:7px;font-size:10px}.calendar-footer span:first-child{display:none}#report-dialog{max-width:calc(100vw - 12px);height:92dvh;padding:14px}.report-actions{gap:6px}.report-actions p{margin:0 0 6px}.report-actions button{padding:8px;font-size:12px}}
@media print{body{height:auto;overflow:visible}main,#entry-dialog{display:none!important}#report-dialog[open]{display:block!important;position:static;width:100%;max-width:none;height:auto;max-height:none;margin:0;padding:0;box-shadow:none;border:0;overflow:visible}#report-dialog .dialog-heading{display:block;margin-bottom:18px}#report-close,.eyebrow{display:none!important}#table-view,.table-scroll{display:block;overflow:visible;height:auto}thead th{position:static}#report-dialog::backdrop{background:transparent}}
select{display:block;width:100%;margin-top:8px;border:1px solid #d9dfe6;border-radius:8px;padding:11px;background:white;color:#253246;font:inherit}#timeoff-field>span{display:block;margin-top:7px;font-size:12px;font-weight:400}.timeoff-chip{background:#fff3df;border-left-color:#d49630;color:#986719}.stats{flex-wrap:wrap}#entry-dialog{max-height:calc(100dvh - 24px);overflow:auto}
.day-record{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid #e8ecf0}.day-record>div{min-width:0}.day-record p{margin:6px 0 0;color:#778190;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.day-record button{flex:none}#day-dialog{width:650px;max-height:85dvh;overflow:auto}#day-add{margin-top:18px}.day .entry-chip{width:100%}@media print{#day-dialog{display:none!important}}
/* One compact row per calendar entry. */
.day{gap:3px;padding:5px 7px}.day-number{height:23px;width:23px;flex:none;font-size:12px}.day .entry-chip{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 6px;border-left-width:2px;border-radius:3px;font-size:11px;line-height:1.25;min-height:20px}.entry-chip strong{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}.chip-duration{flex:none;white-space:nowrap;font-size:10px;opacity:.85;font-variant-numeric:tabular-nums}@media(max-width:600px){.day{padding:3px 2px;gap:2px}.day .entry-chip{padding:3px 2px;gap:2px;font-size:9px;min-height:17px}.chip-duration{font-size:8px}}
.week-summary{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 12px;background:#f0f5f3;border-top:1px solid #dde8e2;color:#61736b;font-size:11px;line-height:1.3}.week-totals{display:flex;gap:18px;font-variant-numeric:tabular-nums}.week-totals strong{color:#22634e;font-weight:600}.week-totals>span{color:#986719}.day:nth-child(7n){border-right:1px solid #edf0f3}.day:nth-child(8n + 7){border-right:0}@media(max-width:600px){.week-summary{padding:4px 6px;font-size:9px;gap:4px}.week-totals{gap:8px}}
/* Weekly summary column after Sunday. */
.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(110px,.9fr)}.weekdays .summary-heading{background:#f0f5f3;color:#22634e;text-align:left;padding-left:10px}.week-summary{grid-column:auto;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;min-height:0;overflow:auto;padding:12px 10px;border-top:1px solid #dde8e2}.week-label{font-size:10px;color:#77877f}.week-totals{flex-direction:column;gap:8px;font-size:12px}.day:nth-child(8n + 7){border-right:1px solid #edf0f3}@media(max-width:900px){.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(95px,.9fr)}.week-summary{padding:8px 6px;gap:8px}.week-totals{font-size:10px}}@media(max-width:600px){.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) 76px}.weekdays span{font-size:10px;padding:8px 2px}.weekdays .summary-heading{font-size:9px;padding-left:4px}.week-summary{padding:6px 4px;gap:6px}.week-label{font-size:8px}.week-totals{font-size:9px;gap:6px}.day .entry-chip{flex-wrap:wrap;gap:1px}.chip-duration{width:100%}}
/* Higher contrast for text, controls and calendar boundaries. */
:root{--ink:#142033;--muted:#475569;--line:#9aa9b9;--green:#09543f}
body{background:#e7edf3;color:var(--ink)}header{border-bottom-color:var(--line)}.brand{color:var(--ink)}.brand-icon,.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#063c2d;border-color:#063c2d}.brand-description,.badge,.muted,.stats span,.stats small,.report-actions p,.day-record p,.calendar-footer,footer{color:var(--muted)}.stats strong{color:var(--ink)}.eyebrow,.duration{color:var(--green)}
.panel{border-color:var(--line);box-shadow:0 2px 8px #1420330c}.toolbar{background:#fff;border-bottom-color:var(--line)}button{border-color:#8998aa;color:var(--ink)}button:hover{background:#dce6ef}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #075fc0;outline-offset:2px}button:disabled{opacity:.65;cursor:wait}input,textarea,select,.month-controls input{border-color:#8998aa;color:var(--ink)}input::placeholder,textarea::placeholder{color:#536174;opacity:1}
.weekdays{background:#24364c;color:#fff;font-weight:600}.weekdays .summary-heading{background:var(--green);color:#fff}.day,.day:nth-child(7n),.day:nth-child(8n + 7){border-color:#b1bdca;color:var(--ink)}.day.weekend{background:#e6edf5}.day.outside{background:#f0f3f6;color:#576579}.day.outside .day-number{color:#576579}.day:hover{background:#dce9f3}.day.current{background:#edf7f2;box-shadow:inset 0 0 0 2px var(--green)}.day.current .day-number{background:var(--green);color:#fff;font-weight:700}.day-number{font-weight:600}
.day .entry-chip{background:#c9e9db;color:#083f2e;border-left-color:#096143}.day .timeoff-chip{background:#ffe1a3;color:#643900;border-left-color:#8b5100}.chip-duration{opacity:1}.week-summary{background:#d8eade;border-color:#8cae98;border-left:2px solid #789c84;color:#173d29}.week-label{color:#344c3e}.week-totals strong{color:#103f29}.week-totals>span{color:#684000}
th{background:#dce5ef;color:#26374c}th,td,.day-record{border-color:#adbaca}tbody tr:nth-child(even){background:#f0f4f8}tfoot th{background:#d8eade;color:#103f29}dialog{color:var(--ink);border:1px solid #8998aa}dialog::backdrop{background:#10203399}.danger,#form-error,#status{color:#9d2020}.danger{border-color:#b96969}.danger:hover{background:#ffe6e6}.calendar-footer{border-top-color:var(--line)}
@media print{body{background:white}thead th,tfoot th{background:#f0f0f0;color:#111}tbody tr:nth-child(even){background:white}dialog{border:0}}
.stats{gap:12px 22px}#overtime-counter{margin-left:auto;padding:5px 10px;border:1px solid #789c84;border-radius:6px;background:#d8eade}#overtime-counter>span{color:#173d29;font-weight:600}#overtime-counter .balance-scope{font-size:10px;font-weight:400;color:#344c3e}#overtime-balance{color:#09543f}#overtime-balance.negative-balance{color:#9d2020}.week-totals .week-overtime{color:#09543f;border-top:1px solid #8cae98;padding-top:6px}@media(max-width:600px){#overtime-counter{margin-left:0;padding:4px 7px}#overtime-counter .balance-scope{font-size:9px}.week-totals .week-overtime{padding-top:4px}}
/* Compact weekly totals. */
.week-summary{padding:6px 8px;gap:5px;line-height:1.2}.week-label{font-size:10px;font-weight:600}.week-totals{gap:3px;font-size:11px}.week-totals .week-overtime{padding-top:3px}@media(max-width:600px){.week-summary{padding:4px;gap:4px}.week-label{font-size:8px}.week-totals{font-size:9px;gap:2px}.week-totals .week-overtime{padding-top:2px}}
/* Strong contrast across the application. */
body{background:#cbd5e1;color:#0b1220}main{padding-top:0}header{background:#14243a;color:#fff;margin:0 -18px;padding:0 18px;border-bottom:2px solid #071426}.brand,.brand-description{color:#fff}.brand-description{border-left-color:#8494a9}.brand-icon{background:#08734f;border:1px solid #63d6aa;color:#fff}.stats{background:#fff;border:1px solid #64748b;border-radius:6px;padding:8px 12px}.stats span,.stats small{color:#26364a}.stats strong{color:#081426}.panel{border:2px solid #52647b;box-shadow:none}.toolbar{background:#d9e2ec;border-bottom:2px solid #52647b}.month-controls h2{color:#091a30;font-weight:750}.weekdays{background:#122740;color:#fff}.weekdays .summary-heading{background:#063f2e;color:#fff}.weekdays span{border-right:1px solid #778ca5}.day,.day:nth-child(7n),.day:nth-child(8n + 7){border-color:#7f91a8;color:#0b1220;background:#fff}.day.weekend{background:#dce5ef}.day.outside{background:#edf1f5}.day.outside .day-number{color:#4c5c70}.day-number{font-weight:750}.day:hover{background:#c8dcf1}.day.current{background:#dcf3e8;box-shadow:inset 0 0 0 3px #064d34}.day.current .day-number{background:#064d34;color:#fff}.day .entry-chip{background:#0b5e40;color:#fff;border-left-color:#053320}.day .timeoff-chip{background:#854900;color:#fff;border-left-color:#4f2a00}.week-summary{background:#c7dfd0;border-top-color:#668874;border-left:2px solid #476b56}.week-label{color:#173424;font-weight:700}.week-totals strong,.week-totals .week-overtime{color:#073e25}.week-totals>span{color:#4b2e00}.week-totals .week-overtime{border-top-color:#668874}.calendar-footer{background:#e1e8ef;color:#23354b;border-top:1px solid #64748b}.calendar-footer i{background:#064d34}button{border-color:#53657c;color:#0c213b;background:#fff;font-weight:600}button:hover{background:#c5d8ec;border-color:#263f5e}.primary{background:#064d34;border-color:#033922;color:#fff}.primary:hover{background:#033922;border-color:#033922}.muted,.day-record p,.report-actions p{color:#34465d}.eyebrow,.duration{color:#064d34}input,textarea,select,.month-controls input{border:1px solid #53657c;color:#0b1220;background:#fff}input::placeholder,textarea::placeholder{color:#495a70}.danger{color:#8e1111;border-color:#9e3030;background:#fff4f4}dialog{border:2px solid #425671;box-shadow:0 20px 80px #07142666}dialog::backdrop{background:#071426b8}.dialog-heading{border-bottom:1px solid #718299;padding-bottom:14px}.day-record,th,td{border-color:#8a9bb0}thead th{background:#17324f;color:#fff}tbody tr:nth-child(even){background:#e5edf5}tfoot th{background:#c7dfd0;color:#073e25}#overtime-counter{background:#064d34;border-color:#033922}#overtime-counter>span,#overtime-counter .balance-scope,#overtime-balance{color:#fff}#overtime-balance.negative-balance{color:#ffe08a}.report-actions{flex-wrap:wrap}@media(max-width:600px){header{margin:0 -6px;padding:0 10px}.stats{padding:6px;gap:8px 12px}}@media print{body{background:#fff}thead th,tfoot th{background:#eee;color:#111}tbody tr:nth-child(even){background:#fff}dialog{border:0;box-shadow:none}}
.header-actions{display:flex;gap:8px;align-items:center}.header-actions form{margin:0}.header-actions button{font-size:12px;padding:7px 12px;background:#fff;color:#14243a}.login-page{height:auto;min-height:100dvh;overflow:auto;display:grid;place-items:center;padding:24px;background:#14243a}.login-card{width:100%;max-width:420px;background:#fff;border:2px solid #53657c;border-radius:14px;padding:30px;box-shadow:0 20px 80px #07142666}.login-card h1{font-size:24px;margin-top:20px}.login-card .primary{width:100%;margin-top:6px}.login-error{color:#8e1111}.header-actions input[type=hidden]{display:none}@media(max-width:600px){.header-actions button{padding:6px 8px;font-size:10px}.login-card{padding:22px}.login-page{padding:14px}}
/* Light appearance with gently stronger contrast. */
body{background:#f1f4f7;color:#202b3b}header{background:transparent;color:#202b3b;border-bottom:1px solid #cbd5df}.brand{color:#202b3b}.brand-description{color:#536174;border-left-color:#c3ccd6}.brand-icon{background:#18775f;border:0;color:#fff}.header-actions button{background:#fff;color:#344054;border-color:#b7c3cf}.stats{background:transparent;border:0;border-radius:0;padding:4px 10px}.stats span,.stats small{color:#536174}.stats strong{color:#202b3b}.panel{border:1px solid #bac6d2;box-shadow:0 2px 8px #24364c08}.toolbar{background:#fff;border-bottom:1px solid #c5d0db}.month-controls h2{color:#202b3b;font-weight:650}.weekdays{background:#e9eef4;color:#42546a}.weekdays span{border-right:1px solid #d0dae4}.weekdays .summary-heading{background:#deece4;color:#20513a}.day,.day:nth-child(7n),.day:nth-child(8n + 7){border-color:#c8d2dd;color:#202b3b;background:#fff}.day.weekend{background:#f0f4f8}.day.outside{background:#f7f9fb}.day.outside .day-number{color:#758397}.day-number{font-weight:600}.day:hover{background:#eaf2f8}.day.current{background:#f0f9f4;box-shadow:inset 0 0 0 2px #298569}.day.current .day-number{background:#18775f;color:#fff}.day .entry-chip{background:#dcefe5;color:#15543b;border-left-color:#288d72}.day .timeoff-chip{background:#ffedc9;color:#714600;border-left-color:#b88226}.week-summary{background:#e7f1eb;border-top-color:#b8cfc0;border-left:1px solid #a9c6b4}.week-label{color:#496253;font-weight:600}.week-totals strong,.week-totals .week-overtime{color:#20513a}.week-totals>span{color:#79500f}.week-totals .week-overtime{border-top-color:#b8cfc0}.calendar-footer{background:#fafbfd;color:#536174;border-top:1px solid #c5d0db}.calendar-footer i{background:#288d72}button{background:#fff;border-color:#b1becb;color:#344054;font-weight:500}button:hover{background:#eaf0f6;border-color:#879caf}.primary{background:#18775f;border-color:#18775f;color:#fff;font-weight:600}.primary:hover{background:#115d49;border-color:#115d49}.muted,.day-record p,.report-actions p{color:#536174}.eyebrow,.duration{color:#18775f}input,textarea,select,.month-controls input{border-color:#aebccb;color:#253246;background:#fff}input::placeholder,textarea::placeholder{color:#637287}.danger{color:#a12a2a;border-color:#d0a0a0;background:#fff}.danger:hover{background:#fff0f0}dialog{border:1px solid #b7c3cf;box-shadow:0 20px 80px #17233433}dialog::backdrop{background:#1a273a70}.dialog-heading{border-bottom:1px solid #d7dfe8}.day-record,th,td{border-color:#ccd6e0}thead th{background:#e9eef4;color:#42546a}tbody tr:nth-child(even){background:#f5f8fb}tfoot th{background:#e7f1eb;color:#20513a}#overtime-counter{background:#e0efe6;border-color:#9dbdab}#overtime-counter>span,#overtime-balance{color:#20513a}#overtime-counter .balance-scope{color:#496253}#overtime-balance.negative-balance{color:#a12a2a}.login-page{background:#e9eef4}.login-card{border:1px solid #bac6d2;box-shadow:0 12px 40px #17233418}@media print{body{background:#fff}thead th,tfoot th{background:#eee;color:#111}tbody tr:nth-child(even){background:#fff}dialog{border:0;box-shadow:none}}
/* Subtle contrast increase while preserving the light backgrounds. */
body,.brand,.stats strong,.month-controls h2{color:#172438}.brand-description,.stats span,.stats small,.muted,.day-record p,.report-actions p,.calendar-footer{color:#405269}header{border-bottom-color:#b2bfce}.panel{border-color:#9eafc1}.toolbar,.calendar-footer{border-color:#afbdcd}.weekdays{color:#33465e}.weekdays span{border-right-color:#b9c7d6}.day,.day:nth-child(7n),.day:nth-child(8n + 7){color:#172438;border-color:#b2c1d1}.day.outside .day-number{color:#637389}.day .entry-chip{color:#10472f;border-left-color:#167357}.day .timeoff-chip{color:#633a00;border-left-color:#9d681c}.brand-icon,.primary,.day.current .day-number{background:#12664e}.primary{border-color:#12664e}.primary:hover{background:#0d513d;border-color:#0d513d}.day.current{box-shadow:inset 0 0 0 2px #1b765b}.eyebrow,.duration{color:#12664e}.weekdays .summary-heading,.week-totals strong,.week-totals .week-overtime,#overtime-counter>span,#overtime-balance{color:#163f2a}.week-label,#overtime-counter .balance-scope{color:#3c5547}.week-summary{border-top-color:#a3beae;border-left-color:#8eaf9c}.week-totals>span{color:#67410a}.week-totals .week-overtime{border-top-color:#a3beae}button,.header-actions button{color:#263a53;border-color:#9dadc0}.primary,.primary:hover{color:#fff}input,textarea,select,.month-controls input{color:#1c2c42;border-color:#99aabd}input::placeholder,textarea::placeholder{color:#53647a}.day-record,th,td{border-color:#b6c4d3}thead th{color:#33465e}tfoot th{color:#163f2a}.danger,.login-error,#form-error,#status{color:#942222}.danger{border-color:#bf8e8e}#overtime-balance.negative-balance{color:#942222}dialog,.login-card{border-color:#a5b5c7}.dialog-heading{border-bottom-color:#c0ccda}@media print{body{color:#111}thead th,tfoot th{color:#111}}
/* Readable text on the light calendar. */
body{color:#101b2b}.brand,.month-controls h2,.stats strong{color:#101b2b}.brand-description,.stats span,.stats small,.muted,.report-actions p,.day-record p,.calendar-footer{color:#293b52}.stats span{font-size:13px}.weekdays{color:#22354d;font-size:13px;font-weight:650}.day-number{font-size:14px;font-weight:650}.day.outside .day-number{color:#526278}.day .entry-chip{font-size:13px;line-height:1.35;min-height:25px;padding:4px 6px;color:#103d2a}.entry-chip strong{font-weight:650}.chip-duration{font-size:12px;font-weight:600;opacity:1}.day .timeoff-chip{color:#573100}.week-label{font-size:12px;color:#263f30}.week-totals{font-size:13px;gap:5px}.week-totals strong,.week-totals .week-overtime{color:#123d25}.week-totals>span{color:#583500}.week-summary{gap:7px}.weekdays .summary-heading,#overtime-counter>span,#overtime-balance{color:#123d25}#overtime-counter .balance-scope{font-size:11px;color:#263f30}.calendar-footer{font-size:12px}.day-record p,.report-note{font-size:13px}thead th{font-size:13px;color:#22354d}button,.header-actions button{color:#22354d}.primary,.primary:hover{color:#fff}.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(145px,.95fr)}@media(max-width:900px){.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) minmax(125px,.95fr)}.day .entry-chip{font-size:11px}.chip-duration{font-size:10px}.week-totals{font-size:12px}.week-label{font-size:11px}}@media(max-width:600px){.weekdays,.calendar{grid-template-columns:repeat(7,minmax(0,1fr)) 100px}.stats span{font-size:11px}.weekdays span{font-size:11px}.weekdays .summary-heading{font-size:10px}.day-number{font-size:12px}.day .entry-chip{font-size:10px;min-height:22px;padding:3px 2px}.chip-duration{font-size:10px}.week-label{font-size:10px}.week-totals{font-size:11px;gap:4px}.calendar-footer{font-size:11px}.week-summary{gap:6px}}@media print{thead th{color:#111;font-size:11px}}
/* Fit weekly summaries without an inner scrollbar. */
.week-summary{overflow:hidden;padding:5px 8px;gap:4px;line-height:1.15}.week-totals{gap:3px;line-height:1.2}.week-totals .week-overtime{padding-top:3px}.week-label{flex:none}@media(max-height:800px){.week-summary{padding-top:3px;padding-bottom:3px;gap:3px}.week-totals{gap:2px;font-size:12px}.week-label{font-size:11px}.week-totals .week-overtime{padding-top:2px}}@media(max-width:600px){.week-summary{padding:3px 4px;gap:3px}.week-totals{font-size:11px;gap:2px}.week-label{font-size:10px}}
/* Smaller weekly summary text to fit every value. */
.week-summary{padding:4px 7px;gap:3px;line-height:1.1}.week-label{font-size:10px;line-height:1.15}.week-totals{font-size:11px;gap:2px;line-height:1.15}.week-totals .week-overtime{padding-top:2px}@media(max-height:800px){.week-summary{padding-top:3px;padding-bottom:3px;gap:2px}.week-label{font-size:10px}.week-totals{font-size:10px;gap:2px}}@media(max-width:600px){.week-summary{padding:3px 4px;gap:2px}.week-label{font-size:9px}.week-totals{font-size:10px;gap:2px}}
/* Black weekly totals and slightly smaller calendar entries. */
.week-summary,.week-label,.week-totals strong,.week-totals>span,.week-totals .week-overtime{color:#000}.day .entry-chip{font-size:12px;min-height:23px;padding:3px 6px}.chip-duration{font-size:11px}@media(max-width:900px){.day .entry-chip{font-size:10px}.chip-duration{font-size:9px}}@media(max-width:600px){.day .entry-chip{font-size:9px;min-height:20px;padding:3px 2px}.chip-duration{font-size:9px}}
/* Clear, evenly spaced weekly summaries. */
.week-summary{padding:7px 9px;gap:5px;line-height:1.25}.week-label{font-size:11px;line-height:1.25;font-weight:400;color:#111}.week-totals{font-size:12px;line-height:1.3;gap:3px;color:#111}.week-totals strong,.week-totals>span,.week-totals .week-overtime{font-weight:400;color:#111}.week-totals .week-overtime{padding-top:4px;border-top:1px solid #b8cfc0}@media(max-height:800px){.week-summary{padding:5px 8px;gap:4px}.week-label{font-size:11px}.week-totals{font-size:12px;line-height:1.2;gap:2px}.week-totals .week-overtime{padding-top:3px}}@media(max-width:600px){.week-summary{padding:5px 4px;gap:4px}.week-label{font-size:10px}.week-totals{font-size:11px;line-height:1.2;gap:2px}}
.week-totals b{font-weight:700;color:#111}
/* More room for the daily work description. */
#entry-dialog #note{min-height:180px;line-height:1.5;resize:vertical}@media(max-width:600px){#entry-dialog #note{min-height:150px}}
.merged-date{vertical-align:middle;background:#fff;font-weight:600;white-space:nowrap}
