:root{color-scheme:light;--paper:#f6f4ed;--paper-deep:#ece9df;--surface:#fffef9;--ink:#272a25;--muted:#6d7068;--line:#d8d6cd;--green:#3f5546;--green-soft:#dfe7dc;--sand:#ded4b8;--red:#9d493e;--red-soft:#f0ddd8;--amber:#8a6a2f;--amber-soft:#eee3c6;--blue:#445e70;--blue-soft:#dce7eb;--supplier:#624b70;--supplier-soft:#ebe2ee;--shadow:0 18px 50px rgb(39 42 37/7%);--radius:3px}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.55}button,input,select,textarea{color:inherit;font:inherit}.button,.secondary-button,button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--green);border-radius:var(--radius);background:var(--green);color:white;cursor:pointer;font-size:13px;font-weight:600;padding:10px 17px;text-decoration:none;transition:background .15s ease,color .15s ease,transform .15s ease}.button:hover,.secondary-button:hover,button:hover:not(:disabled){transform:translateY(-1px)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:3px}button:disabled{cursor:wait;opacity:.55}.action-form button,.inline-actions button,.secondary-button{background:transparent;color:var(--green)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:11px 12px}textarea{resize:vertical}label>span:first-child{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:6px}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.14}h1{font-size:clamp(34px,5vw,64px);letter-spacing:-.045em;margin-bottom:12px}h1,h2{font-weight:500}h2{font-size:clamp(23px,3vw,34px);letter-spacing:-.03em}h3{font-size:17px;font-weight:600}.eyebrow,.reference,.timeline time,code{font-family:DM Mono,monospace}.eyebrow{font-size:11px;letter-spacing:.1em;margin-bottom:9px;text-transform:uppercase}.eyebrow,.lede{color:var(--muted)}.lede{font-size:16px;max-width:620px}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);padding:0}.auth-brand{display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;background:var(--green);color:white;padding:clamp(32px,6vw,84px)}.brand-logo{width:124px;height:auto}.auth-brand .eyebrow{color:rgb(255 255 255/65%)}.auth-brand-line{max-width:430px;font-size:clamp(30px,4vw,58px);letter-spacing:-.045em;line-height:1.08}.auth-panel{display:grid;place-items:center;padding:32px}.auth-card{width:min(440px,100%)}.auth-card h1{font-size:clamp(36px,5vw,56px)}.auth-form{display:grid;gap:18px;margin-top:38px}.auth-form button{width:100%;margin-top:4px}.quiet-link{color:var(--muted);font-size:13px;text-align:center;text-underline-offset:4px}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--paper-deep);padding:28px 22px}.sidebar-brand{display:flex;width:fit-content;align-items:flex-end;gap:7px;padding-inline:12px;text-decoration:none}.sidebar-logo{width:82px;height:auto;filter:brightness(0) saturate(100%);opacity:.82}.sidebar-brand span{color:var(--muted);font-family:DM Mono,monospace;font-size:10px;line-height:1;margin-bottom:1px}.search-trigger{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:48px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);text-align:left}.search-dialog kbd,.search-trigger kbd{border:1px solid var(--line);border-radius:4px;padding:2px 5px;background:var(--paper);color:var(--muted);font:10px/1.4 DM Mono,monospace}.main-nav{display:grid;gap:4px;margin-top:14px}.main-nav a{border-radius:var(--radius);color:var(--muted);padding:10px 12px;text-decoration:none}.main-nav a.active,.main-nav a:hover{background:var(--surface);color:var(--ink)}.search-dialog{width:min(680px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 32px));padding:0;border:1px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px rgb(20 24 20/.28)}.search-dialog::backdrop{background:rgb(20 24 20/.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.search-dialog-shell{display:grid;gap:18px;padding:24px}.search-dialog header,.search-dialog-input{display:flex;align-items:center;justify-content:space-between;gap:16px}.search-dialog h2{margin:3px 0 0;font-size:22px}.search-dialog-input{border:1px solid var(--ink);border-radius:var(--radius);padding:4px 10px 4px 14px}.search-dialog-input input{min-width:0;flex:1 1;border:0;padding:10px 0;background:transparent;font-size:15px;outline:0}.search-results{display:grid;gap:18px;min-height:88px;max-height:min(480px,60vh);overflow:auto}.search-results section{display:grid;gap:4px}.search-results h3{margin:0 0 4px;color:var(--muted);font:700 10px/1.4 DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.search-results [role=option]{display:grid;gap:2px;width:100%;padding:11px 12px;border:0;border-radius:var(--radius);background:transparent;color:var(--ink);text-align:left}.search-results [role=option].active,.search-results [role=option]:hover{background:var(--surface)}.search-results [role=option] span{color:var(--muted);font-size:11px}.sidebar-user{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;margin-top:auto}.sidebar-user small,.sidebar-user strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user strong{font-size:12px}.sidebar-user small{color:var(--muted);font-size:10px}.sidebar-user form{grid-column:2}.avatar{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--green);color:white;font-family:DM Mono,monospace;font-size:11px}.link-button{min-height:auto;border:0;background:transparent;color:var(--muted);font-size:11px;padding:0;text-decoration:underline;text-underline-offset:3px}.main-content{width:min(1440px,100%);margin:0 auto;padding:clamp(30px,5vw,72px);overflow:hidden}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:44px}.page-header h1{margin-bottom:10px}.page-header .lede{margin-bottom:0}.form-feedback,.notice{border-left:3px solid var(--green);background:var(--green-soft);margin:0 0 24px;padding:12px 15px}.form-feedback{font-size:13px;margin:0}.form-feedback.error{border-color:var(--red);background:var(--red-soft)}.field-error{display:block;color:var(--red);font-size:11px;margin-top:4px}.filter-bar{display:flex;align-items:center;gap:10px;border-block:1px solid var(--line);margin-bottom:28px;padding:14px 0}.filter-bar .search-field{flex:1 1}.filter-bar input,.filter-bar select{background:transparent}.check-label{display:flex!important;align-items:center;gap:8px}.check-label input{width:16px;height:16px}.check-label span,.check-label span:first-child{margin:0}.field-hint{margin:0;font-size:.78rem}.consent-history,.field-hint{color:var(--muted);line-height:1.45}.consent-history{display:grid;gap:6px;margin:10px 0 0;padding-left:18px;font-size:.75rem}.filter-check{white-space:nowrap;padding:0 9px}.reference{color:var(--muted);font-size:11px}.status-pill,.tag{display:inline-flex;width:fit-content;align-items:center;gap:5px;border-radius:999px;background:var(--paper-deep);color:var(--ink);font-size:10px;font-weight:600;padding:5px 9px;white-space:nowrap}.status-aceptado,.status-activo,.status-completado{background:var(--green-soft);color:var(--green)}.status-en_obra,.status-enviado{background:var(--blue-soft);color:var(--blue)}.status-anulado,.status-cancelado,.status-rechazado{background:var(--red-soft);color:var(--red)}.status-borrador,.status-sustituido{background:var(--amber-soft);color:var(--amber)}.state-tone-neutral,.status-sin_presupuesto{background:var(--paper-deep);color:var(--muted)}.state-tone-info{background:var(--blue-soft);color:var(--blue)}.state-tone-positive{background:var(--green-soft);color:var(--green)}.state-tone-warning{background:var(--amber-soft);color:var(--amber)}.state-tone-muted{background:var(--paper-deep);color:var(--muted)}.state-icon{font-family:DM Mono,monospace;line-height:1}.money,.numeric,.quantity{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.load-more{display:flex;justify-content:center;margin-top:32px}.empty-state{display:grid;min-height:260px;place-items:center;align-content:center;border:1px dashed var(--line);color:var(--muted);padding:30px;text-align:center}.empty-state>span{font-family:DM Mono,monospace;font-size:30px}.empty-state h2{color:var(--ink);font-size:22px;margin:12px 0 5px}.form-page-card,.panel{border:1px solid var(--line);background:var(--surface);padding:clamp(22px,4vw,42px)}.form-page-card{max-width:840px}.data-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.data-form fieldset{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;border:0;border-bottom:1px solid var(--line);margin:0 0 10px;padding:0 0 28px}.data-form legend{grid-column:1/-1;font-size:20px;font-weight:500;margin-bottom:18px}.data-form .span-2,.data-form>.form-feedback,.data-form>button{grid-column:1/-1}.data-form>button{justify-self:start}.data-form.compact{margin-top:25px}.client-select-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.client-select-row .secondary-button{align-self:start;min-height:43px;margin-top:22px}.inline-client-dialog{width:min(620px,calc(100vw - 32px));padding:0;border:1px solid var(--ink);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px rgb(20 24 20/.28)}.inline-client-dialog::backdrop{background:rgb(20 24 20/.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.inline-client-dialog .data-form{margin:0;padding:26px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.dialog-heading h2{margin:3px 0 0}.stack-form{display:grid;gap:14px}.stack-form>button{justify-self:start}.code-form textarea,.timeline pre{font-family:DM Mono,monospace;font-size:11px}.detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-columns>:nth-child(3),.detail-columns>:only-child{grid-column:1/-1}.section-heading{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:24px}.section-heading h2{font-size:25px}.count{color:var(--muted);font-family:DM Mono,monospace}.danger-zone{border-top:1px solid var(--line);color:var(--muted);font-size:12px;margin-top:28px;padding-top:20px}.action-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.action-form .form-feedback{flex-basis:100%}.action-form input{min-width:170px}.contact-list{display:grid;gap:10px}.contact-card{border:1px solid var(--line);padding:16px}.archived{opacity:.58}.contact-card>div:first-child{display:flex;gap:8px;align-items:center}.contact-card h3{margin:0}.budget-meta,.contact-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.budget-meta div,.contact-card dl div{min-width:0}.budget-meta dt,.contact-card dt{color:var(--muted);font-size:10px;text-transform:uppercase}.budget-meta dd,.contact-card dd{margin:2px 0 0;overflow-wrap:anywhere}.budget-actions,.inline-actions{display:flex;flex-wrap:wrap;gap:8px}.budget-actions button,.inline-actions button{min-height:34px;padding:7px 10px}.budget-detail-columns{align-items:start}.budget-detail-primary-amount{display:grid;gap:5px;border-block:1px solid var(--line);margin-top:22px;padding:20px 0}.budget-detail-primary-amount span{color:var(--muted);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.budget-detail-primary-amount strong{color:var(--green);font-size:clamp(28px,3vw,38px);line-height:1.15}.budget-detail-meta{margin-bottom:0}.budget-detail-variants{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.budget-detail-variants h3{margin:0;font-size:15px}.budget-detail-variants .budget-variant-list{margin-bottom:0;padding-left:0;list-style:none}.budget-detail-variants .budget-variant-list li.accepted{color:var(--green)}.budget-detail-variants .budget-variant-list li.accepted span:after{content:" · Aceptada";color:var(--muted);font-size:10px;text-transform:uppercase}.budget-detail-document-panel .document-actions{justify-content:flex-start;margin-top:20px}.budget-detail-management{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.budget-detail-management>.eyebrow{margin-bottom:8px}.budget-detail-actions{display:grid;gap:22px}.budget-detail-action-group{display:grid;gap:12px}.budget-detail-action-group h3{margin:0;font-size:16px}.budget-detail-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.budget-detail-quick-actions .action-form{margin:0}.budget-detail-actions>.budget-drawer-section{border:1px solid var(--line);background:var(--paper);padding:18px}.budget-detail-danger-action{border-top:1px solid var(--line);padding-top:18px}.budget-detail-danger-action summary{color:var(--red)}.budget-detail-danger-action>p{max-width:520px;margin:12px 0;font-size:12px}.budget-detail-danger-action .action-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;max-width:560px}.budget-detail-danger-action .action-form input,.budget-detail-danger-action .action-form label{width:100%}.budget-detail-danger-action .action-form button{border-color:var(--red);background:transparent;color:var(--red)}.budget-detail-danger-action .action-form button:hover:not(:disabled){background:var(--red-soft)}.action-disclosure,.disclosure,.popover-disclosure{margin-top:18px}summary{color:var(--green);cursor:pointer;font-size:13px;font-weight:600}.action-disclosure[open] summary,.disclosure[open] summary{margin-bottom:18px}.wide-panel{margin-top:15px}.client-project-list,.compact-list{display:grid}.client-project-list>a,.compact-list>a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding:15px 0;text-decoration:none}.client-project-list small,.client-project-list span,.compact-list small{display:block;color:var(--muted)}.client-project-list .status-pill{justify-self:end}.invoice-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:28px}.invoice-page-header h1{font-size:clamp(34px,4vw,52px);margin-bottom:8px}.invoice-page-header .lede{margin-bottom:0}.invoice-header-actions{display:flex;flex:0 0 auto;gap:8px}.invoice-dashboard{overflow:hidden;border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface)}.invoice-dashboard-toolbar{display:flex;align-items:flex-end;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.invoice-dashboard-toolbar input,.invoice-dashboard-toolbar select{min-height:42px;background:var(--surface)}.invoice-state-filter{flex:0 0 190px}.invoice-search-filter{min-width:210px;flex:1 1 280px}.invoice-period-filter{display:flex;flex:0 1 auto;align-items:flex-end;gap:7px}.invoice-period-filter label{width:142px}.invoice-period-filter label>span{margin-bottom:3px;font-size:10px}.invoice-period-filter>span{padding-bottom:10px;color:var(--muted)}.invoice-pdf-filter{min-height:42px;flex:0 0 auto;align-items:center;white-space:nowrap}.invoice-pdf-filter input{min-height:auto}.invoice-clear-filters{display:inline-flex;min-height:42px;align-items:center;color:var(--muted);font-size:12px;text-underline-offset:3px}.billing-configuration-form{display:grid;gap:20px;max-width:1060px}.billing-config-section{display:grid;gap:24px}.billing-config-section .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.billing-config-section .span-2{grid-column:1/-1}.billing-concepts-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.billing-concepts-list{display:grid;gap:14px}.billing-concept-row{border-top:1px solid var(--line);padding-top:18px}.billing-config-submit{position:sticky;z-index:3;bottom:16px;display:flex;align-items:center;justify-content:flex-end;gap:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:var(--shadow);padding:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.invoice-draft-preview-action{display:grid;justify-items:start;gap:8px;border-bottom:1px solid var(--line);padding-bottom:18px}.invoice-draft-preview-action p{margin:0}.invoice-table-scroll{width:100%;overflow-x:auto}.invoice-table{width:100%;min-width:1020px;border-collapse:collapse;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-table td,.invoice-table th{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}.invoice-table thead th{background:color-mix(in srgb,var(--paper-deep) 64%,var(--surface));color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.025em}.invoice-table thead a{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.invoice-table thead a span{color:color-mix(in srgb,var(--muted) 58%,transparent);font:10px/1 DM Mono,monospace}.invoice-table thead th[aria-sort=ascending] a,.invoice-table thead th[aria-sort=descending] a{color:var(--ink)}.invoice-table thead th[aria-sort=ascending] a span,.invoice-table thead th[aria-sort=descending] a span{color:var(--green)}.invoice-table tbody tr{transition:background .12s ease}.invoice-table tbody tr:hover{background:color-mix(in srgb,var(--green-soft) 32%,transparent)}.invoice-table .numeric{text-align:right}.invoice-number-link{color:var(--ink);font:700 12px/1.4 DM Mono,monospace;text-decoration-color:color-mix(in srgb,var(--green) 42%,transparent);text-underline-offset:4px}.table-secondary-link{text-decoration:none}.invoice-number-link:hover,.table-secondary-link:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}.invoice-table .status-pill{white-space:nowrap}.invoice-total-cell{color:var(--ink);font-weight:700}.invoice-table .invoice-card-incident{padding:5px 7px;font-size:9px}.project-table{min-width:940px}.client-table{min-width:760px}.client-contact-detail{display:block;margin-top:3px;color:var(--muted);font-size:11px}.table-primary-link{display:block;color:var(--ink);font-weight:700;text-decoration-color:color-mix(in srgb,var(--green) 42%,transparent);text-underline-offset:4px}.table-primary-link:hover{color:var(--green)}.project-table-reference{display:block;margin-top:3px;color:var(--muted);font:10px/1.3 DM Mono,monospace}.project-table .status-pill{white-space:nowrap}.project-budget-version{margin-left:7px;color:var(--muted);font:10px/1.3 DM Mono,monospace}.invoice-pdf-ready{color:var(--green);font-size:11px;font-weight:700}.invoice-table tfoot td,.invoice-table tfoot th{border-bottom:0;background:var(--surface);font-weight:700}.invoice-table tfoot th{color:var(--muted);text-align:right}.invoice-table-empty{height:240px;text-align:center!important;white-space:normal!important}.invoice-table-empty a,.invoice-table-empty span,.invoice-table-empty strong{display:block}.invoice-table-empty span{margin:5px 0 12px;color:var(--muted)}.invoice-table-empty a{color:var(--green);font-weight:700}.invoice-dashboard-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;padding:12px 14px;border-top:1px solid var(--line);color:var(--muted);font:11px/1.4 DM Mono,monospace}.status-emitida{background:var(--green-soft);color:var(--green)}.status-descartada{color:var(--muted)}.invoice-project-list{border-top:1px solid var(--ink)}.invoice-project-row{display:grid;grid-template-columns:minmax(170px,1fr) auto auto 105px;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:17px 8px;text-decoration:none}.invoice-project-row h3{display:inline;font-size:13px;margin-left:10px}.invoice-project-row>span:last-child{color:var(--muted);font-size:12px;text-align:right}.quick-create-invoice-form{display:grid;justify-items:end}.quick-create-invoice-form button{white-space:nowrap}.quick-create-invoice-form .form-feedback{max-width:320px;text-align:right}.invoice-tax-note{font-size:11px;margin:0}.invoice-composer{display:grid;gap:18px;min-width:0}.invoice-editor-heading,.invoice-line-actions,.invoice-line-result,.invoice-line-topbar{display:flex;align-items:center}.invoice-editor-heading,.invoice-line-topbar{justify-content:space-between;gap:16px}.invoice-editor-heading h3{margin:4px 0 0}.invoice-budget-import{border-bottom:1px solid var(--line);display:grid;gap:10px;margin-bottom:24px;padding-bottom:24px}.invoice-budget-import h3,.invoice-budget-import p{margin:0}.invoice-concept-library{border:1px solid var(--line);padding:12px 14px}.invoice-concept-library summary{cursor:pointer;font-size:12px;font-weight:650}.invoice-concept-library p{margin:10px 0}.invoice-concept-library-grid{display:flex;flex-wrap:wrap;gap:7px}.invoice-concept-library-grid button{font-size:11px}.invoice-editor-lines{display:grid;gap:12px}.invoice-editor-line{border:1px solid var(--line);padding:16px;background:color-mix(in srgb,var(--paper) 94%,var(--ink))}.invoice-line-topbar{color:var(--muted);font-size:10px;letter-spacing:.06em;margin-bottom:13px;text-transform:uppercase}.invoice-line-actions{gap:4px}.invoice-line-actions button{border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font:inherit;padding:3px 5px}.invoice-line-actions button:focus-visible,.invoice-line-actions button:hover:not(:disabled){border-color:currentColor;color:var(--ink)}.invoice-line-actions button:disabled{cursor:default;opacity:.3}.invoice-description-field{display:grid;gap:7px}.invoice-description-field textarea{resize:vertical}.invoice-line-fields{display:grid;grid-template-columns:90px 125px minmax(145px,1fr) minmax(125px,1fr) 80px minmax(115px,auto);gap:10px;align-items:end;margin-top:12px}.invoice-line-result{align-items:flex-end;flex-direction:column;gap:3px;min-height:41px;justify-content:center;text-align:right}.invoice-calculation-note,.invoice-line-origin,.invoice-line-result span{color:var(--muted);font-size:10px}.invoice-line-result strong{font-size:15px}.invoice-line-origin{margin:10px 0 0;text-transform:uppercase}.invoice-editor-totals{display:grid;margin:0 0 0 auto;width:min(360px,100%)}.invoice-editor-totals div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0}.invoice-editor-totals div:last-child{border-color:var(--ink);font-size:18px;font-weight:700}.invoice-editor-totals dd{margin:0}.invoice-calculation-note{margin:-10px 0 0;text-align:right}.invoice-payment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid var(--line);margin:8px 0 0;padding:18px}.invoice-payment-fields legend{font-size:12px;font-weight:700;padding:0 8px}.invoice-issued-workspace{overflow:hidden;border:1px solid var(--line);background:var(--surface)}.invoice-workspace-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;min-height:64px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--paper)}.invoice-workspace-toolbar>a{color:var(--muted);font-size:12px;text-underline-offset:3px}.invoice-workspace-title{display:flex;min-width:0;align-items:baseline;gap:10px}.invoice-workspace-title h1{overflow:hidden;margin:0;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.invoice-workspace-title>span{color:var(--muted);font-size:11px}.invoice-workspace-badges,.invoice-workspace-viewer-actions{display:flex;align-items:center;gap:8px}.invoice-document-approved{border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));background:var(--green-soft);color:var(--green);padding:6px 9px;font-size:10px;font-weight:700;letter-spacing:.025em}.invoice-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:min(760px,calc(100vh - 210px))}.invoice-workspace-viewer{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:#d9dbd7}.invoice-workspace-viewer:fullscreen{width:100vw;height:100vh}.invoice-workspace-viewer>header{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px;border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:var(--paper-deep)}.invoice-workspace-viewer>header>div:first-child{display:grid;gap:2px;min-width:0}.invoice-workspace-viewer>header span{color:var(--muted);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.invoice-workspace-viewer>header strong{overflow:hidden;font:700 11px/1.4 DM Mono,monospace;text-overflow:ellipsis;white-space:nowrap}.invoice-workspace-viewer-actions button{min-height:34px;padding:7px 10px;font-size:10px}.invoice-workspace-pdf-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;overflow:hidden}.invoice-workspace-pdf-stage .pdf-page-controls{z-index:2;border-color:color-mix(in srgb,var(--ink) 14%,transparent);background:var(--paper-deep);box-shadow:0 -5px 18px rgb(20 24 20/.08)}.invoice-workspace-canvas-stage{position:relative;display:grid;width:100%;min-height:520px;overflow:auto;padding:34px;place-items:start center}.invoice-workspace-canvas-stage canvas{display:block;max-width:none;background:white;box-shadow:0 6px 24px rgb(20 24 20/.18)}.invoice-workspace-canvas-stage>p{position:absolute;z-index:1;top:24px;padding:8px 12px;background:var(--paper);font-size:12px}.invoice-workspace-viewer .pdf-fallback{margin:0;padding:8px 14px;border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:var(--paper-deep);font-size:10px}.invoice-workspace-sidebar{overflow:auto;border-left:1px solid var(--line);background:var(--paper)}.invoice-workspace-tab{border-bottom:2px solid var(--green);padding:18px;color:var(--green);font-size:12px;font-weight:700;text-align:center}.invoice-workspace-sidebar>section{display:grid;gap:16px;padding:22px 20px;border-bottom:1px solid var(--line)}.invoice-workspace-section-heading,.invoice-workspace-total{display:flex;align-items:center;justify-content:space-between;gap:16px}.invoice-workspace-total strong{font-size:21px}.invoice-workspace-sidebar h2{margin:0;font-size:15px}.invoice-workspace-sidebar dl{display:grid;gap:10px;margin:0}.invoice-workspace-sidebar dl div{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.invoice-workspace-sidebar dt{color:var(--muted);font-size:11px}.invoice-workspace-sidebar dd{margin:0;font-size:12px;text-align:right}.invoice-workspace-sidebar a{color:var(--green);text-underline-offset:3px}.invoice-payment-action,.invoice-payment-correction{display:grid;gap:12px}.invoice-payment-action>p,.invoice-payment-correction>p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.invoice-workspace-payment .action-form{display:grid;gap:10px}.invoice-workspace-payment .action-form label{display:grid;gap:5px}.invoice-workspace-payment .action-form label span{color:var(--muted);font-size:10px}.invoice-workspace-payment .action-form button{width:100%}.invoice-payment-correction{border-top:1px solid var(--line);padding-top:12px}.invoice-payment-correction summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:700}.payment-positive{color:var(--green);font-weight:700}.invoice-workspace-corrections{margin-top:18px;border:1px solid var(--line);background:var(--surface)}.invoice-workspace-corrections>summary{cursor:pointer;padding:15px 18px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.invoice-workspace-corrections[open]>summary{border-bottom:1px solid var(--line)}.invoice-workspace-corrections .invoice-corrections-section{margin:0;padding:28px}.invoice-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:15px;margin-top:30px}.invoice-lines-table{border-collapse:collapse;border-top:1px solid var(--ink);margin-top:25px;width:100%}.invoice-lines-table td,.invoice-lines-table th{border-bottom:1px solid var(--line);padding:13px 7px;text-align:right}.invoice-lines-table td:first-child,.invoice-lines-table th:first-child{text-align:left}.invoice-lines-table tbody th{font-size:13px}.invoice-line-heading{color:var(--muted);font-size:10px;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.invoice-totals{width:min(330px,100%);margin:24px 0 0 auto}.invoice-totals div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:8px 0}.invoice-totals div:last-child{border-color:var(--ink);font-size:18px;font-weight:700}.invoice-fiscal-panel dd,.invoice-totals dd{margin:0}.invoice-fiscal-panel dl{display:grid;gap:14px;margin-top:25px}.invoice-fiscal-panel dt,.invoice-totals dt{color:var(--muted);font-size:11px}.invoice-corrections-section .detail-columns,.invoice-edit-section .detail-columns{grid-template-columns:minmax(0,1fr)}.invoice-card-incident{align-self:start;border:1px solid #9d3f2e;color:#713024;font-size:10px;font-weight:700;letter-spacing:.05em;padding:5px 7px;text-transform:uppercase}.invoice-pdf-incident{border:1px solid #9d3f2e;background:#f8e8df;color:#713024;font-size:13px;line-height:1.45;padding:14px 16px}.invoice-filter-incident{margin:0 0 20px}.invoice-pdf-missing{display:grid;gap:18px}.invoice-pdf-missing details{border-top:1px solid var(--line);padding-top:14px}.invoice-pdf-missing summary{cursor:pointer;font-size:12px;font-weight:700}.invoice-command-panel{display:flex;flex-direction:column;align-items:flex-start}.invoice-command-panel .danger-zone{width:100%}.invoice-pdf-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px}.invoice-pdf-form .form-feedback{grid-column:1/-1}.invoice-relation{border-top:1px solid var(--line);color:var(--muted);padding-top:20px}.project-summary{display:flex;flex-wrap:wrap;align-items:center;gap:17px;border-block:1px solid var(--line);color:var(--muted);font-size:12px;padding:14px 0}.project-summary a{margin-left:auto}.section-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;background:rgb(246 244 237/94%);border-bottom:1px solid var(--line);padding:14px 0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.section-tabs a{border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:11px;text-decoration:none;white-space:nowrap}.section-tabs a.active,.section-tabs a:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.section-tab-icon{width:18px;height:18px;flex:0 0 auto}.section-tabs.project-menu{position:static;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;overflow:visible;background:transparent;border-bottom:1px solid var(--line);padding:14px 0 12px;-webkit-backdrop-filter:none;backdrop-filter:none}.section-tabs.project-menu a{display:flex;min-height:46px;align-items:center;justify-content:flex-start;gap:11px;border:1px solid transparent;border-radius:9px;color:var(--muted);padding:10px 16px;font-size:13px;font-weight:600}.section-tabs.project-menu a:hover{border-color:var(--line);background:var(--surface);color:var(--ink)}.section-tabs.project-menu a.active,.section-tabs.project-menu a.active:hover{border-color:#385642;background:#294435;color:#fff;box-shadow:0 1px 2px rgb(22 38 29/18%)}.detail-tab-content{margin-top:32px}.budget-variant-list{display:grid;gap:8px;margin-top:20px}.budget-variant-list li{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:8px}.budget-variant-list strong,.invoice-lines-table td,.invoice-project-row>strong,.invoice-totals dd{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.project-section{scroll-margin-top:80px;border-bottom:1px solid var(--line);padding:70px 0}.project-overview{border-bottom:0;padding-top:42px}.project-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.project-metric-card{display:grid;min-height:158px;align-content:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:26px 28px}.project-metric-card small,.project-metric-card>span{color:var(--muted)}.project-metric-card>span{font-size:13px;font-weight:600}.project-metric-card strong{font-family:DM Mono,monospace;font-size:clamp(25px,2.4vw,36px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.project-margin-card{border-color:#cbdacb;background:#edf4ea;color:#2e7144}.project-margin-card small,.project-margin-card>span{color:#50765b}.project-margin-card.negative{border-color:#e3c7bd;background:#fbebe5;color:#a44427}.deadline-warning,.project-margin-card.negative small,.project-margin-card.negative>span{color:#bd5635!important}.project-currency-warning{border:1px solid #dfc998;border-radius:10px;background:#fff8e5;padding:10px 14px;font-size:12px}.project-chronology-card{margin-top:30px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:42px 46px}.project-chronology-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.project-chronology-card h2{font-size:22px}.project-chronology-range{color:var(--muted);font-family:DM Mono,monospace;font-size:12px}.project-progress{position:relative;margin-top:82px}.project-progress-track{height:7px;overflow:hidden;border-radius:99px;background:var(--paper-deep)}.project-progress-track>span{display:block;height:100%;background:#315b43}.project-progress-today{position:absolute;top:0;z-index:1;width:0;height:7px;color:#c55d38;font-size:11px;font-weight:700;text-align:center;white-space:nowrap}.project-progress-today>span{position:absolute;bottom:23px;left:50%;transform:translateX(-50%)}.project-progress-today i{position:absolute;top:-7px;left:50%;display:block;width:20px;height:20px;margin:0;border:4px solid #c66745;border-radius:50%;background:var(--surface);box-shadow:0 3px 10px rgb(75 43 30/15%);transform:translateX(-50%)}.project-progress-labels{display:flex;justify-content:space-between;margin-top:18px}.project-progress-labels>div{display:grid;gap:3px}.project-progress-labels>div:last-child{text-align:right}.project-progress-labels span{color:var(--muted);font-family:DM Mono,monospace;font-size:12px}.project-expense-timeline{margin-top:38px;border-top:1px dashed var(--line);padding-top:28px}.project-expense-timeline ol{display:grid;gap:15px;margin:20px 0 0;padding:0;list-style:none}.project-expense-timeline li{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:baseline;gap:20px}.project-expense-timeline time{color:var(--muted);font-family:DM Mono,monospace}.project-expense-timeline a{color:inherit;text-decoration:none}.project-expense-timeline a:hover{text-decoration:underline}.project-expense-timeline li strong{font-family:DM Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.project-delivery-prompt{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;border:1px dashed var(--line);border-radius:12px;padding:18px 20px}.project-overview-empty{max-width:720px}.project-overview-empty h2{margin:8px 0 12px}.project-overview-empty .button{margin-top:14px}.section-title{margin-bottom:30px}.section-title h2{margin-bottom:8px}.title-with-action{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.popover-disclosure{position:relative}.popover-disclosure>summary{list-style:none;border:1px solid var(--green);background:var(--green);color:white;padding:10px 16px}.popover-panel{position:absolute;right:0;z-index:10;width:min(520px,85vw);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);margin-top:8px;padding:20px}.section-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:10px}.section-header-actions>.popover-disclosure{margin-top:0}.popover-disclosure>summary.secondary-button{border-color:var(--line-strong);background:transparent;color:var(--ink)}.external-import-popover{width:min(620px,90vw)}.invoice-import-popover{width:min(780px,92vw)}.external-document-form{gap:16px}.external-document-form>p:first-child{margin-top:0}.external-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.external-document-form label{display:grid;gap:7px}.external-document-form label>span{color:var(--muted);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.external-document-form label>small{color:var(--muted);font-size:10px}.external-document-form input[type=file]{min-height:44px;padding:8px}.external-import-page{max-width:820px}.client-summary-card .large-link{display:block;font-size:22px;margin:25px 0;text-underline-offset:5px}.contact-line{display:grid;grid-template-columns:auto auto 1fr;gap:8px;border-top:1px solid var(--line);font-size:12px;padding:10px 0}.contact-line>span:last-child{color:var(--muted);text-align:right}.budget-origin-filter{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-strong,var(--line));border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.budget-origin-filter a{border-right:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:650;padding:8px 13px;text-decoration:none}.budget-origin-filter a:last-child{border-right:0}.budget-origin-filter a.active,.budget-origin-filter a:hover{background:var(--green-soft);color:var(--green)}.budget-origin-filter a.active:last-child{background:var(--supplier-soft);color:var(--supplier)}.budget-filter-bar{margin-bottom:18px}.budget-filter-bar label:not(.search-field){min-width:170px}.budget-filter-bar .secondary-button,.budget-filter-bar button{min-height:38px;padding-block:7px}.budget-table{min-width:1120px}.combined-budget-table td:first-child{box-shadow:inset 4px 0 0 var(--green)}.combined-budget-table tr.budget-origin-supplier td:first-child{box-shadow:inset 4px 0 0 var(--supplier)}.combined-budget-table tr.budget-origin-hok td{background:color-mix(in srgb,var(--green-soft) 22%,transparent)}.combined-budget-table tr.budget-origin-supplier td{background:color-mix(in srgb,var(--supplier-soft) 34%,transparent)}.combined-budget-table tr:hover td{background:var(--surface)}.combined-budget-table tr.archived td{background:color-mix(in srgb,var(--paper-deep) 58%,transparent)}.budget-origin-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--green);border-radius:999px;color:var(--green);font-size:10px;font-weight:750;letter-spacing:.02em;padding:3px 7px;white-space:nowrap}.budget-origin-badge.origin-supplier{border-color:var(--supplier);color:var(--supplier)}.budget-cell-secondary{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:500;line-height:1.35;white-space:normal}.budget-cell-secondary.validity-vencida{color:var(--red);font-weight:700}.status-oferta-recibida{border-color:var(--blue);color:var(--blue)}.status-oferta-seleccionada{border-color:var(--green);color:var(--green)}.status-oferta-descartada{border-color:var(--line-strong,var(--line));color:var(--muted)}.supplier-quote-popover{position:fixed;top:max(16px,3vh);right:auto;left:50%;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - max(32px, 6vh));margin-top:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;transform:translateX(-50%)}.supplier-quote-form{gap:14px}.supplier-quote-form .external-document-grid{align-items:start}.supplier-quote-scope-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0}.supplier-quote-scope-fieldset legend{margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.supplier-quote-scope-fieldset label{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.supplier-quote-scope-fieldset label:has(input:checked){border-color:var(--supplier);background:var(--supplier-soft)}.supplier-quote-scope-fieldset input[type=radio]{width:auto;min-height:auto;margin-top:3px}.supplier-quote-scope-fieldset label small,.supplier-quote-scope-fieldset label>span{display:grid;gap:3px}.supplier-quote-project-context,.supplier-quote-scope-fieldset label small{color:var(--muted)}.supplier-quote-form .external-document-grid>label{width:100%;align-self:start}.supplier-quote-form input,.supplier-quote-form select{width:100%;min-height:46px}.supplier-quote-form>button[type=submit]{min-width:260px;min-height:46px;justify-self:end}.supplier-quote-supplier-field>small{color:var(--muted);font-size:10px}.supplier-quotes-dashboard{display:grid;gap:18px}.supplier-quotes-table td{vertical-align:top}.supplier-quote-actions{position:relative}.supplier-quote-actions>summary{min-width:38px;cursor:pointer;color:var(--supplier);font-size:17px;letter-spacing:2px;list-style:none;padding:5px}.supplier-quote-action-panel{display:grid;gap:8px;min-width:210px;padding:10px 0;text-align:left}.supplier-quote-action-panel button{min-height:34px;padding:6px 10px}.supplier-quote-action-panel form,.supplier-quote-action-panel label{display:grid;gap:6px}.supplier-quote-action-panel label>span{color:var(--muted);font-size:10px;text-transform:uppercase}.budget-table td:last-child,.budget-table th:last-child{width:72px;text-align:center}.budget-table .document-actions{flex-wrap:nowrap;gap:2px}.budget-table .document-actions button{min-height:30px;border:0;background:transparent;color:var(--green);padding:4px 6px;text-decoration:underline;text-underline-offset:3px}.budget-state-reason{display:block;max-width:220px;margin-top:5px;color:var(--muted);white-space:normal}.budget-actions-trigger{min-width:38px;min-height:34px;border-color:transparent;background:transparent;color:var(--green);font-size:18px;letter-spacing:2px;padding:4px 8px}.budget-actions-trigger:hover{border-color:var(--line);background:var(--surface)}.budget-actions-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;overflow:visible;border:0;background:transparent;padding:0}.budget-actions-dialog::backdrop{background:rgb(24 31 27/22%)}.budget-actions-backdrop{position:fixed;z-index:0;inset:0;width:100vw;height:100dvh;border:0;border-radius:0;background:transparent;padding:0}.budget-actions-backdrop:hover{background:transparent;transform:none}.budget-actions-drawer{position:fixed;z-index:1;inset:0 0 0 auto;width:min(460px,100vw);max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-left:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:-18px 0 45px rgb(24 31 27/18%);padding:0}.budget-actions-drawer-content{min-height:100%;overflow-y:auto;padding:28px}.budget-actions-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:22px}.budget-actions-drawer-header h2{margin:4px 0 6px}.budget-actions-drawer-header p{margin-bottom:0}.budget-actions-drawer-close{min-width:38px;min-height:38px;border-color:transparent;background:transparent;color:var(--ink);font-size:27px;line-height:1;padding:3px}.budget-drawer-sections{display:grid}.budget-drawer-section{display:grid;gap:18px;border-bottom:1px solid var(--line);padding:25px 0}.budget-drawer-section h3{margin:3px 0 0;font-size:18px}.budget-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.budget-quick-actions form{margin:0}.budget-decision-options{display:grid;gap:0;border:1px solid var(--line);background:var(--surface);padding:0}.budget-decision-options label{display:flex;align-items:center;gap:10px;min-height:46px;border-bottom:1px solid var(--line);padding:10px 13px}.budget-decision-options label:last-child{border-bottom:0}.budget-decision-options input{width:auto;margin:0}.budget-decision-form{display:none}.budget-drawer-section:has(input[value=accepted]:checked) .budget-decision-form-accepted,.budget-drawer-section:has(input[value=rejected]:checked) .budget-decision-form-rejected{display:block}.budget-drawer-section:has(input[value=accepted]:checked) .budget-decision-help,.budget-drawer-section:has(input[value=rejected]:checked) .budget-decision-help{display:none}.budget-decision-help,.budget-decision-summary{margin:0;padding:12px 14px;background:var(--surface);font-size:12px}.budget-decision-summary{border-left:2px solid var(--green);color:var(--green)}.budget-drawer-section .stack-form{gap:14px;margin:0;border:0;background:var(--surface);padding:18px}.budget-reject-form button{border-color:var(--amber);background:transparent;color:var(--ink)}.state-reason{border-left:2px solid var(--amber);color:var(--muted);font-size:12px;padding-left:10px}.action-disclosure{width:100%;border:1px solid var(--line);padding:9px}.compact-action{margin-top:12px}.document-upload-form{border:1px solid var(--line);background:var(--surface);margin-bottom:30px;padding:20px}.document-upload-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.document-upload-fields label{display:grid;gap:7px}.document-upload-fields label>span{color:var(--muted);font-size:10px;letter-spacing:.05em;text-transform:uppercase}.document-upload-fields input[type=file]{min-height:44px;padding:8px}.document-upload-footer{display:flex;align-items:center;gap:15px;margin-top:15px}.document-upload-footer .form-feedback{margin:0}.document-list{display:grid}.document-list article{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:15px;border-top:1px solid var(--line);padding:16px 0}.document-list h3,.document-list p{margin:0}.document-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:3px}.document-name-editor,.document-name-editor form,.document-version-editor,.document-version-editor form{display:flex;min-width:0;align-items:center;gap:7px}.document-name-editor h3{overflow-wrap:anywhere}.document-rename-button{width:28px;min-width:28px;min-height:28px;border:0;border-radius:50%;background:color-mix(in srgb,var(--paper-deep) 72%,white);color:var(--ink);padding:6px}.document-rename-button:hover:not(:disabled){background:var(--paper-deep);color:var(--ink)}.document-rename-button svg{display:block;width:16px;height:16px;fill:currentcolor}.document-version-button{width:24px;min-width:24px;min-height:24px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);padding:2px;font:700 10px/1 DM Mono,monospace}.document-version-button:hover:not(:disabled){border-color:var(--green);background:var(--green-soft);color:var(--green)}.document-version-delete{border-color:var(--red);background:transparent;color:var(--red)}.document-version-delete:hover:not(:disabled){background:var(--red-soft);color:var(--red)}.document-name-editor form,.document-version-editor form{flex-wrap:wrap}.document-name-editor form input,.document-version-editor form input{min-height:36px;padding:6px 9px}.document-name-editor form input{width:min(420px,50vw)}.document-version-editor form input{width:130px}.document-name-editor form button,.document-version-editor form button{min-height:34px;padding:5px 10px;font-size:11px}.document-name-editor>small,.document-version-editor>small{color:var(--red)}.document-list code,.document-list p{color:var(--muted);font-size:11px}.document-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.document-actions>span{flex-basis:100%;color:var(--red);font-size:11px;max-width:260px}.document-empty{border-top:1px solid var(--line);padding-top:18px}.pdf-dialog{width:min(1180px,calc(100vw - 32px));height:min(900px,calc(100vh - 32px));max-width:none;max-height:none;border:0;background:var(--surface);padding:0;box-shadow:var(--shadow)}.pdf-dialog::backdrop{background:rgb(15 25 20/72%)}.image-viewer-dialog{grid-template-rows:auto minmax(0,1fr)}.image-viewer-dialog[open]{display:grid}.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:12px 14px}.image-viewer-stage{position:relative;min-height:0;background:var(--paper-deep)}.image-viewer-stage img{object-fit:contain;padding:18px}.pdf-viewer-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;background:var(--surface)}.pdf-viewer-shell header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:12px 16px}.pdf-viewer-shell header>div{display:flex;flex-wrap:wrap;gap:8px}.pdf-preview{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;background:var(--paper-deep)}.pdf-page-controls{display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid var(--line);background:var(--surface);padding:8px 12px}.pdf-page-controls button{display:grid;width:34px;min-width:34px;min-height:34px;place-items:center;padding:0;font-size:21px;line-height:1}.pdf-page-controls button>span{min-width:0;color:inherit;font-size:inherit;line-height:1}.pdf-control-status{min-width:58px;color:var(--muted);font:11px/1 DM Mono,monospace;text-align:center}.pdf-control-divider{width:1px;height:20px;background:var(--line-strong)}.pdf-canvas-stage{position:relative;overflow:auto;min-height:0;padding:24px;text-align:center}.pdf-canvas-stage canvas{display:block;max-width:none;margin:0 auto;background:white;box-shadow:var(--shadow)}.pdf-canvas-stage p{position:absolute;z-index:1;top:50%;left:50%;margin:0;transform:translate(-50%,-50%);color:var(--muted)}.pdf-fallback{margin:0;border-top:1px solid var(--line);color:var(--muted);font-size:11px;padding:8px 16px;text-align:center}.document-icon{display:grid;width:44px;height:54px;place-items:center;padding:4px;background:var(--green-soft);color:var(--green);font-family:DM Mono,monospace;font-size:9px;line-height:1.15;overflow-wrap:anywhere;text-align:center}.document-icon-plano{background:var(--blue-soft);color:var(--blue)}.document-icon-render{background:var(--amber-soft);color:var(--amber)}.timeline{max-width:900px;list-style:none;margin:0;padding:0}.timeline li{position:relative;display:grid;grid-template-columns:145px 1fr;gap:35px;border-left:1px solid var(--line);margin-left:6px;padding:0 0 34px 28px}.timeline-dot{position:absolute;left:-5px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--green)}.timeline time{color:var(--muted);font-size:10px}.timeline h3{margin-bottom:3px;text-transform:lowercase}.timeline p{color:var(--muted);font-size:12px}.timeline pre{max-width:620px;overflow-x:auto;background:var(--paper-deep);padding:12px}.centered-message,.page-loading{display:grid;min-height:60vh;place-items:center;align-content:center;text-align:center}.centered-message p{color:var(--muted);max-width:500px}.loading-mark{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.contact-page-header .lede{max-width:760px}.contact-directory{overflow:hidden;border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface)}.contact-directory-tabs{display:flex;gap:0;padding:14px 14px 0;border-bottom:1px solid var(--line)}.contact-directory-tabs a{min-width:100px;border:1px solid var(--line);border-bottom:0;background:var(--paper);color:var(--muted);font-size:13px;font-weight:700;padding:10px 18px;text-align:center;text-decoration:none}.contact-directory-tabs a+a{border-left:0}.contact-directory-tabs a.active{background:var(--surface);color:var(--green);box-shadow:inset 0 -2px var(--green)}.contact-directory-toolbar{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.contact-directory-toolbar label{flex:0 1 190px}.contact-directory-toolbar .contact-search-field{min-width:260px;flex:1 1 420px}.contact-directory-toolbar .contact-archived-filter{min-height:42px;flex:0 0 auto;align-items:center;white-space:nowrap}.contact-directory-toolbar .contact-archived-filter input{min-height:auto}.contact-table-scroll{width:100%;overflow-x:auto}.contact-table{width:100%;min-width:1240px;border-collapse:collapse;font-size:13px}.contact-table td,.contact-table th{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.contact-table thead th{background:color-mix(in srgb,var(--paper-deep) 64%,var(--surface));color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.025em;white-space:nowrap}.contact-table tbody tr{position:relative;transition:background .12s ease}.contact-table tbody tr:hover{background:color-mix(in srgb,var(--green-soft) 32%,transparent)}.contact-table td small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.contact-row-link{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.contact-row-link:after{position:absolute;inset:0;content:""}.contact-row-link:focus-visible:after{outline:2px solid var(--green);outline-offset:-3px}.contact-role-chips,.contact-tags{display:flex;flex-wrap:wrap;gap:5px}.contact-role,.contact-tags>span{display:inline-flex;min-height:24px;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-size:10px;font-weight:700;padding:3px 9px;white-space:nowrap}.contact-role-cliente{border-color:color-mix(in srgb,var(--green) 30%,var(--line));background:var(--green-soft);color:var(--green)}.contact-role-proveedor{border-color:color-mix(in srgb,var(--amber) 30%,var(--line));background:var(--amber-soft);color:var(--amber)}.contact-role-colaborador,.contact-role-trabajador{border-color:color-mix(in srgb,var(--blue) 30%,var(--line));background:var(--blue-soft);color:var(--blue)}.contact-role-influencer{border-color:color-mix(in srgb,var(--red) 24%,var(--line));background:var(--red-soft);color:var(--red)}.contact-role-chips-table,.contact-tags-table{max-width:260px}.contact-table-empty{height:260px;text-align:center!important}.contact-table-empty a,.contact-table-empty span,.contact-table-empty strong{display:block}.contact-table-empty span{margin:5px 0 14px;color:var(--muted)}.contact-table-empty a{color:var(--green);font-weight:700}.contact-directory-footer{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;color:var(--muted);font:11px/1.4 DM Mono,monospace}.contact-detail-overlay{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;overflow:visible;border:0;background:transparent;color:var(--ink);padding:0}.contact-detail-overlay[open]{display:grid;grid-template-columns:minmax(0,1fr) min(780px,calc(100vw - 48px))}.contact-detail-overlay::backdrop{background:transparent}.contact-detail-backdrop{z-index:0;grid-column:1/-1;grid-row:1;background:rgb(20 24 20/.43);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.contact-detail-dialog{position:relative;z-index:1;grid-column:2;grid-row:1;width:100%;height:100dvh;overflow-y:auto;border:0;border-left:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:-24px 0 70px rgb(20 24 20/.16);outline:0;overscroll-behavior:contain}.contact-detail-drawer{min-height:100%;background:var(--paper)}.contact-drawer-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:start;padding:28px 30px;border-bottom:1px solid var(--line);background:var(--surface)}.contact-drawer-header-without-avatar{grid-template-columns:minmax(0,1fr) auto}.contact-drawer-avatar{display:flex;width:58px;height:58px;align-items:center;justify-content:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:17px;font-weight:800}.contact-drawer-heading h2{overflow:hidden;margin:2px 0 3px;font-size:clamp(24px,4vw,34px);text-overflow:ellipsis;white-space:nowrap}.contact-drawer-heading>p:not(.eyebrow){margin-bottom:9px;color:var(--muted)}.contact-drawer-close{display:inline-flex;width:42px;min-height:42px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--muted);font-size:25px;padding:0;text-decoration:none}.contact-quick-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--surface)}.contact-quick-action{display:grid;min-height:105px;place-items:center;align-content:center;gap:7px;border-right:1px solid var(--line);color:var(--ink);font-size:12px;text-decoration:none}.contact-quick-action:last-child{border-right:0}.contact-quick-action>span{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:19px}.contact-quick-action:hover{background:color-mix(in srgb,var(--green-soft) 32%,transparent)}.contact-quick-action.disabled,.contact-quick-action.disabled>span{color:color-mix(in srgb,var(--muted) 55%,transparent)}.contact-quick-action.disabled>span{background:var(--paper-deep)}.contact-drawer-section{padding:28px 30px;border-bottom:1px solid var(--line)}.contact-drawer-section h3{margin:2px 0 18px;font-size:21px}.contact-drawer-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.contact-information-list{display:grid;gap:0;margin:0;border:1px solid var(--line);background:var(--surface)}.contact-information-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:13px 16px;border-bottom:1px solid var(--line)}.contact-information-list>div:last-child{border-bottom:0}.contact-information-list dt{color:var(--muted)}.contact-information-list dd{overflow-wrap:anywhere;font-weight:650;margin:0;text-align:right}.contact-information-list dd input{width:100%;min-height:34px;border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line));background:color-mix(in srgb,var(--green-soft) 35%,var(--surface));padding:6px 9px;text-align:right}.contact-information-list dd input::placeholder{color:var(--green);opacity:.8}.contact-information-list dd input:focus{border-style:solid;border-color:var(--green);outline:2px solid color-mix(in srgb,var(--green) 18%,transparent);outline-offset:1px}.contact-inline-empty-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px}.contact-inline-empty-actions .form-feedback{flex:1 1 100%}.contact-inline-empty-actions button{min-height:36px;padding:7px 12px}.contact-detail-tags,.contact-shared-note{display:grid;gap:8px;margin-top:18px}.contact-detail-tags>span,.contact-shared-note>span{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.contact-shared-note p{margin:0;border-left:3px solid var(--sand);background:var(--surface);padding:13px 15px;white-space:pre-wrap}.contact-create-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.contact-create-shortcuts a{display:flex;min-height:52px;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--green);font-size:12px;font-weight:700;text-align:center;text-decoration:none}.contact-create-shortcuts a:hover{border-color:var(--green)}.contact-create-shortcuts .muted{grid-column:1/-1}.contact-company-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.contact-company-list li{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);background:var(--surface);padding:13px 15px}.contact-company-list li span{color:var(--muted);font-size:11px}.contact-edit-section details>summary{color:var(--green);cursor:pointer;font-size:15px;font-weight:750}.contact-edit-form-shell{margin-top:20px;border-top:1px solid var(--line);padding-top:4px}.contact-created-at{margin:22px 0 0;color:var(--muted);font-size:11px}.contact-form-backlink{margin:-18px 0 20px}.contact-form-backlink a{color:var(--muted);font-size:12px;text-underline-offset:3px}.contact-create-panel{max-width:1080px}.contact-data-form fieldset:last-of-type{border-bottom:0}.contact-tag-field{display:grid;gap:7px}.contact-tag-field>label{color:var(--ink);font-size:12px;font-weight:700}.contact-tag-editor{display:flex;min-height:46px;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);padding:6px 10px}.contact-tag-editor:focus-within{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.contact-tag-editor>input:not([type=hidden]){min-width:150px;flex:1 1 170px;border:0;background:transparent;padding:5px 2px;box-shadow:none}.contact-tag-editor-chip{display:inline-flex;min-height:30px;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--green) 32%,var(--line));border-radius:999px;background:var(--green-soft);color:#314639;font-size:12px;font-weight:700;line-height:1.2;padding:4px 6px 4px 11px}.contact-tag-editor-chip button{display:inline-grid;width:18px;min-width:18px;height:18px;min-height:18px;place-items:center;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font:700 15px/1 Arial,sans-serif;padding:0}.contact-tag-editor-chip button:hover:not(:disabled){background:color-mix(in srgb,var(--green) 15%,transparent);transform:none}.contact-tag-editor-chip button:focus-visible{outline-offset:1px}.contact-role-fieldset{display:block!important}.contact-role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-role-options label{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;padding:13px}.contact-role-options label:has(input:checked){border-color:var(--green);background:color-mix(in srgb,var(--green-soft) 35%,var(--surface))}.contact-role-options input{width:auto;margin-top:3px}.contact-role-options label>span{display:grid;gap:2px}.contact-role-options small{color:var(--muted);font-size:10px;font-weight:400}.contact-role-fieldset>.field-hint{margin-top:10px}.new-invoice-sheet{overflow:hidden;border:1px solid var(--line);background:var(--surface)}.new-invoice-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:28px 30px;border-bottom:1px solid var(--line)}.new-invoice-readonly-field>span{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:6px}.new-invoice-readonly-field strong{display:flex;min-height:43px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--muted);font-size:13px;font-weight:500;padding:11px 12px}.new-invoice-lines{padding:30px}.new-invoice-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}.new-invoice-footer>div{min-width:0;padding:28px 30px}.new-invoice-footer>div+div{border-left:1px solid var(--line)}.new-invoice-footer h2{margin:5px 0 8px;font-size:22px}.new-invoice-submit{display:grid;align-content:center;justify-items:end;gap:12px;text-align:right}.new-invoice-submit p{max-width:460px;margin:0}.new-invoice-submit .form-feedback{width:100%}@media (max-width:1050px){.project-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-workspace-grid{grid-template-columns:1fr}.invoice-workspace-viewer{min-height:680px}.invoice-workspace-sidebar{border-top:1px solid var(--line);border-left:0}.invoice-line-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-directory-toolbar,.invoice-dashboard-toolbar{flex-wrap:wrap}.contact-directory-toolbar .contact-search-field{flex-basis:100%}.new-invoice-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-search-filter{order:-1;flex-basis:calc(100% - 200px)}}@media (max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:220px;padding:28px}.auth-brand-line{font-size:30px;margin-bottom:0}.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;display:grid;grid-template-columns:1fr auto;align-items:center;border-right:0;border-bottom:1px solid var(--line);padding:17px 20px}.search-trigger{grid-column:1/-1;grid-row:2;margin-top:14px}.main-nav{display:flex;grid-column:1/-1;grid-row:3;margin-top:8px}.sidebar-user{display:block;grid-column:2;grid-row:1;margin:0}.sidebar-user .avatar,.sidebar-user>div{display:none}.sidebar-user form{grid-column:auto}.main-content{padding:30px 20px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:28px}.page-header .button{width:100%}.section-tabs.project-menu{display:flex;gap:8px;overflow-x:auto;margin-inline:-20px;padding-inline:20px;scrollbar-width:none}.section-tabs.project-menu::-webkit-scrollbar{display:none}.section-tabs.project-menu a{min-width:max-content;min-height:42px;padding:8px 13px}.billing-concepts-heading,.billing-config-submit,.filter-bar,.invoice-page-header{align-items:stretch;flex-direction:column}.invoice-page-header{margin-bottom:22px}.invoice-header-actions>*{flex:1 1}.contact-directory-toolbar,.invoice-dashboard-toolbar{align-items:stretch;flex-direction:column}.contact-directory-toolbar .contact-search-field,.contact-directory-toolbar label{width:100%;min-width:0;flex:1 1 auto}.contact-directory-tabs{padding-inline:10px}.contact-directory-tabs a{min-width:0;flex:1 1;padding-inline:8px}.contact-detail-overlay{grid-template-columns:1fr}.contact-detail-dialog{grid-column:1;width:100vw}.contact-drawer-header,.contact-drawer-section{padding:22px 18px}.contact-drawer-header{grid-template-columns:auto minmax(0,1fr) auto;gap:12px}.contact-drawer-header-without-avatar{grid-template-columns:minmax(0,1fr) auto}.contact-drawer-avatar{width:44px;height:44px;font-size:13px}.contact-drawer-heading h2{font-size:21px}.contact-quick-actions{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}.contact-quick-action{min-height:88px;font-size:10px}.contact-business-summary,.contact-create-shortcuts,.contact-role-options{grid-template-columns:1fr}.contact-information-list>div{grid-template-columns:90px minmax(0,1fr)}.invoice-search-filter,.invoice-state-filter{order:0;width:100%;flex:1 1 auto}.invoice-period-filter{align-items:flex-end}.invoice-period-filter label{width:auto;flex:1 1}.invoice-pdf-filter{min-height:36px}.invoice-clear-filters{padding:7px 0;text-align:center}.invoice-workspace-toolbar{grid-template-columns:auto minmax(0,1fr)}.invoice-workspace-badges{grid-column:1/-1;justify-content:flex-start}.invoice-workspace-viewer>header{align-items:flex-start;flex-direction:column}.invoice-workspace-canvas-stage{padding-inline:18px}.invoice-detail-grid{grid-template-columns:1fr}.invoice-project-row{grid-template-columns:1fr auto}.invoice-project-row>.status-pill,.invoice-project-row>span:last-child{justify-self:start}.invoice-lines-table{font-size:11px}.invoice-editor-heading,.invoice-line-topbar{align-items:flex-start;flex-direction:column}.invoice-line-actions{flex-wrap:wrap}.invoice-line-fields,.invoice-payment-fields,.new-invoice-footer,.new-invoice-meta{grid-template-columns:1fr}.new-invoice-footer>div,.new-invoice-lines,.new-invoice-meta{padding:20px}.new-invoice-footer>div+div{border-top:1px solid var(--line);border-left:0}.new-invoice-submit{justify-items:stretch;text-align:left}.billing-config-section .span-2,.invoice-payment-fields .span-2{grid-column:auto}.billing-config-section .form-grid{grid-template-columns:1fr}.invoice-line-result{align-items:flex-start;text-align:left}.invoice-pdf-form{grid-template-columns:1fr}.invoice-pdf-form .form-feedback{grid-column:auto}.client-select-row,.data-form,.data-form fieldset,.detail-columns,.project-metric-grid{grid-template-columns:1fr}.project-chronology-card{padding:28px 20px}.project-chronology-card>header,.project-delivery-prompt{align-items:flex-start;flex-direction:column}.project-progress{margin-top:92px}.project-progress-today>span{width:110px;white-space:normal}.project-expense-timeline li{grid-template-columns:1fr auto;gap:5px 14px}.project-expense-timeline li time{grid-column:1/-1}.project-metric-card{min-height:132px}.project-overview{padding-top:28px}.client-select-row .secondary-button{margin-top:0}.budget-detail-danger-action .action-form{grid-template-columns:1fr}.budget-detail-danger-action .action-form button{justify-self:start}.data-form .span-2,.data-form fieldset,.data-form>.form-feedback,.data-form>button,.detail-columns>:nth-child(3){grid-column:auto}.project-summary a{width:100%;margin-left:0}.title-with-action{display:block}.section-header-actions{justify-content:flex-start;margin-top:18px}.popover-panel{right:auto;left:0}.supplier-quote-popover{top:10px;right:10px;left:10px;width:auto;max-height:calc(100dvh - 20px);transform:none}.supplier-quote-form>button[type=submit]{width:100%;min-width:0}.document-upload-fields,.external-document-grid{grid-template-columns:1fr}.document-list article{grid-template-columns:52px 1fr}.document-list code{display:none}.document-actions{grid-column:2;justify-content:flex-start}.pdf-viewer-shell header{align-items:flex-start;flex-direction:column}.timeline li{grid-template-columns:1fr;gap:5px}.contact-line{grid-template-columns:1fr auto}.contact-line>span:last-child{grid-column:1/-1;text-align:left}}@media (max-width:520px){.invoice-header-actions{flex-direction:column}.invoice-period-filter{flex-wrap:wrap}.invoice-period-filter>span{display:none}.invoice-period-filter label{flex-basis:100%}.invoice-lines-table td:nth-child(2),.invoice-lines-table td:nth-child(3),.invoice-lines-table td:nth-child(4),.invoice-lines-table td:nth-child(5),.invoice-lines-table th:nth-child(2),.invoice-lines-table th:nth-child(3),.invoice-lines-table th:nth-child(4),.invoice-lines-table th:nth-child(5){display:none}.budget-meta,.contact-card dl{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.main-content:has(.purchase-review-workspace){width:min(1760px,100%)}.purchase-detail-header,.purchase-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:28px}.purchase-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.purchase-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:22px}.purchase-tabs a{padding:10px 14px;text-decoration:none;white-space:nowrap}.purchase-tabs a[aria-current=page]{border-bottom:2px solid var(--green);font-weight:700}.purchase-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);background:var(--line);margin-bottom:20px}.purchase-metrics>div{display:grid;gap:4px;background:var(--surface);padding:18px}.purchase-metrics span{color:var(--muted);font-size:12px}.purchase-metrics strong{font-size:23px;font-weight:500}.purchase-dashboard{display:grid;gap:20px}.purchase-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;border:1px solid var(--line);background:var(--surface);padding:16px}.purchase-filter-actions{display:flex;align-items:flex-end;gap:12px}.purchase-table-shell{overflow-x:auto;border:1px solid var(--line);background:var(--surface)}.purchase-table{width:100%;border-collapse:collapse;min-width:980px}.purchase-table td,.purchase-table th{border-bottom:1px solid var(--line);padding:14px;text-align:left;vertical-align:top}.purchase-table thead th{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.purchase-table tbody td:first-child,.purchase-table tbody th{font-weight:400}.purchase-table td>small,.purchase-table td>span+small,.purchase-table td>strong+small{display:block;color:var(--muted);margin-top:3px}.purchase-state-procesando{background:var(--blue-soft);color:var(--blue)}.purchase-state-a_revisar{background:var(--amber-soft);color:var(--amber)}.purchase-state-incidencia{background:var(--red-soft);color:var(--red)}.purchase-state-confirmado{background:var(--green-soft);color:var(--green)}.purchase-state-descartado{background:var(--paper-deep);color:var(--muted)}.purchase-backlink{margin:-16px 0 24px}.purchase-drop-zone{display:grid;place-items:center;min-height:330px;border:2px dashed var(--line);background:var(--surface);padding:40px;text-align:center;transition:border-color .15s ease,background .15s ease}.purchase-drop-zone.is-dragging{border-color:var(--green);background:var(--green-soft)}.purchase-drop-zone h2{margin-bottom:8px}.purchase-upload-shell{display:grid;gap:24px}.purchase-upload-queue{overflow:hidden;border:1px solid var(--line);background:var(--surface)}.purchase-upload-queue>header{padding:16px 20px;border-bottom:1px solid var(--line)}.purchase-upload-queue>header h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.015em}.purchase-upload-queue ul{display:grid;margin:0;padding:0;list-style:none}.purchase-upload-queue li{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:24px;padding:18px 20px}.purchase-upload-queue li+li{border-top:1px solid var(--line)}.purchase-upload-file{min-width:0}.purchase-upload-file strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-upload-meta{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:2px;color:var(--muted);font-size:13px}.purchase-upload-meta small{font-size:inherit}.purchase-upload-status{border-radius:999px;background:var(--green-soft);padding:5px 10px;color:var(--green);font-size:11px;font-weight:700;white-space:nowrap}.purchase-upload-status.status-error{background:var(--red-soft);color:var(--red)}.purchase-upload-status.status-duplicado{background:var(--amber-soft);color:var(--amber)}.purchase-upload-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}.purchase-upload-open{min-height:36px;padding:7px 10px;color:var(--green);font-size:13px;font-weight:700;text-decoration:none}.purchase-upload-open:hover{background:var(--green-soft)}.purchase-upload-delete{display:inline-grid;width:36px;height:36px;place-items:center;border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));background:var(--red-soft);color:var(--red);cursor:pointer}.purchase-upload-delete:hover{border-color:var(--red);background:var(--red);color:var(--surface)}.purchase-upload-delete:focus-visible{outline:2px solid var(--red);outline-offset:2px}.purchase-upload-delete svg{width:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.purchase-detail-summary{display:flex;flex-wrap:wrap;align-items:center;gap:9px 22px;border-block:1px solid var(--line);padding:12px 0;margin-bottom:20px;color:var(--muted)}.purchase-detail-summary strong{color:var(--ink);margin-left:auto;font-size:20px}.purchase-project-summary{display:flex;flex-wrap:wrap;gap:8px 18px;border:1px solid var(--line);background:var(--surface);padding:12px 15px;margin-bottom:16px}.purchase-project-summary strong{width:100%}.purchase-duplicate-warning{display:grid;gap:7px;border:1px solid var(--amber);background:var(--amber-soft);padding:14px;margin-bottom:16px}.purchase-duplicate-warning a{width:fit-content}.purchase-review-workspace{display:grid;width:100%;grid-template-columns:minmax(0,1fr) minmax(620px,680px);align-items:start;gap:20px}.purchase-image-viewer,.purchase-review-workspace .invoice-workspace-viewer{position:sticky;top:18px;min-height:calc(100vh - 36px);background:#30332f;color:white}.purchase-image-viewer{display:grid;grid-template-rows:auto 1fr}.purchase-image-viewer header,.purchase-review-workspace .invoice-workspace-viewer>header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px}.purchase-image-viewer header div{display:grid}.purchase-image-viewer header span{color:rgb(255 255 255/65%);font-size:11px}.purchase-image-viewer img{width:100%;max-height:calc(100vh - 100px);object-fit:contain;align-self:center}.purchase-review-side{display:grid;min-width:0;gap:16px}.purchase-review-panel{--review-green:#33513c;--review-ink:#1a1712;position:sticky;top:18px;overflow:auto;max-height:calc(100vh - 36px);border:1px solid #ddd7ca;border-radius:8px;background:#faf8f4;color:var(--review-ink);box-shadow:0 18px 48px rgb(26 23 18/10%);font-family:Inter,Helvetica Neue,Arial,sans-serif}.purchase-review-header{border-bottom:1px solid #e6e0d4;padding:24px 28px 20px}.purchase-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.purchase-review-heading h2{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em}.purchase-review-form legend,.purchase-review-heading .eyebrow{font-family:IBM Plex Mono,DM Mono,monospace;text-transform:uppercase}.extraction-caption{display:inline-flex;align-items:center;gap:7px;border:1px solid #dbe1d6;border-radius:999px;background:#eef1ec;padding:6px 11px;margin:14px 0 0;color:#5f5a50;font-size:12px}.extraction-caption>span,.extraction-tag>span{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:#4a7a55}.purchase-review-form{display:grid;width:100%;min-width:0;gap:0;padding:0 28px 24px}.purchase-review-form fieldset{display:grid;width:100%;min-width:0;gap:14px;border:0;padding:26px 0 0;margin:0}.purchase-review-form input,.purchase-review-form label,.purchase-review-form select{min-width:0}.purchase-review-form legend{padding:0;color:#8a8478;font-size:10px;font-weight:500;letter-spacing:.15em}.purchase-review-panel .review-field-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px;color:#3d3931;font-size:12px;font-weight:500}.extraction-tag{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;color:#4a7a55;font-size:10.5px;font-weight:500}.extraction-tag.is-edited{color:#5f5a50}.extraction-tag.is-edited>span{background:#8a8478}.purchase-archive-form input,.purchase-review-form input,.purchase-review-form select,.purchase-review-form textarea{border:1px solid #d8d2c6;border-radius:6px;background:#fff;color:var(--review-ink)}.purchase-archive-form input:focus,.purchase-review-form input:focus,.purchase-review-form select:focus,.purchase-review-form textarea:focus{border-color:var(--review-green)}.purchase-review-form input:disabled,.purchase-review-form select:disabled{background:#fff;color:#8a8478;opacity:1}.mono-input{font-family:IBM Plex Mono,DM Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total-input{font-weight:600}.purchase-amount-grid input{text-align:right}.form-grid{display:grid;gap:16px}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.purchase-project-allocations{display:grid;gap:10px;border:1px solid var(--line);padding:14px}.purchase-project-allocations>header{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}.purchase-project-allocations>header strong{color:var(--ink)}.purchase-project-allocation{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(130px,.7fr) 80px auto;align-items:end;gap:9px}.purchase-project-allocation output{display:grid;min-height:46px;place-items:center;align-self:end;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.purchase-allocation-total{border:1px solid #e2ddd2;border-radius:6px;background:#f1eee6;padding:9px 12px;font-weight:600}.purchase-currency-field{display:grid;gap:7px;max-width:300px;margin-bottom:14px}.purchase-tax-rows{display:grid;gap:10px}.purchase-tax-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.purchase-tax-row{display:grid;grid-template-columns:20px minmax(0,1.35fr) minmax(0,.65fr) repeat(3,minmax(0,.8fr)) auto;align-items:end;gap:8px;width:100%;min-width:0;border:1px solid var(--line);padding:10px}.tax-row-number{align-self:center;color:var(--muted)}.purchase-tax-row input,.purchase-tax-row select{min-width:0;padding:8px}.purchase-tax-row label>span{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.purchase-tax-row .text-button{min-height:38px;padding:8px 10px}.purchase-more-details{border:1px solid #e2ddd2;border-radius:6px;background:#f1eee6;margin-top:20px}.purchase-more-details summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;color:#5f5a50;cursor:pointer;list-style:none}.purchase-more-details summary::-webkit-details-marker{display:none}.purchase-more-details summary>span:first-child{display:flex;flex-wrap:wrap;gap:0 5px}.purchase-more-details summary strong{color:var(--review-ink);font-size:12.5px}.purchase-more-details summary small{font-size:12px}.purchase-more-details summary>span:last-child{color:#8a8478;font-size:12px;white-space:nowrap}.purchase-more-details summary>span:last-child:after{content:" ▾"}.purchase-more-details[open] summary>span:last-child:after{content:" ▴"}.purchase-more-details-body{display:grid;gap:14px;border-top:1px solid #e2ddd2;padding:15px}.purchase-review-form .form-message{display:grid;gap:5px;border:1px solid var(--red);border-radius:6px;background:var(--red-soft);padding:13px;margin-top:18px}.purchase-review-form .form-message ul{margin:0;padding-left:20px}.purchase-archive-form{padding:0 28px}.purchase-archive-form:empty{display:none}.purchase-archive-form p{margin:0 0 14px;color:var(--red);font-size:12px}.purchase-commit-bar{position:sticky;z-index:2;bottom:0;display:flex;align-items:center;gap:12px;border-top:1px solid #e0dacd;background:#faf8f4;box-shadow:0 -8px 24px rgb(26 23 18/6%);padding:16px 28px}.purchase-commit-bar>div{display:grid;flex:1 1}.purchase-commit-bar>div span{color:#8a8478;font-size:11px}.purchase-commit-bar>div strong{font-family:IBM Plex Mono,DM Mono,monospace;font-size:20px;font-weight:600}.purchase-commit-bar button{border-radius:6px}.purchase-commit-bar>button:last-child{border-color:var(--review-green);background:var(--review-green)}.purchase-commit-bar .secondary-button{border-color:#d4cfc4;color:#5f5a50}.purchase-processing-panel{min-height:300px}.purchase-discard-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px;border-top:1px solid var(--line);padding-top:16px}.purchase-discard-form p{grid-column:1/-1}.purchase-reprocess-action{display:flex;align-items:center;gap:12px}.purchase-extraction-history{border:1px solid var(--line);background:var(--surface);padding:13px}.purchase-extraction-history ol{display:grid;gap:8px;padding-left:22px}.purchase-extraction-history li small,.purchase-extraction-history li span{display:block;color:var(--muted)}.expense-category-manager{display:grid;grid-template-columns:minmax(260px,.35fr) minmax(500px,.65fr);gap:20px;align-items:start}.expense-category-create{display:grid;gap:12px}.expense-category-list ul{list-style:none;padding:0}.expense-category-list li{display:flex;align-items:end;gap:10px;border-top:1px solid var(--line);padding:12px 0}.expense-category-list li>form:first-child{display:grid;grid-template-columns:130px 1fr 90px auto;align-items:end;gap:10px;flex:1 1}.expense-category-list li.is-archived{opacity:.65}.reimbursement-manager{display:grid;gap:28px}.reimbursement-member{border:1px solid var(--line);background:var(--surface);margin-bottom:10px}.reimbursement-member>summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:17px}.reimbursement-member summary span{display:grid}.reimbursement-member summary small{color:var(--muted)}.reimbursement-member>form{display:grid;gap:16px;border-top:1px solid var(--line);padding:17px}.reimbursement-expenses>div{display:grid;grid-template-columns:minmax(230px,1fr) auto 180px;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:10px 0}.reimbursement-submit{display:flex;justify-content:flex-end;align-items:center;gap:18px}.reimbursement-history{overflow-x:auto}.reimbursement-history table{width:100%;border-collapse:collapse}.reimbursement-history td,.reimbursement-history th{border-bottom:1px solid var(--line);padding:10px;text-align:left}@media (max-width:1100px){.purchase-filters{grid-template-columns:repeat(3,minmax(130px,1fr))}.purchase-review-workspace{width:100%;grid-template-columns:1fr}.purchase-image-viewer,.purchase-review-workspace .invoice-workspace-viewer{position:relative;top:0;min-height:600px}.purchase-review-panel{position:relative;top:0;max-height:none}.purchase-project-allocation{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-project-allocation .text-button,.purchase-project-allocation output{grid-column:auto}.purchase-tax-row{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-tax-row .tax-row-number,.purchase-tax-row .text-button{grid-column:1/-1}.expense-category-manager{grid-template-columns:1fr}}@media (max-width:700px){.purchase-detail-header,.purchase-page-header{display:grid}.purchase-header-actions{justify-content:flex-start}.form-grid.three-columns,.form-grid.two-columns,.purchase-filters,.purchase-metrics,.purchase-upload-queue li,.reimbursement-expenses>div{grid-template-columns:1fr}.purchase-upload-queue li{grid-template-columns:minmax(0,1fr) auto;gap:12px}.purchase-upload-file{grid-column:1/-1}.purchase-upload-actions{grid-column:2}.purchase-project-allocation,.purchase-project-allocations>header{display:grid;grid-template-columns:minmax(0,1fr)}.purchase-project-allocation .text-button,.purchase-project-allocation output{grid-column:1}.purchase-tax-row{grid-template-columns:minmax(0,1fr)}.purchase-tax-row .tax-row-number,.purchase-tax-row .text-button{grid-column:1}.purchase-review-header{padding:20px}.purchase-review-form{padding-inline:20px}.purchase-commit-bar{flex-wrap:wrap;padding:14px 20px}.purchase-commit-bar>div{flex-basis:100%}.purchase-commit-bar button{flex:1 1}.expense-category-list li,.expense-category-list li>form:first-child{display:grid;grid-template-columns:1fr}}.purchase-breakdown{border:1px solid var(--line);background:var(--surface);margin-bottom:20px;padding:14px 17px}.purchase-breakdown>summary{cursor:pointer;font-weight:700}.purchase-breakdown>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding-top:16px}.purchase-breakdown h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em}.purchase-breakdown dl>div{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:6px 0}.purchase-breakdown dd{margin:0;font-weight:600}@media (max-width:900px){.purchase-breakdown>div{grid-template-columns:1fr 1fr}}.purchase-supplier-field{display:grid;gap:8px}.purchase-supplier-results{display:grid;max-height:230px;overflow-y:auto;border:1px solid var(--line);background:var(--surface)}.purchase-supplier-results:empty{display:none}.purchase-supplier-results>button{display:flex;min-height:0;justify-content:space-between;gap:16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:9px 11px;text-align:left}.purchase-supplier-results>button:hover{background:var(--paper-deep);transform:none}.purchase-supplier-results>button small{color:var(--muted)}.purchase-supplier-results>p{color:var(--muted);margin:0;padding:10px 11px}.purchase-supplier-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:3px solid var(--green);background:var(--green-soft);padding:9px 11px}.purchase-supplier-selected .link-button{color:var(--green)}.purchase-create-supplier{width:fit-content}.purchase-supplier-drawer-header{position:sticky;top:0;z-index:1;background:var(--surface)}.purchase-supplier-drawer-form{padding-top:20px}.purchase-supplier-drawer-form .contact-data-form,.purchase-supplier-drawer-form .contact-data-form fieldset,.purchase-supplier-drawer-form .contact-role-fieldset{grid-template-columns:1fr}.purchase-supplier-drawer-form .span-2{grid-column:1}.status-solicitud-nueva{border-color:var(--blue);color:var(--blue)}.status-solicitud-en_revision{border-color:var(--amber);color:var(--amber)}.status-solicitud-convertida{border-color:var(--green);color:var(--green)}.status-solicitud-descartada,.status-solicitud-spam{border-color:var(--line-strong,var(--line));color:var(--muted)}.enquiry-description{max-width:60ch;white-space:pre-wrap}.enquiry-match-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.enquiry-match-list small{display:block}.checkbox-field{display:flex;align-items:flex-start;gap:.6rem}.checkbox-field input{margin-top:.25rem;width:auto}