.budget-workspace{--budget-accent:var(--pilot-blue,#315f80);--budget-soft:#eaf1f6;display:block}
.budget-workspace .page-head{align-items:flex-end}
.budget-contract{width:min(420px,100%)}
.budget-tabs{display:flex;gap:4px;margin-bottom:14px;padding:4px;border:1px solid var(--pilot-line,#d9e2e9);border-radius:10px;background:#edf2f5;overflow:auto}
.budget-tab{min-height:40px;padding:8px 15px;border:0;border-radius:7px;background:transparent;color:#5c7182;font-weight:650;white-space:nowrap;transition:background-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
.budget-tab:hover{color:var(--pilot-navy,#172f43);background:#f7fafc}
.budget-tab.active{color:var(--pilot-navy,#172f43);background:#fff;box-shadow:0 1px 5px #1d354719}
.budget-tab:focus-visible{outline:3px solid #6d97b8;outline-offset:2px}
.budget-context{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:#5c7182;font-size:12px}
.budget-context strong{color:var(--pilot-ink,#213244)}
.budget-context span:before{content:"·";margin-right:10px}
.budget-message{margin:0 0 14px;padding:11px 14px;border-radius:8px;border:1px solid}
.budget-message.success{color:#176247;border-color:#badfce;background:#edf8f3}
.budget-message.error{color:#a73542;border-color:#efc2c8;background:#fff3f4}
.budget-section{margin-bottom:18px}
.budget-form{padding:20px}
.budget-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:20px}
.budget-form>.budget-form-grid,.budget-editor>.budget-form-grid,.budget-draft-head>.budget-form-grid{padding-bottom:5px}
.budget-span-2{grid-column:1/-1}
.budget-form-grid .field{min-width:0}
.budget-form-grid textarea,.budget-editor textarea,.budget-draft-head textarea{width:100%;resize:vertical}
.budget-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--pilot-line,#d9e2e9)}
.budget-form-hint{margin-right:auto;color:#667b8c;font-size:11px;line-height:1.5}
.budget-check{display:flex;align-items:center;gap:8px;color:#456074;font-size:12px}
.budget-check input{width:18px;height:18px}
.budget-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}
.budget-toolbar>.field{width:min(480px,100%)}
.budget-toolbar-copy{max-width:670px;color:#647a8b;font-size:12px}
.budget-editor{margin-bottom:18px;width:100%}
.budget-subeditor{margin:15px 20px 20px;padding:16px;border:1px solid var(--pilot-line,#d9e2e9);border-radius:10px;background:#f8fafb}
.budget-subeditor h3{margin-bottom:12px;color:var(--pilot-navy,#172f43)}
.budget-inline-fields{display:grid;grid-template-columns:minmax(190px,1fr) minmax(100px,.35fr) minmax(140px,.5fr) auto;align-items:end;gap:10px;margin-top:14px}
.budget-inline-fields .field{min-width:0}
.budget-quantity{max-width:150px}
.budget-chip-list{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}
.budget-chip-list li{display:flex;align-items:center;gap:7px;padding:6px 8px;border:1px solid #cbd8e2;border-radius:999px;background:#fff;color:#3f596d;font-size:11px}
.budget-chip-list button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:#e9eff3;color:#526b7e}
.budget-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.budget-crew-card{padding:18px;display:grid;gap:13px}
.budget-crew-card h2{margin-top:9px}
.budget-crew-card ul{margin:0;padding-left:20px;color:#4e6678;font-size:12px}
.budget-crew-card p{color:#627889;font-size:12px}
.budget-crew-card .button{justify-self:start}
.budget-row-actions{display:flex;gap:6px;flex-wrap:wrap}
.budget-draft-head{margin-bottom:16px}
.budget-draft-head .panel-head h2{margin-top:8px}
.budget-lines-summary{padding:16px 20px}
.budget-lines-summary>ol{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.budget-draft-line{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px;border:1px solid #dfe7ed;border-radius:9px;background:#fbfcfd}
.budget-draft-line>div{display:grid;gap:4px;min-width:0}
.budget-draft-line .pill{justify-self:start}
.budget-draft-line small{color:#647989}
.budget-draft-line ul{margin:4px 0 0;padding-left:18px;color:#607687;font-size:11px}
.budget-inline-warning{margin-top:13px;padding:10px 12px;border-left:3px solid #b67a18;background:#fff7e8;color:#7c5515;font-size:12px}
.budget-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px}
.budget-line-builder{min-width:0}
.budget-agreement-search{padding:16px 18px 10px}
.budget-agreement-list{max-height:480px;overflow:auto;padding:0 18px 16px;overscroll-behavior:contain}
.budget-agreement-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #e5ebef}
.budget-agreement-list article>div:first-child{min-width:0}
.budget-agreement-list strong,.budget-agreement-list small{display:block;overflow-wrap:anywhere}
.budget-agreement-list small{margin-top:4px;color:#6c8090;font-size:10px}
.budget-add-agreement{display:grid;grid-template-columns:75px auto;gap:4px 8px;align-items:end;flex:none}
.budget-add-agreement label{grid-column:1/-1;color:#617687;font-size:9px;font-weight:650}
.budget-add-agreement input{width:75px;min-height:34px;padding:6px 8px;border:1px solid #cbd7e1;border-radius:7px}
.budget-components{display:grid;gap:7px;margin:0;padding:0;list-style:none}
.budget-components li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#fff;border:1px solid #dfe7ed;border-radius:7px;font-size:11px}
.budget-components button{border:0;background:transparent;color:#9b3541;font-size:11px;font-weight:650}
.budget-component-switch{display:flex;gap:7px;margin-top:15px}
.budget-table td small{max-width:360px}
.budget-category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.budget-category-tabs span{margin-left:5px;font-variant-numeric:tabular-nums;opacity:.8}
.budget-setup-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:15px 20px 0;padding:12px 14px;border-radius:8px;background:var(--budget-soft);font-size:12px;color:#3d596e}
.budget-setup-links button,.budget-inline-warning button{border:0;background:none;padding:0;color:#285b80;text-decoration:underline;font:inherit;cursor:pointer}
.budget-setup-links small{flex-basis:100%}
.budget-resume{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px;border:1px solid #afc9db;border-radius:9px;background:#eef5fa;color:#2e536e}
.budget-detail .panel-head h2{margin-top:10px;overflow-wrap:anywhere}
.budget-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px;border-bottom:1px solid var(--pilot-line,#d9e2e9)}
.budget-detail-meta>div{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}
.budget-detail-meta small{color:#607688;font-size:11px}
.budget-detail-meta strong{color:#213b50;font-size:16px}
.budget-detail-notes{margin:0;padding:16px 20px;white-space:pre-wrap;overflow-wrap:anywhere;background:#f8fafc;color:#476075}
.budget-money{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.budget-totals{max-width:550px;margin:20px 20px 20px auto;display:grid;gap:0}
.budget-totals>div{display:flex;justify-content:space-between;gap:20px;padding:9px 12px;border-bottom:1px solid #e1e8ee;font-size:12px}
.budget-totals dt{color:#526b7e}
.budget-totals dd{margin:0;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;color:#223d52}
.budget-totals .budget-grand-total{margin-top:7px;padding-block:14px;background:#eaf1f6;border:0;border-radius:7px;font-size:16px}
.budget-grand-total dt{color:#203d53;font-weight:700}
.budget-downloads{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;padding:20px;border-top:1px solid var(--pilot-line,#d9e2e9);background:#f8fafc}
.budget-downloads p{max-width:620px;margin:6px 0 0;color:#647a8b;font-size:12px}
.budget-cost-detail>summary{cursor:pointer;padding:18px 20px;font-weight:650;color:#23465f;overflow-wrap:anywhere}
.budget-cost-detail>summary span{font-weight:400;font-size:12px;margin-left:12px;color:#657a89}
.budget-cost-detail>p{margin:0;padding:0 20px 18px;color:#61788a;font-size:12px}
.budget-cost-detail ul{margin:8px 0 0;padding-left:18px;font-size:11px;line-height:1.7;color:#5d7486}
.budget-commercial{margin:18px 20px 0;border:1px solid var(--pilot-line,#d9e2e9);border-radius:8px}
.budget-commercial>summary{padding:14px;cursor:pointer;font-weight:650;color:#345b78}
.budget-commercial .budget-form-grid{padding-top:0}
.budget-workspace :is(button,summary,a,input,select,textarea):focus-visible{outline:3px solid #6d97b8;outline-offset:2px}
.budget-workspace button:disabled{cursor:not-allowed;opacity:.55}
.budget-technical{margin:20px;border:1px solid #cbdbe6;border-radius:12px;background:#f7fafc;overflow:hidden}
.budget-technical>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;background:#edf4f8}
.budget-technical h3{margin:7px 0;color:#203d53;font-size:18px;overflow-wrap:anywhere}
.budget-technical header p{margin:4px 0;color:#4d6679}
.budget-technical header small{color:#61798c}
.budget-technical-meta{display:flex;gap:9px 22px;align-items:center;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #dbe5ed;color:#597286;font-size:12px}
.budget-technical-meta a{margin-left:auto}
.budget-technical-help{margin:0;padding:14px 20px;color:#526c7f;font-size:12px;line-height:1.6}
.budget-technical-empty{margin:20px;padding:15px 18px;border:1px dashed #bdcdd9;border-radius:9px;color:#587287;background:#f7fafc;line-height:1.6}
.budget-technical-actions{display:flex;justify-content:flex-end;padding:0 20px 16px}
.budget-diagnoses{display:grid;gap:10px;padding:0 16px 16px}
.budget-diagnosis{padding:14px 16px;border:1px solid #dce6ed;border-radius:8px;background:#fff;min-width:0;transition:border-color 160ms ease,box-shadow 160ms ease}
.budget-diagnosis.is-selected{border-color:#8facbf;box-shadow:inset 3px 0 #426c89}
.budget-diagnosis-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;color:#29485f}
.budget-diagnosis-title>small{white-space:nowrap;font-size:11px;color:#647c8e}
.budget-diagnosis-title .budget-check{align-items:flex-start;min-width:0;line-height:1.5}
.budget-diagnosis-title .budget-check input{flex-shrink:0;margin-top:2px}
.budget-diagnosis-title .budget-check span{display:grid;gap:3px;overflow-wrap:anywhere}
.budget-diagnosis-title .budget-check small{font-size:10px;color:#738695}
.budget-diagnosis dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 0;padding-top:12px;border-top:1px solid #e8edf1}
.budget-diagnosis dl>div{min-width:0}
.budget-diagnosis dt{font-size:10px;color:#657e90;font-weight:650;margin-bottom:5px}
.budget-diagnosis dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:12px;color:#344f62}
.budget-diagnosis-choice{min-width:0;margin:0 0 16px;padding:13px 16px;border:1px solid #cbdce8;border-radius:8px;background:#f3f7fa;display:grid;gap:10px}
.budget-diagnosis-choice legend{max-width:100%;padding:0 6px;font-size:12px;font-weight:650;color:#365d79}
.budget-diagnosis-choice .budget-check{align-items:flex-start;overflow-wrap:anywhere;line-height:1.5}
.budget-diagnosis-choice input{flex-shrink:0;margin:0}
.budget-diagnosis-choice>small{color:#6a8091;font-size:10px}
.budget-draft-line .budget-diagnosis-choice{margin-top:10px;margin-bottom:0}
.budget-line-diagnosis{display:block;padding-top:6px;color:#3c6787!important;white-space:normal;overflow-wrap:anywhere;max-width:none!important}
.budget-workspace input[readonly]{background:#f0f4f7;color:#557084;cursor:default}

@media(max-width:1050px){
  .budget-builder-grid{grid-template-columns:1fr}
  .budget-card-grid{grid-template-columns:1fr}
}
@media(max-width:800px){
  .budget-technical{margin:16px}
  .budget-technical>header{padding:14px}
  .budget-technical-meta{padding:12px 14px}
  .budget-technical-meta a{margin-left:0;flex-basis:100%}
  .budget-technical-help{padding:12px 14px}
  .budget-diagnoses{padding:0 10px 10px}
  .budget-diagnosis{padding:12px}
  .budget-diagnosis-title{flex-direction:column;gap:7px}
  .budget-diagnosis dl{grid-template-columns:1fr;gap:12px}
  .budget-technical-actions{padding-inline:16px}
  .budget-technical-actions .button{width:100%}
  .budget-workspace .page-head{align-items:stretch}
  .budget-contract{width:100%}
  .budget-tabs{margin-inline:-3px}
  .budget-tab{flex:1;padding-inline:10px}
  .budget-context{align-items:flex-start;flex-direction:column;gap:2px}
  .budget-context span:before{display:none}
  .budget-toolbar{align-items:stretch;flex-direction:column}
  .budget-toolbar>.button{width:100%}
  .budget-form-grid{grid-template-columns:1fr;padding:16px}
  .budget-span-2{grid-column:auto}
  .budget-form-actions{align-items:stretch;flex-direction:column;padding:14px 16px}
  .budget-form-actions .button{width:100%}
  .budget-inline-fields{grid-template-columns:1fr 1fr}
  .budget-inline-fields .field:first-child{grid-column:1/-1}
  .budget-inline-fields .button{width:100%}
  .budget-quantity{max-width:none}
  .budget-agreement-list article{align-items:stretch;flex-direction:column}
  .budget-add-agreement{width:100%;grid-template-columns:1fr auto}
  .budget-add-agreement input{width:100%}
  .budget-draft-line{align-items:stretch;flex-direction:column}
  .budget-detail-meta{grid-template-columns:1fr}
  .budget-commercial-lines{overflow:visible}
  .budget-commercial-lines.mobile-cards td[data-label="Descripción"]{grid-column:1/-1}
  .budget-commercial-lines.mobile-cards td.budget-money{text-align:left;white-space:normal}
  .budget-commercial-lines.mobile-cards td[data-label="Importe neto"]{grid-column:1/-1;padding-top:8px;border-top:1px solid var(--pilot-line,#d9e2e9);font-weight:700;font-size:14px}
  .budget-totals{margin:16px}
  .budget-totals>div{gap:12px}
  .budget-downloads{align-items:stretch}
  .budget-downloads .budget-row-actions,.budget-downloads .button{width:100%}
  .budget-resume{align-items:stretch;flex-direction:column}
}
@media(max-width:520px){
  .budget-tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
  .budget-inline-fields{grid-template-columns:1fr}
  .budget-inline-fields .field:first-child{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){.budget-tab,.budget-diagnosis{transition:none}}
.budget-preview-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}
.budget-preview-sidebar{padding:20px;position:sticky;top:24px}
.budget-preview-sidebar h2{font-size:18px;margin:0 0 18px}
.budget-preview-document{min-width:0}
.budget-preview-actions{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.budget-preview-actions .button{width:100%;white-space:normal;line-height:1.4;min-height:42px}
.budget-preview-help{font-size:12px;line-height:1.6;color:var(--pilot-muted,#536779);margin:18px 0 0}
.budget-preview-status{color:var(--pilot-muted,#536779);line-height:1.5}
.budget-preview-zoom{display:flex;flex-direction:column;align-items:stretch;gap:8px;font-size:13px;margin:12px 0}.budget-preview-zoom select{width:100%;padding:10px;border:1px solid #ccd9e3;border-radius:6px;background:white}
.budget-preview-error{color:#9c2525;background:#fff1f1;border:1px solid #efcaca;padding:12px;border-radius:8px}
.budget-preview-panel{overflow:hidden}
.budget-preview-panel .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.budget-preview-frame{display:block;border:0;width:100%;height:76vh;min-height:480px;background:#e7edf1}
@media(max-width:1050px){.budget-preview-layout{grid-template-columns:1fr}.budget-preview-sidebar{position:static}.budget-preview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.budget-preview-zoom select{max-width:260px}}
@media(max-width:600px){.budget-preview-frame{height:70vh;min-height:400px}.budget-preview-sidebar{padding:16px}.budget-preview-layout{gap:16px}}
