:root{--saldo-bg-deep: #070b12;--saldo-bg: #0c1220;--saldo-bg-elevated: #141e30;--saldo-bg-card: rgba(20, 30, 48, .92);--saldo-border: rgba(34, 197, 94, .22);--saldo-border-subtle: rgba(148, 163, 184, .15);--saldo-green: #22c55e;--saldo-green-bright: #4ade80;--saldo-green-dark: #15803d;--saldo-green-glow: rgba(34, 197, 94, .35);--saldo-text: #f1f5f9;--saldo-text-muted: #94a3b8;--saldo-text-dim: #64748b;--saldo-danger: #f87171;--saldo-danger-bg: rgba(248, 113, 113, .12);--saldo-radius: 12px;--saldo-radius-lg: 16px;--saldo-shadow: 0 20px 50px rgba(0, 0, 0, .45);--saldo-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--saldo-gradient-bg: radial-gradient( ellipse 80% 50% at 50% -20%, rgba(34, 197, 94, .12), transparent ), linear-gradient(165deg, var(--saldo-bg-deep) 0%, var(--saldo-bg) 45%, #0a1628 100%);--saldo-gradient-btn: linear-gradient( 135deg, var(--saldo-green-dark) 0%, var(--saldo-green) 50%, var(--saldo-green-bright) 100% )}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--saldo-font);background:var(--saldo-gradient-bg);background-attachment:fixed;color:var(--saldo-text)}.brand-logo{display:inline-flex;align-items:center;line-height:0}.brand-logo__img{display:block;width:auto;height:48px;max-width:min(360px,90vw);object-fit:contain;object-position:left center;background:transparent;border:none}.brand-logo--large .brand-logo__img{height:72px;max-width:min(480px,95vw)}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap;padding-bottom:1.25rem;border-bottom:1px solid var(--saldo-border-subtle)}.app-header__subtitle{margin:.35rem 0 0;font-size:.875rem;color:var(--saldo-text-muted)}.app-header__actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1.25rem}.page--top{justify-content:flex-start;padding-top:1.5rem}.card{width:min(420px,100%);padding:2rem;border-radius:var(--saldo-radius-lg);background:var(--saldo-bg-card);border:1px solid var(--saldo-border-subtle);box-shadow:var(--saldo-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}h1{margin:0 0 .5rem;font-size:clamp(1.5rem,4vw,1.85rem);font-weight:700;color:var(--saldo-text)}h1 .accent{color:var(--saldo-green-bright)}.subtitle{margin:0 0 1.5rem;color:var(--saldo-text-muted);font-size:.95rem}.form{display:flex;flex-direction:column;gap:1rem;text-align:left}label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:500;color:var(--saldo-text-muted)}input,select{padding:.65rem .85rem;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-deep);color:var(--saldo-text);font-size:1rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--saldo-green);box-shadow:0 0 0 3px var(--saldo-green-glow)}button{cursor:pointer;font-size:1rem;font-family:inherit;border-radius:var(--saldo-radius);border:none;padding:.7rem 1rem}button[type=submit],.btn-primary{background:var(--saldo-gradient-btn);color:#fff;font-weight:600;box-shadow:0 4px 14px var(--saldo-green-glow)}button[type=submit]:hover:not(:disabled),.btn-primary:hover{filter:brightness(1.06)}button[type=submit]:disabled{opacity:.55;cursor:wait}.hint{margin:.75rem 0 0;font-size:.8rem;color:var(--saldo-text-dim);line-height:1.4}.hint code{color:var(--saldo-green-bright);background:#22c55e1a;padding:.1rem .35rem;border-radius:4px}.error{color:var(--saldo-danger);background:var(--saldo-danger-bg);padding:.75rem;border-radius:var(--saldo-radius);margin:0 0 1rem;font-size:.9rem;border:1px solid rgba(248,113,113,.25)}.success{color:var(--saldo-green-bright);background:#22c55e1a;padding:.75rem;border-radius:var(--saldo-radius);margin-bottom:1rem;border:1px solid var(--saldo-border)}.muted{color:var(--saldo-text-muted);font-size:.9rem}strong{color:var(--saldo-green-bright);font-weight:600}.logout-btn{background:transparent;border:1px solid var(--saldo-border-subtle);color:var(--saldo-text-muted)}.logout-btn:hover{border-color:var(--saldo-green);color:var(--saldo-green-bright)}.link-btn{display:inline-block;padding:.7rem 1rem;border-radius:var(--saldo-radius);text-decoration:none;color:var(--saldo-text-muted);border:1px solid var(--saldo-border-subtle);font-size:.9rem;transition:border-color .15s,color .15s}.link-btn:hover{border-color:var(--saldo-green);color:var(--saldo-green-bright)}.link-btn.primary,.link-btn.small{background:var(--saldo-gradient-btn);border:none;color:#fff;font-weight:600}.link-btn.small{padding:.35rem .65rem;font-size:.85rem}.admin-page{align-items:stretch;text-align:left}.admin-layout{width:min(960px,100%)}.admin-layout.wide{width:min(1100px,100%)}.admin-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.nav-link{padding:.5rem 1rem;border-radius:var(--saldo-radius);text-decoration:none;color:var(--saldo-text-muted);border:1px solid transparent;font-size:.9rem;font-weight:500;transition:all .15s}.nav-link:hover{color:var(--saldo-text);background:#22c55e0f}.nav-link.active{color:var(--saldo-green-bright);border-color:var(--saldo-border);background:#22c55e1f}.toolbar button{background:var(--saldo-gradient-btn);color:#fff;font-weight:600;border:none;padding:.65rem 1rem;border-radius:var(--saldo-radius);cursor:pointer;box-shadow:0 4px 12px var(--saldo-green-glow)}.banner{margin-bottom:1rem}.table-wrap{overflow-x:auto;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-card)}.users-table{width:100%;border-collapse:collapse;font-size:.9rem}.users-table th,.users-table td{padding:.75rem 1rem;border-bottom:1px solid var(--saldo-border-subtle);text-align:left}.users-table th{background:var(--saldo-bg-elevated);color:var(--saldo-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.users-table tbody tr:hover{background:#22c55e0a}.row-actions{white-space:nowrap}.row-actions button{margin-right:.35rem;padding:.35rem .6rem;font-size:.8rem;border-radius:6px;border:1px solid var(--saldo-border-subtle);background:transparent;color:var(--saldo-text)}.row-actions button:hover{border-color:var(--saldo-green);color:var(--saldo-green-bright)}.row-actions button.danger{border-color:#f8717166;color:var(--saldo-danger)}.row-actions button:disabled{opacity:.4;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#070b12d9;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal h2{margin:0 0 1rem;font-size:1.25rem;color:var(--saldo-text)}.modal-buttons{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.checkbox{flex-direction:row!important;align-items:center;gap:.5rem!important}.checkbox input{width:auto;accent-color:var(--saldo-green)}.work-layout{width:min(720px,100%);text-align:left}.form-card{margin-bottom:1.5rem}.form-card h2,.progress-section h2,.section-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--saldo-text)}.progress-section{margin-bottom:1.5rem}.progress-card{background:var(--saldo-bg-card);border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius);padding:1rem;margin-bottom:.75rem}.progress-head{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.95rem}.progress-bar{height:8px;background:var(--saldo-bg-deep);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--saldo-gradient-btn);transition:width .3s;border-radius:4px}.breadcrumb{margin:0 0 1rem}.breadcrumb a{color:var(--saldo-green-bright);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.admin-mode-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.5rem;background:var(--saldo-bg-deep);border-radius:var(--saldo-radius-lg);border:1px solid var(--saldo-border-subtle);width:fit-content;max-width:100%}.admin-mode-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:var(--saldo-radius);border:none;background:transparent;color:var(--saldo-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.admin-mode-btn:hover{color:var(--saldo-text);background:#22c55e12}.admin-mode-btn.active{background:var(--saldo-gradient-btn);color:#fff;font-weight:600;box-shadow:0 3px 10px var(--saldo-green-glow)}.admin-mode-icon{font-size:1rem;line-height:1}.tab-bar{display:flex;gap:.5rem;border-bottom:1px solid var(--saldo-border-subtle);padding-bottom:.75rem;flex-wrap:wrap}.tab-btn{background:transparent;border:1px solid var(--saldo-border-subtle);color:var(--saldo-text-muted);padding:.45rem 1rem;border-radius:var(--saldo-radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.tab-btn:hover{color:var(--saldo-text);border-color:var(--saldo-green)}.tab-btn.active{background:#22c55e1f;color:var(--saldo-green-bright);border-color:var(--saldo-border)}.badge-active{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.8rem;font-weight:500;background:#22c55e1f;color:var(--saldo-green-bright);border:1px solid rgba(34,197,94,.25)}.badge-inactive{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.8rem;font-weight:500;background:#64647826;color:var(--saldo-text-muted);border:1px solid var(--saldo-border-subtle)}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem!important;font-size:.9rem;color:var(--saldo-text);cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;padding:0;accent-color:var(--saldo-green);cursor:pointer}.row-present td{background:#22c55e0f}.tabsheet-manage-modal{width:min(1040px,calc(100vw - 2rem));max-width:min(1040px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:auto}.tabsheet-manage-tools{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem}.tabsheet-manage-tools .hint{margin:0;white-space:nowrap}.tabsheet-manage-search{width:min(320px,100%)}.tabsheet-manage-bulk-group{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:.5rem .9rem}.tabsheet-manage-bulk{display:flex!important;flex-direction:row!important;align-items:center;gap:.4rem!important;color:var(--saldo-text-muted);font-size:.85rem;white-space:nowrap;cursor:pointer}.tabsheet-manage-bulk input{width:1.05rem;height:1.05rem;padding:0;accent-color:var(--saldo-green);cursor:pointer}.tabsheet-manage-bulk input:disabled{cursor:not-allowed;opacity:.55}.tabsheet-manage-table-wrap{max-height:min(44vh,430px);overflow:auto}.tabsheet-manage-users-wrap{max-height:min(28vh,260px)}.tabsheet-manage-table{min-width:620px}.tabsheet-manage-table th{position:sticky;top:0;z-index:1}.tabsheet-manage-table th:last-child,.tabsheet-manage-table td:last-child{width:8rem;text-align:center}.tabsheet-manage-row-selected td{background:#22c55e12}.tabsheet-manage-check{width:1.15rem;height:1.15rem;padding:0;accent-color:var(--saldo-green)}.tabsheet-manage-footer{position:sticky;bottom:-2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;margin:1rem -2rem -2rem;padding:1rem 2rem;background:var(--saldo-bg-card);border-top:1px solid var(--saldo-border-subtle)}.tabsheet-manage-footer-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.tabsheet-manage-save-state{color:var(--saldo-text-muted);font-size:.9rem}.tabsheet-manage-save-state.is-dirty{color:var(--saldo-green-bright)}.tabsheet-manage-footer button:disabled{opacity:.55;cursor:not-allowed}.manage-sections h3{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--saldo-text)}@media(max-width:700px){.tabsheet-manage-modal{width:100%;max-width:100%;max-height:calc(100vh - 1.5rem)}.tabsheet-manage-tools{align-items:stretch;flex-direction:column}.tabsheet-manage-tools .hint{white-space:normal}.tabsheet-manage-search{width:100%}.tabsheet-manage-bulk-group{justify-content:flex-start}.tabsheet-manage-bulk{white-space:normal}.tabsheet-manage-table{min-width:560px}.tabsheet-manage-footer{bottom:-1rem;margin:1rem -1rem -1rem;padding:.75rem 1rem}.tabsheet-manage-footer-actions{width:100%}.tabsheet-manage-footer-actions button{flex:1 1 8rem}}.ts-page-card{width:100%;max-width:680px;padding:1.5rem}.ts-top-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.ts-title{margin:0;font-size:1.2rem;font-weight:700}.ts-date-input{padding:.5rem .85rem;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-deep);color:var(--saldo-text);font-size:.95rem;font-family:inherit;min-width:200px}.ts-date-input:focus{outline:none;border-color:var(--saldo-green);box-shadow:0 0 0 3px var(--saldo-green-glow)}.ts-tab-bar{display:flex;border-bottom:2px solid var(--saldo-border-subtle);margin-bottom:1.25rem;gap:0}.ts-tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:.6rem 1.2rem;font-size:.95rem;font-weight:500;color:var(--saldo-text-muted);cursor:pointer;transition:all .15s}.ts-tab-btn:hover{color:var(--saldo-text)}.ts-tab-btn.active{color:var(--saldo-green-bright);border-bottom-color:var(--saldo-green-bright);font-weight:600}.ts-tab-content{display:flex;flex-direction:column;gap:0}.ts-summary{background:#38bdf814;border:1px solid rgba(56,189,248,.2);border-radius:var(--saldo-radius);padding:.75rem 1rem;margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:.3rem .75rem;align-items:baseline}.ts-summary-label{color:#38bdf8;font-size:.85rem;font-weight:600;flex-basis:100%;margin-bottom:.15rem}.ts-summary-name{font-size:.875rem;color:var(--saldo-text)}.ts-summary-name:after{content:""}.ts-section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--saldo-text)}.ts-emp-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.ts-emp-row{display:flex;align-items:center;gap:.85rem;padding:.75rem 1rem;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-deep);cursor:pointer;transition:background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.ts-emp-row:hover:not(.ts-emp-row--saved){border-color:var(--saldo-green);background:#22c55e0d}.ts-emp-row--saved{background:#38bdf812;border-color:#38bdf840;cursor:default}.ts-emp-row--pending{background:#22c55e12;border-color:#22c55e4d}.ts-checkbox{width:20px;height:20px;border-radius:5px;border:2px solid var(--saldo-border-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s;color:#fff}.ts-checkbox.checked{background:var(--saldo-green);border-color:var(--saldo-green)}.ts-checkbox.frozen.checked{background:#38bdf8;border-color:#38bdf8}.ts-emp-name{flex:1;font-size:.95rem;color:var(--saldo-text)}.ts-frozen-badge{font-size:.75rem;color:#38bdf8;font-weight:500;margin-left:auto;flex-shrink:0}.ts-hours-list{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.25rem}.ts-hours-card{border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius);background:var(--saldo-bg-deep);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.5rem}.ts-hours-card.frozen{background:#38bdf80d;border-color:#38bdf833}.ts-hours-card__name{font-size:.95rem;font-weight:600;color:var(--saldo-text);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.ts-hours-frozen-display{display:flex;align-items:center;gap:1rem}.ts-hours-value{font-size:1.1rem;font-weight:700;color:var(--saldo-green-bright)}.ts-hours-comment{font-size:.875rem;color:var(--saldo-text-muted);font-style:italic}.ts-hours-inputs{display:flex;flex-direction:column;gap:.4rem}.ts-hours-input,.ts-comment-input{width:100%;padding:.55rem .85rem;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-card);color:var(--saldo-text);font-size:.95rem;font-family:inherit}.ts-hours-input:focus,.ts-comment-input:focus{outline:none;border-color:var(--saldo-green);box-shadow:0 0 0 3px var(--saldo-green-glow)}.ts-submit-btn{width:100%;padding:.8rem;border-radius:var(--saldo-radius);border:none;background:#2563eb;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:filter .15s,opacity .15s;margin-top:.5rem}.ts-submit-btn:hover:not(:disabled){filter:brightness(1.1)}.ts-submit-btn:disabled{opacity:.45;cursor:not-allowed}.multiselect{position:relative;min-width:200px}.multiselect__trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.6rem .85rem;border-radius:var(--saldo-radius);border:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-deep);color:var(--saldo-text);font-size:.9rem;cursor:pointer;text-align:left}.multiselect__trigger:hover{border-color:var(--saldo-green)}.multiselect__arrow{font-size:.65rem;color:var(--saldo-text-muted);flex-shrink:0}.multiselect__summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect__dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:100%;max-width:320px;background:var(--saldo-bg-elevated);border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius);box-shadow:var(--saldo-shadow);overflow:hidden}.multiselect__search{display:block;width:100%;padding:.5rem .75rem;border:none;border-bottom:1px solid var(--saldo-border-subtle);background:var(--saldo-bg-deep);color:var(--saldo-text);font-size:.875rem;border-radius:0}.multiselect__search:focus{outline:none;box-shadow:none;border-color:var(--saldo-green)}.multiselect__actions{display:flex;gap:.4rem;padding:.5rem .75rem;border-bottom:1px solid var(--saldo-border-subtle)}.multiselect__action-btn{padding:.3rem .65rem;font-size:.8rem;border-radius:6px;border:none;cursor:pointer;font-weight:600}.multiselect__action-btn.select-all{background:var(--saldo-green);color:#fff}.multiselect__action-btn.reset{background:var(--saldo-danger);color:#fff}.multiselect__list{list-style:none;margin:0;padding:.25rem 0;max-height:240px;overflow-y:auto}.multiselect__item label{display:flex;flex-direction:row;align-items:center;gap:.5rem;padding:.45rem .75rem;font-size:.875rem;font-weight:400;color:var(--saldo-text);cursor:pointer;transition:background .1s}.multiselect__item label:hover{background:#22c55e12}.multiselect__item input[type=checkbox]{width:auto;padding:0;accent-color:var(--saldo-green);flex-shrink:0}.multiselect__empty{padding:.6rem .75rem;font-size:.875rem;color:var(--saldo-text-muted)}.report-filters{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-end;padding:1.25rem;background:var(--saldo-bg-card);border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius-lg);margin-bottom:.5rem}.report-filter-group{display:flex;flex-direction:column;gap:.3rem}.report-filter-label{font-size:.8rem;font-weight:600;color:var(--saldo-text-muted);text-transform:uppercase;letter-spacing:.04em}.report-table-wrap{overflow-x:auto;max-height:calc(100vh - 280px);overflow-y:auto}.report-table{border-collapse:collapse;font-size:.875rem;white-space:nowrap}.report-table thead th{position:sticky;top:0;z-index:2;background:var(--saldo-bg-elevated)}.report-th-name,.report-td-name{position:sticky;left:0;z-index:1;background:var(--saldo-bg-card);min-width:160px;max-width:200px;white-space:normal;word-break:break-word}.report-table thead .report-th-name{z-index:3;background:var(--saldo-bg-elevated)}.report-th-date,.report-td-hours{text-align:center;min-width:90px}.report-th-total,.report-td-total{text-align:right;font-weight:700;color:var(--saldo-green-bright);min-width:80px}.report-th-rate,.report-td-rate{text-align:right;min-width:90px}.report-th-salary,.report-td-salary{text-align:right;font-weight:700;min-width:110px}.report-hours-hi{color:#38bdf8;font-weight:600}.auth-page{justify-content:center}.auth-page .card{width:min(400px,100%)}.auth-page__logo-wrap{display:flex;justify-content:center;margin-bottom:1.75rem;background:none;border:none;padding:0}.auth-page__logo-wrap .brand-logo__img{height:72px;max-width:min(480px,95vw);background:transparent}.auth-page h1{text-align:center;font-size:1.25rem;font-weight:600;color:var(--saldo-text-muted)}.auth-page .subtitle{text-align:center}.auth-page form button[type=submit]{width:100%;margin-top:.25rem}.jrnl-filters{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;padding:1rem 1.25rem;background:var(--saldo-bg-card);border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius-lg);margin-bottom:1rem}.jrnl-filter-field{display:flex;flex-direction:column;gap:.25rem;min-width:130px}.jrnl-filter-field label{font-size:.75rem;font-weight:600;color:var(--saldo-text-muted);text-transform:uppercase;letter-spacing:.04em}.jrnl-filter-field input,.jrnl-filter-field select{padding:.4rem .7rem;border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius);font-size:.875rem;background:var(--saldo-bg-deep);color:var(--saldo-text);font-family:inherit;min-width:0}.jrnl-filter-field input:focus,.jrnl-filter-field select:focus{outline:none;border-color:var(--saldo-green);box-shadow:0 0 0 3px var(--saldo-green-glow)}.jrnl-filter-actions{display:flex;gap:.5rem;align-items:flex-end;padding-bottom:1px}.jrnl-add-bar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;padding:.875rem 1.25rem;background:#22c55e0f;border:1px solid rgba(34,197,94,.25);border-radius:var(--saldo-radius-lg);margin-bottom:1rem}.jrnl-add-bar .jrnl-filter-field input,.jrnl-add-bar .jrnl-filter-field select{background:var(--saldo-bg-card);border-color:#22c55e4d}.jrnl-table th,.jrnl-table td{white-space:nowrap}.jrnl-empty{text-align:center;color:var(--saldo-text-muted);font-style:italic;padding:2rem 1rem!important}.jrnl-row--editing td{background:#2563eb0f!important}.jrnl-cell-input{padding:.3rem .55rem;border:1px solid #93c5fd;border-radius:5px;font-size:.875rem;background:#fff;color:#111827;font-family:inherit;width:100%;min-width:110px}.jrnl-cell-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.jrnl-cell-input--hours{min-width:80px;max-width:90px;text-align:right}.jrnl-cell-input--comment{min-width:160px}.jrnl-hours-val{font-weight:600;color:var(--saldo-green-bright)}.text-muted{color:var(--saldo-text-muted);font-size:.85rem}.text-right{text-align:right}.jrnl-btn{padding:.25rem .65rem;border:none;border-radius:5px;font-size:.8rem;font-weight:500;cursor:pointer;transition:filter .12s,opacity .12s;white-space:nowrap;font-family:inherit}.jrnl-btn:disabled{opacity:.45;cursor:not-allowed}.jrnl-btn--edit{background:#e0e7ff;color:#3730a3}.jrnl-btn--edit:hover:not(:disabled){background:#c7d2fe}.jrnl-btn--save{background:#d1fae5;color:#065f46}.jrnl-btn--save:hover:not(:disabled){background:#a7f3d0}.jrnl-btn--cancel{background:var(--saldo-bg-elevated);color:var(--saldo-text-muted);border:1px solid var(--saldo-border-subtle)}.jrnl-btn--cancel:hover:not(:disabled){background:var(--saldo-bg-deep)}.pagination-bar{display:flex;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.pagination-info{font-size:.8125rem;color:var(--saldo-text-muted);margin-right:auto}.pagination-pages{display:flex;gap:.25rem;align-items:center}.page-btn{min-width:2rem;height:2rem;padding:0 .375rem;border:1px solid var(--saldo-border-subtle);border-radius:5px;background:var(--saldo-bg-card);font-size:.8125rem;color:var(--saldo-text);cursor:pointer;transition:background .12s,border-color .12s;display:inline-flex;align-items:center;justify-content:center;font-family:inherit}.page-btn:hover:not(:disabled){background:var(--saldo-bg-elevated);border-color:var(--saldo-green)}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-btn.active{background:var(--saldo-green);border-color:var(--saldo-green);color:#fff;font-weight:700}.page-ellipsis{padding:0 .25rem;color:var(--saldo-text-muted);font-size:.875rem;line-height:2rem}.page-size-sel{padding:.25rem .5rem;border:1px solid var(--saldo-border-subtle);border-radius:5px;font-size:.8125rem;background:var(--saldo-bg-card);color:var(--saldo-text);cursor:pointer;font-family:inherit}.page-size-sel:focus{outline:none;border-color:var(--saldo-green)}.jrnl-th-check,.jrnl-td-check{width:2rem;min-width:2rem;text-align:center;padding:.4rem .25rem}.jrnl-th-check input[type=checkbox],.jrnl-td-check input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--saldo-green)}.jrnl-row--selected{background:color-mix(in srgb,var(--saldo-green) 8%,transparent)!important}.jrnl-row--selected:hover{background:color-mix(in srgb,var(--saldo-green) 12%,transparent)!important}.jrnl-salary-val{font-weight:600;color:var(--saldo-green);white-space:nowrap}.jrnl-bulk-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.625rem 1rem;margin-bottom:.75rem;border-radius:8px;background:color-mix(in srgb,var(--saldo-green) 10%,var(--saldo-bg-card));border:1px solid color-mix(in srgb,var(--saldo-green) 30%,var(--saldo-border-subtle))}.jrnl-bulk-info{font-size:.875rem;color:var(--saldo-text);margin-right:.25rem}.jrnl-bulk-info strong{color:var(--saldo-green)}.jrnl-bulk-label{font-size:.875rem;color:var(--saldo-text-muted);white-space:nowrap}.jrnl-bulk-select{padding:.3rem .5rem;border:1px solid var(--saldo-border-subtle);border-radius:5px;font-size:.875rem;background:var(--saldo-bg-card);color:var(--saldo-text);font-family:inherit;cursor:pointer}.jrnl-bulk-select:focus{outline:none;border-color:var(--saldo-green)}.jrnl-bulk-input{width:90px;padding:.3rem .5rem;border:1px solid var(--saldo-border-subtle);border-radius:5px;font-size:.875rem;background:var(--saldo-bg-card);color:var(--saldo-text);font-family:inherit}.jrnl-bulk-input--wide{width:120px}.jrnl-bulk-input--date{width:145px}.jrnl-bulk-input:focus{outline:none;border-color:var(--saldo-green)}.jrnl-cell-input--rate{width:100px}@media(max-width:720px){html,body{background-attachment:scroll;overflow-x:hidden}.page{align-items:stretch;padding:.75rem}.page--top{padding-top:.75rem}.card{width:100%;padding:1rem;border-radius:var(--saldo-radius)}.brand-logo__img{height:40px;max-width:min(240px,88vw)}.brand-logo--large .brand-logo__img{height:56px}.app-header{gap:.75rem;margin-bottom:1rem;padding-bottom:1rem}.app-header__brand{min-width:0}.app-header__subtitle{overflow-wrap:anywhere}.app-header__actions,.app-header__actions .logout-btn,.admin-layout,.admin-layout.wide,.work-layout{width:100%}.admin-mode-bar{display:grid;grid-template-columns:1fr;width:100%;padding:.35rem}.admin-mode-btn{width:100%;min-height:2.5rem;justify-content:center;padding:.6rem .75rem}.admin-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin-bottom:1rem}.nav-link{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.6rem .75rem;text-align:center}.toolbar{margin-bottom:.75rem}.toolbar button,.link-btn,.ts-submit-btn{width:100%;text-align:center}.table-wrap,.report-table-wrap{margin-right:-.75rem;margin-left:-.75rem;border-right:0;border-left:0;border-radius:0}.users-table{min-width:680px;font-size:.85rem}.users-table th,.users-table td{padding:.65rem .75rem;white-space:nowrap}.row-actions{min-width:8.5rem;white-space:normal}.row-actions button{margin:.15rem .25rem .15rem 0}.modal-backdrop{align-items:flex-start;overflow-y:auto;padding:.75rem}.modal.card{width:100%;max-width:100%;padding:1rem}.modal-buttons{flex-direction:column-reverse}.modal-buttons button{width:100%}.ts-page-card{max-width:none;padding:1rem}.ts-top-row,.ts-date-wrap,.ts-date-input{width:100%}.ts-date-input{min-width:0}.ts-tab-bar{gap:.4rem;overflow-x:auto;border-bottom:0;padding-bottom:.25rem}.ts-tab-btn{flex:1 0 11rem;margin-bottom:0;border:1px solid var(--saldo-border-subtle);border-radius:var(--saldo-radius)}.ts-tab-btn.active{border-color:var(--saldo-green-bright)}.ts-hours-frozen-display,.report-filters,.jrnl-filters,.jrnl-add-bar,.jrnl-bulk-bar,.jrnl-filter-actions,.pagination-bar{align-items:stretch;flex-direction:column}.report-filter-group,.jrnl-filter-field,.multiselect{width:100%;min-width:0}.report-filter-group input,.report-filter-group select,.jrnl-filter-field input,.jrnl-filter-field select,.jrnl-filter-actions button,.jrnl-add-bar button,.jrnl-bulk-bar button,.jrnl-bulk-select,.jrnl-bulk-input,.page-size-sel{width:100%}.multiselect__dropdown{max-width:100%}.pagination-info{width:100%;margin-right:0}.pagination-pages{width:100%;overflow-x:auto;padding-bottom:.25rem}}@media(max-width:420px){.page{padding:.5rem}.brand-logo__img{height:36px}.brand-logo--large .brand-logo__img{height:48px}.admin-nav{grid-template-columns:1fr}.users-table{min-width:620px}}
