/* Euroservice 0.18.0: density for the Telegram Mini App only. */
:root{font-size:13px}
body{background:#f4f7fb}
body>header{padding:12px 16px 13px}
body>header h1{font-size:20px;line-height:1.2;letter-spacing:-.5px;margin:4px 0}
body>header small{font-size:9px;letter-spacing:1.7px}
body>header p{font-size:11px;line-height:1.4;margin:3px 0 0}
body>main{padding:12px 14px 22px}
body h2{font-size:17px;line-height:1.25;margin:0 0 10px}
body h3{font-size:14px;line-height:1.3;margin:0 0 7px}
body p{line-height:1.45;margin:7px 0}
body .muted{font-size:11px;line-height:1.4}
body .card{padding:12px;margin-bottom:9px;border-radius:12px;box-shadow:none}
body .grid{gap:8px}
body .toolbar{gap:7px;margin-bottom:10px}
body .toolbar>button{min-height:34px;padding:6px 9px;font-size:11px}
body button,body input,body select,body textarea{font-size:13px;padding:7px 9px;border-radius:8px}
body button{min-height:36px;line-height:1.25}
body button.primary{min-height:40px;padding:8px 11px;box-shadow:none}
body label{font-size:12px;gap:4px;margin-bottom:8px;min-width:0}
body input:not([type=checkbox]):not([type=radio]),body select{min-height:36px}
body input,body select,body textarea{min-width:0;max-width:100%}
body textarea{min-height:54px;line-height:1.4}
body input[type=checkbox],body input[type=radio]{min-height:0;padding:0}
body .actions{gap:6px}
body .actions button{font-size:12px;padding:7px 9px}
body .badge{font-size:10px;padding:4px 7px}
body .notice{font-size:11px;padding:9px 10px;line-height:1.45}
body td,body th{padding:7px 6px;font-size:11px}
body th{font-size:10px}
body details{margin-top:8px}
body details>summary{cursor:pointer;line-height:1.4}
body footer{font-size:10px;padding:6px 2px 16px}
body .page-heading{gap:8px;margin:3px 0 11px}
body .page-heading h2{font-size:17px;margin:0 0 4px}
body .page-heading p{font-size:11px;margin:0}
body .page-heading>button{min-height:34px;font-size:11px;padding:6px 8px}
body .section-label{font-size:10px;margin:14px 0 8px;letter-spacing:.8px}
#viewModeBar{max-width:820px;margin:8px auto 0;padding:7px 10px;gap:8px;border-radius:9px}
#viewModeBar strong{font-size:11px}
#viewModeBar small{font-size:10px;margin-top:2px}
#viewModeToggle{font-size:11px;min-height:34px;padding:6px 8px}
#companyMenu h2{font-size:17px;margin-bottom:9px}
#companyMenu .company-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 9px}
#companyMenu .menu-tile{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;justify-content:start;aspect-ratio:auto;min-height:84px;padding:11px 10px;column-gap:8px;row-gap:3px;border-radius:11px;background:white;box-shadow:none}
#companyMenu .menu-icon{grid-row:1/3;width:28px;height:30px;border-radius:8px}
#companyMenu .menu-icon svg{width:19px;height:19px}
#companyMenu .menu-tile strong{align-self:end;line-height:1.25;font-size:13px;letter-spacing:-.2px;overflow-wrap:normal;word-break:normal}
#companyMenu .menu-tile .muted{align-self:start;font-size:10.5px;line-height:1.35}
#companyOfficeTools .section-label{margin:13px 0 8px}
#companyMenu .company-version{font-size:10px;margin:12px 0 0}
#requestsApp nav{margin:10px 0 13px;padding:3px;border-radius:10px;gap:3px}
#requestsApp nav button{font-size:11px;padding:7px 4px;min-height:34px}
#requestsApp .summary-action{min-height:68px;padding:12px;gap:10px;margin-bottom:10px;border-radius:12px}
#requestsApp .summary-count{font-size:29px;min-width:29px}
#requestsApp .summary-action strong{font-size:13px}
#requestsApp .summary-action small{font-size:10.5px;line-height:1.35;margin-top:3px}
#requestsApp .home-create p{margin:4px 0 10px}
#requestsApp .home-create .actions{grid-template-columns:1fr 1fr;gap:6px}
#requestsApp .home-create .actions button{font-size:12px;min-height:40px;padding:8px 7px}
#requestsApp .payroll-shortcut{padding:11px;gap:8px}
#requestsApp .notification-prompt{padding:9px 10px;gap:8px;border-radius:10px;margin-bottom:10px}
#requestsApp .notification-prompt b{font-size:12px}
#requestsApp .notification-prompt p{font-size:11px}
#requestsApp .notification-ready{font-size:10px;margin:5px 0 10px}
#requestsApp .request-form{padding:12px}
#requestsApp .request-form fieldset{margin-bottom:12px;padding-bottom:10px}
#requestsApp .request-form legend{font-size:13px;margin-bottom:9px}
#requestsApp .request-form label{font-size:12px}
#requestsApp .request-form .grid{gap:8px}
#requestsApp .request-form h3{font-size:12px;margin:8px 0 7px}
#requestsApp .request-form #noteLabel{margin-top:10px}
#requestsApp .request-form .form-submit{min-height:42px;font-size:14px}
#requestsApp .request-filters{padding:10px;margin-bottom:10px}
#requestsApp .filter-chips{gap:5px}
#requestsApp .filter-chips button{min-height:32px;padding:5px 8px;font-size:11px}
#requestsApp .request-card{padding:12px}
#requestsApp .request-card h3{font-size:15px;margin:2px 0 4px}
#requestsApp .request-card p{font-size:12px;line-height:1.4;margin:5px 0}
#requestsApp .request-card .request-kind{font-size:10px}
#requestsApp .request-reply{margin:9px 0}
#requestsApp .request-reply textarea{min-height:52px}
#requestsApp .request-actions{gap:6px}
#requestsApp .request-actions button{min-height:36px;padding:7px 8px;font-size:12px}
#requestsApp .person-card{padding:11px;margin-bottom:8px}
#requestsApp .person-card>.row{gap:8px}
#requestsApp .person-card h3{font-size:14px}
#requestsApp .person-card p{font-size:11px;margin:4px 0}
#requestsApp .person-card .actions{gap:5px}
#requestsApp .person-card .actions>button{min-height:34px;min-width:0;font-size:11px;padding:6px 8px}
#requestsApp .person-name-form,#requestsApp .employment-form{margin-top:10px;padding-top:10px}
#requestsApp .people-page>p{margin-bottom:11px;font-size:11px}
#requestsApp .people-page>h2{font-size:15px}
#requestsApp .people-registered{margin:10px 0}
#requestsApp .calendar-card{padding:10px}
#requestsApp .calendar-top{gap:7px;margin-bottom:9px}
#requestsApp .calendar-top h3{font-size:17px}
#requestsApp .calendar-top .actions button{min-height:34px;min-width:34px}
#requestsApp .calendar-filters{gap:7px}
#requestsApp .calendar-filters label{font-size:11px}
#requestsApp .calendar-filters input,#requestsApp .calendar-filters select{height:36px;min-height:36px}
#requestsApp .calendar-legend{gap:5px;margin:7px 0 9px}
#requestsApp .calendar-kind{font-size:10px;padding:3px 6px}
#requestsApp .calendar-weekdays,#requestsApp .calendar-grid{gap:3px}
#requestsApp .calendar-day{min-height:72px;padding:5px;gap:4px}
#requestsApp .calendar-day.selected{padding:4px}
#requestsApp .calendar-number{height:22px;min-width:22px;font-size:11px}
#requestsApp .calendar-chip{font-size:10px;padding:2px 3px}
#requestsApp .calendar-event{padding:10px;margin-top:8px}
#requestsApp .calendar-detail h3{font-size:15px}
#requestsApp .report-filters,#payrollApp .report-filters{gap:7px}
#requestsApp .report-result{padding:11px}
#requestsApp .report-heading{gap:7px;margin-bottom:10px}
#boardApp .toolbar{margin-bottom:10px}
#boardApp .board-doc-grid{gap:9px}
#boardApp .board-document{padding:12px}
#boardApp .board-document h3{font-size:15px;margin-bottom:4px}
#boardApp .board-document p{font-size:11px;line-height:1.4;margin:5px 0}
#boardApp .board-preview{padding:8px;margin:9px 0;gap:6px}
#boardApp .preview-sheet{height:130px}
#boardApp .preview-sheet canvas{max-height:130px}
#boardApp .preview-caption{font-size:10px}
#boardApp .board-upload form{margin-top:10px}
#boardApp .board-archive{margin-top:12px}
#boardReader:not(.fullscreen){padding:10px;gap:6px}
#boardReader .reader-head h2{font-size:15px}
#boardReader .reader-tools{gap:5px;margin-bottom:6px;font-size:11px}
#boardReader .reader-tools button{min-height:34px;padding:5px 8px}
#boardReader .reader-controls .actions button{min-height:36px;font-size:11px;padding:7px 9px}
#rosterApp .card{padding:11px;margin-bottom:8px}
#rosterApp .roster-toolbar{gap:6px;margin-bottom:8px}
#rosterApp .roster-week{gap:7px 9px;grid-template-columns:minmax(0,1fr) 138px}
#rosterApp .roster-week h2,#rosterApp #rosterEditor h2,#rosterApp .roster-review h2{font-size:15px;margin-bottom:4px}
#rosterApp .roster-week p{font-size:11px}
#rosterApp .roster-week label{font-size:10px}
#rosterApp .roster-week input{min-height:35px;padding:6px;font-size:14px}
#rosterApp .roster-week button{min-height:35px;font-size:12px;padding:6px 9px}
#rosterApp .roster-group{font-size:11px;margin-top:6px}
#rosterApp .roster-group summary{min-height:28px}
#rosterApp .roster-invert-bar{gap:6px;margin:6px 0 9px}
#rosterApp .roster-invert-bar button{min-height:35px;font-size:12px;padding:6px 9px}
#rosterApp .roster-invert-bar p{font-size:10px}
#rosterApp .roster-progress{font-size:10px;padding:3px 6px}
#rosterApp .roster-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
#rosterApp .roster-days span{padding:6px 2px;min-height:32px;font-size:11px;text-align:center}
#rosterApp .roster-shift-groups{gap:8px;margin-top:9px}
#rosterApp .roster-shift-group{padding:8px;border-radius:8px}
#rosterApp .roster-shift-heading{margin-bottom:4px}
#rosterApp .roster-shift-heading h3{font-size:13px}
#rosterApp .roster-shift-heading small{font-size:10px}
#rosterApp .roster-shift-group .roster-person{grid-template-columns:minmax(0,1fr) 126px;gap:5px 7px;padding:5px 0}
#rosterApp .roster-shift-group .roster-person b{font-size:12px;line-height:1.3}
#rosterApp .roster-select{min-height:34px;font-size:14px;padding:5px 4px}
#rosterApp .roster-manual textarea{min-height:44px;padding:6px}
#rosterApp .roster-review .actions{gap:6px}
#rosterApp .roster-review .actions button{min-height:36px;font-size:12px;padding:7px 8px}
#rosterApp .roster-review p{font-size:11px;margin:7px 0}
#payrollApp .card{padding:12px}
#payrollApp .payroll-profile{padding:9px;margin:8px 0;border-radius:9px}
#payrollApp .payroll-profile>summary{min-height:34px;font-size:12px}
#payrollApp .payroll-week-inputs{gap:4px;margin-top:8px}
#payrollApp .payroll-week-inputs label{font-size:10px;gap:3px}
#payrollApp .payroll-week-inputs input{padding:5px 3px;min-height:34px;text-align:center}
#payrollApp .payroll-closures{padding:10px;margin:10px 0}
#payrollApp .payroll-exception-add{gap:7px}
#payrollApp .payroll-calendar-card{padding:10px;margin:10px 0 14px}
#payrollApp .payroll-calendar-heading{gap:6px;margin-bottom:9px}
#payrollApp .payroll-calendar-heading h3{font-size:14px}
#payrollApp .payroll-calendar-heading p{font-size:11px}
#payrollApp .payroll-calendar-card .payroll-matrix th,#payrollApp .payroll-calendar-card .payroll-matrix td{padding:5px 6px;font-size:11px}
#payrollApp .payroll-person-totals{margin-top:9px}
#payrollApp .payroll-person-totals>div{padding:7px}
#payrollApp .payroll-person-totals dt{font-size:11px}
#payrollApp .payroll-person-totals dd{font-size:15px;margin-top:3px}
#payrollApp .payroll-status,#payrollApp .payroll-warning{font-size:12px;padding:9px;margin:8px 0}
/* Selected light chronograph, with both attendance actions inside one card. */
body.est-clock-open{background:#f4f7fb}
#clockApp{padding:10px 14px 24px;max-width:500px}
#clockApp .clock-v93-header{grid-template-columns:34px minmax(0,1fr) 34px;gap:6px;margin:0}
#clockApp .clock-v93-navbtn{width:34px;height:34px;min-height:34px;font-size:25px;padding:0}
#clockApp .clock-v93-brand strong{font-size:17px;letter-spacing:.06em}
#clockApp .clock-v93-brand span{font-size:12px}
#clockApp .clock-v93-identity{font-size:10px;min-height:15px;margin:4px 0 10px}
#clockContent,#clockOffice,#clockReportResults{gap:9px}
#clockApp .clock-v93-punch,#clockApp .clock-v93-history{padding:13px;margin:0;border-radius:14px}
#clockApp .clock-integrated-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
#clockApp .clock-integrated-heading h2{font-size:17px;margin:0}
#clockApp .clock-integrated-heading>span{font-size:10px;color:#8293a1;white-space:nowrap}
#clockApp .clock-integrated-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#7a8f9c}
#clockApp .clock-integrated-meta b.in{color:#1b7754}
#clockApp .clock-integrated-meta b.out{color:#ac4950}
#clockApp .clock-v93-state{font-size:10px;gap:5px;padding:6px 9px}
#clockApp .clock-v93-state.paused{color:#966c22;background:#fff4dd}
#clockApp .clock-v93-state.paused i{background:#bd8c35}
#clockApp .clock-round-dial{width:216px;height:216px;margin:7px auto 4px}
#clockApp .clock-round-dial svg{display:block;width:100%;height:100%;overflow:visible}
#clockApp .clock-round-dial text{font-family:inherit;text-anchor:middle;font-variant-numeric:tabular-nums;stroke:none}
#clockApp .clock-round-times{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 14px;font-size:10px;color:#7e929f;margin:4px 0 11px}
#clockApp .clock-round-times b{color:#527589;font-weight:600}
#clockApp .clock-integrated-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
#clockApp .clock-integrated-actions>div{min-width:0}
#clockApp .clock-integrated-actions #clockGeoSubmit,#clockApp .clock-pause-action{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:26px;padding:9px 7px;line-height:1.25;font-size:12px;box-shadow:none;font-weight:650}
#clockApp .clock-integrated-actions #clockGeoSubmit{background:#fff;color:#1a667c;border:1px solid #c8dfe5}
#clockApp .clock-integrated-actions #clockGeoSubmit:not(:disabled):hover{background:#edf8fa}
#clockApp .clock-integrated-actions #clockGeoSubmit:disabled{opacity:1;background:#f5f7f9;color:#9babb6;border-color:#e2e8ed}
#clockApp .clock-integrated-actions #clockGeoSubmit span{margin:0;font-size:12px;line-height:1.25}
#clockApp .clock-pause-action{color:#11758a;border:1px solid #c4dce2;background:#edf8fa}
#clockApp .clock-pause-action.active{background:#11758a;color:#fff;border-color:#11758a}
#clockApp .clock-pause-action:disabled{opacity:1;color:#9babb6;background:#f5f7f9;border-color:#e2e8ed}
#clockApp .clock-pause-action svg{width:17px;height:17px;flex:none}
#clockApp .clock-integrated-confirm{display:flex;align-items:center;justify-content:space-between;gap:7px;background:#edf9f1;color:#236d49;padding:8px 9px;margin:7px 0;border-radius:8px;font-size:11px}
#clockApp .clock-integrated-confirm span{font-size:10px}
#clockApp .clock-gps-tools{margin:10px 0 0;padding-top:8px}
#clockApp .clock-gps-tools-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#clockApp .clock-gps-tools-row button{border:0;background:transparent;color:#527c91;padding:4px 0;margin:0;min-height:32px;font-size:11px;display:inline-flex;align-items:center;gap:4px}
#clockApp .clock-gps-tools-row button svg{width:15px;height:15px}
#clockApp .clock-gps-help{margin:0 0 0 auto}
#clockApp .clock-gps-help summary{font-size:11px;min-height:32px;align-content:center;padding:4px 0;color:#527c91}
#clockApp .clock-gps-help[open]{flex-basis:100%}
#clockApp .clock-gps-help[open]>div{font-size:11px;color:#78909f;line-height:1.45}
#clockApp .clock-gps-feedback{font-size:11px;padding:8px;margin:6px 0}
#clockApp .clock-round-help{font-size:10px;color:#8b9aa6;line-height:1.4;margin:4px 0 0}
#clockApp .clock-break-notification{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:10px;color:#6b8798}
#clockApp .clock-break-notification button{font-size:11px;min-height:34px;padding:5px 8px;flex-shrink:0}
#clockApp #clockBreakNotice:empty{display:none}
#clockApp .clock-v93-message{font-size:11px;padding:8px;margin:7px 0;border-radius:8px}
#clockApp .clock-v93-pending{padding:9px;font-size:11px;margin-top:8px}
#clockApp .clock-v93-pending-actions{gap:6px}
#clockApp .clock-v93-pending-actions button{min-height:34px;font-size:11px;padding:6px 8px}
#clockApp .clock-v93-history h2{font-size:14px;margin-bottom:8px}
#clockApp .clock-v93-history>details{margin:0}
#clockApp .clock-v93-history summary{font-size:11px;min-height:32px;padding:5px 0}
#clockApp .clock-v93-history-row{padding:7px 0;min-height:34px;gap:8px;grid-template-columns:minmax(60px,1fr) 50px minmax(60px,1fr)}
#clockApp .clock-v93-history-at{font-size:14px}
#clockApp .clock-v93-history-day,#clockApp .clock-v93-history-kind{font-size:10px}
#clockApp .clock-v93-admin{margin-top:0}
#clockApp .clock-v93-admin>summary{min-height:38px;padding:8px 11px;font-size:12px}
#clockApp .clock-v93-admin-body{padding:9px 0 0;gap:9px}
#clockApp .clock-v93-admin-card{padding:11px;margin:0;border-radius:11px}
#clockApp .clock-v93-admin-card h2{font-size:15px}
#clockApp .clock-v93-admin-card p{font-size:11px;margin:6px 0}
#clockApp .clock-form-grid{gap:7px}
#clockApp .clock-v93-admin-card .actions{gap:6px}
#clockApp .clock-v93-admin-card .actions button{min-height:36px;font-size:11px;padding:7px 8px}
#clockApp .clock-edit-event{padding:9px;margin-top:7px;gap:7px}
#clockApp .clock-edit-event b{font-size:12px}
#clockApp .clock-edit-event small{font-size:10px}
#clockApp .clock-edit-event-actions{gap:5px}
#clockApp .clock-edit-event-actions button{min-height:32px;padding:5px 7px;font-size:10px}
#clockApp .clock-manual-form{padding:10px;margin-top:8px}
.est-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){#viewModeBar{margin-left:14px;margin-right:14px}}
@media(max-width:600px){
 body>main{padding:11px 12px 20px}
 #companyMenu .menu-tile{min-height:84px}
 #companyMenu .menu-tile strong{font-size:12px}
 #requestsApp .calendar-weekdays,#requestsApp .calendar-grid{min-width:560px}
 #requestsApp .calendar-scroll-hint{font-size:10px}
 #rosterApp .roster-shift-groups{grid-template-columns:1fr}
 #rosterApp .roster-week{grid-template-columns:minmax(0,1fr) 132px}
 #payrollApp .payroll-person-totals{grid-template-columns:repeat(2,minmax(0,1fr))}
 #payrollApp .payroll-person-totals>div:last-child{grid-column:1/-1}
 #clockApp{padding:9px 12px 22px}
}
@media(max-width:350px){
 #companyMenu .menu-tile{padding:9px 8px;column-gap:6px;grid-template-columns:25px minmax(0,1fr)}
 #companyMenu .menu-icon{width:25px;height:28px}
 #companyMenu .menu-tile strong{font-size:11.5px}
 #companyMenu .menu-tile .muted{font-size:10px}
 #requestsApp .home-create .actions{grid-template-columns:1fr}
 #rosterApp .roster-week{grid-template-columns:minmax(0,1fr) 123px}
 #rosterApp .roster-shift-group .roster-person{grid-template-columns:minmax(0,1fr) 116px}
 #clockApp .clock-integrated-actions #clockGeoSubmit span,#clockApp .clock-pause-action{font-size:11px}
 #clockApp .clock-integrated-actions{gap:6px}
 #clockApp .clock-round-dial{width:204px;height:204px}
}
/* Keep text fields readable without mobile browser zoom. Compactness comes from spacing. */
@media(pointer:coarse){
 body input:not([type=checkbox]):not([type=radio]),body select,body textarea{font-size:16px}
 #rosterApp .roster-select,#rosterApp .roster-week input{font-size:16px}
 #payrollApp .payroll-week-inputs input{font-size:16px}
}

/* A real close action, separate from a data refresh, when Telegram must relaunch. */
.session-recovery[hidden]{display:none}
.session-recovery{position:fixed;inset:0;z-index:100000;background:#f4f7fb;overflow:auto;display:grid;align-content:center;padding:24px max(18px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px));padding-top:calc(24px + env(safe-area-inset-top,0px))}
.session-recovery>div{width:100%;max-width:420px;margin:auto;background:white;border:1px solid #dce6eb;border-radius:14px;padding:20px}
.session-recovery h2{font-size:20px;margin:0 0 12px;color:#123b56}
.session-recovery p{font-size:13px;line-height:1.55;margin:10px 0}
.session-recovery button{width:100%;min-height:44px;font-size:14px;margin:10px 0}
.session-recovery .muted{font-size:11px}

/* 0.19.0: compact daily office presence and diagnostic records. */
#attendanceOfficeApp{max-width:980px;margin:auto}#attendanceOfficeApp .card{margin:10px 0;padding:12px}#attendanceOfficeApp label{display:block;font-size:.85rem;font-weight:600}#attendanceOfficeApp input:not([type=checkbox]),#attendanceOfficeApp select{width:100%;min-height:42px;margin-top:4px}#attendanceOfficeApp button{min-height:42px}#attendanceOfficeApp .error{color:#9b342d}.presence-overview-filters{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(140px,1fr) minmax(120px,1fr);gap:8px;align-items:end}.presence-overview-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0}.presence-overview-counts span{padding:8px 4px;border-radius:10px;background:#eaf5f6;font-size:.75rem;text-align:center}.presence-overview-counts b{display:block;font-size:1.15rem}.presence-overview-person{border:1px solid #d8e4e8;border-radius:12px;background:#fff;padding:10px;margin:8px 0}.presence-overview-title,.presence-overview-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.presence-overview-title strong{font-size:.93rem;overflow-wrap:anywhere}.presence-overview-badge{border-radius:8px;background:#edf1f5;padding:4px 7px;font-size:.7rem;white-space:nowrap}.presence-overview-badge.present{background:#e5f5eb;color:#206b45}.presence-overview-badge.break{background:#fff1d6;color:#805500}.presence-overview-badge.missing,.presence-overview-badge.review{background:#fff0e6;color:#964719}.presence-overview-times{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:6px;padding:9px 0}.presence-overview-times span{font-size:.72rem;color:#677b85}.presence-overview-times b{display:block;font-size:.88rem;color:#294550;overflow-wrap:anywhere}.presence-overview-times b.in{color:#24794d}.presence-overview-times b.out{color:#b3453c}.presence-overview-bottom small{font-size:.73rem;max-width:58%;color:#677b85}.presence-overview-bottom button{font-size:.75rem;padding:6px 8px}.presence-diagnostic{display:grid;grid-template-columns:1fr 1.4fr;gap:4px;border-bottom:1px solid #e1e8ed;padding:8px 0;font-size:.82rem}.presence-diagnostic small{grid-column:1/-1;color:#677b85}.presence-diagnostic.resolved span{color:#24794d}#attendanceReminderForm label{margin:10px 0}#attendanceReminderGrace{max-width:140px}@media(max-width:600px){.presence-overview-filters{grid-template-columns:minmax(0,1fr) auto}.presence-overview-filters label:nth-last-child(-n+2){grid-column:span 1}.presence-overview-title{align-items:flex-start}.presence-overview-badge{white-space:normal;max-width:42%}.presence-diagnostic{grid-template-columns:1fr}.presence-overview-counts span{font-size:.68rem}}

/* Custom shifts keep explicit entry points and compact native time controls. */
#rosterApp .roster-choice{display:grid;gap:3px;min-width:0}
#rosterApp .roster-personalize,#rosterApp .roster-custom-mode{background:transparent;color:#126c7b;border:0;box-shadow:none;min-height:28px;padding:3px 0;font-size:11px;text-decoration:underline;cursor:pointer}
#rosterApp .roster-custom-editor{grid-column:1/-1;min-width:0;padding:5px 0 2px}
#rosterApp .roster-custom-times{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
#rosterApp .roster-custom-times[hidden]{display:none}
#rosterApp .roster-custom-times label{font-size:11px;gap:3px}
#rosterApp .roster-custom-times input{min-width:0;width:100%;min-height:36px;padding:6px;font-size:16px}
#rosterApp .roster-custom-editor .roster-manual{display:grid}
#rosterApp .roster-custom-editor textarea{width:100%;min-height:52px;font-size:16px}

/* Riepilogo unico per le pause frazionate. */
.clock-round-total{margin:5px 0 0;text-align:center;font-size:12px;font-weight:600;color:#54717e;font-variant-numeric:tabular-nums}
