/* Product layout: readable type, compact controls, attendance first. */
:root{--bg:#f5f7fa;--line:#e4e8ef}
body{font-size:16px;line-height:1.5}
.shell{grid-template-columns:224px minmax(0,1fr)}
.sidebar{width:224px;padding:0 12px 14px;background:var(--forest);overflow:hidden}
.brand-home{min-height:85px;padding:20px 12px;gap:10px}
.brandmark{width:34px;height:36px;border-radius:9px;font-size:21px;box-shadow:none}
.brand-name{font-size:22px;letter-spacing:-.7px;font-weight:650}
.brand-sub{font-size:13px;line-height:1.2;letter-spacing:0;color:#b7c5db;margin:4px 0 0;font-weight:400;text-transform:none}
.sidebar .navigation-groups{gap:20px;padding:10px 0 20px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.nav-label{font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;font-weight:500;color:#8296b5;margin-bottom:7px;padding:0 12px}
.nav-link{min-height:48px;padding:12px 13px;font-size:16px;line-height:1.35;font-weight:450;gap:11px;border-radius:7px}
.nav-link svg,.nav-link .ticon{width:18px;height:18px}
.nav-link.active{background:#ffffff0f;color:#fff;box-shadow:inset 3px 0 0 var(--accent);border-radius:0 6px 6px 0}
.nav-link.active svg,.nav-link.active .ticon{color:#81adff}
.sidebar-settings{font-size:13px;margin-bottom:12px;padding:9px 12px}
.sidebar-bottom{padding-top:12px;flex-shrink:0}.account{gap:9px;padding:0 10px}.account-name{font-size:13px}.account .small{font-size:13px}.account .avatar{width:32px;height:32px;font-size:13px;border-radius:8px}
.topline{min-height:62px;padding:12px 28px;border-bottom:1px solid var(--line)}
.topline-left{flex:1;gap:12px}.top-controls{gap:14px}.global-search{width:390px;padding:7px 0;min-height:44px;border:0;background:transparent;font-size:16px;text-align:left;color:var(--muted);border-radius:5px;gap:10px;white-space:nowrap}.global-search svg{height:17px;width:17px}.global-search kbd{font-size:16px;padding:2px 5px;background:var(--bg);margin-left:12px}.global-search:hover{color:var(--ink)}.top-user.avatar{display:inline-flex!important;width:31px;height:31px;font-size:13px}.theme-trigger{width:30px;height:30px}
.workspace-content{max-width:1640px;padding:26px 28px 32px}.page-heading{margin:0 0 22px;display:flex;flex-direction:row;align-items:center;gap:18px}.page-heading h1{margin:0;font-size:32px;line-height:1.3;font-weight:650;letter-spacing:-.8px}.page-heading .actions{gap:8px}.btn{font-size:15px;line-height:1.4;min-height:44px;padding:8px 12px;border-radius:6px;font-weight:500;box-shadow:none}.btn-primary{box-shadow:none}.btn-sm{font-size:15px;min-height:44px;padding:5px 9px}.btn svg{width:16px;height:16px}.text-button{font-size:15px;line-height:1.5;gap:5px;font-weight:450}.text-button svg{width:14px;height:14px}.icon-btn{border-radius:6px}.small{font-size:13px}
.filters{margin-bottom:20px;border-radius:14px;box-shadow:none;padding:16px;gap:14px;align-items:flex-end;border:1px solid var(--line)}.filter-field{gap:5px}.filter-field .field-label{font-size:14px;font-weight:500;letter-spacing:0}.filters input,.filters select,.filters .search-box input{font-size:16px;line-height:1.5;min-height:44px;border-radius:5px;padding:6px 9px}.filters input[type=date]{width:144px}.filters .office-filter{min-width:170px}.period-presets{padding:2px;gap:2px;border-radius:5px}.period-presets button{font-size:15px;padding:5px 9px;border-radius:4px}.checkbox-label{font-size:13px}.search-box>svg{width:16px;height:16px}.filter-note{font-size:13px}
.card,.panel{border-radius:9px;box-shadow:0 4px 14px color-mix(in srgb,var(--shadow-color,var(--ink)) 5%,transparent);border-color:var(--line)}
.card-header,.panel-head{padding:16px 18px;gap:12px}.panel-head h2,.section-header h2{font-size:19px;font-weight:600;line-height:1.45;letter-spacing:-.15px}.panel-head p{font-size:13px;line-height:1.6;margin:5px 0 0}.card-body,.panel-body{padding:18px}.panel-foot{padding:12px 18px;font-size:13px;gap:15px}.panel-foot .text-button{font-size:15px}.section-header{margin-bottom:13px}.section-gap{margin-top:24px}.empty{min-height:190px;padding:30px 20px}.empty-icon{width:36px;height:36px;border-radius:9px;margin-bottom:12px}.empty h3{font-size:14px}.empty p{font-size:13px;line-height:1.6}.notice{font-size:13px;line-height:1.65;border-radius:6px}.section-note,.hint,.form-error,.table-caption{font-size:13px;line-height:1.6}
.product-kpis{gap:14px;margin:0 0 20px}.product-stat-card{text-align:left;transform:none!important;transition:border-color .15s}.product-stat-card:hover{box-shadow:none;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.product-stat-card .card-body{padding:16px 18px}.product-stat-card .kpi-top{font-size:16px;font-weight:450;color:var(--muted);min-height:0;line-height:1.5;gap:10px}.product-stat-card .kpi-top>svg{width:14px;height:14px;color:var(--muted);opacity:.65}.product-stat-card .kpi-value{font-size:36px;line-height:1.2;letter-spacing:-.8px;font-weight:600;margin:8px 0;white-space:nowrap}.product-stat-card .kpi-bottom{font-size:13px;line-height:1.5;display:block;color:var(--muted)}.product-stat-card.needs-review .kpi-value{color:#b87a28;white-space:nowrap}.product-stat-card.needs-review{border-color:color-mix(in srgb,#d7a450 35%,var(--line))}
.product-dashboard-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(290px,1fr);gap:20px;margin-bottom:22px}.product-dashboard-grid .attendance-trend .panel-head{padding:16px 18px;border-bottom:1px solid var(--line)}.product-dashboard-grid .attendance-trend .card-body{padding:18px 16px 14px}.trend-chart svg{min-width:640px;min-height:230px;max-height:none}.trend-chart{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.trend-chart text{font-size:19px}.chart-line{stroke-width:2}.chart-grid{stroke-dasharray:2 4}.chart-caption{font-size:13px;padding:12px 2px 0;margin-top:8px;border-top:0;gap:15px}.product-office-list{display:flex;flex-direction:column;flex:1}.product-office-row{padding:15px 18px;text-align:left;display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.product-office-row:last-child{border-bottom:0}.product-office-row:hover{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.product-office-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;font-weight:500}.product-office-heading strong{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.product-office-bar{height:3px;background:var(--bg);border-radius:3px;margin:9px 0;overflow:hidden}.product-office-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;opacity:.75}.product-office-details{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);line-height:1.5}.product-review-count{color:#a77a32;white-space:nowrap}.product-quality-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;padding:12px 18px;background:color-mix(in srgb,var(--bg) 60%,var(--surface));border-top:1px solid var(--line);font-size:13px;line-height:1.6;color:var(--muted)}.product-quality-note .text-button{font-size:15px}.product-empty-inline{padding:30px 18px;font-size:13px;color:var(--muted)}.recent-panel{margin-top:0}.recent-panel .panel-head{padding:16px 18px}
.table,table{font-size:13px;line-height:1.45}.table th,table th,.recent-panel .table thead th{font-size:14px;font-weight:500;text-transform:none;letter-spacing:0;padding:11px 16px;background:color-mix(in srgb,var(--bg) 68%,var(--surface));color:var(--muted)}.table td,table td{padding:12px 16px;font-size:15px;line-height:1.45}.table tbody td.mono,.table tbody td.nowrap,.table .mono,table .mono{font-size:15px;font-variant-numeric:tabular-nums}.person{gap:10px;min-width:175px}.person-name{font-size:15px;line-height:1.5;font-weight:500}.person-sub,.cell-sub{font-size:13px;line-height:1.4;margin-top:2px}.avatar{width:30px;height:30px;border-radius:7px;font-size:13px}.badge{font-size:13px;padding:4px 7px;border-radius:4px;white-space:nowrap;line-height:1.3}.table td .cell-sub:empty{display:none}.tabs{gap:22px;padding:0 18px}.tab{font-size:13px;padding:15px 0 12px;font-weight:500}.table-caption{padding:14px 18px}.calendar-table th:first-child,.calendar-table td:first-child{min-width:220px}.calendar-table th{padding:10px 7px}.calendar-table td{padding:10px 7px}.calendar-table .day-head{font-size:13px}.calendar-table .day-head span{font-size:13px}.day-value{font-size:13px;padding:5px 4px;border-radius:4px}.calendar-legend{font-size:13px;padding:16px 18px;gap:18px}.pill-number{font-size:13px}.pagination{font-size:13px}
.workspace-metrics{gap:14px;margin-bottom:20px}.workspace-metrics .metric{padding:16px 18px;border-radius:9px;transform:none!important}.workspace-metrics .metric-top{font-size:16px;line-height:1.5;min-height:0}.workspace-metrics .metric-top .ticon,.workspace-metrics .metric-top svg{width:16px;height:16px;color:var(--muted)}.workspace-metrics .metric-value{font-size:36px;font-weight:600;line-height:1.2;margin:8px 0;letter-spacing:-.8px}.workspace-metrics .metric-note{font-size:13px;line-height:1.5}.portal-columns{gap:20px;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}.task-line,.reading-item{padding:16px 18px}.task-line-title strong,.reading-item strong{font-size:13px;line-height:1.5;font-weight:500}.task-line-title small,.reading-item small{font-size:13px;line-height:1.5;margin-top:4px}.reading-icon{width:30px;height:34px;border-radius:7px}.service-card{border-radius:9px;padding:18px;box-shadow:none;min-height:132px}.service-card h3{font-size:13px;line-height:1.5;font-weight:550}.service-card p{font-size:13px;line-height:1.6}.service-card .badge{font-size:13px}.task-board{gap:15px}.task-column{border-radius:8px}.task-card{border-radius:7px;box-shadow:none;padding:15px}.task-card h3{font-size:13px;line-height:1.5}.task-card p{font-size:13px;line-height:1.6}.task-card-top,.task-id,.task-date,.task-assignee{font-size:13px}.task-card .badge{font-size:13px}.column-head h2{font-size:13px}.column-empty{font-size:13px}.module-toolbar{gap:12px}.module-toolbar input{font-size:16px;min-height:44px}.segmented button{font-size:15px;padding:7px 11px}.material-card{border-radius:9px}.material-card h2{font-size:15px;line-height:1.5}.material-card p,.material-meta,.material-reader,.service-description{font-size:13px;line-height:1.7}
.form-field label{font-size:14px;line-height:1.5;font-weight:500}.form-field input,.form-field select,.form-field textarea{font-size:16px;line-height:1.5;border-radius:6px;min-height:44px;padding:8px 11px}.modal{border-radius:10px}.modal-heading{padding:21px 24px}.modal-heading h2{font-size:24px;line-height:1.4;font-weight:600}.modal-heading p{font-size:13px;line-height:1.6}.modal-body{padding:23px 24px}.command-input-wrap input{font-size:16px}.command-result{padding:11px;gap:12px}.command-result strong{font-size:13px}.command-result small{font-size:13px}.command-help{font-size:13px}.command-help kbd{font-size:13px}.theme-card strong{font-size:13px}.theme-card small{font-size:13px}.settings-grid .profile-summary{margin-bottom:20px}.settings-grid .section-note{margin:0 0 17px}.product-settings-links{display:flex;gap:25px;flex-wrap:wrap}.product-settings-links .text-button{font-size:15px}
.auth-copy h1{font-size:36px;letter-spacing:-1px;line-height:1.25}.auth-copy p{font-size:15px;line-height:1.7}.auth-offices span{font-size:13px}.auth-kicker{font-size:13px}.auth-box>p{font-size:13px}.auth-bottom{font-size:13px}.auth-box .btn{font-size:15px}.auth-foot{font-size:13px}.help-step strong{font-size:13px}.help-step p{font-size:13px;line-height:1.65}.dropzone h3{font-size:14px}.dropzone p{font-size:13px}.source-pipeline-step{font-size:13px}.source-meta,.connection-meta,.source-card p{font-size:13px;line-height:1.65}.connection-card h2{font-size:17px}.connection-card p{font-size:13px;line-height:1.6}
@media(min-width:1600px){.workspace-content{padding:30px 36px 36px}.topline{padding-left:36px;padding-right:36px}.product-dashboard-grid{grid-template-columns:minmax(0,2.3fr) minmax(320px,1fr)}.trend-chart svg{min-height:240px}}
@media(max-width:1250px){.shell{grid-template-columns:224px minmax(0,1fr)}.sidebar{width:224px;overflow:hidden}.nav-link{font-size:16px}.workspace-content{padding:25px 24px 30px}.topline{padding-left:24px;padding-right:24px}.product-dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:16px}.product-stat-card .card-body{padding:15px 16px}.product-stat-card .kpi-top{font-size:16px}.product-stat-card .kpi-value{font-size:36px;white-space:nowrap}.product-stat-card .kpi-bottom{font-size:13px}}
@media(max-width:1020px){.shell{display:block}.sidebar{width:240px;overflow:hidden}.sidebar .brand-name{font-size:22px}.sidebar .brand-sub{font-size:13px}.workspace{margin:0;width:100%}.workspace-content{padding:23px 22px 28px}.topline{min-height:60px;padding:11px 22px}.mobile-menu{display:inline-flex}.product-dashboard-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}.global-search{width:390px;white-space:nowrap}.sidebar .navigation-groups{gap:20px;overflow-y:auto;flex:1;min-height:0;overflow-x:hidden}.sidebar .nav-link{min-height:40px}.page-heading h1{font-size:32px}}
@media(max-width:760px){.workspace-content{padding:22px 18px 28px}.topline{padding:12px 18px}.global-search{width:auto;min-width:0;height:auto;justify-content:flex-start;padding:4px;font-size:16px;gap:8px;white-space:nowrap}.global-search span{display:block}.global-search kbd{display:none}.global-search svg{width:17px;height:17px}.top-controls{gap:6px}.top-user.avatar{display:none!important}.theme-trigger{width:28px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:18px}.page-heading h1{font-size:32px}.page-heading .actions{width:100%;justify-content:flex-start}.btn{font-size:15px;min-height:44px}.product-kpis,.workspace-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-stat-card .card-body{padding:15px}.product-stat-card .kpi-value{font-size:36px;white-space:nowrap}.product-stat-card .kpi-top{font-size:16px}.product-stat-card .kpi-bottom{font-size:13px;min-height:16px}.product-dashboard-grid{grid-template-columns:minmax(0,1fr);gap:16px}.trend-chart svg{min-width:640px;min-height:230px;max-height:none}.chart-caption{font-size:13px}.product-office-row{padding:15px 18px}.product-office-heading{font-size:16px}.product-office-details{font-size:13px}.product-office-bar{margin:10px 0}.product-quality-note{font-size:13px}.product-quality-note .text-button{font-size:15px}.filters{padding:14px;gap:14px;margin-bottom:18px;border:1px solid var(--line);border-radius:14px}.filter-field .field-label{font-size:14px}.filters .office-filter{width:100%}.filters input[type=date]{width:100%}.period-presets{width:100%}.period-presets button{font-size:15px}.panel-head,.card-header{padding:15px 16px}.panel-head h2{font-size:19px}.panel-head .text-button{font-size:15px}.panel-foot{padding:12px 16px;font-size:13px;flex-wrap:wrap}.panel-foot .text-button{font-size:15px}.table td,table td{padding:12px 14px;font-size:15px}.table th,table th,.recent-panel .table thead th{padding:11px 14px;font-size:14px}.person-name{font-size:15px}.person-sub,.cell-sub{font-size:13px}.portal-columns{grid-template-columns:minmax(0,1fr);gap:16px}.workspace-metrics .metric{padding:15px}.workspace-metrics .metric-top{font-size:16px}.workspace-metrics .metric-value{font-size:36px}.workspace-metrics .metric-note{font-size:13px}.service-grid,.service-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.task-board{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-heading{padding:19px 20px}.modal-body{padding:20px}.command-help{font-size:13px}.product-settings-links{gap:18px;flex-direction:column;align-items:flex-start}}
@media(max-width:430px){.workspace-content{padding:20px 14px 26px}.topline{padding:11px 14px}.global-search{font-size:16px;white-space:nowrap}.global-search span{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topline-left{gap:7px}.product-stat-card .card-body{padding:13px}.product-stat-card .kpi-top{font-size:16px}.product-stat-card .kpi-value{font-size:36px;white-space:nowrap}.product-stat-card .kpi-bottom{font-size:13px}.workspace-metrics .metric{padding:13px}.workspace-metrics .metric-top{font-size:16px}.service-grid,.service-grid.compact,.task-board{grid-template-columns:minmax(0,1fr)}.chart-caption{font-size:13px}.product-office-details{font-size:13px}.product-quality-note{font-size:13px}.page-heading h1{font-size:32px}.command-help{font-size:13px}}
/* Readable secondary text on every viewport. */
.nav-label,.account .small,.filter-field .field-label,.product-stat-card .kpi-top,.product-stat-card .kpi-bottom,.workspace-metrics .metric-top,.workspace-metrics .metric-note,.person-sub,.cell-sub,.product-office-details,.product-quality-note,.product-quality-note .text-button,.chart-caption,.panel-foot,.panel-foot .text-button,.badge,.task-card .badge,.command-help,.theme-card small{font-size:14px}
.table td,table td,.table tbody td.mono,.table tbody td.nowrap,.table .mono,table .mono,.person-name{font-size:15px}
.table th,table th,.recent-panel .table thead th{font-size:14px}

/* Hierarchy through existing cards, independent of the selected palette. */
.product-stat-card:first-child{background:var(--accent-soft,color-mix(in srgb,var(--accent) 8%,var(--surface)));border-color:color-mix(in srgb,var(--accent) 26%,var(--line));box-shadow:inset 0 3px 0 var(--accent)}
.product-stat-card:first-child .stat-value,.product-stat-card:first-child .kpi-value{color:var(--accent)}
.product-office-heading>span:first-child:before,.office-comparison-title>strong:before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:10px;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft,var(--bg))}

/* Attendance launch: focused navigation and readable contextual headings. */
.page-description{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.5;max-width:760px}
.ts-export-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.page-description{font-size:14px}.ts-export-actions{width:100%}.ts-export-actions .ts-export{flex:1}}

.page-load-status{padding:10px 14px;margin:0 0 12px;border-radius:8px;background:var(--accent-soft);color:var(--accent-text);font-size:14px}
.page-load-status[hidden]{display:none}
#page-content[aria-busy="true"]>.panel,#page-content[aria-busy="true"]>.dashboard-kpis,#page-content[aria-busy="true"]>.product-dashboard-grid,#page-content[aria-busy="true"] .ts-sheet,#page-content[aria-busy="true"] .ts-summary{opacity:.5}
a[data-export][aria-disabled="true"],a[data-ts-export][aria-disabled="true"]{opacity:.5;cursor:wait;pointer-events:none}
