:root{--space-xs:0.25rem;--space-s:0.5rem;--space-m:0.75rem;--space-l:1rem;--space-xl:1.5rem;--touch-min:44px;--bp-sm:600px;--color-bg:#f5f6f8;--color-surface:#ffffff;--color-border:#e6e8ec;--color-border-strong:#cfd4da;--color-text:#14181f;--color-text-soft:#48515b;--color-text-muted:#6e7781;--color-ok-bg:#e8f5ec;--color-ok-fg:#1c7a3d;--color-ok-border:#b5dec3;--color-warn-bg:#fdf3dc;--color-warn-fg:#92600a;--color-warn-border:#ecd49a;--color-err-bg:#fdeeee;--color-err-fg:#b3261e;--color-err-border:#f0c2c0;--color-info-bg:#e9f1fb;--color-info-fg:#1d5cab;--color-info-border:#bfd6f0;--accent:#b3122b;--accent-hover:#971022;--accent-soft:#fbeef0;--accent-contrast:#ffffff;--focus-ring:0 0 0 3px rgba(179,18,43,0.28);--radius-s:7px;--radius-m:11px;--radius-l:15px;--shadow-s:0 1px 2px rgba(16,24,40,0.05),0 1px 1px rgba(16,24,40,0.03);--shadow-m:0 4px 12px rgba(16,24,40,0.08),0 1px 3px rgba(16,24,40,0.05);--shadow-l:0 12px 32px rgba(16,24,40,0.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1{font-size:1.5rem;font-weight:680;letter-spacing:-.015em}h2{font-size:1.12rem;font-weight:640;letter-spacing:-.01em}h3{font-size:.95rem;font-weight:620}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft);color:var(--accent-hover)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-s)}button{cursor:pointer;font:inherit;font-weight:550;padding:.575rem .95rem;min-height:var(--touch-min);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-s);box-shadow:var(--shadow-s);transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .05s ease}button:hover{background:#f7f8fa;border-color:var(--color-border-strong);box-shadow:var(--shadow-m)}button:active{transform:translateY(.5px)}button:focus-visible{box-shadow:var(--focus-ring)}button[disabled]{cursor:not-allowed;opacity:.5;box-shadow:none}input,select,textarea{font:inherit;font-size:16px;padding:.55rem .65rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-s);background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color .14s ease,box-shadow .14s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input,select{min-height:var(--touch-min)}input[type=checkbox],input[type=radio]{width:auto;min-height:0}input.input-error,input.input-error:focus{border-color:var(--color-err-fg);background:var(--color-err-bg);outline:none}.field-error{color:var(--color-err-fg);font-size:.85em;margin-top:.25rem}table{border-collapse:collapse;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m)}td,th{text-align:left;padding:0;border-bottom:1px solid var(--color-border)}th{background:#f9fafb;font-weight:640;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:.6rem;border-bottom:1px solid var(--color-border-strong)}td{color:var(--color-text-soft)}.table-plain td{padding:.5rem .6rem}tbody tr:nth-child(2n){background:#fcfcfd}tbody tr:last-child td{border-bottom:none}table tbody td a{display:block;padding:.5rem;color:inherit;text-decoration:none}table tbody tr.row-link:hover{background:var(--brand-secondary,#f0f5ff);cursor:pointer}.badge{display:inline-block;padding:.18rem .6rem;border-radius:999px;font-size:.8em;font-weight:500;white-space:nowrap;background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info-fg)}.badge-warn{background:var(--color-warn-bg);border-color:var(--color-warn-border);color:var(--color-warn-fg)}.badge-ok{background:var(--color-ok-bg);border-color:var(--color-ok-border);color:var(--color-ok-fg)}.badge-err{background:var(--color-err-bg);border-color:var(--color-err-border);color:var(--color-err-fg)}.error{color:var(--color-err-fg);background:var(--color-err-bg);border:1px solid var(--color-err-border);border-radius:var(--radius-s)}.error,.ok{padding:.6rem .75rem;margin:1rem 0}.ok{color:var(--color-ok-fg);background:var(--color-ok-bg);border:1px solid var(--color-ok-border);border-radius:var(--radius-s)}.notice{color:var(--color-info-fg);background:var(--color-info-bg);border:1px solid var(--color-info-border);padding:.6rem .75rem;border-radius:var(--radius-s);margin:1rem 0}.muted{color:var(--color-text-muted);font-size:.85em}.page-main{padding:var(--space-l);max-width:1000px;margin:0 auto}@media (min-width:600px){.page-main{padding:var(--space-xl) var(--space-xl)}}.page-main--wide{max-width:1200px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-m);box-shadow:var(--shadow-s)}.sortable-header-button{border:none;padding:0;margin:0;min-height:0;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:.35em}.sortable-header-button,.sortable-header-button:hover{background:none;box-shadow:none}.mobile-sort-control{display:none}@media (max-width:600px){.mobile-sort-control{display:flex;align-items:center;gap:var(--space-s);margin-bottom:var(--space-m)}.mobile-sort-control select{width:auto;flex:1 1 auto}}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:var(--space-m);gap:var(--space-m)}@media (max-width:600px){.form-grid-3{grid-template-columns:1fr}}.editor-row-materials{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;grid-gap:var(--space-s);gap:var(--space-s);align-items:end}.editor-row-materials--no-price{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr)) auto}.editor-row-expenses{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;grid-gap:var(--space-s);gap:var(--space-s);align-items:end}@media (max-width:600px){.editor-row-expenses,.editor-row-materials{grid-template-columns:1fr 1fr;gap:var(--space-m);padding:var(--space-m);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-m)}.editor-row-expenses input,.editor-row-expenses select,.editor-row-materials input,.editor-row-materials select{width:100%;min-height:44px;padding:.5rem;font-size:1rem}.editor-row-expenses>button,.editor-row-materials>button{grid-column:1/-1;justify-self:end;min-height:44px;min-width:7rem;padding:0 var(--space-l)}.editor-row-expenses>button:before,.editor-row-materials>button:before{content:"Eliminar "}.editor-row-materials>div:first-child,.editor-row-materials>label:nth-of-type(3),.editor-row-expenses>label:first-of-type,.editor-row-expenses>label:nth-of-type(2),.editor-row-expenses>label:nth-of-type(5){grid-column:1/-1}}.optional-section{margin-top:var(--space-m);border:1px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-surface)}.optional-section>summary{padding:var(--space-s) var(--space-m);cursor:pointer;min-height:var(--touch-min);display:flex;align-items:center;flex-wrap:wrap;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none}.optional-section>summary:hover{background:var(--color-bg)}.optional-section[open]>summary{border-bottom:1px solid var(--color-border)}.optional-section-body{padding:var(--space-m)}.btn-primary{font-weight:650;padding:.65rem 1.15rem;box-shadow:var(--shadow-m)}.btn-primary,.btn-primary:hover{background:var(--brand-primary,#1a1a1a);border-color:var(--brand-primary,#1a1a1a);color:#fff}.btn-primary:hover{filter:brightness(1.15);box-shadow:var(--shadow-l);transform:translateY(-1px)}.btn-danger{border-color:var(--color-err-border);background:var(--color-err-bg);color:var(--color-err-fg)}.btn-danger:hover{background:var(--color-err-fg);border-color:var(--color-err-fg);color:#fff}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:var(--space-l);z-index:1000}.modal-panel{background:var(--color-surface);border-radius:var(--radius-l);max-width:480px;width:100%;padding:var(--space-l);box-shadow:var(--shadow-l)}.modal-panel h2{margin:0 0 var(--space-s);font-size:1.1rem}.modal-panel p{margin:0 0 var(--space-l)}.modal-actions{display:flex;gap:var(--space-s);justify-content:flex-end;flex-wrap:wrap}.large-editor-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-s);background:rgba(0,0,0,.45)}.large-editor{display:flex;flex-direction:column;width:min(1100px,92vw);max-width:100%;max-height:92vh;max-height:92dvh;overflow:hidden;background:var(--color-surface);border-radius:var(--radius-l);box-shadow:var(--shadow-l)}.large-editor__header{flex:none;margin:0;padding:var(--space-l) var(--space-l) var(--space-s);font-size:1.15rem}.large-editor__body{flex:1 1 auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-gap:var(--space-m);gap:var(--space-m);padding:var(--space-s) var(--space-l) var(--space-l)}.large-editor__body>*{min-width:0}.large-editor__text{display:block;width:100%;height:55vh;height:55dvh;min-height:14rem;resize:vertical;line-height:1.6;white-space:pre-wrap}.large-editor__footer{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-s);padding:var(--space-m) var(--space-l);border-top:1px solid var(--color-border);background:var(--color-surface)}.large-editor__error{flex:1 1 100%;margin:0}.material-picker{position:relative;min-width:0}.material-picker>input{width:100%}.material-picker__list{position:absolute;top:100%;left:0;right:0;z-index:20;margin:.2rem 0 0;padding:.25rem;list-style:none;max-height:260px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-m);box-shadow:0 4px 12px rgba(0,0,0,.12)}.material-picker__note{padding:.3rem .4rem}.material-picker__heading{font-size:.8em}.material-picker__option{display:block;width:100%;min-height:var(--touch-min);padding:.35rem .4rem;border:none;border-radius:var(--radius-s,6px);background:transparent;color:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer}.material-picker__option.is-active,.material-picker__option:hover{background:var(--color-border)}.material-picker__create{font-weight:600;border-top:1px dashed var(--color-border-strong)}.material-picker__review{margin-left:.4rem;font-size:.75em}.material-pricing{display:flex;flex-direction:column;gap:.3rem;min-width:0}.material-pricing__add,.material-pricing__row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.material-pricing__add input{width:7rem}.quick-create-material{display:grid;grid-gap:var(--space-s);gap:var(--space-s)}.quick-create-material label{display:grid;grid-gap:.2rem;gap:.2rem}.quick-create-material__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));grid-gap:var(--space-s);gap:var(--space-s)}.quick-create-material__contract{display:grid;grid-gap:var(--space-s);gap:var(--space-s);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-s) var(--space-m)}.quick-create-material .quick-create-material__check{display:flex;align-items:center;gap:.5rem}.quick-create-material__conflict ul{list-style:none;margin:.4rem 0;padding:0;display:grid;grid-gap:.4rem;gap:.4rem}.quick-create-material__conflict li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.catalog-item-picker__tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.4rem}.catalog-item-picker__tabs .catalog-tab{min-height:var(--touch-min)}.catalog-item-picker__kind{font-size:.72em;margin-right:.2rem}.resources-editor{border:1px solid var(--color-border);border-radius:4px;padding:.5rem .75rem;min-width:0}.resources-editor__hint{margin:0 0 .5rem;font-size:.85em}.resources-editor__list{list-style:none;padding:0;margin:0 0 .6rem;display:flex;flex-direction:column;gap:.5rem}.resource-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:var(--space-s);gap:var(--space-s);align-items:end;padding:var(--space-s);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-m);min-width:0}.resource-row__identity{grid-column:1/-1;overflow-wrap:anywhere}.resource-row label{display:flex;flex-direction:column;gap:.15rem;min-width:0}.resource-row__qty-input{display:flex;align-items:center;gap:.35rem;min-width:0}.resource-row__qty-input input{flex:1 1 auto;min-width:0;width:100%}.resource-row__notes input{width:100%;min-width:0}.resource-row input,.resource-row__remove{min-height:var(--touch-min)}.resource-row__remove{min-width:var(--touch-min)}.resource-row__unit{white-space:nowrap}.resources-editor__picker>input{min-height:var(--touch-min)}@media (max-width:600px){.resource-row{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-m);padding:var(--space-m)}.resource-row__notes{grid-column:1/-1;grid-row:3}.resource-row input,.resources-editor__picker>input{font-size:1rem;padding:.5rem}}.commercial-catalog-line{display:grid;grid-gap:.5rem;gap:.5rem;max-width:640px}.einvoice-grid{display:grid;grid-gap:.25rem;gap:.25rem;margin:0}.einvoice-grid__row{display:grid;grid-template-columns:minmax(9rem,max-content) minmax(0,1fr);grid-gap:0 1rem;gap:0 1rem}.einvoice-grid__row dd{margin:0;overflow-wrap:anywhere}@media (max-width:600px){.einvoice-grid__row{grid-template-columns:minmax(0,1fr)}.large-editor-backdrop{padding:.5rem}.large-editor{width:100%;max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem)}.large-editor__header{padding:var(--space-m) var(--space-m) var(--space-s)}.large-editor__body{padding:var(--space-s) var(--space-m) var(--space-m)}.large-editor__text{height:50vh;height:50dvh;min-height:12rem}.large-editor__footer{padding:var(--space-s) var(--space-m)}.large-editor__footer>button{flex:1 1;min-height:var(--touch-min)}}.tv-list-table{display:block}.tv-list-cards{display:none;list-style:none;margin:0;padding:0}@media (max-width:600px){.tv-list-table{display:none}.tv-list-cards{display:flex;flex-direction:column;gap:var(--space-s)}}.tv-row-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);overflow:hidden}.tv-row-card-link{display:block;padding:var(--space-m);color:inherit;text-decoration:none}.tv-row-card-link:hover{background:var(--brand-secondary,#f0f5ff)}.tv-row-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.tv-row-card-body{display:flex;flex-direction:column;gap:.2rem;font-size:.95em}.tv-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);padding:var(--space-m);margin-bottom:var(--space-m)}@media (min-width:600px){.tv-section{padding:var(--space-l)}}.tv-section h2{margin:0 0 var(--space-m);font-size:1.05rem}.tv-measurement-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;grid-gap:var(--space-s);gap:var(--space-s);align-items:end;padding:var(--space-s) 0;border-bottom:1px solid var(--color-border)}.tv-measurement-row:last-child{border-bottom:0}@media (max-width:600px){.tv-measurement-row{grid-template-columns:1fr 1fr;gap:var(--space-m);padding:var(--space-m);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-m);margin-bottom:var(--space-s)}.tv-measurement-row>label:first-of-type{grid-column:1/-1}.tv-measurement-row>button{grid-column:1/-1;justify-self:end;min-height:44px;min-width:7rem}}.tv-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-s);gap:var(--space-s)}@media (min-width:600px){.tv-photo-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-m)}}.tv-photo-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-s);padding:var(--space-s);display:flex;flex-direction:column;gap:.25rem;font-size:.85em;word-break:break-word}.tv-photo-card-filename{font-weight:500}.tv-photo-card-actions{margin-top:auto;display:flex;gap:.25rem}.tv-photo-card-actions button{min-height:36px;padding:.3rem .5rem;font-size:.85em}.tv-status-actions{display:flex;gap:var(--space-s);flex-wrap:wrap}.tv-status-actions button{min-height:var(--touch-min)}.catalog-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border-strong);overflow-x:auto;-webkit-overflow-scrolling:touch}.catalog-tab{border:1px solid transparent;background:transparent;padding:var(--space-s) var(--space-m);margin-bottom:-1px;cursor:pointer;min-height:var(--touch-min);white-space:nowrap;font:inherit;color:inherit;border-radius:var(--radius-s) var(--radius-s) 0 0}.catalog-tab:hover{background:var(--brand-secondary,#f0f5ff);color:inherit}.catalog-tab-active{background:var(--color-surface);border-color:var(--color-border-strong);border-bottom-color:var(--color-surface);color:var(--accent);font-weight:600}.catalog-list-table{display:block}.catalog-list-cards{display:none;list-style:none;margin:0;padding:0}@media (max-width:600px){.catalog-list-table{display:none}.catalog-list-cards{display:flex;flex-direction:column;gap:var(--space-s)}}.catalog-row-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);padding:var(--space-m)}.catalog-row-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.catalog-row-card-body{display:flex;flex-direction:column;gap:.25rem;font-size:.95em}.catalog-row-card-actions{display:flex;gap:var(--space-s);margin-top:var(--space-s);flex-wrap:wrap}.catalog-row-card-actions button{flex:1 1 auto}.catalog-description-cell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-actions{display:flex;gap:.25rem;flex-wrap:wrap}.catalog-actions button{min-height:36px;padding:.3rem .6rem;font-size:.85em}.estimate-list-table{display:block}.estimate-list-cards{display:none;list-style:none;margin:0;padding:0}@media (max-width:600px){.estimate-list-table{display:none}.estimate-list-cards{display:flex;flex-direction:column;gap:var(--space-s)}}.estimate-row-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);overflow:hidden}.estimate-row-card-link{display:block;padding:var(--space-m);color:inherit;text-decoration:none}.estimate-row-card-link:hover{background:var(--brand-secondary,#f0f5ff)}.estimate-row-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.estimate-row-card-body{display:flex;flex-direction:column;gap:.25rem;font-size:.95em}.estimate-lines-table{display:block}.estimate-lines-cards{display:none;list-style:none;margin:0;padding:0}@media (max-width:600px){.estimate-lines-table{display:none}.estimate-lines-cards{display:flex;flex-direction:column;gap:var(--space-s)}}.estimate-line-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-s);padding:var(--space-m)}.estimate-line-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.estimate-line-card-body{display:flex;flex-direction:column;gap:.25rem;font-size:.95em}.estimate-line-card-actions{display:flex;gap:var(--space-s);margin-top:var(--space-s);flex-wrap:wrap}.estimate-line-card-actions button{flex:1 1 auto}.estimate-line-actions{display:flex;gap:.25rem;flex-wrap:wrap}.estimate-line-actions button{min-height:36px;padding:.3rem .6rem;font-size:.85em}.estimate-line-kind-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border-strong);overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-s)}.estimate-totals{display:grid;grid-gap:.4rem;gap:.4rem;max-width:360px;margin:0 0 0 auto}.estimate-totals-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-l)}.estimate-totals-row dt{margin:0;color:#555}.estimate-totals-row dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.estimate-totals-row-grand{border-top:2px solid #1a1a1a;padding-top:.4rem;font-size:1.1em;font-weight:600}.estimate-totals-row-grand dd{font-weight:700}body.sig-no-scroll{overflow:hidden;position:fixed;width:100%}.rec-workspace{padding:var(--space-m,1rem);max-width:1400px;margin:0 auto}.rec-workspace__header{margin-bottom:var(--space-m,1rem)}.rec-workspace__grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-m,1rem);gap:var(--space-m,1rem)}@media (min-width:640px){.rec-workspace__grid{grid-template-columns:minmax(0,1fr) 280px}.rec-workspace__rail:first-of-type{grid-column:1/-1}}@media (min-width:960px){.rec-workspace__grid{grid-template-columns:240px minmax(0,1fr) 280px}.rec-workspace__rail:first-of-type{grid-column:auto}}.rec-workspace__rail .tv-section+.tv-section{margin-top:var(--space-s,.5rem)}.rec-actions-stack{display:flex;flex-direction:column;gap:var(--space-xs,.4rem)}.rec-actions-stack>*{width:100%;text-align:center}.rec-children{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs,.4rem)}.rec-child-row{display:flex;gap:var(--space-s);align-items:flex-start;padding:var(--space-s);border:1px solid var(--color-border);border-radius:var(--radius-m);flex-wrap:wrap}.rec-child-row strong{margin-right:var(--space-xs,.4rem)}.rec-child-actions{display:flex;gap:var(--space-s,.5rem);align-items:center;flex-wrap:wrap}.rec-add-row{display:flex;gap:var(--space-xs,.4rem);flex-wrap:wrap;margin-top:var(--space-s,.5rem)}.rec-add-row input{min-width:0;flex:1 1 120px}.contract-rule-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs,.4rem)}.contract-rule-row{display:flex;gap:var(--space-s);align-items:flex-start;padding:var(--space-s);border:1px solid var(--color-border);border-radius:var(--radius-m);flex-wrap:wrap}.contract-rule-row strong{margin-right:var(--space-xs,.4rem)}.contract-rule-add-row{display:flex;gap:var(--space-xs,.4rem);flex-wrap:wrap;margin-top:var(--space-s,.5rem)}.contract-rule-add-row input{min-width:0;flex:1 1 120px}.btn-link-danger{background:none;border:none;box-shadow:none;color:var(--color-err-fg);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.btn-link-danger:disabled{opacity:.4;cursor:not-allowed}.rec-list{list-style:none;padding:0;margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-m);padding:var(--space-l)}.page-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--space-m);margin-bottom:var(--space-xl);padding-bottom:var(--space-m);border-bottom:3px solid var(--accent)}.page-header h1{margin:0;font-size:1.7rem}.page-header .page-subtitle{margin:.3rem 0 0;color:var(--color-text-muted);font-size:.92em}.page-header-actions{display:flex;gap:var(--space-s);align-items:center;flex-wrap:wrap}.app-nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:.7rem 1.1rem;background:var(--color-surface);border-bottom:3px solid var(--accent);box-shadow:var(--shadow-m)}.app-nav,.app-nav-links{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.app-nav-divider{width:1px;align-self:stretch;margin:.3rem .25rem;background:var(--color-border-strong)}@media (max-width:720px){.app-nav-divider{display:none}}.app-nav-toggle{display:none;align-items:center;justify-content:center;width:44px;min-height:var(--touch-min);padding:0;border:none;background:transparent;box-shadow:none;color:var(--color-text)}.app-nav-toggle:hover{background:var(--color-bg);border:none}.app-nav-brand{display:flex;align-items:center;gap:.6rem;margin-right:var(--space-m);font-weight:750;font-size:1.05rem;letter-spacing:-.01em;color:var(--color-text);text-decoration:none}.app-nav-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--accent-contrast);font-size:.95rem;font-weight:800;box-shadow:var(--shadow-m)}.app-nav-link{padding:.35rem .65rem;border-radius:var(--radius-s);text-decoration:none;color:var(--color-text-soft);font-weight:500;font-size:.9rem;transition:background .12s ease,color .12s ease}.app-nav-link:hover{background:var(--color-bg);color:var(--color-text)}.app-nav-link--active{background:var(--accent);color:var(--accent-contrast)}.app-nav-link--active:hover{background:var(--accent-hover);color:var(--accent-contrast)}.app-nav-user{margin-left:auto;display:flex;align-items:center;gap:.75rem}.app-nav-user-chip{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.app-nav-user-name{font-size:.85rem;font-weight:600;color:var(--color-text)}.app-nav-user-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.app-nav-logout{min-height:34px;padding:.3rem .7rem;font-size:.85rem;box-shadow:none}@media (max-width:720px){.app-nav-toggle{display:inline-flex;margin-left:auto}.app-nav-links,.app-nav-user{display:none}.app-nav--open .app-nav-links{display:flex;flex-direction:column;align-items:stretch;width:100%;padding-top:var(--space-s)}.app-nav--open .app-nav-link{display:flex;align-items:center;min-height:var(--touch-min);padding:.5rem .75rem;font-size:1rem}.app-nav--open .app-nav-user{display:flex;width:100%;margin-left:0;justify-content:space-between;padding-top:var(--space-s);margin-top:var(--space-s);border-top:1px solid var(--color-border)}.app-nav--open .app-nav-user-chip{align-items:flex-start}.app-nav--open .app-nav-logout{min-height:var(--touch-min)}}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:var(--space-l);gap:var(--space-l)}.dash-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--accent);border-radius:var(--radius-m);box-shadow:var(--shadow-m);padding:var(--space-l);text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.dash-card:hover{box-shadow:var(--shadow-l);transform:translateY(-3px);border-color:var(--accent)}.dash-card-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:var(--accent-soft);color:var(--accent);margin-bottom:var(--space-m)}.dash-card-icon svg{width:22px;height:22px}.dash-card h2{margin:0 0 .35rem;font-size:1.05rem;font-weight:680}.dash-card p{margin:0;color:var(--color-text-muted);font-size:.85em;line-height:1.4}.login-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-l)}.login-card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);box-shadow:var(--shadow-m);padding:2rem 1.75rem}.login-brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem}.login-brand .app-nav-brand-mark{width:34px;height:34px;border-radius:9px;font-size:1rem}.login-card h1{margin:0;font-size:1.15rem}.login-subtitle{margin:.2rem 0 0;font-size:.85em}.empty-state,.login-subtitle{color:var(--color-text-muted)}.empty-state{text-align:center;padding:2.5rem 1rem;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-m)}.toolbar{gap:var(--space-m);flex-wrap:wrap;margin-bottom:var(--space-l)}.toolbar,.toolbar-field{display:flex;align-items:center}.toolbar-field{gap:var(--space-s)}.stat-pill{display:inline-flex;align-items:baseline;gap:.4rem;padding:.35rem .85rem;background:var(--accent-soft);border:1px solid var(--accent);border-radius:999px;color:var(--accent-hover)}.stat-pill__label{font-size:.78rem;font-weight:600;color:inherit;opacity:.85}.stat-pill__value{font-size:1.05rem;font-weight:700}.parte-screen{max-width:720px;margin:0 auto;padding-bottom:5.5rem}.parte-header{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-m)}.parte-back{font-weight:600;font-size:1.05rem}.parte-hero{text-align:center}.parte-cta{display:block;width:100%;padding:1rem;font-size:1.1rem;margin-top:var(--space-m)}.parte-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-s);padding:var(--space-s) var(--space-m);background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--accent);border-radius:var(--radius-m);box-shadow:var(--shadow-s)}.parte-section,.parte-topbar{margin-bottom:var(--space-m)}.parte-section__title{margin:0 0 var(--space-m);padding-bottom:var(--space-s);border-bottom:1px solid var(--color-border);font-size:1.1rem}.parte-section--closing{border-top:3px solid var(--accent)}.parte-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-m);gap:var(--space-m)}.parte-field{display:flex;flex-direction:column;gap:var(--space-xs)}.parte-field input,.parte-field select,.parte-field textarea{width:100%}.parte-label{font-size:.85rem;font-weight:600;color:var(--color-text-soft)}.parte-quick{width:100%;padding:.75rem}.parte-more,.parte-quick{margin-top:var(--space-m)}.parte-more{border-top:1px solid var(--color-border);padding-top:var(--space-m)}.parte-more>summary{cursor:pointer;font-weight:600;color:var(--color-text-soft)}.parte-more__body{margin-top:var(--space-m);display:flex;flex-direction:column;gap:var(--space-s)}.parte-companions{display:flex;flex-wrap:wrap;gap:var(--space-s) var(--space-l);margin-top:var(--space-xs)}.parte-check{display:inline-flex;align-items:center;gap:var(--space-xs)}.parte-crew-list{display:flex;flex-direction:column;margin-bottom:var(--space-m);border:1px solid var(--color-border);border-radius:var(--radius-m);overflow:hidden}.parte-crew-row{display:flex;align-items:center;gap:var(--space-s);flex-wrap:wrap;padding:var(--space-s) var(--space-m);background:var(--color-surface)}.parte-crew-row:not(:last-child){border-bottom:1px solid var(--color-border)}.parte-crew-name{font-weight:600;min-width:8rem}.parte-actionbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:var(--space-s);padding:var(--space-s) var(--space-m);background:var(--color-surface);border-top:1px solid var(--color-border-strong);box-shadow:0 -2px 12px rgba(16,24,40,.08)}.parte-actionbar>button{flex:1 1;padding:.85rem;font-size:1rem}.parte-actionbar>button.btn-primary{flex:1.4 1}@media (max-width:420px){.parte-actionbar>button{padding:.75rem .5rem;font-size:.95rem}}.feina-home-header{align-items:center;justify-content:space-between;margin-bottom:var(--space-l)}.feina-home-header,.feina-list{display:flex;gap:var(--space-m)}.feina-list{flex-direction:column}.feina-card{background:var(--color-surface);border-left:1px solid var(--color-border);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-l);box-shadow:var(--shadow-m);padding:var(--space-l);transition:box-shadow .15s ease}.feina-card--urgent{border-left-color:var(--color-err-fg)}.feina-card--high{border-left-color:var(--color-warn-fg)}.feina-card__top{display:flex;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.feina-card__title{margin:.25rem 0 .15rem;font-size:1.15rem}.feina-card__client{margin:0 0 .15rem;font-weight:600;color:var(--color-text-soft)}.feina-card__addr{margin:0 0 .35rem}.feina-card__actions{display:flex;gap:var(--space-s);margin-top:var(--space-m)}.feina-open{flex:1 1;text-align:center;padding:.85rem;font-size:1.05rem}.feina-prio{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid var(--color-border-strong)}.feina-prio--urgent{background:var(--color-err-bg);color:var(--color-err-fg);border-color:var(--color-err-border)}.feina-prio--high{background:var(--color-warn-bg);color:var(--color-warn-fg);border-color:var(--color-warn-border)}.feina-prio--medium{background:var(--color-info-bg);color:var(--color-info-fg);border-color:var(--color-info-border)}.feina-prio--low{background:var(--color-bg);color:var(--color-text-muted)}.feina-today{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700;color:var(--accent-hover)}.feina-today,.parte-correction{background:var(--accent-soft);border:1px solid var(--accent)}.parte-correction{margin-top:var(--space-s);padding:var(--space-m);border-radius:var(--radius-m)}.parte-correction__text{margin:0;white-space:pre-wrap}.new-dn-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-gap:.75rem;gap:.75rem}.new-dn-option{display:flex;flex-direction:column;gap:.25rem;min-height:var(--touch-min);text-decoration:none;color:inherit}.new-dn-option:hover{border-color:var(--color-border-strong)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:.75rem}.form-grid label{display:flex;flex-direction:column;gap:.25rem;min-width:0}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:var(--touch-min);font:inherit}@media (max-width:600px){.form-grid{grid-template-columns:minmax(0,1fr)}}.recurrence-dates{padding-left:1.4rem;display:flex;flex-direction:column;gap:.3rem}.recurrence-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem}.invoice-filters{margin-bottom:.75rem;flex-wrap:wrap}.invoice-filters .catalog-tab{min-height:var(--touch-min)}tr.row-overdue td{background:var(--color-err-bg)}tr.row-overdue td:first-child{box-shadow:inset 3px 0 0 var(--color-err-fg)}.invoices-home-card__title{display:flex;flex-direction:column;gap:.25rem;color:inherit;text-decoration:none}.invoices-home-card__chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.invoices-home-card__chips .badge{min-height:32px;display:inline-flex;align-items:center;text-decoration:none}.invoice-prep__dir3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));grid-gap:.5rem;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-m)}.invoice-prep__dir3>div{display:flex;flex-direction:column;gap:.1rem;min-width:0;overflow-wrap:anywhere}.invoice-prep__check{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;min-height:var(--touch-min)}.invoice-prep__check input{width:auto!important;min-height:auto!important}.invoice-prep__preview dl{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-gap:.25rem .75rem;gap:.25rem .75rem;margin:0}.invoice-prep__preview dt{color:var(--color-text-muted,#666)}.invoice-prep__preview dd{margin:0;overflow-wrap:anywhere}.proposal-banner{border-left:3px solid var(--color-ok-fg)}.proposal-banner--basic{border-left-color:var(--color-warn-fg)}.proposal-warnings{background:var(--color-warn-bg);border-color:var(--color-warn-border)}.proposal-lines{list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem}.proposal-line__head{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:.4rem}.proposal-line__grid{display:grid;grid-template-columns:minmax(0,3fr) repeat(3,minmax(0,1fr)) minmax(0,1fr) auto;grid-gap:.5rem;gap:.5rem;align-items:end}.proposal-line__grid label,.proposal-line__total{display:flex;flex-direction:column;gap:.15rem;min-width:0}.proposal-line__grid input{width:100%;min-width:0}.proposal-line__grid input,.proposal-line__remove{min-height:var(--touch-min)}.proposal-line__why{margin:.4rem 0 0;font-size:.85em}.proposal-summary{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}@media (max-width:700px){.proposal-line__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.proposal-line__name{grid-column:1/-1}.proposal-line__grid input{font-size:1rem}}.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}.home-dash-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-s);margin:calc(-1 * var(--space-m)) 0 var(--space-m)}.home-dash-toolbar--operator{justify-content:space-between;margin:var(--space-l) 0 var(--space-m)}.home-dash-toolbar__title{margin:0;font-size:1.05rem}.home-dash-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-l)}.home-dash-editor h2{margin:0 0 var(--space-s);font-size:1.15rem}.home-dash-editor__subtitle{margin:var(--space-l) 0 var(--space-s);font-size:.95rem}.home-dash-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-s);gap:var(--space-s)}.home-dash-item{display:flex;align-items:center;gap:var(--space-s);min-height:var(--touch-min);padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-bg);min-width:0}.home-dash-item[draggable=true]{cursor:-webkit-grab;cursor:grab}.home-dash-item--dragging{opacity:.5}.home-dash-item__handle{color:var(--color-text-muted);font-size:1.1rem;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.home-dash-item__title{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:600}.home-dash-item__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.home-dash-item__actions button{min-height:var(--touch-min);padding:.3rem .6rem}.home-dash-editor__footer{display:flex;flex-wrap:wrap;gap:var(--space-s);margin-top:var(--space-l)}.home-dash-editor__reset{margin-left:auto}@media (max-width:560px){.home-dash-item__label{display:none}.home-dash-item__actions button{min-width:var(--touch-min)}.home-dash-editor{padding:var(--space-m)}.home-dash-editor__reset{margin-left:0}}.payment-setup-list{list-style:none;margin:.5rem 0;padding:0;display:grid;grid-gap:var(--space-s);gap:var(--space-s)}.payment-setup-list>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-s);padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-m);background:var(--color-surface);min-width:0}.payment-setup-list>li.is-inactive{opacity:.65}.payment-setup-list>li>div{min-width:0;overflow-wrap:anywhere}.payment-setup-actions{display:flex;flex-wrap:wrap;gap:.4rem}.payment-setup-actions button{min-height:var(--touch-min)}.bank-account-badges{display:flex;gap:.35rem;margin-top:.25rem}.payment-instruction-editor,.payment-setup-form{display:grid;grid-gap:var(--space-s);gap:var(--space-s)}.payment-instruction-editor input,.payment-instruction-editor select,.payment-setup-form input{width:100%;min-width:0;max-width:100%}.checkbox-label{display:flex;align-items:center;gap:.5rem}.checkbox-label input{width:auto}.link-button{background:none;border:none;padding:0;color:var(--color-info-fg);text-decoration:underline;cursor:pointer;font:inherit}.supplier-offers{display:block;font-size:.86em;margin-top:.15rem}.supplier-offers__review{margin-left:.35rem}.supplier-offers__list{margin:.25rem 0 0;padding-left:1.1rem}.supplier-offers__list li{margin:.1rem 0}.material-picker__expand{font-size:.8em;margin:0 0 .35rem .75rem}.supplier-pricing__warning{display:block;font-size:.86em}.procurement-plan,.supplier-price-changes{margin:var(--space-s) 0}.supplier-price-changes ul{margin:.4rem 0 0;padding-left:1.1rem}.supplier-price-changes li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin:.3rem 0}.procurement-plan summary{cursor:pointer}.procurement-plan__group h4{margin:.8rem 0 .3rem}.procurement-plan__table td,.procurement-plan__table th{white-space:nowrap}.supplier-detail-link,.supplier-filters,.supplier-pager,.supplier-policy-form,.supplier-settings{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-s);margin-bottom:var(--space-s)}.supplier-filters input[type=search]{flex:1 1 16rem;min-width:0}.supplier-policy-form label,.supplier-settings label{display:grid;grid-gap:.2rem;gap:.2rem}.supplier-list{list-style:none;margin:0;padding:0}.supplier-list__item{padding:.5rem 0;border-bottom:1px solid var(--color-border)}.promote-supplier-product__results{list-style:none;margin:.4rem 0;padding:0}.promote-supplier-product__results li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.2rem 0}.promote-supplier-product fieldset{display:grid;grid-gap:var(--space-s);gap:var(--space-s)}.promote-supplier-product fieldset input{width:100%;min-width:0}.link-suggestions__batch,.procurement-plan__footer,.supplier-ops__tools,.supplier-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.supplier-tabs button{min-height:44px}.supplier-ops__tools>details{flex:1 1 100%;min-width:0}.link-suggestions__candidates,.link-suggestions__evidence,.link-suggestions__list,.supplier-data-quality__counts,.supplier-ops__warnings{list-style:none;margin:0 0 var(--space-s);padding:0}.supplier-data-quality__counts li,.supplier-ops__warnings li{padding:.2rem 0;overflow-wrap:anywhere}.supplier-ops__table td,.supplier-ops__table th{white-space:nowrap}.link-suggestions__list>li{display:grid;grid-gap:var(--space-s);gap:var(--space-s);margin-bottom:var(--space-s);min-width:0;overflow-wrap:anywhere}.link-suggestions__candidates>li{border-top:1px solid var(--color-border);padding-top:var(--space-s)}.link-suggestions__pick{display:flex;align-items:flex-start;gap:var(--space-s);min-height:44px}.link-suggestions__pick input{min-width:24px;min-height:24px}.link-suggestions__evidence{padding-left:2rem;font-size:.9em}.link-suggestions__evidence li:before{content:"· "}.link-suggestions__batch{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--color-surface,#fff);padding:var(--space-s) 0}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);margin-bottom:var(--space-s)}.list-search{flex:1 1 16rem;min-width:0}.list-search input{width:100%;min-height:44px}.list-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-s);margin-top:var(--space-s)}.list-pager button{min-height:44px}.document-preflight__list{list-style:none;margin:var(--space-s) 0;padding:0}.document-preflight__list li{padding:.25rem 0;overflow-wrap:anywhere}.document-activity__list{margin:var(--space-s) 0;padding-left:1.25rem}.document-activity__list li{padding:.25rem 0;overflow-wrap:anywhere}.document-activity__when{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text-muted,inherit)}.orders-finished{margin-top:var(--space-m,1rem);opacity:.92}.orders-finished>summary{cursor:pointer;padding:.25rem 0}.orders-finished[open]>summary{margin-bottom:var(--space-s,.5rem)}