:root{--color-primary: #646cff;--color-primary-hover: #535bf2;--color-primary-tint: rgba(100, 108, 255, .15);--color-error: #ee0055;--color-border-input: var(--color-border);--color-border-input-focus: rgba(100, 108, 255, .6);--color-border: rgba(255, 255, 255, .12);--color-border-subtle: rgba(255, 255, 255, .08);--color-surface: rgba(255, 255, 255, .06);--color-surface-hover: rgba(255, 255, 255, .09);--color-surface-dim: rgba(255, 255, 255, .04);--color-bg-elevated: #1a1a1a;--color-bg-input: #242424;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--transition-fast: .12s;--transition-base: .15s;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--color-page-bg: #242424;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:light){:root{--color-page-bg: #ffffff;--color-primary-tint: rgba(100, 108, 255, .1);--color-border: rgba(0, 0, 0, .12);--color-border-subtle: rgba(0, 0, 0, .07);--color-surface: rgba(0, 0, 0, .04);--color-surface-hover: rgba(0, 0, 0, .07);--color-surface-dim: rgba(0, 0, 0, .02);--color-bg-elevated: #f9f9f9;--color-bg-input: #ffffff;color:#213547;background-color:#fff}}a{font-weight:500;color:var(--color-primary);text-decoration:inherit}a:hover{color:var(--color-primary-hover)}@media(prefers-color-scheme:light){a:hover{color:#747bff}}html{overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-subtle)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}@media(min-width:601px){html{scrollbar-gutter:stable}}body{margin:0;display:flex;flex-direction:column;min-width:320px;min-height:100vh;min-height:100dvh;overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:var(--radius-lg);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-bg-elevated);color:inherit;cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible{border-radius:var(--radius-md)}.signin-container{display:flex;align-items:center;justify-content:center;flex:1;width:100%;padding:var(--space-4);box-sizing:border-box}.signin-card{padding:2em;border-radius:var(--radius-lg);border:1px solid var(--color-border-subtle);background-color:var(--color-bg-elevated);width:100%;max-width:360px;box-sizing:border-box}@media(max-width:400px){.signin-card{padding:1.5em 1em}}.signin-card h1{margin:0 0 1.5em;font-size:1.8em}.field{display:flex;flex-direction:column;gap:.4em;margin-bottom:1em;text-align:left}.field label{font-size:.9em;font-weight:500}.field input{padding:.5em .75em;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background-color:var(--color-bg-input);color:inherit;font-size:1em;font-family:inherit;outline:none;transition:border-color var(--transition-base)}.field input:focus{border-color:var(--color-border-input-focus)}.error{color:#f87171;font-size:.9em;margin:0 0 1em;text-align:left}.signin-card button[type=submit]{width:100%;margin-top:.5em}.signin-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}@media(prefers-color-scheme:light){.error{color:#dc2626}}.topnav{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-subtle)}.topnav-bar{display:flex;align-items:center;padding:0 var(--space-4);height:56px;position:relative}.topnav-brand{font-weight:700;font-size:1.1em;letter-spacing:.02em;flex-shrink:0}.topnav-links{display:flex;list-style:none;margin:0 0 0 2rem;padding:0;gap:.25rem}.topnav-links li button{background:none;border:none;padding:.4em .75em;border-radius:var(--radius-md);font-size:.95em;cursor:pointer;color:inherit;opacity:.65;transition:opacity var(--transition-base),background-color var(--transition-base)}.topnav-links li button:hover{opacity:1;background-color:var(--color-surface-hover);border-color:transparent}.topnav-links li button.active{opacity:1;background-color:var(--color-primary-tint);color:var(--color-primary)}.topnav-signout{margin-left:auto;background:none;border:none;padding:.4em .75em;border-radius:var(--radius-md);font-size:.95em;cursor:pointer;color:inherit;opacity:.65;transition:opacity var(--transition-base),background-color var(--transition-base);white-space:nowrap;flex-shrink:0}.topnav-signout:hover{opacity:1;background-color:var(--color-surface-hover)}.topnav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;padding:.4em;cursor:pointer}.topnav-hamburger span{display:block;width:22px;height:2px;background-color:currentColor;border-radius:2px;transition:opacity var(--transition-base)}@media(max-width:600px){.topnav-hamburger{display:flex;margin-right:var(--space-2)}.topnav-links{display:none;position:absolute;top:56px;left:0;right:0;flex-direction:column;background-color:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-subtle);padding:var(--space-2) var(--space-4);margin:0;gap:.25rem;z-index:100}.topnav-links.open{display:flex}.topnav-links li button{width:100%;text-align:left;padding:.6em .75em}}.patients-layout{display:flex;align-items:stretch;height:calc(100dvh - 56px);overflow:hidden;padding:0}.patients-layout.page{max-width:none;margin:0;padding:0}.patients-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--color-border-subtle);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease}.patients-sidebar--collapsed{width:40px}.patients-sidebar--collapsed .patients-sidebar-header{justify-content:center;padding:var(--space-3) 0}.patients-collapse-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:.3em .45em;opacity:.65;transition:opacity var(--transition-fast),background-color var(--transition-fast);flex-shrink:0}.patients-collapse-btn:hover{opacity:1;background-color:var(--color-surface-hover)}.patients-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-3) var(--space-2);gap:var(--space-2)}.patients-sidebar-actions{display:flex;align-items:center;gap:.4rem}.patients-new-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:.3em .4em;opacity:.65;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.patients-new-btn:hover{opacity:1;background-color:var(--color-surface-hover)}.patients-sidebar-title{font-weight:600;font-size:.85em;letter-spacing:.04em;text-transform:uppercase;opacity:.55}.patients-count{font-size:.78em;background-color:var(--color-surface);border-radius:10px;padding:.1em .55em;opacity:.7}.patients-loading,.patients-empty{padding:var(--space-3);font-size:.88em;opacity:.55;margin:0}.patients-search{padding:0 .375rem .375rem}.patients-search input{width:100%;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:inherit;font-size:.85em;padding:.45em .65em;outline:none;transition:border-color var(--transition-base),background-color var(--transition-base)}.patients-search input:focus{border-color:var(--color-border-input-focus);background:var(--color-surface-hover)}.patients-list{list-style:none;margin:0;padding:var(--space-1) .375rem;overflow-y:auto;scrollbar-gutter:stable;flex:1}.patients-list li{margin-bottom:1px}.patient-item{width:100%;text-align:left;background:none;border:none;padding:.5em .6em;border-radius:var(--radius-md);font-size:.88em;cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-fast),background-color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-item:hover{opacity:1;background-color:var(--color-surface);border-color:transparent}.patient-item.active{opacity:1;background-color:var(--color-primary-tint);color:var(--color-primary)}.patients-content{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:row}.pc-main{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.patients-placeholder{height:100%;display:flex;align-items:center;justify-content:center;opacity:.55;font-size:.9em;margin:0;padding:var(--space-8)}.patients-back{display:none}.pd-loading{padding:var(--space-6);opacity:.55;font-size:.9em}.patient-detail{flex:1;overflow:hidden;display:flex;flex-direction:column}.pd-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-shrink:0;padding:var(--space-6) var(--space-6) 0;margin-bottom:var(--space-6)}.pd-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;padding:0 var(--space-6) var(--space-6)}.pd-summary{flex:1;border-left:1px solid var(--color-border-subtle);overflow:hidden;display:flex;flex-direction:column}.pd-summary-header{flex-shrink:0;padding:var(--space-6) var(--space-6) var(--space-3);border-bottom:1px solid var(--color-border-subtle);display:flex;flex-direction:column;gap:var(--space-2)}.pd-summary-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;padding:var(--space-4) var(--space-6) var(--space-6)}.pd-summary-title-row{display:flex;align-items:baseline;gap:var(--space-3)}.pd-summary-label{font-size:.78em;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.55}.pd-summary-title{margin:0;font-size:.9em;font-weight:600;letter-spacing:.01em;text-transform:none;opacity:1}.pd-summary-age{font-weight:400;opacity:.6}.pd-header .pd-name{margin:0}.pd-name{margin:0 0 var(--space-6);font-size:1.4em}.pf-edit-btn{padding:.35em .9em;font-size:.85em;border-radius:var(--radius-md);background:var(--color-surface);border:none;flex-shrink:0;margin-top:.2em;cursor:pointer;color:inherit;transition:background-color var(--transition-fast)}.pf-edit-btn:hover{background:var(--color-surface-hover)}.pd-section{margin-bottom:var(--space-8)}.pd-section+.pd-section{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-6);margin-top:calc(-1 * var(--space-2))}.pd-section-title{margin:0 0 var(--space-3);font-size:.78em;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.55}.pd-section-toggle{display:flex;align-items:center;gap:.45em;margin:0 0 var(--space-3);padding:0;background:none;border:none;cursor:pointer;font-size:.78em;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.55;color:inherit;font-family:inherit;transition:opacity var(--transition-fast),color var(--transition-fast)}.pd-section-toggle:hover{opacity:.85;color:var(--color-primary)}.pd-section-toggle-chevron{display:block;flex-shrink:0;width:.85em;height:.85em;transform:rotate(-90deg);transition:transform .15s ease-out}.pd-section-toggle-chevron--open{transform:rotate(0)}.pd-section--primary{background:var(--color-surface-dim);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6)}.pd-section--primary+.pd-section{border-top:none;padding-top:0;margin-top:0}.pd-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem;margin:0}.pd-grid-pair{display:contents}.pd-grid dt{font-size:.85em;opacity:.55;font-weight:500;padding-top:.1em}.pd-grid dd{margin:0;font-size:.9em;word-break:break-word}.pd-empty{opacity:.35}.patient-form-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--space-6) var(--space-6) 0}.pf-heading{margin:0 0 var(--space-6);font-size:1.4em;flex-shrink:0}.patient-form{flex:1;overflow:hidden;display:flex;flex-direction:column}.pf-field{display:flex;flex-direction:column;gap:.3rem}.pf-field label{font-size:.83em;opacity:.6;font-weight:500}.pf-required{color:var(--color-error);opacity:1}.pf-field input,.pf-field select{height:34px;padding:0 .7em;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:inherit;font-size:.9em;outline:none;transition:border-color var(--transition-base),background-color var(--transition-base)}.pf-field input:focus,.pf-field select:focus{border-color:var(--color-border-input-focus);background:var(--color-surface-hover)}.pf-section{display:flex;flex-direction:column;gap:var(--space-4)}.pf-section+.pf-section{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-6)}.pf-section-heading{margin:0;font-size:.78em;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.55}.pf-field-group{display:flex;flex-direction:column;gap:var(--space-4);border-left:2px solid var(--color-primary-tint);padding-left:var(--space-3);margin-bottom:var(--space-2)}.pf-field-group-heading{margin:0;font-size:.8em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.55}.pf-field textarea{padding:.5em .7em;height:auto;resize:vertical;font-family:inherit;font-size:.9em;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:inherit;outline:none;transition:border-color var(--transition-base),background-color var(--transition-base)}.pf-field textarea:focus{border-color:var(--color-border-input-focus);background:var(--color-surface-hover)}.date-input{display:flex;align-items:center;height:34px;padding:0 .7em;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);gap:.15em;transition:border-color var(--transition-base),background-color var(--transition-base)}.date-input:focus-within{border-color:var(--color-border-input-focus);background:var(--color-surface-hover)}.date-input .date-input-part{height:auto;padding:0;background:none;border:none;border-radius:0;outline:none;color:inherit;font-size:.9em;font-family:inherit;text-align:center;width:2ch;min-width:0;transition:none}.date-input .date-input-y{width:4ch}.date-input-sep{opacity:.35;font-size:.9em;-webkit-user-select:none;user-select:none;flex-shrink:0}.pf-checkbox-label{display:flex;align-items:center;gap:.5em;font-size:.9em;cursor:pointer;-webkit-user-select:none;user-select:none}.pf-help{font-size:.78em;opacity:.55;margin:0}.pf-loading-text,.pf-unsupported{font-size:.85em;opacity:.45}.pf-field-error{font-size:.8em;color:var(--color-error)}.pf-input-error{border-color:#e059!important}.pf-error{margin:0;font-size:.85em;color:var(--color-error)}.pf-required-error{margin:var(--space-3) 0 0;font-size:.85em;color:var(--color-error);padding:var(--space-2) var(--space-3);background:#ee005514;border-radius:var(--radius-md);border:1px solid rgba(238,0,85,.2)}.pf-form-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:var(--space-4);padding-right:var(--space-4);padding-bottom:var(--space-2)}.pf-actions{flex-shrink:0;display:flex;gap:.6rem;padding:var(--space-3) 0 var(--space-6);border-top:1px solid var(--color-border-subtle)}.pf-actions button{padding:.45em 1.1em;border-radius:var(--radius-md);font-size:.9em;cursor:pointer;border:none;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.pf-actions button[type=submit]{background-color:var(--color-primary);color:#fff}.pf-actions button[type=submit]:hover:not(:disabled){background-color:var(--color-primary-hover)}.pf-actions button.btn-secondary{background:var(--color-surface);color:inherit}.pf-actions button.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover)}.pf-actions button:disabled{opacity:.5;cursor:not-allowed}.pd-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.pd-section-header .pd-section-title{margin-bottom:0}.pd-add-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:.82em;padding:.3em .55em;opacity:.65;transition:opacity var(--transition-fast),background-color var(--transition-fast);white-space:nowrap}.pd-add-btn:hover{opacity:1;background-color:var(--color-surface-hover)}.pd-empty-note{margin:0;font-size:.88em;opacity:.55}.empty-state{text-align:center;padding:3rem var(--space-4);opacity:.7}.empty-state p{margin:0 0 var(--space-3)}.consult-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.consult-list-row{display:flex;align-items:center;gap:var(--space-2)}.consult-item{display:flex;align-items:center;gap:.6rem;flex:1;text-align:left;background:none;border:none;padding:.5em .6em;border-radius:var(--radius-md);cursor:pointer;color:inherit;opacity:.8;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.consult-item:hover{opacity:1;background-color:var(--color-surface)}.consult-item-date{font-size:.9em;font-variant-numeric:tabular-nums}.consult-item-type{font-size:.8em;opacity:.55}.consult-item-locked{font-size:.75em;opacity:.5;margin-left:auto;font-style:italic}.consult-invoice-badge{flex-shrink:0;font-size:.72em;font-weight:500;padding:.18em .55em;border-radius:var(--radius-sm);border:none;cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.consult-invoice-badge:hover{opacity:.75}.consult-invoice-badge--draft{background:var(--color-surface);color:inherit;border:1px solid var(--color-border)}.consult-invoice-badge--finalised{background:var(--color-primary-tint);color:var(--color-primary)}.consult-invoice-badge--paid{background:color-mix(in srgb,#22c55e 15%,transparent);color:#16a34a}.consult-invoice-badge--void{background:var(--color-surface);color:inherit;opacity:.5;text-decoration:line-through}.consult-add-invoice-btn{flex-shrink:0;font-size:.72em;font-weight:500;padding:.18em .55em;border-radius:var(--radius-sm);border:1px dashed var(--color-border);background:none;color:var(--color-primary);cursor:pointer;white-space:nowrap;opacity:.7;transition:opacity var(--transition-fast),border-color var(--transition-fast)}.consult-add-invoice-btn:hover{opacity:1;border-color:var(--color-primary)}.inv-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.inv-section-header .pd-section-title{margin-bottom:0}.inv-mode-tabs{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.inv-mode-tab{padding:.3em .9em;border:none;background:none;color:var(--color-text-muted);font-size:.85em;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.inv-mode-tab+.inv-mode-tab{border-left:1px solid var(--color-border)}.inv-mode-tab--active{background:var(--color-primary);color:#fff}.inv-add-row,.inv-custom-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.inv-custom-desc{flex:1;min-width:160px;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em}.inv-custom-desc:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-custom-code{width:6rem;flex-shrink:0;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em}.inv-custom-code:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-custom-amount{width:7rem;flex-shrink:0;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em;text-align:right}.inv-custom-amount:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-item-select{flex:1;min-width:0;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em}.inv-item-select:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-qty-input{width:5rem;flex-shrink:0;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em;text-align:right}.inv-qty-input:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-icd-input{width:7rem;flex-shrink:0;padding:.4em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em}.inv-icd-input:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-add-line-btn{flex-shrink:0;padding:.4em 1em;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:.9em;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.inv-add-line-btn:hover{opacity:.85}.inv-lines-wrap{overflow-x:auto}.inv-lines-table{width:100%;border-collapse:collapse;font-size:.9em}.inv-lines-table th,.inv-lines-table td{padding:.45em .6em;text-align:left;border-bottom:1px solid var(--color-border-subtle)}.inv-lines-table th{font-size:.78em;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.6}.inv-col-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.inv-col-negative{color:var(--color-danger, #c0392b)}.inv-col-icd{width:6rem;white-space:nowrap;color:var(--color-text-muted);font-size:.85em}.inv-icd-cell-input{width:5.5rem;padding:.2em .4em;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;font-size:inherit}.inv-icd-cell-input:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-col-action{width:2rem;text-align:center}.inv-total-row td{font-weight:600;border-top:2px solid var(--color-border);border-bottom:none}.inv-remove-btn{background:none;border:none;cursor:pointer;color:inherit;opacity:.45;line-height:1;padding:.25em;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.inv-remove-btn:hover{opacity:1;color:var(--color-error, #dc2626)}.inv-notes{width:100%;box-sizing:border-box;padding:.5em .6em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em;resize:vertical;overflow-x:hidden}.inv-notes:focus{outline:none;border-color:var(--color-border-input-focus)}.inv-number-field{font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary);font-size:1.05em}.inv-number-pending{font-size:.78em;opacity:.5;margin:.1em 0 0;font-style:italic}.inv-status-badge{font-size:.78em;font-weight:600;padding:.2em .6em;border-radius:var(--radius-sm)}.inv-status-badge--draft{background:var(--color-surface);border:1px solid var(--color-border)}.inv-status-badge--finalised{background:var(--color-primary-tint);color:var(--color-primary)}.inv-status-badge--paid{background:color-mix(in srgb,#22c55e 15%,transparent);color:#16a34a}.inv-status-badge--void{background:var(--color-surface);opacity:.55}.inv-finalise-btn{background:color-mix(in srgb,#22c55e 80%,transparent);color:#fff}.inv-print-btn{padding:.5em 1.1em;border:1px solid var(--color-border);border-radius:var(--radius-md);background:none;color:inherit;font-size:.9em;cursor:pointer;transition:background-color var(--transition-fast)}.inv-print-btn:hover{background:var(--color-surface)}.inv-actions-split{display:flex;justify-content:space-between}.inv-actions-left{display:flex;gap:.6rem}.inv-create-btn{display:inline-block;padding:.5em 1.4em;min-width:9rem;white-space:nowrap;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:.9em;font-weight:500;cursor:pointer;text-decoration:none;text-align:center;box-sizing:border-box;transition:opacity var(--transition-fast)}.inv-create-btn:hover:not(:disabled){opacity:.85;color:#fff}.inv-create-btn:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.4)}.inv-create-btn--loading{pointer-events:none;cursor:wait}.inv-modal-overlay{position:absolute;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit}.inv-modal{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg, var(--radius-md));padding:var(--space-6);width:min(400px,90%);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:0 8px 32px #0000002e}.inv-modal-title{font-size:1em;font-weight:600}.inv-modal-body{font-size:.88em;opacity:.75;line-height:1.5}.inv-delete-btn{padding:.5em 1.1em;min-width:7rem;white-space:nowrap;box-sizing:border-box;border:1px solid var(--color-error, #dc2626);border-radius:var(--radius-md);background:none;color:var(--color-error, #dc2626);font-size:.9em;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.inv-delete-btn:hover:not(:disabled){background:var(--color-error, #dc2626);color:#fff}.inv-delete-btn:disabled{opacity:.55;cursor:not-allowed}.inv-pdf-link{display:inline-block;padding:.5em 1.4em;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:.9em;font-weight:500;text-decoration:none;transition:opacity var(--transition-fast)}.inv-pdf-link:hover{opacity:.85;color:#fff}.consult-new-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-dim);border-radius:var(--radius-lg);margin-bottom:var(--space-2)}.consult-header-left{display:flex;flex-direction:column;gap:.25rem}.consult-back-btn{background:none;border:none;color:var(--color-primary);font-size:.85em;cursor:pointer;padding:0;text-align:left;opacity:.85;transition:opacity var(--transition-fast)}.consult-back-btn:hover{opacity:1}.consult-type-badge{font-size:.8em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.2em .65em;border-radius:12px;flex-shrink:0;align-self:flex-start;margin-top:.3em;background:var(--color-surface)}.consult-type-badge--initial{background:#646cff33;color:#9ba4ff}.consult-type-badge--followup{background:#28b48c33;color:#5dcfb0}.consult-locked-notice{font-size:.85em;padding:.5em .75em;border-radius:var(--radius-md);background:#ffc8501a;color:#ffc850d9;margin-bottom:var(--space-6)}@media(prefers-color-scheme:light){.consult-locked-notice{background:#c88c001a;color:#966400e6}}.pds-controls{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.pds-toggle-all-btn{background:none;border:none;padding:0;font-size:.78em;color:var(--color-primary);cursor:pointer;opacity:.75;transition:opacity var(--transition-fast)}.pds-toggle-all-btn:hover{opacity:1}.pds-entries{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-direction:column;gap:.2rem}.pds-entry{display:flex;flex-direction:column;font-size:.85em;padding:.2em 0}.pds-entry-date{font-size:.85em;opacity:.5;font-variant-numeric:tabular-nums}@media(max-width:600px){.patients-collapse-btn{display:none}.patients-layout{flex-direction:column;height:auto;overflow:visible}.patients-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--color-border-subtle);max-height:100dvh}.patients-content,.patients-layout--selected .patients-sidebar{display:none}.patients-layout--selected .patients-content{display:flex;flex-direction:column}.patients-back{display:inline-flex;align-items:center;background:none;border:none;color:var(--color-primary);font-size:.9em;cursor:pointer;padding:var(--space-3) var(--space-4) 0}.pd-header{padding:var(--space-3) var(--space-3) 0;margin-bottom:var(--space-3)}.patients-content{flex-direction:column}.pd-summary{width:auto;border-left:none;border-top:1px solid var(--color-border-subtle)}.pd-summary-header{padding:var(--space-3) var(--space-3) var(--space-2)}.pd-summary-body{padding:var(--space-3)}.pd-body{padding:0 var(--space-3) var(--space-4)}.pd-grid{grid-template-columns:1fr;gap:0}.pd-grid dt{padding-top:var(--space-3)}.pd-grid dd{padding-bottom:var(--space-1)}.patient-form-wrap{padding:var(--space-4) var(--space-4) 0}}.pf-file-input-hidden{display:none}.pf-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.pf-file-item{display:flex;align-items:center;gap:var(--space-3);padding:.5em .6em;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.pf-file-item:hover{background-color:var(--color-surface)}.pf-file-icon{font-size:1.1em;flex-shrink:0;width:1.4em;text-align:center}.pf-file-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1em}.pf-file-name{font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-file-info{font-size:.78em;opacity:.5;font-variant-numeric:tabular-nums}.pf-file-actions{display:flex;gap:var(--space-2);flex-shrink:0}.pf-file-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);cursor:pointer;font-size:.78em;padding:.25em .6em;opacity:.75;text-decoration:none;transition:opacity var(--transition-fast),background-color var(--transition-fast);font-family:inherit}.pf-file-btn:hover{opacity:1;background-color:var(--color-surface-hover)}.pf-file-btn--delete{color:var(--color-error);border-color:transparent}.pf-file-btn--delete:hover{background-color:#ee005514;border-color:#e053}.pf-error{color:var(--color-error);font-size:.85em;margin:var(--space-2) 0 0}.invoices-layout{display:flex;align-items:stretch;height:calc(100dvh - 56px);overflow:hidden;padding:0}.invoices-layout.page{max-width:none;margin:0;padding:0}.invoices-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--color-border-subtle);display:flex;flex-direction:column;overflow:hidden}.invoices-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-3) var(--space-2);gap:var(--space-2)}.invoices-sidebar-actions{display:flex;align-items:center;gap:.4rem}.invoices-new-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:.3em .45em;opacity:.65;transition:opacity var(--transition-fast),background-color var(--transition-fast);flex-shrink:0}.invoices-new-btn:hover{opacity:1;background-color:var(--color-surface-hover)}.invoices-sidebar-title{font-weight:600;font-size:.85em;letter-spacing:.04em;text-transform:uppercase;opacity:.55}.invoices-count{font-size:.78em;background-color:var(--color-surface);border-radius:10px;padding:.1em .55em;opacity:.7}.invoices-loading,.invoices-empty{padding:var(--space-3);font-size:.88em;opacity:.55;margin:0}.invoices-search{padding:0 .375rem .375rem}.invoices-search input,.invoices-search select{width:100%;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:inherit;font-size:.85em;padding:.45em .65em;outline:none;transition:border-color var(--transition-base),background-color var(--transition-base)}.invoices-search select{margin-top:.3rem;cursor:pointer;appearance:none;line-height:1.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6em center;padding-right:2em}.invoices-search input:focus,.invoices-search select:focus{border-color:var(--color-border-input-focus);background:var(--color-surface-hover)}.invoices-list{list-style:none;margin:0;padding:var(--space-1) .375rem;overflow-y:auto;scrollbar-gutter:stable;flex:1}.invoices-list li{margin-bottom:1px}.invoice-item{width:100%;text-align:left;background:none;border:none;padding:.5em .6em;border-radius:var(--radius-md);cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.invoice-item:hover{opacity:1;background-color:var(--color-surface)}.invoice-item.active{opacity:1;background-color:var(--color-primary-tint);color:var(--color-primary)}.invoice-item-patient{font-size:.88em;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-item-meta{display:flex;justify-content:space-between;font-size:.78em;opacity:.7;margin-top:.15em}.invoices-content{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.invoices-placeholder{height:100%;display:flex;align-items:center;justify-content:center;opacity:.55;font-size:.9em;margin:0;padding:var(--space-8)}.invoices-back{display:none}.invoice-detail{flex:1;overflow:hidden;display:flex;flex-direction:column}.inv-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-shrink:0;padding:var(--space-6) var(--space-6) 0;margin-bottom:var(--space-4)}.inv-header-left h2{margin:0 0 var(--space-1);font-size:1.15em}.inv-header-left .inv-patient{font-size:.9em;opacity:.65;margin:0}.inv-header-right{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);flex-shrink:0;min-width:9rem}.inv-status-badge{font-size:.72em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.inv-action-btn{display:inline-flex;align-items:center;justify-content:center;font-size:.8em;font-weight:500;font-family:inherit;line-height:1.5;text-decoration:none;padding:.4em .7em;border-radius:var(--radius-sm);border:1px solid currentColor;background:none;cursor:pointer;width:100%;box-sizing:border-box;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.inv-action-btn:disabled{opacity:.5;cursor:default}.inv-action-btn--primary{color:var(--color-primary)}.inv-action-btn--primary:hover:not(:disabled){background-color:var(--color-primary);color:#fff}.inv-action-btn--danger{color:var(--color-danger, #c0392b)}.inv-action-btn--danger:hover:not(:disabled){background-color:var(--color-danger, #c0392b);color:#fff}.inv-action-btn--paid{color:#2a9d5c}.inv-action-btn--paid:hover:not(:disabled){background-color:#2a9d5c;color:#fff}.inv-pdf-error{font-size:.85em;color:var(--color-danger, #c0392b);margin:0 var(--space-6);flex-shrink:0}.inv-status-badge.draft{color:var(--color-text-muted, #888)}.inv-status-badge.finalised{color:var(--color-primary)}.inv-status-badge.paid{color:#2a9d5c}.inv-status-badge.void{color:#c0392b}.inv-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;padding:0 var(--space-6) var(--space-6)}.inv-meta{display:flex;gap:var(--space-6);font-size:.85em;opacity:.65;margin-bottom:var(--space-5);flex-wrap:wrap}.inv-meta span{display:flex;flex-direction:column;gap:.15em}.inv-meta strong{font-size:.82em;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.inv-section-title{font-size:.78em;font-weight:600;letter-spacing:.05em;text-transform:uppercase;opacity:.5;margin:0 0 var(--space-2)}.inv-lines-table{width:100%;border-collapse:collapse;font-size:.88em;margin-bottom:var(--space-5)}.inv-lines-table th{text-align:left;font-size:.78em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.5;padding:0 var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.inv-lines-table th.right,.inv-lines-table td.right{text-align:right}.inv-lines-table td{padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border-subtle);vertical-align:top}.inv-lines-table tr:last-child td{border-bottom:none}.inv-total-summary{display:flex;justify-content:flex-end;gap:var(--space-4);font-size:.9em;font-weight:600;padding:var(--space-2) var(--space-2);border-top:1px solid var(--color-border);margin-bottom:var(--space-5)}.inv-notes{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:.88em;white-space:pre-wrap;margin-bottom:var(--space-5)}.inv-modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.inv-modal{background:var(--color-bg-elevated, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-lg, var(--radius-md));padding:var(--space-6);width:min(400px,90%);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:0 8px 32px #0000002e}.inv-modal-title{margin:0;font-size:1em;font-weight:600}.inv-modal-body{font-size:.88em;opacity:.75;line-height:1.5;margin:0}.inv-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-1)}.inv-modal-cancel{padding:.5em 1.1em;border:1px solid var(--color-border);border-radius:var(--radius-md);background:none;color:inherit;font-size:.9em;cursor:pointer;transition:background-color var(--transition-fast)}.inv-modal-cancel:hover:not(:disabled){background:var(--color-surface-hover)}.inv-modal-confirm-danger{padding:.5em 1.1em;min-width:7rem;white-space:nowrap;box-sizing:border-box;border:1px solid var(--color-danger, #c0392b);border-radius:var(--radius-md);background:none;color:var(--color-danger, #c0392b);font-size:.9em;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.inv-modal-confirm-danger:hover:not(:disabled){background:var(--color-danger, #c0392b);color:#fff}.inv-modal-confirm-danger:disabled{opacity:.5;cursor:default}.inv-new-form{flex:1;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);max-width:480px}.inv-new-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.inv-new-form-header h2{margin:0;font-size:1.1em}.inv-new-form-cancel{background:none;border:none;font-size:1.4em;line-height:1;cursor:pointer;color:inherit;opacity:.5;padding:.1em .3em;border-radius:var(--radius-sm)}.inv-new-form-cancel:hover{opacity:1;background:var(--color-surface-hover)}.inv-new-label{font-size:.78em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.55}.inv-new-search{width:100%;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-md);color:inherit;font-size:.9em;padding:.5em .75em;outline:none;transition:border-color var(--transition-base)}.inv-new-search:focus{border-color:var(--color-border-input-focus)}.inv-new-empty{font-size:.88em;opacity:.55;margin:0}.inv-new-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.inv-new-list-item{width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:var(--radius-md);padding:.5em .7em;font-size:.9em;cursor:pointer;color:inherit;display:flex;justify-content:space-between;align-items:center;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.inv-new-list-item:hover{background:var(--color-surface)}.inv-new-list-item.selected{background:var(--color-primary-tint);color:var(--color-primary);border-color:var(--color-primary)}.inv-new-consult-type{font-size:.82em;opacity:.6}.inv-new-patient-row{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border-radius:var(--radius-md);padding:.5em .75em;font-size:.9em}.inv-new-patient-name{font-weight:500}.inv-new-change-patient{background:none;border:none;font-size:.85em;color:var(--color-primary);cursor:pointer;padding:0}.inv-new-change-patient:hover{text-decoration:underline}.inv-new-error{font-size:.85em;color:var(--color-danger, #c0392b);margin:0}.inv-new-submit{align-self:flex-start;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:.55em 1.2em;font-size:.9em;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast);margin-top:var(--space-2)}.inv-new-submit:disabled{opacity:.45;cursor:default}@media(max-width:600px){.invoices-layout--selected .invoices-sidebar{display:none}.invoices-back{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;color:var(--color-primary);font-size:.9em;cursor:pointer;padding:var(--space-3) var(--space-4) 0;flex-shrink:0}}.field-options{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.fo-title{margin:0 0 .6rem;font-size:.78em;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.55}.fo-empty{margin:0 0 .75rem;font-size:.85em;opacity:.55}.fo-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.fo-inactive{opacity:.4}.fo-row{display:flex;align-items:center;gap:.4rem}.fo-label{flex:1;font-size:.88em}.fo-add-form{display:flex;gap:var(--space-2);align-items:center}.fo-input{height:28px;padding:0 .5em;border-radius:var(--radius-sm);border:1px solid var(--color-border-input);background-color:var(--color-bg-elevated);color:inherit;font-size:.88em;font-family:inherit;box-sizing:border-box;flex:1;min-width:0;outline:none;transition:border-color var(--transition-base)}.fo-input:focus{border-color:var(--color-border-input-focus)}.field-defs{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.field-defs-sticky{flex-shrink:0;padding:var(--space-6) var(--space-6) 0}.fd-scroll-body{flex:1;overflow-y:auto;scrollbar-gutter:stable;min-height:0;padding:0 var(--space-6) var(--space-6)}.field-defs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.field-defs-header h2{margin:0;font-size:1.3em}.entity-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--color-border-subtle);padding-bottom:var(--space-2)}.entity-tabs button{background:none;border:none;padding:.4em .9em;border-radius:var(--radius-md);font-size:.9em;cursor:pointer;color:inherit;opacity:.6;transition:opacity var(--transition-base),background-color var(--transition-base)}.entity-tabs button:hover{opacity:1;background-color:var(--color-surface-hover);border-color:transparent}.entity-tabs button.active{opacity:1;background-color:var(--color-primary-tint);color:var(--color-primary)}.field-defs-form{background-color:var(--color-surface-dim);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:var(--space-6)}.form-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-4)}.form-row .field{flex:1;display:flex;flex-direction:column;gap:.35em}.form-row .field label{font-size:.85em;font-weight:500}.form-row .field input,.form-row .field select{height:34px;padding:0 .7em;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background-color:var(--color-bg-input);color:inherit;font-size:.9em;font-family:inherit;box-sizing:border-box;outline:none;transition:border-color var(--transition-base)}.form-row .field input:focus,.form-row .field select:focus{border-color:var(--color-border-input-focus)}.checkbox-label{display:flex;align-items:center;gap:.5em;font-size:.9em;margin-bottom:var(--space-4);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-actions{display:flex;gap:var(--space-2)}.cell-input{height:28px;padding:0 .5em;border-radius:var(--radius-sm);border:1px solid var(--color-border-input);background-color:var(--color-bg-input);color:inherit;font-size:inherit;font-family:inherit;box-sizing:border-box;width:100%;outline:none;transition:border-color var(--transition-base)}.cell-input:focus{border-color:var(--color-border-input-focus)}.edit-help-row td{padding:0 .75em .75em;border-bottom:1px solid var(--color-border-subtle)}.edit-extra-fields{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-2)}.edit-extra-fields .edit-help-field{flex:1;min-width:140px;flex-direction:column;align-items:flex-start;gap:.35em}.edit-help-field--narrow{flex:0 0 80px!important;min-width:unset!important}.edit-help-field{display:flex;align-items:center;gap:.75rem}.edit-help-field label{font-size:.85em;font-weight:500;white-space:nowrap;opacity:.65}.edit-extra-fields .edit-help-field input{width:100%}.edit-help-field input{height:28px;flex:1;padding:0 .5em;border-radius:var(--radius-sm);border:1px solid var(--color-border-input);background-color:var(--color-bg-input);color:inherit;font-size:.9em;font-family:inherit;box-sizing:border-box;outline:none;transition:border-color var(--transition-base)}.edit-help-field input:focus{border-color:var(--color-border-input-focus)}.row-actions{display:flex;gap:.4rem;white-space:nowrap}.fd-empty{opacity:.55;font-size:.95em}.fd-delete-error{color:var(--color-error);font-size:.9em;margin:0 0 .75rem}.fd-table-wrap{overflow-x:auto}.fd-table{width:100%;border-collapse:collapse;font-size:.9em;min-width:480px;table-layout:fixed}.fd-table col.col-label{width:auto}.fd-table col.col-section{width:130px}.fd-table col.col-type{width:100px}.fd-table col.col-required{width:90px}.fd-table col.col-status{width:110px}.fd-table col.col-actions{width:140px}.fd-table th{text-align:left;padding:.5em .75em;border-bottom:1px solid var(--color-border);font-weight:600;opacity:.65;white-space:nowrap}.fd-table th.col-section,.fd-table td.col-section{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fd-table td{padding:.6em .75em;border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}.fd-table tr.row-editing td{border-bottom:none}.fd-table tr.row-inactive td{opacity:.4}.fd-table .checkbox-label{margin-bottom:0}.fd-table code{font-family:monospace;font-size:.9em;background-color:var(--color-surface);padding:.15em .4em;border-radius:var(--radius-sm)}.unsaved-overlay{position:fixed;inset:0;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.unsaved-dialog{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;max-width:420px;width:90%;box-shadow:0 8px 32px #0003}.unsaved-dialog-actions{display:flex;justify-content:space-between}.unsaved-dialog-message{margin:0 0 1.25rem;font-size:.95em;line-height:1.5}.btn-sm{padding:.3em .7em;font-size:.82em;border-radius:var(--radius-sm);background:none;border:1px solid var(--color-border);cursor:pointer;color:inherit;white-space:nowrap}.btn-sm:hover{background-color:var(--color-surface-hover);border-color:transparent}@media(max-width:600px){.form-row{flex-direction:column;gap:var(--space-3)}.field-defs-table-wrap{overflow-x:visible}.field-defs-table,.field-defs-table tbody,.field-defs-table tr{display:block}.field-defs-table thead{display:none}.field-defs-table{min-width:unset}.field-defs-table tbody tr{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-3);padding:.15rem 0}.field-defs-table tbody tr.row-editing{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;margin-bottom:0;padding-bottom:0}.field-defs-table tbody tr.edit-help-row{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--color-border-subtle);margin-top:0;margin-bottom:var(--space-3)}.field-defs-table td{display:grid;grid-template-columns:65px 1fr;align-items:center;padding:.4rem .75rem;border-bottom:none;gap:.5rem}.field-defs-table td:before{content:attr(data-label);font-size:.8em;font-weight:600;opacity:.5}.field-defs-table tbody tr:not(.edit-help-row) td:last-child{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2);margin-top:.15rem}.field-defs-table tbody tr:not(.edit-help-row) td:last-child:before{display:none}.field-defs-table tr.edit-help-row td{display:block;padding:var(--space-3);border-bottom:none}.field-defs-table tr.edit-help-row td:before{display:none}.field-defs-table .edit-extra-fields{flex-direction:column;gap:var(--space-3)}.field-defs-table .edit-help-field--narrow{flex:1!important}.field-defs-table .cell-input{width:100%;min-width:0}.fd-table th.col-section,.fd-table td.col-section{display:none}}.users-table td{height:44px;padding-top:0;padding-bottom:0}@media(max-width:600px){.users-table-wrap{overflow-x:visible}.users-table,.users-table tbody,.users-table tr{display:block}.users-table thead{display:none}.users-table{min-width:unset}.users-table tbody tr{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-3);padding:.15rem 0}.users-table td{display:grid;grid-template-columns:52px 1fr;align-items:center;height:auto;padding:.4rem .75rem;border-bottom:none;gap:.5rem}.users-table td:before{content:attr(data-label);font-size:.8em;font-weight:600;opacity:.5}.users-table td:last-child{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2);margin-top:.15rem}.users-table td:last-child:before{display:none}.users-table .cell-input{width:100%;min-width:0}}.appearance-page{max-width:540px}.appearance-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.appearance-header h2{margin:0;font-size:1.3em}.appearance-section h3{margin:0 0 .4rem;font-size:1em;font-weight:600}.appearance-description{margin:0 0 1.25rem;font-size:.875em;opacity:.65;line-height:1.5}.colour-picker-row{display:flex;align-items:center;gap:var(--space-4);margin-bottom:1.25rem}.colour-picker-row label{font-size:.85em;font-weight:500;min-width:100px}.colour-picker-control{display:flex;align-items:center;gap:var(--space-3)}.colour-input{width:44px;height:44px;padding:2px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);background-color:var(--color-bg-input);cursor:pointer}.colour-hex{font-family:monospace;font-size:.9em;background-color:var(--color-surface);padding:.2em .5em;border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle)}.colour-swatches{display:flex;gap:var(--space-4);margin-bottom:1.5rem}.swatch-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.swatch-item span{font-size:.75em;opacity:.65}.swatch{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle)}.swatch--tint{border:1px solid var(--color-border)}.appearance-actions{display:flex;align-items:center;gap:var(--space-3)}.btn-primary{min-width:80px;padding:.45em 1.1em;font-size:.9em;border-radius:var(--radius-md);background-color:var(--color-primary);color:#fff;border:none;cursor:pointer;font-weight:500;transition:background-color var(--transition-base)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:transparent}.btn-primary:disabled{opacity:.45;cursor:default}.inv-counter-panel{padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--space-4)}.inv-counter-row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.inv-counter-info{display:flex;align-items:baseline;gap:var(--space-3);flex:1}.inv-counter-label{font-size:.85em;font-weight:600;opacity:.65}.inv-counter-value{font-size:1.15em;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary)}.inv-counter-edit{display:flex;align-items:center;gap:var(--space-2)}.inv-counter-input{width:7rem;padding:.3em .5em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em;text-align:right}.inv-counter-input:focus{outline:none;border-color:var(--color-border-input-focus)}.invoice-items-table col.col-code{width:110px}.invoice-items-table col.col-procedure{width:auto}.invoice-items-table col.col-amount{width:100px}.invoice-items-table col.col-status{width:90px}.invoice-items-table col.col-actions{width:140px}.badge{display:inline-block;padding:.15em .55em;border-radius:var(--radius-sm);font-size:.8em;font-weight:500}.badge-active{background-color:var(--color-primary-tint);color:var(--color-primary)}.badge-inactive{background-color:var(--color-surface);opacity:.6}@media(max-width:600px){.invoice-items-table-wrap{overflow-x:visible}.invoice-items-table,.invoice-items-table tbody,.invoice-items-table tr{display:block}.invoice-items-table thead{display:none}.invoice-items-table{min-width:unset}.invoice-items-table tbody tr{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-3);padding:.15rem 0}.invoice-items-table tbody tr.row-editing{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;margin-bottom:0;padding-bottom:0}.invoice-items-table tbody tr.edit-help-row{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--color-border-subtle);margin-top:0;margin-bottom:var(--space-3)}.invoice-items-table td{display:grid;grid-template-columns:80px 1fr;align-items:center;padding:.4rem .75rem;border-bottom:none;gap:.5rem}.invoice-items-table td:before{content:attr(data-label);font-size:.8em;font-weight:600;opacity:.5}.invoice-items-table tbody tr:not(.edit-help-row) td:last-child{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2);margin-top:.15rem}.invoice-items-table tbody tr:not(.edit-help-row) td:last-child:before{display:none}.invoice-items-table tr.edit-help-row td{display:block;padding:var(--space-3);border-bottom:none}.invoice-items-table tr.edit-help-row td:before{display:none}.invoice-items-table .cell-input{width:100%;min-width:0}}.ps-form{display:flex;flex-direction:column;gap:var(--space-5)}.ps-section{display:flex;flex-direction:column;gap:var(--space-3)}.ps-section-title{font-size:.78em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.55;margin-bottom:var(--space-1)}.ps-field{display:flex;flex-direction:column;gap:var(--space-1)}.ps-field label{font-size:.85em;font-weight:500;opacity:.75}.ps-field input{padding:.45em .65em;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font-size:.9em}.ps-field input:focus{outline:none;border-color:var(--color-border-input-focus)}.ps-error{color:var(--color-error, #dc2626);font-size:.85em}.ps-actions{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-2)}.ps-actions button{padding:.5em 1.4em;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:.9em;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.ps-actions button:hover:not(:disabled){opacity:.85}.ps-actions button:disabled{opacity:.55;cursor:not-allowed}.ps-saved{font-size:.85em;color:#16a34a;font-weight:500}.settings-layout{display:flex;align-items:stretch;gap:0;height:calc(100dvh - 56px);overflow:hidden;padding:0}.settings-sidebar{width:240px;min-width:240px;max-width:240px;flex-shrink:0;flex-grow:0;box-sizing:border-box;border-right:1px solid var(--color-border-subtle);padding:var(--space-4) var(--space-2);overflow-y:auto;scrollbar-gutter:stable}.settings-sidebar nav{display:flex;flex-direction:column;gap:.25rem}.settings-sidebar nav button{width:100%;text-align:left;background:none;border:none;padding:.5em .75em;border-radius:var(--radius-md);font-size:.9em;cursor:pointer;color:inherit;opacity:.65;transition:opacity var(--transition-base),background-color var(--transition-base)}.settings-sidebar nav button:hover{opacity:1;background-color:var(--color-surface-hover);border-color:transparent}.settings-sidebar nav button.active{opacity:1;background-color:var(--color-primary-tint);color:var(--color-primary)}.settings-content{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.settings-scroll-wrap{flex:1;overflow-y:auto;scrollbar-gutter:stable;padding:var(--space-6)}@media(max-width:600px){.settings-layout{flex-direction:column;height:unset;min-height:calc(100dvh - 56px);overflow:visible}.settings-sidebar{width:100%;min-width:0;max-width:none;border-right:none;border-bottom:1px solid var(--color-border-subtle);padding:var(--space-2)}.settings-sidebar nav{flex-direction:row;overflow-x:auto}.settings-sidebar nav button{white-space:nowrap}.settings-scroll-wrap{padding:var(--space-4)}}#root{display:flex;flex-direction:column;flex:1;width:100%}main{padding-top:56px;display:flex;flex-direction:column;flex:1}.app-loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.app-loading-spinner{width:40px;height:40px;border:3px solid var(--color-primary-tint);border-top-color:var(--color-primary);border-radius:50%;animation:app-spin .75s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}.app-loading p{margin:0;font-size:.95em;opacity:.55}.page{max-width:1280px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-4);box-sizing:border-box}
