*,*:before,*:after{box-sizing:border-box}html{min-width:320px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img,svg{display:block;max-width:100%}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0}a{color:inherit;text-decoration:none}:root{--color-primary-950: #102a43;--color-primary-900: #16324f;--color-primary-800: #1e3a5f;--color-primary-700: #28527a;--color-primary-600: #32689b;--color-primary-500: #3d7db8;--color-primary-100: #e8f1f8;--color-primary-50: #f3f8fc;--color-white: #ffffff;--color-gray-950: #17202a;--color-gray-900: #1f2937;--color-gray-800: #374151;--color-gray-700: #4b5563;--color-gray-600: #64748b;--color-gray-500: #94a3b8;--color-gray-400: #cbd5e1;--color-gray-300: #d9e2ec;--color-gray-200: #e5eaf0;--color-gray-100: #eef2f6;--color-gray-50: #f6f8fb;--color-success-700: #237a45;--color-success-100: #e7f5ec;--color-warning-700: #9a6700;--color-warning-100: #fff4ce;--color-danger-700: #b42318;--color-danger-100: #feeceb;--color-info-700: #1f5f99;--color-info-100: #e7f1fb;--color-bg-page: #f4f7fa;--color-bg-surface: #ffffff;--color-bg-muted: #eef3f7;--color-bg-sidebar: #16324f;--color-bg-sidebar-hover: #204566;--color-bg-sidebar-active: #2b5d89;--color-text-primary: #1f2937;--color-text-secondary: #64748b;--color-text-muted: #8a98a8;--color-text-inverse: #ffffff;--color-text-danger: #b42318;--color-border: #d9e2ec;--color-border-strong: #b8c4d1;--color-focus: #3d7db8;--font-family-sans: "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.3;--line-height-normal: 1.6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 42, 67, .08);--shadow-md: 0 4px 12px rgba(16, 42, 67, .1);--shadow-lg: 0 10px 24px rgba(16, 42, 67, .14);--sidebar-width: 272px;--sidebar-collapsed-width: 76px;--topbar-height: 64px;--content-max-width: 1440px;--control-height-sm: 32px;--control-height-md: 40px;--control-height-lg: 48px;--transition-fast: .12s ease;--transition-normal: .18s ease}body{min-width:320px;min-height:100vh;background:var(--color-bg-page);color:var(--color-text-primary);font-family:var(--font-family-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);letter-spacing:0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}button,a,input,select,textarea{outline:none}:focus-visible{outline:3px solid rgba(61,125,184,.35);outline-offset:2px}h1,h2,h3{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}input{width:100%;min-height:var(--control-height-md);padding:0 var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.button{display:inline-flex;min-height:var(--control-height-md);align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);line-height:1;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.button--primary{color:var(--color-text-inverse);background:var(--color-primary-800);border-color:var(--color-primary-800)}.button--primary:hover{background:var(--color-primary-900);border-color:var(--color-primary-900)}.button--secondary{color:var(--color-primary-800);background:var(--color-white);border-color:var(--color-border-strong)}.button--secondary:hover{background:var(--color-primary-50);border-color:var(--color-primary-600)}.button--ghost{color:var(--color-primary-800);background:transparent}.button--ghost:hover{background:var(--color-primary-50)}.icon-button{display:inline-flex;width:var(--control-height-md);height:var(--control-height-md);align-items:center;justify-content:center;color:var(--color-primary-800);background:transparent;border:0;border-radius:var(--radius-md);transition:background var(--transition-fast)}.icon-button:hover{background:var(--color-bg-muted)}@media(max-width:640px){h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-stack{display:grid;min-width:0;gap:var(--space-6)}.section-eyebrow{color:var(--color-primary-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.section-heading{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}.section-heading p{color:var(--color-text-secondary)}.form-field{display:grid;gap:var(--space-2);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.form-field span{font-size:var(--font-size-sm)}.app-shell{min-height:100vh}.app-main{min-width:0;min-height:100vh;margin-left:var(--sidebar-width);background:var(--color-bg-page)}.app-content{min-width:0;width:100%;max-width:var(--content-max-width);margin:0 auto;padding:var(--space-8)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;width:var(--sidebar-width);min-height:100vh;flex-direction:column;color:var(--color-text-inverse);background:var(--color-bg-sidebar)}.sidebar-brand{display:flex;min-height:var(--topbar-height);align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-5);border-bottom:1px solid rgba(255,255,255,.16)}.sidebar-brand-title{font-weight:var(--font-weight-semibold)}.sidebar-brand-subtitle{color:#ffffffc2;font-size:var(--font-size-sm)}.sidebar-close{display:none;color:var(--color-white)}.sidebar-close:hover{background:#ffffff24}.sidebar-nav{min-height:0;flex:1;overflow-y:auto;padding:var(--space-4)}.sidebar-menu,.sidebar-submenu{list-style:none}.sidebar-menu{display:grid;gap:var(--space-1)}.sidebar-item{min-width:0}.sidebar-link,.sidebar-group-button{position:relative;display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-3);color:#ffffffe0;background:transparent;border:0;border-radius:var(--radius-md);text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-link:hover,.sidebar-group-button:hover{color:var(--color-white);background:var(--color-bg-sidebar-hover)}.sidebar-link.is-active,.sidebar-group-button.is-active{color:var(--color-white);background:var(--color-bg-sidebar-active);font-weight:var(--font-weight-semibold)}.sidebar-link.is-active:before{position:absolute;inset:9px auto 9px 0;width:4px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-primary-100);content:""}.sidebar-link-main{display:inline-flex;min-width:0;align-items:center;gap:var(--space-3)}.sidebar-link-main span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-chevron{width:18px;height:18px;flex:0 0 auto;transition:transform var(--transition-normal)}.sidebar-group-button.is-open .sidebar-chevron{transform:rotate(180deg)}.sidebar-submenu{display:none;gap:var(--space-1);padding:var(--space-1) 0 var(--space-2) var(--space-5)}.sidebar-submenu.is-open{display:grid}.sidebar-submenu .sidebar-link,.sidebar-submenu .sidebar-group-button{min-height:40px;font-size:var(--font-size-sm)}.sidebar-overlay{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;min-height:var(--topbar-height);align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-6);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.topbar-left,.topbar-actions,.topbar-user{display:flex;align-items:center}.topbar-left{min-width:0;gap:var(--space-3)}.topbar-actions{flex:0 0 auto;gap:var(--space-3)}.topbar-user{gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap}.topbar-kicker{color:var(--color-text-muted);font-size:var(--font-size-xs)}.topbar-title{overflow:hidden;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.page-header-title-group{display:grid;gap:var(--space-2)}.page-header-title-group p{max-width:760px;color:var(--color-text-secondary)}.page-header-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:1023px){.app-main{margin-left:0}.app-content{padding:var(--space-5)}.sidebar{width:min(86vw,320px);transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:inline-flex}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:block;background:#10202f6b;border:0}}@media(max-width:640px){.app-content{padding:var(--space-4)}.topbar{padding:0 var(--space-4)}.topbar-actions{gap:var(--space-1)}.topbar-user span,.topbar-kicker{display:none}.topbar-title{max-width:44vw}.page-header{display:grid}}.login-page,.not-found-page{display:grid;min-height:100vh;place-items:center;padding:var(--space-6);background:var(--color-bg-page)}.login-card,.not-found-panel{width:min(100%,440px);padding:var(--space-8);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-heading{display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}.login-heading p{color:var(--color-text-secondary)}.login-system{color:var(--color-primary-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.login-form{display:grid;gap:var(--space-5)}.login-submit{width:100%;margin-top:var(--space-1)}.dashboard-intro{display:grid;gap:var(--space-4);padding:var(--space-6)}.dashboard-intro p{color:var(--color-text-secondary)}.dashboard-section{min-width:0}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}.module-card{display:grid;min-height:150px;grid-template-columns:auto 1fr auto;gap:var(--space-4);align-items:flex-start;padding:var(--space-5);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.module-card:hover{border-color:var(--color-primary-500);box-shadow:var(--shadow-md);transform:translateY(-1px)}.module-card-icon{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;color:var(--color-primary-800);background:var(--color-primary-50);border-radius:var(--radius-md)}.module-card-body{display:grid;gap:var(--space-2)}.module-card-title{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.module-card-description{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.module-card-arrow{color:var(--color-text-muted)}.placeholder-card{display:grid;gap:var(--space-5);padding:var(--space-6)}.placeholder-rule{height:1px;background:var(--color-border)}.placeholder-content{display:grid;gap:var(--space-3);color:var(--color-text-secondary)}.placeholder-list{display:grid;gap:var(--space-2);padding-left:var(--space-6)}.placeholder-list li::marker{content:"• "}.not-found-panel{display:grid;justify-items:start;gap:var(--space-5)}.not-found-code{color:var(--color-primary-700);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}@media(max-width:640px){.login-page,.not-found-page,.login-card,.not-found-panel,.dashboard-intro,.placeholder-card{padding:var(--space-4)}.module-grid{grid-template-columns:1fr}.module-card{min-height:auto;grid-template-columns:auto 1fr}.module-card-arrow{display:none}}.clients-page{min-width:0}.clients-page>*{min-width:0}.clients-card-heading{display:flex;align-items:flex-start;justify-content:space-between;min-width:0;gap:var(--space-4);margin-bottom:var(--space-5)}.clients-card-heading>*,.clients-table-toolbar>*{min-width:0}.clients-card-heading h2{font-size:var(--font-size-xl)}.clients-card-heading p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.clients-filter-card,.clients-table-card,.client-detail-section,.client-profile-summary{min-width:0;max-width:100%;padding:var(--space-6)}.clients-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-5)}.clients-filter-grid>*{min-width:0}.clients-page .form-control{width:100%;min-height:var(--control-height-md);padding:0 var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.clients-page .form-control:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.clients-filter-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.clients-export-help{display:grid;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-4);color:var(--color-text-primary);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md)}.clients-export-help h3{font-size:var(--font-size-lg)}.clients-export-help p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.clients-table-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;min-width:0;gap:var(--space-4);margin-bottom:var(--space-4)}.clients-table-toolbar h2{font-size:var(--font-size-xl)}.clients-table-toolbar p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.clients-status-message{max-width:100%;padding:var(--space-2) var(--space-3);color:var(--color-success-700);background:var(--color-success-100);border-radius:var(--radius-md);overflow-wrap:anywhere}.client-table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.client-table{width:100%;border-collapse:collapse}.client-list-table{min-width:920px;table-layout:fixed}.client-list-table .client-col-select{width:4%}.client-list-table .client-col-case{width:9%}.client-list-table .client-col-name{width:10%}.client-list-table .client-col-gender{width:5%}.client-list-table .client-col-birth{width:9%}.client-list-table .client-col-district{width:7%}.client-list-table .client-col-category{width:12%}.client-list-table .client-col-level,.client-list-table .client-col-placement{width:7%}.client-list-table .client-col-subsidy,.client-list-table .client-col-created{width:9%}.client-list-table .client-col-action{width:8%}.service-worker-list-table{min-width:2840px;table-layout:fixed}.service-worker-list-table .service-worker-col-select{width:56px}.service-worker-list-table .service-worker-col-index{width:64px}.service-worker-list-table .service-worker-col-status{width:112px}.service-worker-list-table .service-worker-col-national-id{width:124px}.service-worker-list-table .service-worker-col-name{width:132px}.service-worker-list-table .service-worker-col-birth,.service-worker-list-table .service-worker-col-date{width:124px}.service-worker-list-table .service-worker-col-phone{width:136px}.service-worker-list-table .service-worker-col-address{width:260px}.service-worker-list-table .service-worker-col-email{width:200px}.service-worker-list-table .service-worker-col-year{width:136px}.service-worker-list-table .service-worker-col-special-care,.service-record-list-table .service-record-col-special-care{width:220px}.service-worker-list-table .service-worker-col-short{width:96px}.service-worker-list-table .service-worker-col-hours{width:132px}.service-worker-list-table .service-worker-col-annual-hours,.service-worker-list-table .service-worker-col-count{width:160px}.service-worker-list-table .service-worker-col-action{width:112px}.service-record-list-table{min-width:1740px;table-layout:fixed}.service-record-list-table .service-record-col-select{width:56px}.service-record-list-table .service-record-col-number{width:128px}.service-record-list-table .service-record-col-status,.service-record-list-table .service-record-col-district,.service-record-list-table .service-record-col-hours{width:104px}.service-record-list-table .service-record-col-date,.service-record-list-table .service-record-col-time,.service-record-list-table .service-record-col-signature,.service-record-list-table .service-record-col-name,.service-record-list-table .service-record-col-worker{width:132px}.service-record-list-table .service-record-col-items{width:260px}.service-record-list-table .service-record-col-action{width:112px}.appointment-list-table{min-width:1760px;table-layout:fixed}.appointment-list-table .appointment-col-select{width:56px}.appointment-list-table .appointment-col-number{width:144px}.appointment-list-table .appointment-col-status,.appointment-list-table .appointment-col-hours,.appointment-list-table .appointment-col-action{width:104px}.appointment-list-table .appointment-col-date,.appointment-list-table .appointment-col-client{width:132px}.appointment-list-table .appointment-col-date-range{width:172px}.appointment-list-table .appointment-col-progress{width:184px}.appointment-list-table .appointment-col-applicant{width:156px}.appointment-list-table .appointment-col-items{width:248px}.appointment-list-table .appointment-col-worker{width:220px}.appointment-list-table .appointment-col-updated{width:160px}.service-worker-record-table{min-width:1160px;table-layout:fixed}.service-worker-record-table .service-worker-record-col-number{width:128px}.service-worker-record-table .service-worker-record-col-status,.service-worker-record-table .service-worker-record-col-hours,.service-worker-record-table .service-worker-record-col-district{width:104px}.service-worker-record-table .service-worker-record-col-date,.service-worker-record-table .service-worker-record-col-time,.service-worker-record-table .service-worker-record-col-client,.service-worker-record-table .service-worker-record-col-signature{width:132px}.service-worker-record-table .service-worker-record-col-items{width:260px}.client-table th{height:48px;padding:0 var(--space-4);color:var(--color-text-primary);background:var(--color-bg-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;vertical-align:middle;white-space:nowrap}.client-table td{padding:var(--space-3) var(--space-4);color:var(--color-text-primary);border-top:1px solid var(--color-border);vertical-align:middle}.client-table tbody tr:hover{background:var(--color-primary-50)}.client-list-table :is(th,td):is(:nth-child(2),:nth-child(5),:nth-child(7),:nth-child(8),:nth-child(9),:nth-child(10)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-list-table .client-person-cell{min-width:0}.client-list-table .client-case-link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-list-table .client-person-name,.client-list-table .client-muted{overflow-wrap:anywhere}.client-list-table .client-badge-list,.client-list-table .client-badge{max-width:100%}.service-worker-list-table :is(th,td):is(:nth-child(5),:nth-child(8),:nth-child(9)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-worker-list-table .client-row-actions{flex-wrap:nowrap}.service-worker-list-table .client-read-button{min-width:68px}.service-record-list-table :is(th,td):is(:nth-child(2),:nth-child(7),:nth-child(8),:nth-child(9),:nth-child(11)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-list-table :is(th,td):is(:nth-child(2),:nth-child(4),:nth-child(5),:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(11),:nth-child(12)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-status-preview{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md)}.appointment-status-preview--grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.appointment-status-preview--grid>div{display:grid;gap:var(--space-1);min-width:0}.appointment-status-preview>span,.appointment-status-preview--grid span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.appointment-status-preview>strong,.appointment-status-preview--grid strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.appointment-benefit-grid{margin-top:var(--space-5)}.appointment-combobox-field{position:relative;display:grid;gap:var(--space-2)}.appointment-combobox-label span{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.appointment-combobox-control{position:relative;min-width:0}.appointment-combobox-control input{width:100%;min-height:var(--control-height-md);padding:0 var(--space-8) 0 var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.appointment-slot-mini-field.appointment-combobox-field{gap:var(--space-1)}.appointment-slot-mini-field.appointment-combobox-field .appointment-combobox-control input{min-height:var(--control-height-sm);padding-left:var(--space-2)}.appointment-combobox-control input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.appointment-combobox-toggle{position:absolute;top:50%;right:var(--space-1);display:inline-flex;align-items:center;width:28px;height:28px;min-height:28px;justify-content:center;padding:0;color:var(--color-text-secondary);background:transparent;border:0;border-radius:var(--radius-sm);transform:translateY(-50%)}.appointment-combobox-toggle:hover{color:var(--color-text-primary);background:var(--color-gray-100)}.appointment-combobox-list{position:absolute;z-index:30;top:calc(100% + var(--space-1));left:0;right:0;display:grid;max-height:240px;overflow-y:auto;padding:var(--space-1);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.appointment-combobox-option{display:flex;align-items:center;justify-content:flex-start;min-height:var(--control-height-sm);padding:0 var(--space-2);color:var(--color-text-primary);background:transparent;border:0;border-radius:var(--radius-sm);font-size:var(--font-size-sm);text-align:left}.appointment-combobox-option:hover,.appointment-combobox-option[aria-selected=true]{background:var(--color-primary-50)}.appointment-combobox-empty{padding:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.appointment-client-combobox .client-alert{margin-top:var(--space-2)}.appointment-section-grid{margin-top:var(--space-5)}.appointment-slot-table-scroll{margin-top:var(--space-4);max-height:min(560px,62vh);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.appointment-slot-panel,.appointment-create-page .client-create-form,.appointment-create-page .client-form-section{min-width:0;max-width:100%}.appointment-slot-table{min-width:1160px;table-layout:fixed}.appointment-slot-table--with-actual{min-width:1580px}.appointment-slot-col-action{width:92px}.appointment-slot-col-sequence{width:56px}.appointment-slot-col-date,.appointment-slot-col-assignment-date,.appointment-slot-col-status{width:132px}.appointment-slot-col-planned-time,.appointment-slot-col-actual-time{width:180px}.appointment-slot-col-worker,.appointment-slot-col-actual-worker{width:184px}.appointment-slot-col-hours{width:112px}.appointment-slot-col-result{width:280px}.appointment-slot-table thead th{position:sticky;top:0;z-index:5}.appointment-slot-sticky-action,.appointment-slot-sticky-sequence{position:sticky;z-index:4;background:var(--color-white)}.appointment-slot-sticky-action,.appointment-slot-sticky-sequence{left:0}.appointment-slot-table--with-actions .appointment-slot-sticky-sequence{left:92px}.appointment-slot-table thead .appointment-slot-sticky-action,.appointment-slot-table thead .appointment-slot-sticky-sequence{z-index:8;background:var(--color-bg-muted)}.appointment-slot-table tbody .appointment-slot-sticky-action,.appointment-slot-table tbody .appointment-slot-sticky-sequence{box-shadow:1px 0 0 var(--color-border)}.appointment-slot-table tbody tr:hover .appointment-slot-sticky-action,.appointment-slot-table tbody tr:hover .appointment-slot-sticky-sequence{background:var(--color-primary-50)}.appointment-slot-table td{vertical-align:top}.appointment-slot-sequence{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-align:center}.appointment-slot-action-cell{text-align:center}.appointment-slot-remove-button{justify-content:center;width:100%;min-height:var(--control-height-sm);padding:0 var(--space-2);font-size:var(--font-size-sm)}.appointment-slot-remove-button:disabled{color:var(--color-text-muted);cursor:not-allowed;background:var(--color-gray-100);border-color:var(--color-border)}.appointment-slot-add-panel{display:grid;justify-items:start;gap:var(--space-2);margin-top:var(--space-3)}.appointment-slot-add-panel .client-alert{margin-top:0}.appointment-slot-field-stack,.appointment-slot-readonly-stack{display:grid;min-width:0;gap:var(--space-2)}.appointment-slot-readonly-stack{color:var(--color-text-primary);font-size:var(--font-size-sm)}.appointment-slot-mini-field{display:grid;min-width:0;gap:var(--space-1)}.appointment-slot-mini-field span{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.appointment-slot-mini-field input,.appointment-slot-mini-field select,.appointment-slot-mini-field textarea,.appointment-slot-table .form-control{width:100%;min-height:var(--control-height-sm);padding:0 var(--space-2);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.appointment-slot-mini-field textarea{min-height:72px;padding-top:var(--space-2);padding-bottom:var(--space-2);resize:vertical}.appointment-slot-mini-field input:focus,.appointment-slot-mini-field select:focus,.appointment-slot-mini-field textarea:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.appointment-slot-checkbox-list{display:grid;grid-template-columns:repeat(2,minmax(116px,1fr));gap:var(--space-2)}.appointment-slot-checkbox,.appointment-slot-inline-check{display:flex;min-width:0;min-height:var(--control-height-sm);align-items:center;gap:var(--space-2);padding:0 var(--space-2);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.appointment-slot-checkbox input,.appointment-slot-inline-check input{width:16px;min-height:16px;flex:0 0 auto;accent-color:var(--color-primary-700)}.appointment-slot-checkbox span,.appointment-slot-inline-check span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-slot-copy-button{width:100%;min-height:var(--control-height-sm);justify-content:center;padding:0 var(--space-2);font-size:var(--font-size-sm)}.service-record-signature-summary{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-worker-record-table :is(th,td):is(:nth-child(1),:nth-child(6)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-select-column{text-align:center}.client-select-column input{width:15px;min-height:18px;accent-color:var(--color-primary-700)}.client-list-table .client-compact-column,.client-list-table .client-action-column{padding-right:var(--space-2);padding-left:var(--space-2)}.client-read-button{min-width:52px;justify-content:center;color:var(--color-primary-800);background:var(--color-white);border-color:var(--color-border-strong)}.client-read-button:hover{background:var(--color-primary-50);border-color:var(--color-primary-600)}.client-sort-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;color:inherit;background:transparent;border:0;font-weight:inherit}.client-case-link{color:var(--color-primary-800);font-weight:var(--font-weight-semibold)}.client-case-link:hover{color:var(--color-primary-900);text-decoration:underline;text-underline-offset:3px}.client-person-cell,.client-timeline-content{display:grid;gap:var(--space-1)}.client-person-name{font-weight:var(--font-weight-medium)}.client-muted{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.client-badge-list{display:flex;flex-wrap:wrap;gap:var(--space-1)}.client-badge{display:inline-flex;min-height:24px;align-items:center;gap:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.client-badge--success{color:var(--color-success-700);background:var(--color-success-100)}.client-badge--warning{color:var(--color-warning-700);background:var(--color-warning-100)}.client-badge--danger{color:var(--color-danger-700);background:var(--color-danger-100)}.client-badge--info{color:var(--color-info-700);background:var(--color-info-100)}.client-badge--neutral{color:var(--color-gray-700);background:var(--color-gray-100)}.client-row-actions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.client-row-actions .button{min-height:var(--control-height-sm);padding:0 var(--space-2);font-size:var(--font-size-sm)}.clients-page .button:disabled{color:var(--color-text-muted);background:var(--color-bg-muted);border-color:var(--color-border);opacity:.78}.button--danger{color:var(--color-text-inverse);background:var(--color-danger-700);border-color:var(--color-danger-700)}.button--danger:hover{background:var(--color-danger-700);border-color:var(--color-danger-700)}.button--danger-ghost{color:var(--color-danger-700)}.button--danger-ghost:hover{background:var(--color-danger-100)}.client-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#10202f6b}.client-dialog-content{position:fixed;top:50%;left:50%;z-index:70;display:grid;width:min(calc(100vw - 32px),520px);gap:var(--space-5);padding:var(--space-6);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform:translate(-50%,-50%)}.client-dialog-body{display:grid;gap:var(--space-2)}.client-dialog-title{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.client-dialog-description{color:var(--color-text-secondary)}.client-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.clients-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.clients-pagination-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.client-empty-state{display:grid;justify-items:start;gap:var(--space-4);padding:var(--space-6);color:var(--color-text-secondary);background:var(--color-bg-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.client-empty-state h3{margin-bottom:var(--space-1);font-size:var(--font-size-lg)}.client-create-form{display:grid;width:min(100%,1040px);gap:var(--space-6)}.client-create-page{justify-items:center}.client-create-page .page-header,.client-detail-page .page-header{width:min(100%,1040px)}.client-detail-page{justify-items:center}.client-detail-page .client-form-section{min-width:0;width:min(100%,1040px)}.client-form-section{padding:var(--space-6)}.client-form-section-header{display:grid;gap:var(--space-1);margin-bottom:var(--space-3)}.client-form-section-header h2{font-size:var(--font-size-xl)}.client-form-section-header p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.client-form-section-divider{margin-bottom:var(--space-5);border-top:1px solid var(--color-border)}.client-readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.client-readonly-field{display:grid;gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-md)}.client-readonly-field--full{grid-column:1 / -1}.client-readonly-field span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.client-readonly-field strong,.client-readonly-value{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);word-break:break-word}.client-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);align-items:start}.client-field{min-width:0}.client-field--half{grid-column:auto}.client-field--full{grid-column:1 / -1}.client-textarea{width:100%;min-height:112px;resize:vertical;padding:var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.client-textarea:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.client-checkbox-fieldset{display:grid;gap:var(--space-3);margin:var(--space-3) 0;padding:0;border:0}.client-checkbox-fieldset legend{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:1rem}.client-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:var(--space-3)}.client-radio-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.client-checkbox{display:flex;min-height:var(--control-height-md);align-items:center;gap:var(--space-2);padding:0 var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.client-checkbox input{width:18px;min-height:18px;flex:0 0 auto;accent-color:var(--color-primary-700)}.client-form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.client-alert{display:grid;gap:var(--space-1);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.client-alert strong{font-size:var(--font-size-sm)}.client-alert p{color:inherit;font-size:var(--font-size-sm)}.client-alert--warning{color:var(--color-warning-700);background:var(--color-warning-100);border-color:#b5790b3d}.client-alert--danger{color:var(--color-danger-700);background:var(--color-danger-100);border-color:#b4231840}.client-detail-edit-actions,.client-form-status{width:min(100%,1040px)}.client-submit-summary{display:grid;width:min(100%,1040px);gap:var(--space-5);padding:var(--space-6);border-color:var(--color-success-700)}.client-document-summary{display:grid;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.client-document-summary h3{font-size:var(--font-size-lg)}.client-document-list{display:grid;gap:var(--space-3);list-style:none}.client-document-list li{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:var(--space-3);padding:var(--space-3);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md)}.client-document-list li>div{display:grid;min-width:0;gap:var(--space-1)}.client-document-list strong{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0;overflow:hidden;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.client-document-list span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.client-detail-subsections{display:grid;min-width:0;gap:var(--space-6)}.client-detail-form-subsection{display:grid;min-width:0;gap:var(--space-3)}.client-detail-form-subsection h3{color:var(--color-text-primary);font-size:var(--font-size-lg)}.client-detail-subsections>section{min-width:0}.client-detail-subsection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3)}.client-detail-subsection-heading h3{font-size:var(--font-size-lg)}.client-detail-subsection-heading p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.client-record-help{display:grid;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-primary);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md)}.client-record-help h3{font-size:var(--font-size-lg)}.client-record-help p{color:var(--color-text-secondary)}.client-record-dialog{width:min(100%,720px);max-height:calc(100vh - var(--space-8));overflow-y:auto}.client-main-tabs,.client-main-panel{width:min(100%,1040px)}.client-main-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.client-main-panel{display:grid;min-width:0;gap:var(--space-6)}.client-main-panel>*{min-width:0}.client-profile-summary{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr) auto;gap:var(--space-6);align-items:start}.client-profile-summary h2{margin-top:var(--space-1)}.client-profile-status{justify-self:end}.client-info-list{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:var(--space-4) var(--space-6)}.client-info-item{min-width:0}.client-info-item dt{margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.client-info-item dd{margin:0;color:var(--color-text-primary);word-break:break-word}.client-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.client-tab{min-height:var(--control-height-md);padding:0 var(--space-4);color:var(--color-text-secondary);background:transparent;border:0;border-bottom:3px solid transparent;font-weight:var(--font-weight-medium)}.client-tab:hover{color:var(--color-primary-800);background:var(--color-primary-50)}.client-tab.is-active{color:var(--color-primary-900);border-bottom-color:var(--color-primary-700)}.client-timeline{display:grid;gap:var(--space-5);list-style:none}.client-timeline li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3)}.client-timeline-point{width:12px;height:12px;margin-top:7px;background:var(--color-primary-700);border-radius:var(--radius-pill)}.client-timeline-date{color:var(--color-primary-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.client-timeline h3{font-size:var(--font-size-lg)}.client-note-list{display:grid;gap:var(--space-3);padding-left:var(--space-5)}.client-note-list li::marker{color:var(--color-primary-700)}.client-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.service-record-create-page .client-create-form{gap:var(--space-5)}.service-record-owner-card{display:grid;gap:var(--space-5);padding:var(--space-6);border-color:var(--color-primary-100)}.service-record-owner-heading{display:grid;gap:var(--space-2)}.service-record-owner-heading h2{font-size:var(--font-size-xl)}.service-record-owner-heading p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-record-owner-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:var(--space-5);align-items:end}.service-record-owner-summary{display:grid;gap:var(--space-1);min-height:var(--control-height-lg);padding:var(--space-3) var(--space-4);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md)}.service-record-owner-summary span,.service-record-owner-summary small{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-record-owner-summary strong{color:var(--color-primary-900);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.service-record-accordion{display:grid;gap:var(--space-4)}.service-record-accordion-item{min-width:0;overflow:hidden}.service-record-accordion-trigger{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);color:var(--color-text-primary);background:var(--color-bg-surface);border:0;text-align:left}.service-record-accordion-trigger:hover{background:var(--color-primary-50)}.service-record-accordion-trigger>span{display:grid;min-width:0;gap:var(--space-1)}.service-record-accordion-trigger strong{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.service-record-accordion-trigger small{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.service-record-accordion-chevron{flex:0 0 auto;margin-top:2px;color:var(--color-primary-800);transition:transform var(--transition-normal)}.service-record-accordion-trigger[data-state=open] .service-record-accordion-chevron{transform:rotate(180deg)}.service-record-accordion-content{display:grid;gap:var(--space-5);padding:var(--space-6) var(--space-6);border-top:1px solid var(--color-border)}.service-record-subsection{display:grid;gap:var(--space-4);padding-top:var(--space-5)}.service-record-subsection h3{font-size:var(--font-size-lg)}.service-record-required{display:inline-flex;margin-left:var(--space-2);color:var(--color-text-danger);font-size:var(--font-size-xs);font-style:normal;font-weight:var(--font-weight-semibold)}.file-upload-field{min-width:0}.file-upload-control{display:flex;min-width:0;align-items:center;gap:var(--space-3)}.file-upload-control .button{flex:0 0 auto}.file-upload-name{min-width:0;overflow:hidden;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.file-upload-helper,.file-upload-error{margin:0;font-size:var(--font-size-sm)}.file-upload-helper{color:var(--color-text-secondary)}.file-upload-error{color:var(--color-text-danger)}.file-upload-preview{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:var(--color-white);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.file-upload-preview--signature{width:min(100%,240px);height:72px}.file-upload-preview img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.service-record-file-field{display:grid;gap:var(--space-2)}.service-record-file-upload{display:flex;min-width:0;align-items:center;gap:var(--space-3)}.service-record-file-upload .button{flex:0 0 auto}.service-record-file-field small{min-width:0;overflow:hidden;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.service-record-prefill-note{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-record-conditional-panel{display:grid;gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md)}.service-record-validation-list{display:grid;width:min(100%,1040px);gap:var(--space-3);padding:var(--space-4);color:var(--color-danger-700);background:var(--color-danger-100);border:1px solid rgba(180,35,24,.25);border-radius:var(--radius-md)}.service-record-validation-list h2{color:var(--color-danger-700);font-size:var(--font-size-lg)}.service-record-validation-list ul{display:grid;gap:var(--space-1);padding-left:var(--space-5)}.service-record-validation-list li::marker{color:var(--color-danger-700)}@media(max-width:1180px){.client-profile-summary{grid-template-columns:1fr}.client-checkbox-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.client-profile-status{justify-self:start}}@media(max-width:640px){.clients-filter-card,.clients-table-card,.client-detail-section,.client-profile-summary,.client-empty-state,.client-form-section,.client-submit-summary{padding:var(--space-4)}.clients-card-heading,.clients-table-toolbar,.clients-pagination,.client-detail-subsection-heading,.appointment-status-preview{display:grid}.clients-filter-grid,.client-info-list,.client-form-grid,.client-readonly-grid,.client-checkbox-grid{grid-template-columns:1fr}.client-field,.client-readonly-field{grid-column:1 / -1}.clients-filter-actions .button,.clients-pagination-actions .button,.client-form-actions .button{width:100%}.client-form-actions{display:grid}.client-dialog-content{padding:var(--space-4)}.client-dialog-actions,.client-document-list li{display:grid}.service-record-owner-card{padding:var(--space-4)}.service-record-owner-content{grid-template-columns:1fr;align-items:stretch}.file-upload-control{display:grid}.file-upload-control .button,.file-upload-preview--signature{width:100%}.service-record-file-upload{display:grid}.service-record-file-upload .button{width:100%}.service-record-accordion-trigger{padding:var(--space-4)}.service-record-accordion-content{padding:0 var(--space-4) var(--space-4)}}.rates-page{min-width:0}.rates-principle-panel{padding:var(--space-4) var(--space-5);color:var(--color-text-secondary);background:var(--color-primary-50);border-color:var(--color-primary-100)}.rates-tabs{display:grid;min-width:0;gap:var(--space-5)}.rates-tab-list{display:flex;min-width:0;gap:var(--space-2);overflow-x:auto;border-bottom:1px solid var(--color-border)}.rates-tab-trigger{min-height:var(--control-height-md);flex:0 0 auto;padding:0 var(--space-4);color:var(--color-text-secondary);background:transparent;border:0;border-bottom:3px solid transparent;font-weight:var(--font-weight-medium);white-space:nowrap}.rates-tab-trigger:hover{color:var(--color-primary-800);background:var(--color-primary-50)}.rates-tab-trigger[data-state=active]{color:var(--color-primary-900);border-bottom-color:var(--color-primary-700)}.rates-tab-panel{min-width:0}.rates-tab-card{display:grid;gap:var(--space-4)}.rates-definition-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--space-3);padding:var(--space-4);color:var(--color-text-secondary);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.rates-table{table-layout:fixed}.service-rates-table{min-width:1620px}.subsidy-standards-table{min-width:1680px}.annual-hours-table{min-width:1320px}.rates-col-name{width:220px}.rates-col-identity{width:148px}.rates-col-mode,.rates-col-unit,.rates-col-status{width:112px}.rates-col-money{width:152px}.rates-col-date{width:120px}.rates-col-note{width:280px}.rates-col-action{width:168px}.rates-numeric{text-align:right}.rates-note-cell{color:var(--color-text-secondary);font-size:var(--font-size-sm);overflow-wrap:anywhere}.rates-rule-list{display:grid;gap:var(--space-4)}.rates-rule-item{display:grid;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md)}.rates-rule-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.rates-rule-heading h3{font-size:var(--font-size-lg)}.rates-rule-heading p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.rates-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--space-4)}.rates-rule-grid div{min-width:0}.rates-rule-grid-wide{grid-column:1 / -1}.rates-rule-grid dt{margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.rates-rule-grid dd{margin:0;color:var(--color-text-primary);overflow-wrap:anywhere}.rates-rule-actions{justify-content:flex-end}.rates-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#10202f6b}.rates-dialog-content{position:fixed;top:50%;left:50%;z-index:70;display:grid;width:min(calc(100vw - 32px),840px);max-height:calc(100vh - 32px);overflow:hidden;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform:translate(-50%,-50%)}.rates-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-6);border-bottom:1px solid var(--color-border)}.rates-dialog-title{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.rates-dialog-description{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.rates-dialog-form{display:grid;min-height:0;overflow-y:auto}.rates-dialog-grid{padding:var(--space-6)}.rates-dialog-field>span{display:inline-flex;align-items:center;gap:var(--space-2)}.rates-required{color:var(--color-text-danger);font-size:var(--font-size-xs);font-style:normal;font-weight:var(--font-weight-semibold)}.rates-form-error{color:var(--color-text-danger);font-size:var(--font-size-sm)}.rates-dialog-field [aria-invalid=true]{border-color:var(--color-danger-700)}.rates-dialog-field .form-control{width:100%;min-height:var(--control-height-md);padding:0 var(--space-3);color:var(--color-text-primary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.rates-dialog-field .form-control:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3d7db829}.rates-dialog-field .form-control[aria-invalid=true]{border-color:var(--color-danger-700)}.rates-checkbox{display:flex;min-height:var(--control-height-md);align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.rates-checkbox input{width:18px;min-height:18px;flex:0 0 auto;accent-color:var(--color-primary-700)}.rates-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border)}.rates-dialog-actions .button:disabled{color:var(--color-text-muted);background:var(--color-bg-muted);border-color:var(--color-border);opacity:.78}@media(max-width:640px){.rates-principle-panel,.rates-rule-item{padding:var(--space-4)}.rates-tab-list{margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.rates-rule-heading,.rates-dialog-header,.rates-dialog-actions{display:grid}.rates-dialog-content{width:min(calc(100vw - 24px),840px);max-height:calc(100vh - 24px)}.rates-dialog-header,.rates-dialog-grid,.rates-dialog-actions{padding:var(--space-4)}.rates-dialog-actions .button{width:100%}}.reports-page{min-width:0}.reports-type-card,.report-column-card,.report-summary-card{min-width:0;padding:var(--space-6)}.report-type-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.report-type-tabs .client-tab{display:grid;min-width:min(100%,190px);height:auto;justify-items:start;gap:var(--space-1);padding:var(--space-3) var(--space-4);text-align:left}.report-type-tabs .client-tab small{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular)}.report-context-note{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.report-query-grid{align-items:end}.report-query-checkbox{align-self:end}.report-query-checkbox-group{grid-column:1 / -1;margin:0}.report-required{display:inline-flex;margin-left:var(--space-2);color:var(--color-text-danger);font-size:var(--font-size-xs);font-style:normal;font-weight:var(--font-weight-semibold)}.report-column-actions,.report-toolbar-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.report-column-layout{display:grid;gap:var(--space-5)}.report-column-fieldset{margin:0}.report-column-checkbox:has(input:disabled){color:var(--color-text-secondary);background:var(--color-bg-muted)}.report-column-order{display:grid;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-column-order h3{font-size:var(--font-size-lg)}.report-column-order ol{display:grid;gap:var(--space-2);list-style:none}.report-column-order li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-summary-grid,.report-print-summary,.report-footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-3)}.report-summary-item,.report-print-summary div,.report-footer-grid div{display:grid;gap:var(--space-1);min-width:0;padding:var(--space-3);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-summary-item dt,.report-print-summary dt,.report-footer-grid dt{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.report-summary-item dd,.report-print-summary dd,.report-footer-grid dd{margin:0;color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.report-summary-item small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.report-toolbar{align-items:center}.report-toolbar-status{flex-basis:100%}.report-preview-table{min-width:960px}.report-preview-table :is(th,td){white-space:nowrap}.report-preview-table td{max-width:260px;overflow:hidden;text-overflow:ellipsis}.report-preview-table .report-cell--right{text-align:right}.report-preview-table .report-cell--center{text-align:center}.report-loading-card{display:grid;gap:var(--space-3);color:var(--color-text-secondary)}.report-loading-bar{width:100%;height:10px;overflow:hidden;background:var(--color-bg-muted);border-radius:var(--radius-pill)}.report-loading-bar:before{display:block;width:42%;height:100%;background:var(--color-primary-500);border-radius:inherit;animation:report-loading 1.2s infinite ease-in-out;content:""}.report-print-dialog{width:min(calc(100vw - 32px),1120px);max-height:calc(100vh - 32px);overflow-y:auto}.report-print-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.report-print-paper{display:grid;gap:var(--space-5);min-width:0;padding:var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-print-footer{display:grid;gap:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.report-print-footer h3{margin-bottom:var(--space-3);font-size:var(--font-size-lg)}.report-signature-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:var(--space-3)}.report-signature-grid span{min-height:76px;padding:var(--space-3);color:var(--color-text-secondary);background:var(--color-white);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.report-payment-footer{display:grid;gap:var(--space-2);padding:var(--space-4);background:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-md)}.report-payment-footer strong{margin-left:var(--space-1);color:var(--color-primary-900)}@keyframes report-loading{0%{transform:translate(-100%)}50%{transform:translate(80%)}to{transform:translate(240%)}}@media(max-width:760px){.reports-type-card,.report-column-card,.report-summary-card{padding:var(--space-4)}.report-type-tabs .client-tab,.report-column-actions .button,.report-toolbar-actions .button{width:100%}.report-column-order li,.report-print-header{display:grid}.report-signature-grid{grid-template-columns:1fr 1fr}}.service-acceptance-page,.service-acceptance-detail-page,.surveys-page,.survey-detail-page,.survey-settings-page{min-width:0}.service-required{display:inline-flex;margin-left:var(--space-2);color:var(--color-text-danger);font-size:var(--font-size-xs);font-style:normal;font-weight:var(--font-weight-semibold)}.form-error-message{margin:0;color:var(--color-text-danger);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.form-field--invalid .client-checkbox,.survey-question--invalid .client-checkbox{border-color:#b423187a}.service-context-note,.survey-section>p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.service-form-block,.survey-question-list{display:grid;gap:var(--space-5)}.survey-recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.service-footer-actions,.survey-footer-actions{padding:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.service-acceptance-list-table{min-width:2180px;table-layout:fixed}.service-acceptance-list-table .acceptance-col-select{width:56px}.service-acceptance-list-table .acceptance-col-kind,.service-acceptance-list-table .acceptance-col-hours,.service-acceptance-list-table .acceptance-col-status{width:116px}.service-acceptance-list-table .acceptance-col-date,.service-acceptance-list-table .acceptance-col-time{width:124px}.service-acceptance-list-table .acceptance-col-name,.service-acceptance-list-table .acceptance-col-location{width:140px}.service-acceptance-list-table .acceptance-col-items{width:260px}.service-acceptance-list-table .acceptance-col-action{width:188px}.service-acceptance-list-table :is(th,td):is(:nth-child(4),:nth-child(5),:nth-child(11),:nth-child(12)){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-acceptance-list-table td:nth-child(13){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acceptance-print-dialog{width:min(calc(100vw - 32px),1180px);max-height:calc(100vh - 32px);overflow-y:auto}.acceptance-print-paper{display:grid;gap:var(--space-5);min-width:0;padding:var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md)}.acceptance-print-title{display:grid;gap:var(--space-2);text-align:center}.acceptance-print-title h2{font-size:var(--font-size-xl)}.acceptance-print-title p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.acceptance-print-table{min-width:1680px}.acceptance-print-table th,.acceptance-print-table td{font-size:var(--font-size-sm);vertical-align:top}.acceptance-signature-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:var(--space-3)}.acceptance-signature-grid span{min-height:72px;padding:var(--space-3);color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.survey-list-table{min-width:1040px;table-layout:fixed}.survey-list-table .survey-col-year,.survey-list-table .survey-col-kind,.survey-list-table .survey-col-status{width:116px}.survey-list-table .survey-col-name{width:180px}.survey-list-table .survey-col-relation,.survey-list-table .survey-col-date{width:132px}.survey-list-table .survey-col-action{width:230px}.survey-settings-table{min-width:980px;table-layout:fixed}.survey-settings-table th:nth-child(1),.survey-settings-table td:nth-child(1),.survey-settings-table th:nth-child(3),.survey-settings-table td:nth-child(3),.survey-settings-table th:nth-child(4),.survey-settings-table td:nth-child(4){width:104px}.survey-settings-table th:nth-child(5),.survey-settings-table td:nth-child(5){width:132px}.survey-settings-table th:nth-child(6),.survey-settings-table td:nth-child(6){width:112px}.survey-settings-table td:nth-child(2) strong{display:block;margin-bottom:var(--space-1)}.survey-progress{display:grid;width:min(100%,1040px);gap:var(--space-2);padding:var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.survey-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.survey-progress strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.survey-progress span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.survey-progress-bar{height:10px;overflow:hidden;background:var(--color-bg-muted);border-radius:var(--radius-pill)}.survey-progress-bar span{display:block;height:100%;background:var(--color-primary-700);border-radius:inherit}.survey-section{width:min(100%,1040px)}.survey-question{display:grid;gap:var(--space-3);min-width:0;margin:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.survey-question legend{padding:0 var(--space-1);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.survey-question>p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.survey-question--invalid{border-color:#b423187a}.survey-rating-grid{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr));gap:var(--space-2)}.survey-rating-option{justify-content:center}.survey-other-field{margin-top:var(--space-3)}.survey-detail-page,.survey-settings-page,.service-acceptance-detail-page{justify-items:center}.survey-detail-page .page-header,.survey-settings-page .page-header,.service-acceptance-detail-page .page-header,.survey-detail-page .client-form-status,.survey-detail-page .client-detail-edit-actions,.service-acceptance-detail-page .client-form-status,.service-acceptance-detail-page .client-detail-edit-actions{width:min(100%,1040px)}.icon-button:disabled{color:var(--color-text-muted);background:var(--color-bg-muted);cursor:not-allowed}.clients-page input:disabled,.clients-page textarea:disabled,.clients-page select:disabled{color:var(--color-text-secondary);background:var(--color-bg-muted);cursor:not-allowed}@media(max-width:760px){.service-footer-actions,.survey-footer-actions,.acceptance-print-paper{padding:var(--space-4)}.acceptance-signature-grid,.survey-rating-grid{grid-template-columns:1fr 1fr}.survey-recommendation-grid{grid-template-columns:1fr}.service-footer-actions .button,.survey-footer-actions .button{width:100%}.survey-progress>div:first-child{display:grid}}.block{display:block}.table{display:table}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.paused{animation-play-state:paused}
