body{background:#f5f5f3;color:#272b30;font-family:Arial,"Segoe UI",sans-serif;font-size:14px;line-height:1.5}
.container{max-width:1180px}h1{font-size:1.75rem;font-weight:600;letter-spacing:0}h2{font-size:1rem;font-weight:600;margin-bottom:.65rem}a{color:#245d85;text-underline-offset:3px}label{font-size:.875rem}
.topbar{background:#fff;border-bottom:1px solid #d9dde0;padding:.7rem 0}.topbar>.container{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:1.2rem;color:#252b31;text-decoration:none;font-weight:600;font-size:1rem}.brand small{border-left:1px solid #c9cdd1;padding-left:1.2rem;font-weight:400;color:#657078;font-size:.85rem}.account{display:flex;gap:1rem;align-items:center;font-size:.85rem}
.nav-strip{background:#fff;border-bottom:1px solid #cdd2d6}.nav-strip>.container{display:flex;gap:.25rem;flex-wrap:wrap;padding:0 .75rem}.nav-strip a{padding:.65rem .75rem;text-decoration:none;font-size:.85rem;color:#515961;border-bottom:2px solid transparent}.nav-strip a:hover{background:#f2f4f5;color:#20282e}.nav-strip a[aria-current=page]{border-bottom-color:#245d85;color:#245d85;font-weight:600}
.eyebrow{font-size:.75rem;font-weight:600;color:#616e78}.auth-card{max-width:490px;margin:3rem auto;background:white;padding:2rem;border:1px solid #cdd2d6;border-radius:4px}.auth-card h1{font-size:1.5rem}.panel{background:#fff;padding:1rem 1.15rem;border:1px solid #d1d5d8;border-radius:4px}.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1.2rem}.page-heading p{margin-bottom:0}.page-heading h1{margin-bottom:.4rem}.page-heading>div:last-child{font-size:.85rem}
.btn{font-size:.875rem;border-radius:3px;padding:.45rem .8rem}.btn-sm{font-size:.8rem;padding:.35rem .65rem}.btn-primary{background:#2b6083;border-color:#2b6083}.btn-primary:hover,.btn-primary:focus{background:#224e6b;border-color:#224e6b}.btn-outline-primary{color:#2b6083;border-color:#7e9eb5}.btn-outline-primary:hover{background:#2b6083;border-color:#2b6083}.btn-outline-secondary{color:#404b54;border-color:#b7bec4}.btn-outline-secondary:hover{background:#edf0f2;color:#20292f;border-color:#7e8992}.form-control,.form-select{border-radius:3px;font-size:.875rem;border-color:#bac2c8}.form-control:focus,.form-select:focus{border-color:#3e7396;box-shadow:0 0 0 .15rem #3e739624}input[type=checkbox]{accent-color:#2b6083;width:16px;height:16px;vertical-align:middle}input:focus-visible,summary:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #2b6083;outline-offset:3px}.status{display:inline-block;border-radius:3px;padding:.15rem .45rem;font-size:.75rem;font-weight:500;background:#e9edf0;color:#485d6b}.status-approved{background:#e4f0e9;color:#2f6248}.status-submitted{background:#e5edf5;color:#2d577f}.status-returned,.status-correction{background:#fff0d6;color:#86570d}
.weekly-editor{max-width:750px}.weekly-toolbar{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;margin-bottom:.8rem}.shared-hours{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}.shared-hours label{display:flex;gap:.4rem;align-items:center;font-size:.8rem}.shared-hours input{width:112px}.weekly-days{max-width:510px;margin-bottom:.7rem}.weekly-labels,.weekly-day{display:grid;grid-template-columns:minmax(140px,1fr) 125px 125px;gap:.65rem;align-items:center}.weekly-labels{font-size:.75rem;color:#67727b;padding:.1rem .5rem .35rem}.weekly-day{padding:.3rem .5rem;border-top:1px solid #eceeef}.weekly-day>label{margin:0}.weekday-choice{display:flex;gap:.55rem;align-items:center;font-size:.85rem}.weekday-choice input[type=hidden]{display:none}.weekly-day.is-off{color:#7e878d}.weekly-day.is-off .form-control{background:#f4f5f5;color:#7b858e;border-color:#e2e5e7}.weekly-breaks{font-size:.8rem;margin-bottom:.7rem}.weekly-breaks label{font-size:.8rem}.weekly-breaks input{max-width:150px}.weekly-breaks summary,.other-plan-options summary{cursor:pointer;color:#4d606d}.plan-actions{display:flex;align-items:center;gap:1rem;margin-top:.8rem;flex-wrap:wrap}.plan-actions>span{max-width:470px}.other-plan-options{margin-top:.8rem;padding-top:.7rem;border-top:1px solid #e4e7e9;font-size:.85rem}
.month-days{background:#fff;border:1px solid #cdd2d6;border-radius:4px;overflow:hidden}.days-heading,.day-summary{display:grid;grid-template-columns:1.3fr 1fr 1.1fr 1fr;gap:.7rem}.days-heading{padding:.6rem .9rem;background:#eef0f2;font-size:.75rem;color:#535f69;border-bottom:1px solid #cdd2d6;font-weight:600}.day-card{background:#fff;border-bottom:1px solid #e1e5e7;overflow:hidden}.day-card:last-child{border-bottom:0}.day-card:nth-child(odd){background:#fafbfb}.day-card>details>summary{position:relative;padding:.6rem 2.2rem .6rem .9rem;cursor:pointer;list-style:none}.day-card>details>summary::-webkit-details-marker{display:none}.day-card>details>summary:hover{background:#eef3f6}.day-card>details>summary::after{content:'⌄';position:absolute;right:.9rem;top:50%;transform:translateY(-50%);font-size:1rem;color:#647581}.day-card>details[open]>summary{background:#eaf0f4}.day-card>details[open]>summary::after{content:'⌃'}.day-summary{align-items:center;font-size:.875rem}.day-summary small{display:block;color:#72808a;font-size:.72rem}.day-summary strong{font-weight:600}.day-content{padding:1rem;border-top:1px solid #dce3e8;background:#fff}.day-fields{display:grid;grid-template-columns:1.1fr repeat(4,minmax(0,1fr));gap:.65rem}.entry-form{background:#f6f7f8;border:1px solid #e0e4e7;border-radius:3px;padding:.85rem;margin-top:.8rem}.entry-form label{font-size:.75rem;display:block}.entry-form legend{font-size:.9rem;font-weight:600}.selection-row{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:.8rem}.confirmed{color:#35664c;font-size:.8rem}.not-covered{color:#7f878d}.qr svg{width:220px;height:220px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:10px;top:10px;z-index:100;background:#fff;padding:10px}pre{white-space:pre-wrap;overflow-wrap:anywhere}.table th{font-size:.8rem;color:#53616b;font-weight:600;background:#eef0f2}.table td{font-size:.875rem}.alert{border-radius:3px;font-size:.875rem}.sticky-actions{box-shadow:none}footer{font-size:.8rem}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1rem 0}.metrics>div{background:#fff;border:1px solid #d1d5d8;border-radius:4px;padding:1rem}.metrics small,.metrics span{display:block;color:#68747d;font-size:.75rem}.metrics strong{display:block;font-size:1.5rem;margin:.25rem 0}
@media(max-width:700px){.brand small,.account>span{display:none}.topbar{padding:.6rem 0}.auth-card{margin:1rem auto;padding:1.3rem}.page-heading{display:block}.page-heading>div:last-child{margin-top:.65rem}.metrics{grid-template-columns:repeat(2,1fr)}.day-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.day-fields>div:first-child{grid-column:1/-1}.days-heading{display:none}.day-summary{grid-template-columns:1fr 1fr;gap:.35rem .75rem}.day-summary>div[data-column]::before{content:attr(data-column);display:block;font-size:.68rem;color:#647581}.day-summary>div:first-child{grid-column:1/-1}.day-summary>div:last-child{grid-column:1/-1}.day-summary>div:last-child::before{display:inline;margin-right:.4rem}.day-card>details>summary{padding:.65rem 1.8rem .65rem .8rem}.panel{padding:.85rem}.nav-strip>.container{padding:0 .4rem;gap:0}.nav-strip a{font-size:.8rem;padding:.55rem .5rem}h1{font-size:1.5rem}.btn{white-space:normal}.table-responsive{max-width:100%}.weekly-toolbar{gap:.7rem}.shared-hours{align-items:center}.shared-hours label{display:block}.shared-hours button{margin-top:1.2rem;flex:1}.shared-hours input{width:97px}.weekly-labels,.weekly-day{grid-template-columns:minmax(105px,1fr) minmax(0,95px) minmax(0,95px);gap:.4rem}.weekly-day{padding:.35rem 0}.weekly-labels{padding-left:0;padding-right:0}.weekday-choice{font-size:.8rem;gap:.35rem}.weekly-day .form-control{padding:.3rem .25rem;min-width:0;width:100%;font-size:.8rem}.weekly-editor{max-width:100%}.plan-actions{gap:.5rem}.plan-actions>.btn{width:100%}}

@media(max-width:700px){.shared-hours{width:100%;align-items:end}.shared-hours label{flex:1}.shared-hours input{width:100%}.shared-hours button{flex-basis:100%;margin-top:0}}

input[name="reason"]::placeholder{color:#657078;opacity:.55;font-style:italic}
.day-confirmation{display:inline-flex;align-items:center;min-height:32px;min-width:32px;cursor:pointer;margin:0}
input.confirmation-checkbox{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1px solid #aab5bc;border-radius:3px;background:#fff;position:relative;cursor:pointer;margin:0}
input.confirmation-checkbox:checked{border-color:#2b6083;background:#eaf0f6}
input.confirmation-checkbox:checked::after{content:'';position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #2b6083;border-width:0 2px 2px 0;transform:rotate(45deg)}
input.confirmation-checkbox.is-confirmed:checked{border-color:#64a97d;background:#edf7f0}
input.confirmation-checkbox.is-confirmed:checked::after{border-color:#218344}
input.confirmation-checkbox:disabled{opacity:1;cursor:default;background:#f2f4f5}
input.confirmation-checkbox.is-confirmed:disabled{background:#edf7f0}
.confirmation-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:#fff;border:1px solid #cdd2d6;border-radius:4px;padding:.7rem .9rem;margin-bottom:.6rem}
.confirmation-toolbar>p{flex-basis:100%}.bulk-day-choice{display:flex;align-items:center;gap:.5rem;margin:0}

.calendar-planning>summary{cursor:pointer;font-weight:600;color:#304b5d}
.calendar-planning .weekly-editor{max-width:none}
.calendar-planning .weekly-days{max-width:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:.75rem}
.calendar-planning .weekly-labels{display:none}
.calendar-planning .weekly-day{display:grid;grid-template-columns:1fr;gap:.4rem;padding:.6rem;border:1px solid #dde2e5;border-radius:3px;background:#fafbfb;min-width:0}
.calendar-planning .weekday-choice{font-size:.78rem;gap:.35rem}
.calendar-planning .weekly-day>label:not(.weekday-choice){display:flex;align-items:center;gap:.35rem;min-width:0}
.calendar-planning .weekly-day>label:nth-child(2)::before{content:'Od';font-size:.72rem;color:#67727b}
.calendar-planning .weekly-day>label:nth-child(3)::before{content:'Do';font-size:.72rem;color:#67727b}
.calendar-planning .weekly-day input.form-control{min-width:0;width:100%;padding:.25rem .4rem}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem}
.calendar-heading h2{margin:0}
.calendar-preview-note{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;background:#edf3f7;border:1px solid #bccfdd;border-radius:4px;margin-bottom:.65rem}
.calendar-preview-note form{flex-shrink:0}
.calendar-reason{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.75rem}
.calendar-reason input{max-width:180px}
.calendar-weekdays,.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}
.calendar-weekdays{margin-bottom:.4rem;text-align:center;font-size:.75rem;color:#64727c;font-weight:600}
.calendar-day{position:relative;border:1px solid #d2d9de;border-radius:4px;background:#fff;min-width:0;overflow:hidden}
.calendar-day.is-off,.calendar-day.is-holiday{background:#eff1f2}
.calendar-day.is-changed{border-left:3px solid #809cb0}
.calendar-day.needs-attention{border-color:#c9a55b;background:#fffaf0}
.calendar-day.is-today{box-shadow:inset 0 0 0 1px #2b6083}
.calendar-day.is-selected{box-shadow:inset 0 0 0 1px #2b6083;background:#edf4f8}
.calendar-day-open{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;width:100%;min-height:100px;padding:.5rem .65rem;gap:.15rem;color:inherit}
.calendar-day-open:hover{background:#245d8508}
.calendar-day-open:focus-visible{outline-offset:-3px}
.calendar-day-number{line-height:1.2;font-size:1rem;font-weight:600;padding-right:24px}
.calendar-day-type{font-size:.8rem;line-height:1.3}
.calendar-day-hours{line-height:1.25;font-size:.73rem;color:#5a6a76;min-height:1.1em;overflow-wrap:anywhere}
.calendar-day-status{line-height:1.25;font-size:.65rem;color:#65737d;margin-top:auto}
.calendar-selection,.calendar-confirmed{position:absolute;right:.55rem;top:.55rem;line-height:1}
.calendar-selection{display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}
.calendar-confirmed{color:#218344;font-weight:bold;font-size:1.3rem;right:.8rem;top:.8rem}
.calendar-empty{background:#e9edee50;border-radius:3px;min-width:0}
.calendar-legend{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-top:.7rem}
.legend-exception{border-left:3px solid #809cb0;padding-left:.4rem}
.calendar-mobile-weekday{display:none}
.calendar-dialog{border:1px solid #bac7d0;border-radius:6px;width:min(650px,calc(100% - 2rem));padding:1.3rem;color:#272b30;max-height:90vh;overflow:auto}
.calendar-dialog::backdrop{background:#18263066}
.calendar-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.calendar-dialog-heading h2{font-size:1.1rem;margin:0}
.calendar-dialog-close{background:none;border:0;font-size:1.6rem;line-height:1;padding:.2rem .4rem;color:#596a75}
.calendar-dialog .day-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-dialog .day-fields>div:first-child{grid-column:1/-1}
.calendar-dialog label{font-size:.8rem}
@media(max-width:950px) and (min-width:701px){.calendar-planning .weekday-choice{font-size:.7rem}.calendar-planning .weekly-day{padding:.4rem}.calendar-day-open{padding:.5rem;min-height:110px}.calendar-day-type{font-size:.75rem}}
@media(max-width:700px){.calendar-planning .weekly-days{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-preview-note{display:block}.calendar-preview-note form{margin-top:.7rem}.calendar-heading{align-items:flex-start}.calendar-heading>span{font-size:.7rem;text-align:right}.calendar-weekdays{display:none}.month-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-empty{display:none}.calendar-mobile-weekday{display:inline;font-size:.72rem;color:#65737d;font-weight:400}.calendar-day-open{min-height:112px}.calendar-reason{width:100%;flex-wrap:wrap}.calendar-reason input{max-width:100%}.calendar-dialog{padding:1rem}.calendar-preview-note p{overflow-wrap:anywhere}}

/* Authorship and approval status are independent. */
.user-origin .calendar-day-type,.user-origin .calendar-day-hours,.calendar-day-origin,.user-origin-legend{color:#65529a}
.calendar-day-origin{font-size:.67rem;line-height:1.2}
.calendar-day.is-pending{background:#fff0dc;border-color:#d9b17d}
.pending-legend{background:#fff0dc;padding:2px 6px;border:1px solid #d9b17d;border-radius:3px;color:#614825}
.calendar-lock{position:absolute;right:5px;top:6px;font-size:.58rem;color:#536577}
.day-proposal-comparison{background:#fff0dc;border:1px solid #d9b17d;border-radius:4px;padding:10px;margin-bottom:12px}
.schedule-request{border-left:3px solid #d9b17d}
.calendar-day{min-height:112px}
.calendar-day.is-locked .calendar-day-number{padding-right:40px}

.work-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.work-metrics span{display:block;color:#657078;font-size:.8rem}.work-metrics strong{font-size:1.35rem}.calendar-location{display:block;font-size:.7rem;color:#53616b;overflow-wrap:anywhere}.work-segment{margin-top:.6rem}.work-segment label{display:block}.calendar-dialog input,.calendar-dialog select{min-width:0;width:100%}.calendar-dialog [type=checkbox]{width:16px}.work-metrics>div{min-width:0}
@media(max-width:700px){.work-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.nav-strip>.container{flex-wrap:nowrap;overflow-x:auto}.nav-strip a{flex-shrink:0}.calendar-dialog input,.calendar-dialog select{font-size:16px}.absence-list form .btn{min-height:44px}.calendar-dialog .btn{min-height:44px}}

.day-primary-fields{grid-template-columns:1.2fr 1fr 1fr}
