@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg:#3f5557;--bg-light:#4a6365;--bg-dark:#283739;--bg-darker:#1e2c2e;--text:#f0f1f4;--text-muted:#c8c9ce;--heading:#fff;--accent:#9bb5ff;--accent-hover:#7c9ee8;--accent-active:#5f84d0;--error:#e87c7c;--success:#6cd4cf;--warning:#e8c87c;--shadow:0, 0, 0;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius:28px;--radius-sm:8px;--radius-xs:4px;--transition:.25s ease;--sidebar-width:240px;--sidebar-collapsed:64px;--topbar-height:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);color:var(--text);background-color:var(--bg);font-size:14px;font-weight:400;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--heading);font-weight:600;line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-hover)}.btn{font-family:var(--font);color:var(--bg-darker);background-color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition), transform var(--transition);white-space:nowrap;border:none;align-items:center;gap:8px;padding:8px 20px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-secondary{background-color:var(--bg-light);color:var(--text)}.btn-secondary:hover{background-color:var(--bg)}.btn-danger{background-color:var(--error)}.btn-danger:hover{background-color:#d06060}.btn-sm{padding:4px 12px;font-size:.8rem}.btn-icon{border-radius:var(--radius-xs);cursor:pointer;width:28px;height:28px;color:var(--text-muted);transition:all var(--transition);background:0 0;border:none;justify-content:center;align-items:center;font-size:.8rem;display:inline-flex}.btn-icon:hover{background-color:color-mix(in srgb, var(--text) 10%, transparent);color:var(--heading)}.btn-icon-danger:hover{background-color:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-section-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 12px;font-size:.8rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--text);margin-bottom:4px;font-size:.8rem;font-weight:500;display:block}.form-group label .required{color:var(--accent);margin-left:2px}.form-group input,.form-group textarea,.form-group select{width:100%;font-family:var(--font);color:var(--heading);background-color:var(--bg-dark);border:1px solid color-mix(in srgb, var(--text) 20%, transparent);border-radius:var(--radius-xs);transition:border-color var(--transition);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;padding:8px 12px;font-size:.875rem}.form-group input:-webkit-autofill{caret-color:var(--heading);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-dark) inset!important;-webkit-text-fill-color:var(--heading)!important;border:1px solid color-mix(in srgb, var(--text) 20%, transparent)!important;background-color:var(--bg-dark)!important}.form-group input:-webkit-autofill:hover{caret-color:var(--heading);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-dark) inset!important;-webkit-text-fill-color:var(--heading)!important;border:1px solid color-mix(in srgb, var(--text) 20%, transparent)!important;background-color:var(--bg-dark)!important}.form-group input:-webkit-autofill:focus{caret-color:var(--heading);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-dark) inset!important;-webkit-text-fill-color:var(--heading)!important;border:1px solid color-mix(in srgb, var(--text) 20%, transparent)!important;background-color:var(--bg-dark)!important}.form-group input:-webkit-autofill:active{caret-color:var(--heading);transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--bg-dark) inset!important;-webkit-text-fill-color:var(--heading)!important;border:1px solid color-mix(in srgb, var(--text) 20%, transparent)!important;background-color:var(--bg-dark)!important}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:80px}.form-group input[readonly],.form-group textarea[readonly],.form-group select[disabled]{background-color:var(--bg);color:var(--text-muted);cursor:default;border-color:#0000}.form-group input.field-error,.form-group textarea.field-error,.form-group select.field-error{border-color:var(--error)}.form-error{color:var(--error);margin-top:2px;font-size:.75rem}.card{background-color:var(--bg-light);border-radius:var(--radius-sm);transition:box-shadow var(--transition);padding:16px}.card:hover{box-shadow:0 4px 16px rgba(var(--shadow), .2)}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;border-bottom:1px solid color-mix(in srgb, var(--text) 15%, transparent);cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.75rem;font-weight:600}thead th:hover{color:var(--accent)}tbody tr{transition:background-color var(--transition)}tbody tr:hover{background-color:var(--bg-light)}tbody td{border-bottom:1px solid color-mix(in srgb, var(--text) 8%, transparent);padding:10px 12px;font-size:.875rem}.pagination{color:var(--text-muted);justify-content:space-between;align-items:center;padding:12px 0;font-size:.8rem;display:flex}.pagination-buttons{gap:4px;display:flex}.pagination-buttons button{background-color:var(--bg-light);color:var(--text);border-radius:var(--radius-xs);cursor:pointer;transition:background-color var(--transition);border:none;padding:4px 10px;font-size:.8rem}.pagination-buttons button:hover{background-color:var(--accent);color:var(--heading)}.pagination-buttons button:disabled{opacity:.4;cursor:not-allowed}.pagination-buttons button.active{background-color:var(--accent);color:var(--heading)}.skeleton{background:linear-gradient(90deg, var(--bg-light) 25%, var(--bg) 50%, var(--bg-light) 75%);border-radius:var(--radius-xs);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px;display:flex}.empty-state h3{color:var(--text-muted);margin-bottom:8px;font-weight:400}@media (width<=768px){:root{--sidebar-width:0px}body{font-size:13px}}.error-boundary{background-color:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.error-boundary-card{text-align:center;background-color:var(--bg-dark);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--error) 30%, transparent);max-width:480px;padding:40px}.error-boundary-card h1{color:var(--heading);margin-bottom:12px;font-size:1.5rem}.error-boundary-message{color:var(--text-muted);margin-bottom:24px;font-size:.9rem;line-height:1.5}.error-boundary-actions{justify-content:center;gap:12px;display:flex}.toast-container{z-index:9999;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--radius-xs);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:.85rem;animation:.3s toastSlideIn;display:flex;box-shadow:0 4px 12px #0000004d}.toast-error{background-color:color-mix(in srgb, var(--error) 15%, var(--bg-dark));border:1px solid color-mix(in srgb, var(--error) 40%, transparent);color:var(--heading)}.toast-success{background-color:color-mix(in srgb, var(--accent) 15%, var(--bg-dark));border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);color:var(--heading)}.toast-message{flex:1;line-height:1.4}.toast-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:1.2rem;line-height:1}.toast-dismiss:hover{color:var(--heading)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.sidebar{left:0;top:var(--topbar-height);width:var(--sidebar-width);background-color:var(--bg-dark);border-right:1px solid color-mix(in srgb, var(--text) 10%, transparent);z-index:50;transition:width var(--transition);position:fixed;bottom:0;overflow-y:auto}.sidebar-nav{flex-direction:column;gap:2px;padding:12px 8px;display:flex}.sidebar-link{border-radius:var(--radius-xs);color:var(--text-muted);transition:all var(--transition);align-items:center;gap:12px;padding:10px 16px;font-size:.875rem;font-weight:400;text-decoration:none;display:flex}.sidebar-link:hover{background-color:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--heading)}.sidebar-link.active{background-color:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);font-weight:500}.sidebar-icon{text-align:center;flex-shrink:0;width:24px;font-size:1.1rem}.sidebar-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=768px){.sidebar{transform:translate(-100%)}}.topbar{height:var(--topbar-height);background-color:var(--bg-darker);border-bottom:1px solid color-mix(in srgb, var(--accent) 15%, transparent);z-index:100;align-items:center;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.topbar-left{width:var(--sidebar-width);flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar-logo{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:400}.topbar-app{color:var(--heading);text-transform:uppercase;letter-spacing:.1em;background-color:color-mix(in srgb, var(--accent) 20%, transparent);border-radius:var(--radius-xs);padding:2px 8px;font-size:.75rem;font-weight:600}.topbar-center{flex:1;justify-content:center;padding:0 20px;display:flex}.topbar-search{width:100%;max-width:480px;font-family:var(--font);color:var(--text);background-color:var(--bg-dark);border:1px solid color-mix(in srgb, var(--text) 15%, transparent);border-radius:var(--radius);transition:border-color var(--transition);outline:none;padding:8px 16px;font-size:.85rem}.topbar-search:focus{border-color:var(--accent)}.topbar-search::placeholder{color:var(--text-muted)}.topbar-right{align-items:center;margin-left:auto;display:flex;position:relative}.topbar-user{cursor:pointer;border-radius:var(--radius-xs);transition:background-color var(--transition);background:0 0;border:none;align-items:center;gap:8px;padding:4px 8px;display:flex}.topbar-user:hover{background-color:color-mix(in srgb, var(--text) 10%, transparent)}.topbar-avatar{background-color:var(--accent);width:32px;height:32px;color:var(--bg-dark);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.topbar-username{color:var(--text);font-size:.85rem}.topbar-dropdown{background-color:var(--bg-dark);border:1px solid color-mix(in srgb, var(--text) 15%, transparent);border-radius:var(--radius-xs);box-shadow:0 4px 16px rgba(var(--shadow), .3);z-index:200;min-width:180px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden}.topbar-dropdown button,.topbar-dropdown a{text-align:left;width:100%;color:var(--text);font-family:var(--font);cursor:pointer;transition:background-color var(--transition);box-sizing:border-box;background:0 0;border:none;padding:10px 16px;font-size:.85rem;text-decoration:none;display:block}.topbar-dropdown button:hover,.topbar-dropdown a:hover{background-color:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--heading)}.topbar-dropdown a.app-crm{--brand:#6cd4cf}.topbar-dropdown a.app-fin{--brand:#d4a84c}.topbar-dropdown a.app-crm,.topbar-dropdown a.app-fin{color:var(--brand);font-weight:500}.topbar-dropdown a.app-crm:hover,.topbar-dropdown a.app-fin:hover{background-color:color-mix(in srgb, var(--brand) 15%, transparent);color:var(--brand)}.modal-overlay{z-index:500;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-dark);border-radius:var(--radius-sm);width:90%;max-width:400px;box-shadow:0 8px 32px rgba(var(--shadow), .4);padding:32px}.about-modal h2{color:var(--accent);margin-bottom:12px}.about-version{color:var(--text-muted);margin-bottom:8px}.about-copyright{color:var(--text-muted);margin-bottom:20px;font-size:.8rem}.breadcrumb{align-items:center;gap:4px;padding:12px 0;font-size:.8rem;display:flex}.breadcrumb-link{color:var(--text-muted);transition:color var(--transition);text-decoration:none}.breadcrumb-link:hover{color:var(--accent)}.breadcrumb-sep{color:var(--text-muted);opacity:.5;margin:0 4px}.breadcrumb-current{color:var(--heading);font-weight:500}.app-layout{min-height:100vh}.app-main{margin-left:var(--sidebar-width);margin-top:var(--topbar-height);min-height:calc(100vh - var(--topbar-height));transition:margin-left var(--transition);padding:0 24px 24px}@media (width<=768px){.app-main{margin-left:0}}.login-page{background-color:var(--bg-dark);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background-color:var(--bg);border-radius:var(--radius-sm);width:100%;max-width:400px;box-shadow:0 8px 32px rgba(var(--shadow), .3);padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-brand{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:400}.login-header h1{color:var(--accent);margin:4px 0 8px;font-size:2rem;font-weight:700}.login-header p{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:300}.login-form{flex-direction:column;gap:16px;display:flex}.login-error{background-color:color-mix(in srgb, var(--error) 15%, transparent);border:1px solid var(--error);border-radius:var(--radius-xs);color:var(--error);padding:10px 14px;font-size:.85rem}.login-form .form-group label{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:300}.login-form .form-group input{border:1px solid var(--accent-hover)}.login-form .form-group input:focus{border-color:var(--accent)}.login-btn{text-transform:uppercase;letter-spacing:.15em;border:1px solid var(--accent-hover);justify-content:center;width:100%;margin-top:8px;padding:14px;font-size:.85rem;font-weight:400}.login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-header-text h1{margin:0}.page-header-subtitle{color:var(--text-muted);margin-top:4px;font-size:.85rem}.page-header-actions{flex-shrink:0;gap:8px;display:flex}.stat-card{background-color:var(--bg-light);border-radius:var(--radius-sm);min-width:160px;transition:box-shadow var(--transition);padding:20px}.stat-card:hover{background-color:var(--bg-dark);box-shadow:0 4px 16px #0003}.stat-card-accent{border-top:3px solid var(--accent)}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:500}.stat-value{color:var(--heading);font-size:1.75rem;font-weight:600;line-height:1}.stat-trend{margin-top:8px;font-size:.75rem;font-weight:500}.stat-trend-up{color:var(--accent)}.stat-trend-down{color:var(--error,#e57373)}.stat-trend-flat{color:var(--text-muted)}.tile-card{background-color:var(--bg-light);border-radius:var(--radius-sm);padding:20px}.tile-card-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.tile-card-header h3{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.85rem;font-weight:600}.tile-card-actions{flex-shrink:0;gap:8px;display:flex}.dashboard{max-width:1200px}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px;display:grid}.stat-card-link{color:inherit;text-decoration:none;display:block}.stat-card-link:hover .stat-card{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.stat-card-link .stat-card{cursor:pointer;transition:transform var(--transition), box-shadow var(--transition), background-color var(--transition)}.dashboard-charts{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px;display:grid}.bar-chart-wrap{align-items:stretch;gap:8px;display:flex}.bar-chart-axis{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:left;flex-direction:column;justify-content:space-between;min-width:30px;height:180px;padding-bottom:18px;font-size:.7rem;line-height:1;display:flex}.bar-chart-plot{flex:1;min-width:0;height:180px;position:relative}.bar-chart-grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 18px}.bar-chart-gridline{background:color-mix(in srgb, var(--text) 10%, transparent);height:1px}.bar-chart{align-items:flex-end;gap:3px;height:100%;padding-bottom:18px;display:flex;position:relative}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex;position:relative}.bar-fill{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%);width:100%;transition:height var(--transition);border-radius:2px 2px 0 0;min-height:0}.bar-weekend .bar-fill{background:color-mix(in srgb, var(--text) 25%, transparent)}.bar-empty .bar-fill{background:color-mix(in srgb, var(--text) 10%, transparent);min-height:2px}.bar-label{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.65rem;position:absolute;bottom:-18px}.company-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.company-row-top{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.company-name{color:var(--heading);font-size:.9rem;font-weight:500}.company-days{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.company-bar{background:color-mix(in srgb, var(--text) 12%, transparent);border-radius:3px;height:6px;overflow:hidden}.company-bar-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-hover) 100%);height:100%;transition:width var(--transition)}.tile-placeholder{color:var(--text-muted);margin:0;font-size:.9rem}.timesheet-toolbar{background-color:var(--bg-light);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.timesheet-nav{align-items:center;gap:8px;display:flex}.timesheet-month{text-align:center;min-width:160px;color:var(--heading);font-size:1rem;font-weight:600}.timesheet-meta{align-items:center;gap:12px;display:flex}.timesheet-working-days{color:var(--text-muted);font-size:.8rem}.status-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.status-draft{background-color:color-mix(in srgb, var(--text) 15%, transparent);color:var(--text-muted)}.status-submitted{background-color:color-mix(in srgb, var(--warning) 20%, transparent);color:var(--warning)}.status-approved{background-color:color-mix(in srgb, var(--success) 20%, transparent);color:var(--success)}.status-rejected{background-color:color-mix(in srgb, var(--error) 20%, transparent);color:var(--error)}.timesheet-rejection{background-color:color-mix(in srgb, var(--error) 15%, transparent);border-left:3px solid var(--error);border-radius:var(--radius-xs);color:var(--text);margin-bottom:12px;padding:10px 14px;font-size:.875rem}.timesheet-grid-wrap{background-color:var(--bg-light);border-radius:var(--radius-sm);padding:8px;overflow-x:auto}.timesheet-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.timesheet-toggle input{accent-color:var(--accent)}.ts-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:.875rem}.ts-grid thead th{background-color:var(--bg-light);text-align:left;border-bottom:1px solid color-mix(in srgb, var(--text) 15%, transparent);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding:10px 12px;font-size:.8rem;font-weight:600;position:sticky;top:0}.ts-day-col{white-space:nowrap;text-align:left;color:var(--text-muted);font-variant-numeric:tabular-nums;background-color:var(--bg-light);border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);vertical-align:middle;min-width:100px;padding:6px 10px}.ts-day-col-pm{border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent)}.ts-day-num{color:var(--heading);margin-right:6px;font-weight:600}.ts-day-wd{color:var(--text-muted);font-size:.75rem}.ts-day-holiday{color:var(--warning);margin-left:4px;font-size:.7rem}.ts-split-btn{text-align:center;border:1px solid color-mix(in srgb, var(--text) 20%, transparent);width:20px;height:20px;color:var(--text-muted);cursor:pointer;transition:background-color var(--transition), border-color var(--transition), color var(--transition);background:0 0;border-radius:50%;margin-right:6px;font-size:.85rem;font-weight:600;line-height:18px;display:inline-block}.ts-split-btn:hover,.ts-split-btn-active{border-color:var(--accent);color:var(--accent)}.ts-split-btn-placeholder{visibility:hidden}.ts-row-weekend td{background-color:color-mix(in srgb, var(--bg-darker) 30%, var(--bg-light))}.ts-row-holiday td{background-color:color-mix(in srgb, var(--warning) 10%, var(--bg-light))}.ts-row-today td{box-shadow:inset 3px 0 0 var(--accent)}.ts-booking-col{border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);vertical-align:middle;padding:4px 12px}.ts-no-assignments{color:var(--text-muted);font-size:.85rem;font-style:italic}.ts-picker{border:1px solid color-mix(in srgb, var(--text) 15%, transparent);border-radius:var(--radius-xs);background-color:var(--bg-light);width:100%;max-width:520px;color:var(--heading);padding:6px 8px;font-family:inherit;font-size:.85rem}.ts-picker:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.ts-half-label{width:28px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-right:6px;font-size:.7rem;font-weight:600;display:inline-block}.ts-row-split .ts-booking-col{padding-top:2px;padding-bottom:2px}.ts-row-split-am .ts-day-col,.ts-row-split-am .ts-booking-col,.ts-row-split-am .ts-hours-col{border-bottom:none}.ts-description-col{border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);vertical-align:middle;min-width:12rem;padding:4px 12px}.ts-description-input{border:1px solid color-mix(in srgb, var(--text) 15%, transparent);border-radius:var(--radius-xs);background-color:var(--bg-light);width:100%;color:var(--heading);transition:border-color var(--transition), box-shadow var(--transition);padding:5px 10px;font-family:inherit;font-size:.85rem}.ts-description-input::placeholder{color:color-mix(in srgb, var(--text-muted) 60%, transparent);font-style:italic}.ts-description-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.ts-description-input:disabled{color:var(--text-muted);cursor:default;background-color:#0000;border-color:#0000}.ts-hours-col{text-align:center;border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);vertical-align:middle;width:64px;min-width:64px;padding:4px 8px}.ts-hours{border-radius:var(--radius-xs);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;width:36px;height:28px;font-size:.9rem;font-weight:600;display:inline-flex}.ts-hours-empty{background:0 0}.ts-hours-filled{border:1px solid var(--accent);background-color:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);cursor:pointer}.ts-hours-filled:hover:not(:disabled){background-color:color-mix(in srgb, var(--accent) 25%, transparent)}.ts-hours-filled:disabled{cursor:default;opacity:.7}.ts-totals-table{border-collapse:collapse;margin-top:16px;margin-left:0;font-size:.85rem}.ts-totals-table td{font-variant-numeric:tabular-nums;padding:4px 12px}.ts-totals-label{color:var(--text-muted)}.ts-totals-value{color:var(--heading);text-align:right;min-width:70px;font-weight:600}.ts-totals-month td{border-top:1px solid color-mix(in srgb, var(--text) 15%, transparent);color:var(--accent);font-weight:700}.ts-add-btn{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);width:18px;height:18px;color:var(--accent);cursor:pointer;transition:background-color var(--transition);background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-left:8px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.ts-add-btn:hover{background-color:color-mix(in srgb, var(--accent) 15%, transparent)}.ts-remove-btn{width:18px;height:18px;color:var(--text-muted);cursor:pointer;transition:background-color var(--transition), color var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.ts-remove-btn:hover{background-color:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}.ts-actions-col{text-align:center;border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);vertical-align:middle;width:28px;padding:4px}.ts-hours-input{border:1px solid color-mix(in srgb, var(--text) 15%, transparent);border-radius:var(--radius-xs);background-color:var(--bg-light);width:64px;color:var(--heading);font-variant-numeric:tabular-nums;text-align:center;transition:border-color var(--transition), box-shadow var(--transition);padding:5px 10px;font-family:inherit;font-size:.9rem;font-weight:600}.ts-hours-input::placeholder{color:color-mix(in srgb, var(--text-muted) 60%, transparent);font-weight:400}.ts-hours-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.ts-hours-input-error{border-color:var(--error);box-shadow:0 0 0 2px color-mix(in srgb, var(--error) 25%, transparent)}.ts-hours-input:disabled{color:var(--text-muted);cursor:default;background-color:#0000;border-color:#0000}.ts-row-multi .ts-booking-col,.ts-row-multi .ts-description-col,.ts-row-multi .ts-hours-col,.ts-row-multi .ts-actions-col{border-bottom:1px dashed color-mix(in srgb, var(--text) 8%, transparent)}.ts-row-draft td{background-color:color-mix(in srgb, var(--accent) 5%, transparent)}
