:root{--ink:#191a2e;--ink-rgb:25, 26, 46;--ink-soft:#2a2c45;--canvas:#eef0f4;--surface:#fff;--surface-2:#f7f8fa;--line:#dcdfe7;--line-soft:#e9ebf0;--muted:#676c80;--text:#1e2033;--lumen:#f5b544;--radius-panel:14px;--radius-control:10px;--sidebar-width:252px;--font-ui:var(--font-body), system-ui, -apple-system, "Segoe UI", sans-serif;--font-head:var(--font-display), var(--font-ui);--bs-body-font-family:var(--font-ui);--bs-body-font-size:.9375rem;--bs-body-bg:var(--surface);--bs-body-color:var(--text);--bs-secondary-color:var(--muted);--bs-border-color:var(--line);--bs-primary:var(--ink);--bs-primary-rgb:var(--ink-rgb);--bs-link-color:var(--ink);--bs-link-color-rgb:var(--ink-rgb);--bs-link-hover-color:var(--ink-soft);--bs-border-radius:var(--radius-control);--bs-border-radius-lg:var(--radius-panel);--bs-focus-ring-color:rgba(var(--ink-rgb), .16)}body{background:var(--canvas);-webkit-font-smoothing:antialiased}h1,h2,.h3,.h4{font-family:var(--font-head);letter-spacing:-.025em;font-weight:650}a{text-underline-offset:3px}:focus-visible{box-shadow:0 0 0 3px rgba(var(--ink-rgb), .22);outline:none}.sidebar :focus-visible{box-shadow:0 0 0 2px #ffffff73}.app-main{margin-left:var(--sidebar-width);min-width:0}.app-content{max-width:1280px;padding:2.25rem 2.75rem 4rem}.sidebar{width:var(--sidebar-width);background:radial-gradient(120% 60% at 0% 0%, #f5b5441a, transparent 55%), var(--ink);color:#ffffffdb;z-index:1040;flex-direction:column;padding:1.5rem .875rem 1rem;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-brand{align-items:center;padding:0 .625rem 1.5rem;display:flex}.side-cta{border-radius:var(--radius-control);color:#fff;background:#ffffff14;border:1px solid #ffffff1f;justify-content:center;align-items:center;gap:.5rem;margin:0 .25rem 1.5rem;padding:.6rem .75rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:flex}.side-cta:hover{color:#fff;background:#ffffff24}.side-group+.side-group{margin-top:1.25rem}.side-group-label{color:#ffffff61;padding:0 .75rem .4rem;font-size:.75rem}.side-link{color:#ffffffa3;border-radius:9px;align-items:center;gap:.75rem;margin-bottom:2px;padding:.55rem .75rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.side-link .bi{text-align:center;width:1.1rem;font-size:1.05rem}.side-link:hover{color:#fff;background:#ffffff0d}.side-link.active{color:#fff;background:#ffffff17}.lens-dot{background:var(--lumen);border-radius:50%;width:7px;height:7px;margin-left:auto;animation:.45s ease-out lens-on;box-shadow:0 0 10px 1px #f5b544a6}@keyframes lens-on{0%{transform:scale(.2);box-shadow:0 0 #f5b54400}}.side-footer{margin-top:auto;padding-top:1rem}.mobile-bar{z-index:1030;background:var(--ink);justify-content:space-between;align-items:center;padding:.7rem 1rem;display:flex;position:sticky;top:0}.mobile-toggle{color:#fff;background:0 0;border:0;padding:.25rem;font-size:1.6rem;line-height:1}.sidebar-backdrop{background:rgba(var(--ink-rgb), .45);z-index:1035;position:fixed;inset:0}@media (max-width:991.98px){.app-main{margin-left:0}.app-content{padding:1.5rem 1rem 3rem}.sidebar{transition:transform .22s;transform:translate(-100%)}.sidebar.open{transform:none}}.page-header h1{margin:0;font-size:1.875rem}.page-header .text-body-secondary{margin-top:.25rem}.back-link{color:var(--muted);align-items:center;margin-bottom:.75rem;font-weight:500;display:inline-flex}.back-link:hover{color:var(--ink)}.card{--bs-card-bg:var(--surface);--bs-card-border-color:var(--line);--bs-card-border-radius:var(--radius-panel);--bs-card-inner-border-radius:calc(var(--radius-panel) - 1px);--bs-card-cap-bg:transparent;--bs-card-cap-padding-y:.95rem;--bs-card-cap-padding-x:1.25rem;--bs-card-spacer-x:1.25rem;--bs-card-spacer-y:1.25rem;box-shadow:none}.card-header{font-family:var(--font-head);letter-spacing:-.01em;border-bottom-color:var(--line-soft);font-size:1rem;font-weight:600}.list-group{--bs-list-group-border-color:var(--line-soft);--bs-list-group-item-padding-x:1.25rem;--bs-list-group-item-padding-y:.85rem;--bs-list-group-action-hover-bg:var(--surface-2)}.stat-group{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-panel);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--surface);padding:1.15rem 1.35rem 1.25rem}.stat-label{color:var(--muted);align-items:center;gap:.45rem;font-size:.8125rem;font-weight:500;display:flex}.stat:not(.tone-default) .stat-label:before{content:"";border-radius:50%;width:7px;height:7px}.stat.tone-success .stat-label:before{background:#2f9e6b}.stat.tone-warning .stat-label:before{background:#d99a1e}.stat.tone-danger .stat-label:before{background:#d4483b}.stat-value{font-family:var(--font-head);letter-spacing:-.025em;font-variant-numeric:tabular-nums;margin-top:.45rem;font-size:1.65rem;font-weight:600;line-height:1.15}.stat-hint{color:var(--muted);margin-top:.3rem;font-size:.8125rem}.status{white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.18rem .6rem .18rem .5rem;font-size:.78rem;font-weight:600;display:inline-flex}.status:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px}.status-secondary{color:#4a4e63;background:#eceef3}.status-primary{color:#36388f;background:#e7e8fb}.status-success{color:#1d6b45;background:#e1f3e9}.status-warning{color:#87570a;background:#fcefd6}.status-danger{color:#a2322a;background:#fbe5e2}.status-info{color:#1d5d7e;background:#def0f8}.status-dark{color:#2b2d3a;background:#e3e4ea}.status-light{color:var(--muted);background:0 0;padding-left:0}.status-light:before{display:none}.badge{--bs-badge-font-weight:600;--bs-badge-border-radius:6px;--bs-badge-padding-x:.5em}.table{--bs-table-bg:transparent;--bs-table-border-color:var(--line-soft);--bs-table-hover-bg:var(--surface-2);margin-bottom:0}.table>thead th{background:var(--surface-2);color:var(--muted);border-bottom:1px solid var(--line-soft);white-space:nowrap;font-size:.8125rem;font-weight:500}.table>:not(caption)>*>*{padding:.8rem 1rem}.table>:not(caption)>*>:first-child{padding-left:1.25rem}.table>:not(caption)>*>:last-child{padding-right:1.25rem}.table>tbody>tr:last-child>*{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.row-link{color:var(--ink);white-space:nowrap;font-weight:600;text-decoration:none}.row-link:hover{text-decoration:underline}.detail-list dd{font-weight:500}.btn{--bs-btn-padding-y:.55rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:.875rem;--bs-btn-font-weight:600;--bs-btn-border-radius:var(--radius-control)}.btn-sm{--bs-btn-padding-y:.3rem;--bs-btn-padding-x:.65rem;--bs-btn-border-radius:8px}.btn-primary{--bs-btn-bg:var(--ink);--bs-btn-border-color:var(--ink);--bs-btn-hover-bg:var(--ink-soft);--bs-btn-hover-border-color:var(--ink-soft);--bs-btn-active-bg:#10111f;--bs-btn-active-border-color:#10111f;--bs-btn-disabled-bg:var(--ink);--bs-btn-disabled-border-color:var(--ink)}.btn-outline-primary{--bs-btn-color:var(--ink);--bs-btn-bg:var(--surface);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:#c6cad6;--bs-btn-active-color:var(--ink);--bs-btn-active-bg:var(--line-soft);--bs-btn-active-border-color:#c6cad6}.btn-outline-secondary{--bs-btn-color:var(--ink);--bs-btn-bg:var(--surface);--bs-btn-border-color:var(--line);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:#c6cad6}.btn-outline-danger{--bs-btn-color:#b23a2f;--bs-btn-border-color:#ecc9c4;--bs-btn-hover-bg:#fbe5e2;--bs-btn-hover-color:#a2322a;--bs-btn-hover-border-color:#e2b1aa}.btn-light{--bs-btn-bg:var(--line-soft);--bs-btn-border-color:var(--line-soft);--bs-btn-hover-bg:var(--line);--bs-btn-hover-border-color:var(--line)}.form-label{color:#3a3d52;margin-bottom:.4rem;font-size:.8125rem;font-weight:600}.form-control,.form-select,.input-group-text{border-color:var(--line);border-radius:var(--radius-control);padding:.55rem .8rem;font-size:.9375rem}.form-select{padding-right:2.25rem}.input-group-text{background:var(--surface);color:var(--muted)}.input-group>.input-group-text+.form-control{border-left:0;padding-left:.2rem}.form-control:focus,.form-select:focus{border-color:rgba(var(--ink-rgb), .45);box-shadow:0 0 0 3px var(--bs-focus-ring-color)}.form-control:disabled{background:var(--surface-2)}.form-check-input:checked{background-color:var(--ink);border-color:var(--ink)}.form-check-input:focus{box-shadow:0 0 0 3px var(--bs-focus-ring-color)}.form-text{color:var(--muted)}.alert{--bs-alert-border-radius:var(--radius-control)}.invoice-lines td{vertical-align:top}.invoice-lines .form-control{min-width:5rem}.kind-option{background:var(--surface);border:1px solid var(--line);color:inherit;border-radius:12px;padding:1rem 1.1rem;transition:border-color .15s,box-shadow .15s}.kind-option:hover{border-color:#c6cad6}.kind-option.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.cashflow-tooltip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);min-width:210px;box-shadow:0 10px 30px rgba(var(--ink-rgb), .1);pointer-events:none;padding:.65rem .8rem;font-size:.8125rem;position:absolute;top:0;transform:translate(-50%)}.invoice-paper{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);max-width:900px;padding:3rem}.invoice-paper .table>:not(caption)>*>*{padding:.6rem .5rem}.invoice-paper .table>thead th{background:0 0}.doc-title{font-family:var(--font-head);letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.doc-label{color:var(--muted);margin-bottom:.5rem;font-size:.8125rem;font-weight:600}@media (max-width:575.98px){.invoice-paper{padding:1.25rem}}@media print{.sidebar,.mobile-bar,.no-print{display:none!important}body{background:#fff}.app-main{margin:0}.app-content{max-width:none;padding:0}.invoice-paper{border:0;max-width:none;padding:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.cashflow-svg{max-height:280px}.login-shell{grid-template-columns:minmax(320px,.9fr) 1.1fr;min-height:100vh;display:grid}.login-brand{background:radial-gradient(90% 70% at 20% 10%, #f5b54429, transparent 60%), var(--ink);flex-direction:column;justify-content:space-between;padding:3rem;display:flex;position:relative;overflow:hidden}.login-tagline{max-width:12ch;font-family:var(--font-head);letter-spacing:-.035em;color:#fff;margin:0;font-size:clamp(2.5rem,4.5vw,4rem);font-weight:600;line-height:1.02}.login-lens{background:var(--lumen);border-radius:50%;width:14px;height:14px;animation:.9s ease-out lens-on;position:absolute;top:38%;right:18%;box-shadow:0 0 24px 6px #f5b5448c,0 0 120px 40px #f5b5441f}.login-main{place-items:center;padding:2rem 1.25rem;display:grid}.login-card{width:100%;max-width:380px}@media (max-width:991.98px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}}.account-menu{border-top:1px solid #ffffff14;margin-top:.75rem;padding-top:.75rem;position:relative}.account-trigger{color:#fff;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:.7rem;width:100%;padding:.55rem .6rem;transition:background .15s;display:flex}.account-trigger:hover,.account-trigger.open{background:#ffffff12}.account-avatar{background:var(--lumen);width:2.1rem;height:2.1rem;color:var(--ink);font-family:var(--font-head);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.account-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.account-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.account-company{color:#ffffff8c;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.account-chevron{color:#ffffff80;margin-left:auto;font-size:.75rem}.account-popover{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.35rem;animation:.14s ease-out popover-in;position:absolute;bottom:calc(100% + .4rem);left:0;right:0;box-shadow:0 16px 40px #00000047}@keyframes popover-in{0%{opacity:0;transform:translateY(4px)}}.account-popover form{margin:0}.account-item{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:.65rem;padding:.55rem .7rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.account-item:hover{background:var(--surface-2);color:var(--ink)}.account-item-danger{color:#a2322a}.account-item-danger:hover{color:#a2322a;background:#fbe5e2}.profile-card{text-align:center}.profile-avatar{background:var(--ink);color:#fff;width:4.5rem;height:4.5rem;font-family:var(--font-head);box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--line);border-radius:50%;place-items:center;margin:0 auto .9rem;font-size:1.9rem;font-weight:700;display:grid}.profile-name{font-family:var(--font-head);letter-spacing:-.02em;font-size:1.25rem;font-weight:600}.profile-meta{border-top:1px solid var(--line-soft);text-align:left;margin:1.25rem 0 0;padding-top:1rem;font-size:.8125rem}.profile-meta dt{color:var(--muted);font-weight:500}.profile-meta dd{margin-bottom:.6rem}.btn{--bs-btn-focus-box-shadow:0 0 0 3px rgba(var(--ink-rgb), .18);transition:background-color .15s,border-color .15s,color .15s}.btn-outline-danger{--bs-btn-active-bg:#f6d3ce;--bs-btn-active-color:#8e2a22;--bs-btn-active-border-color:#e2b1aa;--bs-btn-focus-box-shadow:0 0 0 3px #d2463a2e}.btn-outline-secondary{--bs-btn-active-bg:var(--line-soft);--bs-btn-active-color:var(--ink);--bs-btn-active-border-color:#c6cad6}.btn-light{--bs-btn-active-bg:var(--line);--bs-btn-active-border-color:var(--line)}.btn-icon{--bs-btn-padding-x:0;--bs-btn-padding-y:0;width:2rem;height:2rem;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.btn-icon:hover{color:#a2322a;background:#fbe5e2}.btn-icon.btn-icon-neutral:hover{color:var(--ink);background:var(--line-soft)}.confirm-dialog{border:1px solid var(--line);background:var(--surface);width:min(420px,100vw - 2rem);color:var(--text);box-shadow:0 24px 60px rgba(var(--ink-rgb), .25);border-radius:16px;padding:0}.confirm-dialog[open]{animation:.16s ease-out dialog-in}.confirm-dialog::backdrop{background:rgba(var(--ink-rgb), .45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px)scale(.98)}}.confirm-body{text-align:left;padding:1.5rem 1.5rem 1rem}.confirm-icon{background:var(--line-soft);width:2.5rem;height:2.5rem;color:var(--ink);border-radius:50%;place-items:center;margin-bottom:.9rem;font-size:1.15rem;display:grid}.confirm-icon.danger{color:#b23a2f;background:#fbe5e2}.confirm-title{white-space:normal;margin:0 0 .4rem;font-size:1.15rem;font-weight:600}.confirm-text{color:var(--muted);white-space:normal;margin:0 0 .4rem;font-size:.9rem}.confirm-actions{border-top:1px solid var(--line-soft);background:var(--surface-2);border-radius:0 0 16px 16px;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem 1.25rem;display:flex}.btn-danger-solid{--bs-btn-color:#fff;--bs-btn-bg:#c2392d;--bs-btn-border-color:#c2392d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#a92f24;--bs-btn-hover-border-color:#a92f24;--bs-btn-active-color:#fff;--bs-btn-active-bg:#8e2a22;--bs-btn-active-border-color:#8e2a22}.ev{--ev-bg:color-mix(in srgb, var(--ev) 13%, #fff);--ev-ink:color-mix(in srgb, var(--ev) 70%, #10111f)}.ev-swatch{background:var(--ev,var(--muted));border-radius:50%;flex:none;width:8px;height:8px}.cal-switch{background:var(--line-soft);border-radius:var(--radius-control);gap:2px;padding:3px;display:inline-flex}.cal-switch a{color:var(--muted);border-radius:8px;align-items:center;gap:.45rem;padding:.4rem .85rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.cal-switch a:hover{color:var(--ink)}.cal-switch a.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(var(--ink-rgb), .12)}.cal-legend{flex-wrap:wrap;gap:.4rem;display:flex}.cal-filter{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:.45rem;padding:.28rem .7rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.cal-filter:hover{border-color:#c6cad6}.cal-filter.active{border-color:var(--ev,var(--ink));background:var(--ev-bg,var(--ink));color:var(--ev-ink,#fff);font-weight:600}.cal-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden}.ev-chip{border-left:3px solid var(--ev);background:var(--ev-bg);min-width:0;color:var(--ev-ink);border-radius:5px;align-items:center;gap:.35rem;padding:.15rem .45rem .15rem .4rem;font-size:.775rem;font-weight:600;line-height:1.35;text-decoration:none;display:flex}.ev-chip:hover{color:var(--ev-ink);filter:brightness(.97)}.ev-day{font-variant-numeric:tabular-nums;background:#fff9;border-radius:4px;flex:none;margin-left:auto;padding:0 .3rem;font-size:.68rem;font-weight:600}.ev-block .ev-day{margin-left:.35rem}.ev-chip .ev-icon{font-size:.8em}.ev-chip .ev-time{font-variant-numeric:tabular-nums;opacity:.8;font-weight:500}.ev-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-cell,.cal-allday-cell{--cell-pad:.4rem}.ev-chip{min-height:1.35rem}.ev-chip.span-start,.ev-chip.span-middle{margin-right:calc(-1 * var(--cell-pad) - 1px);border-top-right-radius:0;border-bottom-right-radius:0}.ev-chip.span-middle,.ev-chip.span-end{margin-left:calc(-1 * var(--cell-pad) - 1px);border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:calc(.4rem + 3px)}.place-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;max-width:560px;display:grid}.place-option{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:.8rem;padding:.8rem .9rem;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;position:relative}.place-option:hover{background:var(--surface-2);border-color:#c6cad6}.place-option input{opacity:0;pointer-events:none;position:absolute}.place-icon{background:var(--line-soft);width:2.4rem;height:2.4rem;color:var(--muted);border-radius:10px;flex:none;place-items:center;font-size:1.05rem;transition:background .15s,color .15s,box-shadow .15s;display:grid}.place-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.place-label{color:var(--text);font-weight:600}.place-hint{color:var(--muted);font-size:.8rem}.place-tick{color:var(--ink);opacity:0;margin-left:auto;font-size:1.05rem;transition:opacity .15s,transform .15s;transform:scale(.6)}.place-option:has(input:checked){border-color:var(--ink);background:var(--surface);box-shadow:0 0 0 1px var(--ink)}.place-option:has(input:checked) .place-icon{background:var(--ink);color:#fff;box-shadow:inset 0 0 0 1px #ffffff14,0 0 0 3px #f5b54438}.place-option:has(input:checked) .place-tick{opacity:1;transform:none}.place-option:has(input:focus-visible){box-shadow:0 0 0 1px var(--ink), 0 0 0 4px rgba(var(--ink-rgb), .18)}@media (max-width:400px){.place-hint{display:none}}.cal-month-head,.cal-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-month-head{border-bottom:1px solid var(--line-soft);background:var(--surface-2)}.cal-month-head div{color:var(--muted);text-transform:capitalize;padding:.55rem .7rem;font-size:.8125rem;font-weight:500}.cal-month-grid{background:var(--line-soft);gap:1px}.cal-cell{background:var(--surface);min-height:7.5rem;padding:.4rem .4rem .5rem}.cal-cell.is-outside{background:var(--surface-2)}.cal-cell.is-outside .cal-daynum{color:#a3a7b6}.cal-cell-head{align-items:center;gap:.35rem;margin-bottom:.3rem;display:flex}.cal-cell-head .lens-dot{margin-left:0}.cal-daynum{min-width:1.7rem;height:1.7rem;font-family:var(--font-head);font-variant-numeric:tabular-nums;color:var(--text);border-radius:999px;place-items:center;padding:0 .3rem;font-size:.875rem;font-weight:600;text-decoration:none;display:grid}.cal-daynum:hover{background:var(--line-soft);color:var(--ink)}.is-today .cal-daynum{background:var(--ink);color:#fff}.cal-add{width:1.5rem;height:1.5rem;color:var(--muted);opacity:0;border-radius:6px;place-items:center;margin-left:auto;font-size:1.1rem;text-decoration:none;transition:opacity .12s,background .12s;display:grid}.cal-cell:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-add:hover{background:var(--line-soft);color:var(--ink)}@media (hover:none){.cal-add{opacity:.6}}.cal-cell-events{flex-direction:column;gap:3px;display:flex}.cal-more{color:var(--muted);padding-left:.45rem;font-size:.75rem;font-weight:600;text-decoration:none}.cal-more:hover{color:var(--ink)}.cal-week-scroll{overflow-x:auto}.cal-week{--hour:52px;--gutter:3.75rem;min-width:760px}.cal-week-head,.cal-week-allday,.cal-week-body{grid-template-columns:var(--gutter) repeat(7, minmax(0, 1fr));display:grid}.cal-week-head{z-index:3;background:var(--surface-2);border-bottom:1px solid var(--line-soft);position:sticky;top:0}.cal-week-day{border-left:1px solid var(--line-soft);align-items:center;gap:.4rem;padding:.55rem .7rem;display:flex}.cal-week-dow{color:var(--muted);text-transform:capitalize;font-size:.8125rem}.cal-week-num{font-family:var(--font-head);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}.cal-week-day .lens-dot{margin-left:0}.cal-week-day.is-today .cal-week-num,.cal-week-day.is-today .cal-week-dow{color:var(--ink);font-weight:700}.cal-gutter{color:var(--muted);text-align:right;padding-right:.55rem;font-size:.72rem}.cal-week-allday{border-bottom:1px solid var(--line-soft)}.cal-week-allday>.cal-gutter{padding-top:.5rem;line-height:1.2}.cal-allday-cell{padding:var(--cell-pad);border-left:1px solid var(--line-soft);flex-direction:column;gap:3px;display:flex}.cal-hours{padding-top:0}.cal-hour-label{height:var(--hour);transform:translateY(-.5em)}.cal-hour-label:first-child{transform:none}.cal-col{height:calc(var(--rows) * var(--hour));border-left:1px solid var(--line-soft);background-image:linear-gradient(var(--line-soft) 1px, transparent 1px);background-size:100% var(--hour);position:relative}.cal-col.is-today{background-color:#fbfaf6}.cal-slot{height:var(--hour);cursor:cell;display:block}.cal-slot:hover{background:rgba(var(--ink-rgb), .03)}.ev-block{z-index:1;border-left:3px solid var(--ev);background:var(--ev-bg);color:var(--ev-ink);border-radius:6px;flex-direction:column;gap:1px;padding:.25rem .45rem;font-size:.775rem;line-height:1.25;text-decoration:none;display:flex;position:absolute;overflow:hidden}.ev-block:hover{z-index:2;color:var(--ev-ink);box-shadow:0 4px 14px rgba(var(--ink-rgb), .12)}.ev-block .ev-time{font-variant-numeric:tabular-nums;opacity:.8;font-size:.7rem}.ev-block .ev-title{white-space:normal;font-weight:600}.ev-meta{opacity:.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-now{z-index:2;background:var(--lumen);pointer-events:none;height:2px;position:absolute;left:0;right:0;box-shadow:0 0 8px #f5b544b3}.cal-now:before{content:"";background:var(--lumen);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-5px;box-shadow:0 0 10px 1px #f5b544a6}.cal-agenda-day{border-bottom:1px solid var(--line-soft);grid-template-columns:8.5rem 1fr;display:grid}.cal-agenda-day:last-child{border-bottom:0}.cal-agenda-date{background:var(--surface-2);border-right:1px solid var(--line-soft);align-items:baseline;gap:.55rem;margin:0;padding:1rem 1.25rem;display:flex}.cal-agenda-num{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1}.cal-agenda-dow{font-family:var(--font-ui);letter-spacing:0;color:var(--muted);text-transform:capitalize;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:500;display:inline-flex}.cal-agenda-dow .lens-dot{margin-left:0}.is-today .cal-agenda-dow{color:var(--ink);font-weight:700}.cal-agenda-list{margin:0;padding:.35rem 0;list-style:none}.cal-agenda-item{grid-template-columns:7.5rem 1fr auto;align-items:center;gap:.75rem;padding:.55rem 1.25rem;display:grid}.cal-agenda-item+.cal-agenda-item{border-top:1px solid var(--line-soft)}.cal-agenda-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8125rem}.cal-agenda-body{border-left:3px solid var(--ev);min-width:0;color:var(--text);flex-direction:column;padding-left:.75rem;text-decoration:none;display:flex}.cal-agenda-body:hover .cal-agenda-title{text-decoration:underline}.cal-agenda-title{font-weight:600}.cal-agenda-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.2rem .45rem;font-size:.8125rem;display:flex}.cal-agenda-meta>span:not(.ev-swatch){border-left:1px solid var(--line);padding-left:.45rem}.cal-agenda-item form{margin:0}.cal-agenda-actions{align-items:center;gap:.5rem;display:flex}.cal-agenda-span{background:var(--ev-bg);color:var(--ev-ink);white-space:nowrap;border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.75rem;font-weight:600}.ev-check{border:1.5px solid var(--line);background:var(--surface);color:#0000;border-radius:50%;place-items:center;width:1.9rem;height:1.9rem;font-size:1rem;transition:background .15s,border-color .15s,color .15s;display:grid}.ev-check:hover{border-color:var(--ev);color:var(--ev)}.ev-check.on{border-color:var(--ev);background:var(--ev);color:#fff}.ev-picker{flex-wrap:wrap;gap:.45rem;display:flex}.ev-pick{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.875rem;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.ev-pick .bi{color:var(--ev)}.ev-pick:hover{border-color:var(--ev)}.ev-pick input{opacity:0;pointer-events:none;position:absolute}.ev-pick:has(input:checked){border-color:var(--ev);background:var(--ev-bg);color:var(--ev-ink);box-shadow:0 0 0 1px var(--ev);font-weight:600}.ev-pick:has(input:focus-visible){box-shadow:0 0 0 3px rgba(var(--ink-rgb), .22)}@media (max-width:767.98px){.cal-cell{min-height:4.25rem;padding:.25rem}.cal-add{display:none}.cal-cell-events{flex-flow:wrap;gap:3px;padding-left:.25rem}.cal-cell .ev-chip,.cal-cell .ev-chip[class*=span-]{background:var(--ev);border:0;border-radius:50%;width:8px;height:8px;min-height:0;margin:0;padding:0}.cal-cell .is-planned.ev-chip{border:1.5px solid var(--ev);background:0 0}.cal-cell .ev-chip>*{display:none}.cal-more{padding:0;font-size:.65rem}.cal-agenda-day{grid-template-columns:1fr}.cal-agenda-date{border-right:0;border-bottom:1px solid var(--line-soft);padding:.6rem 1rem}.cal-agenda-item{grid-template-columns:1fr auto;padding:.6rem 1rem}.cal-agenda-time{grid-column:1/-1;margin-bottom:-.4rem}}.cal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.cal-heading{align-items:center;gap:1rem;min-width:0;display:flex}.cal-period{letter-spacing:-.03em;white-space:nowrap;margin:0;font-size:1.75rem;font-weight:650}.cal-period:first-letter{text-transform:uppercase}.cal-nav{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);flex:none;display:inline-flex;overflow:hidden}.cal-nav-btn{min-width:2.4rem;height:2.35rem;color:var(--ink);place-items:center;padding:0 .65rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:grid}.cal-nav-btn+.cal-nav-btn{border-left:1px solid var(--line)}.cal-nav-btn:hover{background:var(--surface-2);color:var(--ink)}.cal-header-actions{align-items:center;gap:.6rem;display:flex}.cal-subbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:1rem;display:flex}.cal-progress{color:var(--muted);white-space:nowrap;align-items:center;gap:.6rem;font-size:.8125rem;display:flex}.cal-progress strong{color:var(--text);font-variant-numeric:tabular-nums}.cal-progress-track{background:var(--line);border-radius:999px;width:88px;height:6px;display:block;overflow:hidden}.cal-progress-track span{border-radius:inherit;background:#2f9e6b;height:100%;transition:width .3s;display:block}.ev-done-icon{color:var(--ev);flex:none;font-size:.85em}.ev-block .ev-done-icon{margin-right:.3rem}.ev-block{box-shadow:inset 0 0 0 1px #ffffff8c}.cal-month{flex-direction:column;height:max(600px,100dvh - 13rem);display:flex}.cal-month-grid{flex:1;grid-auto-rows:minmax(0,1fr)}.cal-cell{min-height:0;overflow:hidden}.cal-cell.is-weekend:not(.is-outside){background:#fafbfc}.cal-cell.is-today{background:#fbfaf6}.cal-week-scroll{max-height:max(560px,100dvh - 13rem);overflow:auto}.cal-week-day.is-weekend .cal-week-dow{color:#9a9eb0}.cal-col.is-weekend:not(.is-today){background-color:#fafbfc}.cal-now.is-faint{z-index:0;height:1px;box-shadow:none;background:#f5b54480}.cal-now.is-faint:before{display:none}.cal-agenda-day.is-past .cal-agenda-date>*{opacity:.55}@media (max-width:767.98px){.cal-header{gap:.75rem}.cal-heading{flex-direction:row-reverse;justify-content:space-between;width:100%}.cal-period{font-size:1.4rem}.cal-header-actions{width:100%}.cal-header-actions .cal-switch{flex:1}.cal-switch a{flex:1;justify-content:center;padding-inline:.5rem}.cal-switch a .bi{display:none}.cal-legend{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-1rem;padding-inline:1rem;overflow-x:auto}.cal-filter{flex:none}.cal-month{height:auto}.cal-month-grid{grid-auto-rows:auto}}.cal-filter-manage{color:var(--muted);border-style:dashed}.cal-filter-manage:hover{color:var(--ink);border-color:#c6cad6}.ev-type-icon{color:var(--ev);font-size:.85em}.ev-pick-new{color:var(--muted);border-style:dashed;text-decoration:none}.ev-pick-new:hover{border-color:var(--ink);color:var(--ink)}.type-list{margin:0;padding:0;list-style:none}.type-row{align-items:center;gap:.9rem;padding:.75rem 1.25rem;display:flex}.type-row+.type-row{border-top:1px solid var(--line-soft)}.type-icon{background:var(--ev-bg);width:2.25rem;height:2.25rem;color:var(--ev);border-radius:10px;flex:none;place-items:center;font-size:1.05rem;display:grid}.type-name{color:var(--text);font-weight:600;text-decoration:none}.type-name:hover{text-decoration:underline}.type-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.8125rem}.type-move{gap:.15rem;display:flex}.type-move form{margin:0}.btn-icon:disabled{opacity:.3}.type-preview{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:12px;align-items:center;gap:1.25rem;padding:1.1rem 1.25rem;display:flex}.type-preview-icon{background:var(--ev);color:#fff;width:3.25rem;height:3.25rem;box-shadow:0 6px 18px color-mix(in srgb, var(--ev) 35%, transparent);border-radius:14px;flex:none;place-items:center;font-size:1.5rem;transition:background .15s;display:grid}.type-preview-samples{flex-wrap:wrap;align-items:center;gap:.6rem;min-width:0;display:flex}.type-preview .ev-chip{min-width:9rem}.color-options{flex-wrap:wrap;gap:.5rem;display:flex}.color-option{background:var(--ev);color:#fff;cursor:pointer;border-radius:50%;place-items:center;width:2.1rem;height:2.1rem;transition:transform .12s,box-shadow .12s;display:grid;position:relative}.color-option:hover{transform:scale(1.08)}.color-option input{opacity:0;cursor:pointer;position:absolute;inset:0}.color-option .bi{opacity:0;font-size:1rem}.color-option.is-custom{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ev)}.color-option:has(input[type=radio]:checked){box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ev)}.color-option.is-custom .bi{opacity:1}.color-option:has(input[type=radio]:checked) .bi{opacity:1}.color-option:has(input:focus-visible){box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}.color-custom:not(.is-custom){background:conic-gradient(#e0533f,#e3a41c,#3aa66a,#2a8fc4,#7a55c9,#c74d8c,#e0533f)}.color-custom:not(.is-custom) .bi{opacity:1;color:#fff;text-shadow:0 1px 2px #00000059}.icon-options{grid-template-columns:repeat(auto-fill,minmax(2.6rem,1fr));gap:.35rem;display:grid}.icon-option{aspect-ratio:1;border:1px solid var(--line-soft);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:10px;place-items:center;font-size:1.1rem;transition:background .12s,color .12s,border-color .12s;display:grid;position:relative}.icon-option:hover{color:var(--ink);border-color:#c6cad6}.icon-option input{opacity:0;pointer-events:none;position:absolute}.icon-option:has(input:checked){border-color:var(--ev);background:var(--ev);color:#fff}.icon-option:has(input:focus-visible){box-shadow:0 0 0 3px rgba(var(--ink-rgb), .22)}.type-section-title{margin:2.5rem 0 .9rem;font-size:1.15rem;font-weight:600}.anaf-btn{white-space:nowrap}.anaf-note{border-radius:var(--radius-control);align-items:flex-start;gap:.5rem;margin-top:.5rem;padding:.55rem .75rem;font-size:.8125rem;line-height:1.45;display:flex}.anaf-note .bi{flex:none;margin-top:.1rem}.anaf-ok{color:#1d6b45;background:#e1f3e9}.anaf-warning{color:#7a4f08;background:#fcefd6}.anaf-error{color:#a2322a;background:#fbe5e2}.anaf-note a{color:inherit;font-weight:600}.code-input{font-family:var(--font-head);letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600}.code-input-sm{width:11rem;padding-block:.35rem;font-size:1.2rem}.login-step-icon{background:var(--ink);color:#fff;border-radius:14px;place-items:center;width:3rem;height:3rem;margin-bottom:1.25rem;font-size:1.35rem;display:grid;box-shadow:0 0 0 4px #f5b54438}.tfa-steps{color:var(--muted);margin-bottom:1.25rem;padding-left:1.2rem}.tfa-steps li+li{margin-top:.3rem}.tfa-qr-row{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1.5rem;display:flex}.tfa-qr{border:1px solid var(--line);background:#fff;border-radius:12px;flex:none;width:168px;padding:8px}.tfa-qr svg{width:100%;height:auto;display:block}.tfa-secret{color:var(--ink);letter-spacing:.05em;word-break:break-all;margin-top:.4rem;font-size:.95rem;display:block}.cal-mini{grid-template-columns:7.5rem 1fr;align-items:center;gap:.9rem;display:grid}.cal-mini-when{color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;font-size:.8125rem;line-height:1.3;display:flex}.cal-mini-when>:first-child{color:var(--text);font-weight:600}.cal-mini-today{align-items:center;gap:.35rem;display:inline-flex}.cal-mini-today:after{content:"";background:var(--lumen);border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #f5b544b3}.cal-mini-body{border-left:3px solid var(--ev);min-width:0;color:var(--text);flex-direction:column;padding-left:.75rem;text-decoration:none;display:flex}.cal-mini-body:hover .cal-mini-title{text-decoration:underline}.cal-mini-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.cal-mini-meta{color:var(--muted);align-items:center;gap:.35rem;font-size:.8125rem;display:flex}.fx-box{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;padding:1rem 1.1rem;display:flex}.fx-field{width:min(100%,300px)}.fx-input{font-variant-numeric:tabular-nums;font-weight:600}.fx-hint{color:var(--muted);flex-basis:100%;font-size:.8125rem}.mobile-bar{padding-top:calc(.7rem + env(safe-area-inset-top));padding-left:calc(1rem + env(safe-area-inset-left));padding-right:calc(1rem + env(safe-area-inset-right))}@media (max-width:991.98px){.sidebar{padding-top:calc(1.5rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.app-content{padding-bottom:calc(3rem + env(safe-area-inset-bottom))}.form-control,.form-select{font-size:16px}}.login-main{padding-top:calc(2rem + env(safe-area-inset-top));padding-bottom:calc(2rem + env(safe-area-inset-bottom))}html{-webkit-tap-highlight-color:transparent}.sidebar{overscroll-behavior:contain}@page{size:A4;margin:14mm 12mm}@media print{.invoice-paper{font-size:11pt}.row>.col-xl-8{width:100%}}.calc{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:2rem;display:grid}.calc-tabs{scrollbar-width:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-wrap:nowrap;gap:.25rem;margin-bottom:1.5rem;padding:.25rem;display:flex;overflow-x:auto}.calc-tabs::-webkit-scrollbar{display:none}.calc-tab{white-space:nowrap;border-radius:var(--radius-control);color:var(--muted);background:0 0;border:0;flex:none;align-items:center;gap:.45rem;padding:.55rem .8rem;font-size:.875rem;font-weight:550;transition:background-color .15s,color .15s;display:inline-flex}.calc-tab:hover{color:var(--text);background:var(--surface-2)}.calc-tab.active{background:var(--ink);color:#fff}.calc-tab-count{background:var(--lumen);min-width:1.25rem;height:1.25rem;color:var(--ink);text-align:center;border-radius:999px;padding:0 .35rem;font-size:.72rem;font-weight:700;line-height:1.25rem}.calc-category{animation:.2s ease-out calc-fade}.calc-category-intro{color:var(--muted);max-width:60ch;margin-bottom:1.5rem}.calc-group+.calc-group{margin-top:1.75rem}.calc-group-title{font-family:var(--font-ui);letter-spacing:0;color:var(--muted);margin:0 0 .6rem .25rem;font-size:.8125rem;font-weight:650}.calc-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden}.calc-item+.calc-item{border-top:1px solid var(--line-soft)}.calc-item{transition:background-color .15s;position:relative}.calc-item.selected{background:#f5b54412}.calc-item.selected:before{content:"";background:var(--lumen);width:3px;position:absolute;inset:0 auto 0 0}.calc-item-main{text-align:left;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:22px minmax(0,1fr) auto;align-items:start;gap:.9rem;padding:1rem 1.125rem;display:grid}.calc-item:not(.selected) .calc-item-main:hover{background:var(--surface-2)}.calc-check{border:1.5px solid var(--line);color:#0000;border-radius:50%;place-items:center;width:22px;height:22px;margin-top:1px;font-size:.8rem;transition:background-color .15s,border-color .15s,box-shadow .2s;display:grid}.calc-item.selected .calc-check{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 0 0 3px #f5b54459}.calc-item-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.calc-item-name{color:var(--text);font-weight:650}.calc-item-desc{color:var(--muted);font-size:.875rem}.calc-includes{flex-wrap:wrap;gap:.3rem;margin-top:.35rem;display:flex}.calc-includes span{background:var(--surface-2);border:1px solid var(--line-soft);color:var(--muted);border-radius:6px;padding:.05rem .45rem;font-size:.75rem}.calc-price{font-family:var(--font-head);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;font-weight:650}.calc-price small{font-family:var(--font-ui);color:var(--muted);font-size:.78rem;font-weight:450}.calc-qty{justify-content:space-between;align-items:center;gap:1rem;padding:0 1.125rem .9rem calc(2.025rem + 22px);animation:.18s ease-out calc-fade;display:flex}.stepper{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);align-items:stretch;display:inline-flex;overflow:hidden}.stepper button{width:2rem;color:var(--text);background:0 0;border:0}.stepper button:hover:not(:disabled){background:var(--surface-2)}.stepper button:disabled{color:var(--line)}.stepper input{border:0;border-inline:1px solid var(--line-soft);text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;width:3rem}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.lb-price input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.lb-price input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.calc-summary{border-radius:var(--radius-panel);background:radial-gradient(120% 50% at 100% 0%, #f5b5441a, transparent 60%), var(--ink);color:#ffffffdb;scrollbar-width:thin;max-height:calc(100vh - 3rem);padding:1.5rem;position:sticky;top:1.5rem;overflow-y:auto}.lb-head{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.lb-title{font-family:var(--font-head);color:#fff;font-size:1.05rem;font-weight:650}.lb-lens{background:#ffffff29;border-radius:50%;width:10px;height:10px}.lb-lens.on{background:var(--lumen);animation:.6s ease-out lb-pulse;box-shadow:0 0 14px 3px #f5b54480}.lb-empty{color:#ffffff8c;margin:0;padding:1rem 0 1.25rem;font-size:.875rem}.lb-lines{margin:0 0 1rem;padding:0;list-style:none}.lb-line{border-bottom:1px solid #ffffff14;grid-template-columns:minmax(0,1fr) auto 26px;align-items:center;gap:.5rem;padding:.6rem 0;animation:.22s ease-out lb-in;display:grid}.lb-line-text{flex-direction:column;min-width:0;display:flex}.lb-line-name{color:#fff;font-size:.875rem;font-weight:550}.lb-line-qty{color:var(--lumen);font-weight:650}.lb-line-cat{color:#ffffff73;font-size:.75rem}.lb-price{font-variant-numeric:tabular-nums;align-items:baseline;gap:.15rem;font-size:.875rem;display:inline-flex}.lb-price input{color:#fff;text-align:right;font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:1px solid #0000;border-radius:6px;width:4.75rem;padding:.15rem .3rem}.lb-price input:hover{border-color:#ffffff2e}.lb-price input:focus{box-shadow:none;background:#ffffff0f;border-color:#f5b544b3;outline:none}.lb-price span{color:#ffffff80;font-size:.78rem}.lb-remove{color:#fff6;background:0 0;border:0;border-radius:6px;place-items:center;width:26px;height:26px;font-size:.75rem;display:grid}.lb-remove:hover{color:#fff;background:#ffffff14}.lb-totals{border-bottom:1px solid #ffffff14;padding:.25rem 0 1.25rem}.lb-total-main{flex-direction:column;margin-bottom:.75rem;display:flex}.lb-label{color:#ffffff8c;font-size:.8125rem}.lb-amount{font-family:var(--font-head);letter-spacing:-.035em;color:#fff;font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:650;line-height:1.1}.lb-row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;padding:.2rem 0;font-size:.875rem;display:flex}.lb-row-strong{color:#fff;font-weight:600}.lb-row-advance{color:var(--lumen)}.lb-row-muted{color:#ffffff80}.lb-vat{color:#fff6;margin:.6rem 0 0;font-size:.75rem}.lb-fields{gap:.85rem;padding:1.25rem 0;display:grid}.lb-field{flex-direction:column;gap:.3rem;display:flex}.lb-field>span{color:#ffffff8c;font-size:.78rem}.lb-field input,.lb-field select,.lb-field textarea{border-radius:var(--radius-control);color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#ffffff0f;border:1px solid #ffffff24;width:100%;padding:.5rem .7rem;font-size:.875rem}.lb-field input::placeholder,.lb-field textarea::placeholder{color:#ffffff59}.lb-field select option{color:var(--text);background:#fff}.lb-field input:focus,.lb-field select:focus,.lb-field textarea:focus{border-color:#f5b544b3;outline:none;box-shadow:0 0 0 3px #f5b54429}.lb-link{color:#fff9;align-self:flex-start;font-size:.78rem;text-decoration:none}.lb-link:hover{color:#fff}.lb-error{color:#ffb4b4;font-size:.78rem;font-style:normal}.lb-error-box{border-radius:var(--radius-control);color:#ffc9c9;background:#dc354529;margin:0 0 .9rem;padding:.6rem .75rem;font-size:.85rem}.lb-save{border-radius:var(--radius-control);width:100%;color:var(--ink);background:#fff;border:0;padding:.75rem 1rem;font-weight:650;transition:transform .12s,opacity .15s}.lb-save:hover:not(:disabled){transform:translateY(-1px)}.lb-save:disabled{opacity:.4}.calc-summary :focus-visible{box-shadow:0 0 0 2px #ffffff80}.calc-mobile-bar{z-index:1030;border-radius:var(--radius-panel);background:var(--ink);color:#ffffffbf;box-shadow:0 10px 30px rgba(var(--ink-rgb), .3);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;font-size:.875rem;text-decoration:none;display:flex;position:fixed;inset:auto .75rem .75rem}.calc-mobile-bar strong{color:#fff;font-variant-numeric:tabular-nums}@keyframes calc-fade{0%{opacity:0;transform:translateY(4px)}}@keyframes lb-in{0%{opacity:0;transform:translate(8px)}}@keyframes lb-pulse{0%{box-shadow:0 0 #f5b544b3}to{box-shadow:0 0 14px 3px #f5b54480}}@media (max-width:1199.98px){.calc{grid-template-columns:minmax(0,1fr) 330px;gap:1.5rem}}@media (max-width:991.98px){.calc{grid-template-columns:1fr;padding-bottom:4.5rem}.calc-summary{max-height:none;position:static}}@media (max-width:575.98px){.quote-paper .quote-table{table-layout:auto}.calc-item-main{grid-template-columns:22px minmax(0,1fr)}.calc-price{text-align:left;grid-column:2}.calc-qty{flex-wrap:wrap;padding-left:calc(2.025rem + 22px)}}.quote-title{margin-bottom:1.5rem;font-size:1.35rem}.quote-section{font-family:var(--font-ui);letter-spacing:0;color:var(--muted);margin-bottom:.25rem;font-size:.875rem;font-weight:650}.quote-paper .quote-table{table-layout:fixed}.quote-table .col-qty{width:5.5rem}.quote-table .col-price,.quote-table .col-total{width:8.5rem}.quote-table .col-total{width:10rem}.quote-notes{white-space:pre-line;border-top:1px solid var(--line-soft);padding-top:.75rem}.price-cat-head{align-items:center;gap:.75rem;display:flex}.price-cat-head .small{font-weight:400}.price-cat-icon{border-radius:var(--radius-control);background:var(--ink);color:#fff;place-items:center;width:2.1rem;height:2.1rem;display:grid}.price-group-row th{background:var(--surface-2);color:var(--muted);font-size:.78rem;font-weight:650}.price-name{color:var(--text);text-align:left;background:0 0;border:0;padding:0;font-weight:600}.price-name:hover{text-underline-offset:3px;text-decoration:underline}.price-inactive td>*{opacity:.55}.price-edit-row>td{background:var(--surface-2)}.price-form{max-width:820px;animation:.18s ease-out calc-fade}.send-dialog{width:min(560px,100vw - 2rem)}.send-ok{color:#1f7a4d;align-self:center;font-size:.85rem}.quote-advance{border-left:3px solid var(--lumen);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--surface-2);margin:1.5rem 0 1rem;padding:.85rem 1rem}.contract-paper{max-width:820px;line-height:1.6}.contract-heading{text-align:center;margin-bottom:.25rem;font-size:1.5rem}.contract-sub{text-align:center;color:var(--muted);margin-bottom:2rem}.contract-section h2{font-family:var(--font-ui);letter-spacing:0;margin:1.5rem 0 .5rem;font-size:.95rem;font-weight:700}.contract-section p{max-width:75ch;margin-bottom:.5rem}.contract-signatures{grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem;display:grid}.contract-sign-line{border-top:1px solid var(--line);color:var(--muted);margin-top:3.5rem;padding-top:.35rem;font-size:.8rem}.details-btn{--bs-btn-color:#1d6b45;--bs-btn-border-color:var(--line);--bs-btn-hover-bg:#e1f3e9;--bs-btn-hover-color:#1d6b45;--bs-btn-hover-border-color:#9fd3b6;--bs-btn-active-bg:#d2ecdd;--bs-btn-active-color:#1d6b45;--bs-btn-disabled-color:#1d6b45;--bs-btn-disabled-border-color:var(--line)}.company-details{border-radius:var(--radius-panel);background:#f4fbf7;border:1px solid #c9e7d6;padding:1rem 1.15rem;animation:.2s ease-out calc-fade}.company-details-head{color:#1d6b45;align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.company-details-head strong{color:var(--text)}.company-summary{margin:0 0 .85rem;padding-left:1.1rem;font-size:.9rem}.company-summary li+li{margin-top:.15rem}.company-facts{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.75rem;margin-bottom:.85rem;font-size:.875rem;display:grid}.company-facts dt{color:var(--muted);font-size:.78rem;font-weight:500}.company-facts dd{margin:0}.company-years{--bs-table-bg:transparent;font-size:.875rem}.company-source{color:var(--muted);margin:.6rem 0 0;font-size:.75rem}@media (max-width:575.98px){.company-facts{grid-template-columns:1fr}}.timer{margin:-.9rem .25rem 1.5rem}.timer-start{border-radius:var(--radius-control);color:#ffffffb3;background:0 0;border:1px dashed #ffffff2e;justify-content:center;align-items:center;gap:.4rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:550;transition:color .15s,border-color .15s;display:flex}.timer-start:hover,.timer-start[aria-expanded=true]{color:#fff;border-color:#ffffff59}.timer-form{border-radius:var(--radius-control);background:#ffffff0f;gap:.55rem;margin-top:.6rem;padding:.75rem;animation:.18s ease-out calc-fade;display:grid}.timer-form label{gap:.2rem;display:grid}.timer-form label span{color:#ffffff80;font-size:.72rem}.timer-form select,.timer-form input{color:#fff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;width:100%;padding:.35rem .5rem;font-size:.8125rem}.timer-form select option{color:var(--text);background:#fff}.timer-go{background:var(--lumen);color:var(--ink);border:0;border-radius:8px;justify-content:center;align-items:center;gap:.3rem;padding:.45rem;font-size:.8125rem;font-weight:650;display:flex}.timer-error{color:#ffb4b4;margin:0;font-size:.75rem}.timer-running{border-radius:var(--radius-control);background:#f5b54414;border:1px solid #f5b54459;align-items:center;gap:.6rem;padding:.5rem .5rem .5rem .75rem;display:flex}.timer-dot{flex:none;margin:0;animation:1.6s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{opacity:.6;box-shadow:0 0 2px #f5b5444d}}.timer-info{flex-direction:column;min-width:0;margin-right:auto;display:flex}.timer-clock{font-family:var(--font-head);color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1rem;font-weight:650}.timer-project{color:#fff9;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.timer-stop{color:#fff;background:#ffffff1a;border:0;border-radius:8px;place-items:center;width:2rem;height:2rem;display:grid}.timer-stop:hover{background:#ffffff2e}.rate-ok{color:#1f7a4d}.rate-low{color:#b42318}.calc-summary .rate-ok{color:#7fdcaa}.calc-summary .rate-low{color:#ff9c8f}.lb-estimate{border-top:1px dashed #ffffff1f;margin-top:.6rem;padding-top:.6rem}.lb-target{color:#fff6;font-size:.72rem}.hours-bar{background:var(--line-soft);border-radius:999px;height:6px;margin-top:.4rem;overflow:hidden}.hours-bar span{border-radius:inherit;background:var(--ink);height:100%;transition:width .3s ease-out;display:block}.hours-bar span.near{background:var(--lumen)}.hours-bar span.over{background:#d14b3c}.time-day+.time-day{border-top:1px solid var(--line)}.time-day-head{background:var(--surface-2);color:var(--muted);justify-content:space-between;padding:.6rem 1.25rem;font-size:.8125rem;font-weight:650;display:flex}.time-day-head span:first-child:first-letter{text-transform:uppercase}.time-row{border-top:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto 4.5rem auto;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:grid}.time-row.is-running{background:#f5b54412}.time-row-edit{background:var(--surface-2);display:block}.time-main{flex-direction:column;min-width:0;display:flex}.time-project{font-weight:600}.time-desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.time-activity{color:var(--text)}.time-range{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8125rem}.time-duration{text-align:right;font-variant-numeric:tabular-nums;font-weight:650}.time-duration.not-billable{color:var(--muted);-webkit-text-decoration:line-through #676c8080;text-decoration:line-through #676c8080}.time-actions{white-space:nowrap}.card-body .time-list{border-top:1px solid var(--line);margin:0 -1.25rem -1rem}@media (max-width:575.98px){.time-row{grid-template-columns:minmax(0,1fr) auto}.time-range{display:none}}
