/* Compact shared scale. Rem sizes respect browser text settings. */
body{font-size:1rem;line-height:1.45}
button,input,select,textarea{font-family:inherit;line-height:1.4}
p{line-height:1.5}small{line-height:1.4}
.page{padding:10px 24px 20px 12px;min-height:calc(100vh - 64px)}
.topbar{height:64px;min-height:64px;padding:0 24px 0 12px;gap:14px}
.workspace-brand strong{font-size:1.25rem}.workspace-brand small{font-size:.75rem;letter-spacing:1px}
.header-profile strong{font-size:.875rem}.header-profile small,.breadcrumb{font-size:.8125rem}
.page-heading,.voucher-page .page-heading{min-height:0;margin:6px 0 16px;gap:12px}
.page-heading h1,.voucher-page .page-heading h1{font-size:1.875rem;line-height:1.2;letter-spacing:-.8px}
.page-heading p,.modal-subtitle,.muted{font-size:.9375rem;line-height:1.5}
.page-heading p{margin-top:5px}.eyebrow,.page-heading .eyebrow{font-size:.75rem;letter-spacing:1.3px;margin-bottom:6px}
.button,.text-button{font-size:.875rem;line-height:1.4}
.button{min-height:36px;padding:7px 13px;white-space:nowrap;text-align:center;gap:7px}
.button.compact{font-size:.8125rem;min-height:32px;padding:5px 10px}
.button .icon,.text-button .icon{width:16px;height:16px}
.icon-btn,.theme-switch,.round-link{min-width:34px;min-height:34px;width:34px;height:34px}
.icon-btn .icon,.theme-switch .icon,.round-link .icon{width:18px;height:18px}
.actions{gap:8px}
.field{gap:5px;min-width:0}
.field>span,.field>label,.field>legend,.checkbox-label,.weekdays label{font-size:.875rem;line-height:1.4}
.field small{font-size:.8125rem;line-height:1.45}
.field input,.field select,.field textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:1rem;min-height:38px;padding:7px 10px}
.field textarea{min-height:76px}
.checkbox-label input,.weekdays input{width:17px;height:17px;flex-shrink:0}
.form-grid{gap:12px 16px}
.tabs{flex-wrap:wrap;gap:3px}
.tabs button{font-size:.875rem;min-height:32px;padding:5px 11px}
.month-picker input:not([type=checkbox]),.dashboard-toolbar .month-picker input:not([type=checkbox]){width:158px;font-size:.875rem;min-height:36px}
.month-picker .icon-btn{width:32px;height:32px;min-width:32px;min-height:32px}
.year-picker input:not([type=checkbox]){width:90px;text-align:center}
.toolbar,.leave-home-toolbar{gap:10px;margin-bottom:12px;padding:0}
.leave-home-toolbar .actions{gap:14px}
.card,.glass-widget{border-radius:14px}
.card-head{flex-wrap:wrap;gap:10px;padding:13px 16px}
.card-head h2,.dashboard-lower .card-head h2{font-size:1.125rem;line-height:1.35}
.card-head small{font-size:.8125rem;line-height:1.45;margin-top:3px}
.card-body{padding:0 16px 16px}
.card-footer{font-size:.8125rem;line-height:1.5;padding:10px 16px}
.notice,.empty,.setting-row p,.form-error,.payment-list p,.payment-detail{font-size:.875rem;line-height:1.5}
.notice{padding:11px 14px}.empty{padding:24px 16px}
.section-gap{margin-top:16px}
.stats{display:flex;gap:0;align-items:stretch;margin-bottom:16px;border-radius:12px}
.stat,.stats .stat{flex:1;min-width:130px;padding:13px 16px}
.stat-label{font-size:.8125rem;line-height:1.4;gap:8px;flex-wrap:wrap}
.stat-value{font-size:1.75rem;line-height:1.2;margin:7px 0}
.stat-foot{font-size:.8125rem;line-height:1.4}
.stat-label .icon{width:16px;height:16px}
/* Keep names and actions on a single compact row on laptop screens. */
table,.voucher-table{font-size:.9375rem}
th,td{padding:7px 14px;line-height:1.4;vertical-align:middle}
tbody td{padding-top:6px;padding-bottom:6px}
thead,.voucher-table thead th,.voucher-table tfoot th,.voucher-table tfoot td{font-size:.8125rem}
.table-subtitle{font-size:.8125rem;line-height:1.4;margin-top:3px;overflow-wrap:anywhere}
.person{gap:9px;min-width:150px}
.person strong,.receipt-person-button strong{font-size:.9375rem;line-height:1.3}
.person small,.receipt-person-button small{font-size:.8125rem;line-height:1.3;margin-top:1px}
.avatar{width:30px;height:30px;font-size:.75rem;flex-shrink:0}
.person>div{min-width:0}
td .actions{flex-wrap:nowrap}
td .button{white-space:nowrap}
.employee-file-button,.receipt-person-button{min-height:34px;padding-top:0;padding-bottom:0}
.inbox-update,.receipt-new-badge,.receipt-open-link{font-size:.8125rem}
.receipt-new-badge{padding:3px 7px}.receipt-new-badge strong{font-size:.8125rem}
.receipt-people-table{min-width:900px}
.receipt-people-table th{white-space:normal;line-height:1.4}
.receipt-back-row{margin-bottom:12px}.receipt-back-row+.page-heading{margin-top:10px}
.receipt-inbox .card-head,.receipt-employee-detail .card-head{gap:10px;flex-wrap:wrap}
.voucher-table{min-width:900px}.voucher-table .voucher-note{font-size:.8125rem;min-width:120px}
.badge{font-size:.75rem;padding:3px 6px}
.request-row,.operations-widget .request-row{padding:11px 16px;gap:10px;flex-wrap:nowrap}
.request-row .details{min-width:0}
.request-row h3{font-size:.9375rem;margin-bottom:2px}
.request-row p,.request-row small,.request-row .details>small{font-size:.8125rem;line-height:1.4}
.request-row .request-actions{gap:7px;flex-wrap:nowrap;width:auto;margin-left:auto}
.setting-row{gap:12px;flex-wrap:wrap;padding:13px 0}
.setting-row>div{flex:1;min-width:180px}
.setting-row strong{font-size:1rem}
.employee-access-fields,.signature-fields{display:grid;grid-column:1/-1;gap:12px;margin:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);min-width:0}
.employee-access-fields legend,.signature-fields legend{font-size:1rem;font-weight:650;padding:0 6px}
.employee-access-fields>small,.signature-fields>small{font-size:.8125rem;color:var(--muted)}
.signature-preview{padding:10px;min-height:75px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff}
.signature-preview[hidden]{display:none}.signature-preview img{max-width:100%;max-height:90px;object-fit:contain}
.document-version-list small{font-size:.8125rem;color:var(--muted)}
.document-toolbar{align-items:flex-end}.document-toolbar .field{min-width:165px}
/* Dialogs and upload previews retain usable fields without oversized gaps. */
dialog{width:min(640px,calc(100vw - 32px));max-height:92dvh}
.modal-title-row{padding:20px 22px 12px;align-items:flex-start}
.modal-title-row h2{font-size:1.375rem;line-height:1.3;overflow-wrap:anywhere}
.modal-subtitle{padding:0 22px 16px}
.modal-form{padding:0 22px 20px}
.modal-actions{gap:8px;margin-top:18px;padding-top:16px;flex-wrap:wrap}
.payment-detail strong{font-size:1.625rem}
.receipt-upload-dialog{width:min(1180px,calc(100vw - 40px));max-width:1180px}
.receipt-upload-workspace{grid-template-columns:220px minmax(0,1fr);gap:18px}
.receipt-fields .form-grid{gap:12px}
.receipt-preview,.receipt-editor>.receipt-preview{height:310px}
.receipt-file-list ul{max-height:340px}
.receipt-file-select{min-height:76px;padding:10px 34px 10px 10px}
.receipt-file-remove{width:30px;height:30px}
.receipt-file-thumbnail{width:34px;height:46px}
.receipt-file-label>strong,.receipt-editor-head h3,.receipt-dropzone strong{font-size:.9375rem}
.receipt-file-label>small,.receipt-file-status,.receipt-file-list-head>span,.receipt-file-list>p,.receipt-upload-summary,.receipt-dropzone small,.receipt-editor-head small,.receipt-editor-head>.text-button,.receipt-pdf-controls,.receipt-zoom-toolbar>small,.receipt-zoom-scale{font-size:.8125rem}
.receipt-editor-head{align-items:flex-start}.receipt-editor-head>.text-button{white-space:nowrap}
.receipt-dropzone{padding:14px 16px}.receipt-upload-empty>p{font-size:.9375rem}
.receipt-upload-dialog .modal-actions{bottom:0}
/* Compact dashboard while keeping the photographic Maytrics identity. */
.overview-intro{min-height:175px;padding:12px 4px 22px}
.hero-copy h1{font-size:2.75rem;line-height:1.06;letter-spacing:-1.8px}
.hero-copy .eyebrow{font-size:.8125rem;margin-bottom:9px}
.hero-copy p{font-size:.9375rem;line-height:1.5;margin-top:12px;max-width:400px}
.hero-caption{font-size:.75rem;letter-spacing:1px}
.overview-section-label{font-size:.8125rem}
.dashboard-grid{gap:12px}
.glass-widget{padding:16px}
.widget-head{gap:8px;row-gap:4px;margin-bottom:12px;flex-wrap:wrap}
.widget-head h2{font-size:1rem}
.widget-head small,.widget-value span,.avatar-stack small,.week-chart small,.widget-bottom small,.operations-foot,.gauge-subline,.availability-foot,.mini-upcoming small{font-size:.75rem;line-height:1.4}
.widget-symbol{width:28px;height:28px}.widget-symbol .icon{width:17px;height:17px}
.widget-value,.expense-widget .widget-value{font-size:2rem;line-height:1.2;white-space:normal}
.widget-value>span{font-size:.8125rem}
.avatar-stack{gap:4px;row-gap:6px;padding-left:0}
.avatar-stack>.avatar{width:24px;height:24px;margin-left:-4px;font-size:.6875rem}
.avatar-stack>.avatar:first-child{margin-left:0}.avatar-stack>small{margin-left:4px}
.widget-bottom{flex-wrap:wrap;gap:8px}.widget-bottom .round-link{margin-left:auto}
.team-widget,.leave-widget,.expense-widget{min-height:190px}
.week-chart{height:65px;margin-bottom:10px}.week-track{height:42px}
.expense-mini-chart{height:45px;margin:12px 0 10px;padding-bottom:17px}
.expense-mini-chart small{bottom:-17px}
.availability-widget{min-height:380px;padding:16px}
.availability-tabs>button{width:30px;height:30px;flex-shrink:0}
.availability-gauge{max-width:210px;margin:10px auto}
.gauge-reading strong{font-size:2.75rem}.gauge-reading strong span{font-size:1.5rem}
.gauge-reading small{font-size:.8125rem}
.operations-widget{padding:0}.operations-widget>.widget-head{padding:14px 16px}
.operations-foot{padding:11px 16px;gap:8px;flex-wrap:wrap}.operations-foot small{margin-left:0}
.dashboard-lower{gap:12px;margin-top:12px}.dashboard-lower .card-head{padding:14px 16px}
.mini-upcoming{gap:10px;padding:12px 16px;flex-wrap:wrap}
.mini-upcoming .info strong,.dashboard-lower .person strong{font-size:.9375rem}
.date-box{min-width:44px}
.meta-footer{font-size:.75rem;line-height:1.45;gap:10px 18px;flex-wrap:wrap;margin-top:18px}
/* Circles remain square even when unread counters are present. */
.sidebar{padding:16px 10px;min-height:0}.sidebar .brand{margin-bottom:22px}
.sidebar>.nav{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;min-height:0;width:100%;padding:3px 0}
.sidebar>.nav::-webkit-scrollbar{display:none}.sidebar-bottom{flex-shrink:0}
.nav .nav-count{min-width:20px;min-height:20px;aspect-ratio:1;padding:2px;line-height:1;border-radius:50%;font-size:.6875rem;font-variant-numeric:tabular-nums}
.nav-label{left:48px}
.login-main{padding:32px}.login-card{max-width:400px}.login-card h2{font-size:1.875rem}
.login-card>p,.login-foot,.login-card .login-foot{font-size:.875rem;line-height:1.5}
.login-form{gap:14px}.login-form .button{min-height:40px}.login-brand p{font-size:1rem}
@media(min-width:651px){
 .sidebar .nav button{width:40px;min-width:40px;height:40px;min-height:40px;aspect-ratio:1;flex:0 0 40px;border-radius:50%}
 .sidebar>.nav button:focus-visible{outline-offset:-3px}
}
@media(min-width:1101px) and (max-width:1440px){
 .dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .availability-widget{grid-column:3;grid-row:2;min-height:300px}
 .operations-widget{grid-column:1/3;grid-row:2}.availability-gauge{max-width:190px}
}
@media(min-width:651px) and (max-width:1100px){
 .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .team-widget{grid-column:1;grid-row:1}.leave-widget{grid-column:2;grid-row:1}
 .expense-widget{grid-column:1;grid-row:2}.availability-widget{grid-column:2;grid-row:2;min-height:250px}
 .operations-widget{grid-column:1/3;grid-row:3}.availability-gauge{max-width:175px}
 .availability-tabs{display:none}.page-heading{flex-wrap:wrap}
}
@media(max-width:960px){
 .receipt-upload-workspace{grid-template-columns:minmax(0,1fr)}
 .receipt-file-list ul{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}
 .receipt-file-list>p{display:none}.receipt-preview,.receipt-editor>.receipt-preview{height:280px}
 .document-toolbar .actions{flex-wrap:wrap}
}
@media(max-width:650px){
 .page{padding:10px 14px 20px}.topbar{min-height:64px;height:auto;padding:10px 14px;gap:6px}
 .topbar .header-profile,.topbar .badge.demo{display:none}
 .topbar .workspace-brand{min-width:0}.topbar .workspace-brand strong{font-size:1.125rem}
 .topbar .workspace-brand small{font-size:.6875rem;letter-spacing:.6px}.topbar-right{gap:5px}
 .sidebar{width:250px;min-height:0;padding:20px 14px}.sidebar .nav button{min-height:42px}
 .nav .nav-label{font-size:.9375rem;white-space:normal}
 .page-heading,.voucher-page .page-heading{gap:10px;margin:6px 0 14px;flex-direction:column;align-items:flex-start}
 .page-heading h1,.voucher-page .page-heading h1{font-size:1.75rem}
 .page-heading p{font-size:.875rem}.button{min-height:40px;padding:8px 12px;white-space:normal}
 .button.compact{min-height:36px;padding:7px 10px}.tabs button{min-height:36px;padding:6px 10px}
 .icon-btn,.theme-switch,.round-link{min-width:36px;min-height:36px;width:36px;height:36px}
 .field input,.field select,.field textarea{min-height:40px}
 .stats{display:flex;flex-wrap:wrap}.stats .stat{min-width:110px;padding:12px;border-bottom:0;border-right:1px solid var(--line)}
 .stat-value{font-size:1.5rem}.stat-label,.stat-foot{font-size:.75rem}
 .toolbar,.toolbar>.actions{flex-wrap:wrap;gap:8px}.toolbar .tabs{gap:3px}
 .request-row,.operations-widget .request-row{padding:11px 14px;gap:8px;flex-wrap:wrap}
 .request-row .request-actions{width:auto;justify-content:flex-end;flex-wrap:wrap}.request-row h3{font-size:.9375rem}
 .card-head{padding:12px 14px}.card-head h2{font-size:1.0625rem}.card-body{padding:0 14px 14px}
 .card-footer{padding:10px 14px}.receipt-people-table{min-width:900px}
 .receipt-employee-detail .tabs{flex-wrap:wrap}.setting-row>div{min-width:0;flex-basis:100%}
 .document-toolbar{align-items:stretch}.document-toolbar .field{min-width:0}
 .overview-intro{min-height:180px;padding:16px 0 20px}.hero-copy h1{font-size:2.125rem;letter-spacing:-1px}
 .hero-copy p{font-size:.875rem;max-width:300px;margin-top:10px}
 .dashboard-toolbar .actions{width:100%;justify-content:flex-start;gap:8px}.dashboard-toolbar .month-picker{display:flex}
 .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .team-widget,.leave-widget,.expense-widget,.availability-widget,.operations-widget{grid-column:auto;grid-row:auto;min-height:0}
 .glass-widget{padding:13px}.widget-head h2{font-size:.9375rem}.widget-value,.expense-widget .widget-value{font-size:1.75rem}
 .widget-head>small{width:100%}.widget-head{margin-bottom:10px}
 .expense-mini-chart>span:nth-child(odd)>small{visibility:hidden}
 .expense-widget{grid-column:1}.availability-widget{grid-column:2;grid-row:2;padding:12px;min-height:220px}
 .availability-tabs{display:none}.availability-gauge{max-width:160px;margin:10px auto}
 .gauge-reading strong{font-size:2rem}.gauge-reading strong span{font-size:1.125rem}
 .gauge-reading small,.gauge-subline,.availability-bottom>span,.availability-bottom .text-button{font-size:.75rem}
 .operations-widget{grid-column:1/-1;padding:0}.operations-widget>.widget-head{padding:12px 14px}
 .operations-foot{padding:10px 14px}.operations-foot small{width:auto}
 .modal-title-row{padding:18px 18px 12px}.modal-title-row h2{font-size:1.375rem}
 .modal-subtitle{padding:0 18px 14px}.modal-form{padding:0 18px 18px}
 .modal-actions{margin-top:16px;padding-top:14px}.form-grid{gap:12px}
 .receipt-upload-dialog{width:calc(100vw - 20px);padding:0}
 .receipt-file-list ul{grid-template-columns:minmax(0,1fr);max-height:220px}
 .receipt-file-select{min-height:76px}.receipt-editor-head{flex-wrap:wrap;gap:6px}
 .receipt-preview,.receipt-editor>.receipt-preview{height:260px}
 .receipt-dropzone{align-items:flex-start}.receipt-dropzone strong{font-size:.9375rem}
 .login-main{padding:26px 18px}.login-card h2{font-size:1.75rem}.login-brand{min-height:260px}
 .meta-footer{margin-top:16px}.meta-footer>span:last-child{white-space:normal}
}

/* Give availability the visual weight of its own tile, with a compact small-screen scale. */
.availability-widget{container-type:inline-size}
.availability-gauge{max-width:440px;margin:12px auto}
.gauge-reading strong{font-size:clamp(2rem,22cqi,6rem);letter-spacing:-.045em}
.gauge-reading strong span{font-size:.5em;letter-spacing:-.02em}
.gauge-subline{max-width:320px}
@media(max-width:1440px){
 .availability-gauge{max-width:260px;margin:8px auto}
 .gauge-reading strong{font-size:clamp(2rem,19cqi,4rem)}
}
@media(max-width:1100px){.availability-gauge{max-width:240px}}
