/* Calculadora unificada · interfaz administrativa JR3DSTUDIO */
.calc-admin-main { max-width: 1540px; }
.calc-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.calc-stage-badge { flex: 0 0 auto; padding: 8px 12px; border: 1px solid #2b91cf; border-radius: 999px; color: #0c75b5; background: #eaf7ff; font-weight: 800; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.calc-readonly-notice { margin: 0 0 18px; padding: 13px 16px; border: 1px solid #80c9ef; border-radius: 12px; background: #eef9ff; color: #123c55; }
.calc-management { margin: 0 0 18px; padding: 0; overflow: hidden; }
.calc-management > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; cursor: pointer; color: #12384f; background: #f3f9fc; list-style: none; }
.calc-management > summary::-webkit-details-marker { display: none; }
.calc-management > summary span:first-child { display: grid; gap: 3px; }
.calc-management > summary small { color: #5d7685; font-weight: 500; }
.calc-management[open] > summary { border-bottom: 1px solid #cfdee7; }
.calc-management-body { display: grid; gap: 22px; padding: 18px; }
.calc-management-body section + section { padding-top: 20px; border-top: 1px solid #d8e5ec; }
.calc-management-body form { display: grid; gap: 14px; }
.calc-management-body label { display: grid; gap: 6px; min-width: 0; color: #17384d; font-weight: 750; }
.calc-management-body input, .calc-management-body select { width: 100%; }
.calc-printer-list { display: grid; gap: 8px; margin: 12px 0 18px; }
.calc-printer-list article { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 14px; border: 1px solid #cfdee7; border-radius: 11px; background: #f8fbfd; }
.calc-printer-list article div { display: grid; gap: 3px; }
.calc-printer-list small { color: #5a7382; }
.calc-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 360px); gap: 22px; align-items: start; }
.calc-wizard { min-width: 0; display: grid; gap: 10px; }
.calc-progress { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; padding: 10px; border: 1px solid #bdd3e1; border-radius: 14px; background: #fff; }
.calc-progress button { min-height: 36px; padding: 5px; border-radius: 9px; border: 1px solid #bdd3e1; background: #f3f8fb; color: #456376; font-weight: 900; }
.calc-progress button.active { border-color: #0aaee8; background: #0aaee8; color: #041d2b; box-shadow: 0 0 0 3px rgba(10,174,232,.16); }
.calc-progress button.done { border-color: #1fc58e; background: #daf7ed; color: #075d42; }
.calc-wizard-step { overflow: hidden; border: 1px solid #bdd3e1; border-radius: 15px; background: #fff; box-shadow: 0 8px 22px rgba(8,37,55,.06); }
.calc-wizard-step.active { border-color: #1aa9e2; box-shadow: 0 10px 28px rgba(10,126,180,.12); }
.calc-step-header { width: 100%; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 16px 18px; text-align: left; color: #0b2940; background: #f5f9fc; border: 0; border-radius: 0; }
.calc-wizard-step.active .calc-step-header { background: #eaf7fd; }
.calc-step-number { display: grid; place-items: center; width: 34px; aspect-ratio: 1; border-radius: 50%; color: #fff; background: #0b6eab; font-weight: 900; }
.calc-step-heading { display: grid; gap: 3px; }
.calc-step-heading strong { font-size: 1rem; }
.calc-step-heading small { color: #5b7281; font-weight: 500; }
.calc-step-body { padding: 18px; border-top: 1px solid #d9e5ec; }
.calc-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.calc-field-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-step-body label, .calc-step-body fieldset { min-width: 0; }
.calc-step-body label { display: grid; gap: 6px; font-weight: 750; color: #17384d; }
.calc-step-body input, .calc-step-body select, .calc-step-body textarea { width: 100%; }
.calc-help { margin: 10px 0 0; color: #587181; font-size: .85rem; line-height: 1.45; }
.calc-step-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #dce8ee; }
.calc-subcard { margin: 12px 0; padding: 14px; border: 1px solid #cbdce6; border-radius: 12px; background: #f8fbfd; }
.calc-subcard:first-child { margin-top: 0; }
.calc-row-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.calc-row-meta { margin-top: 10px; color: #527080; font-size: .82rem; }
.calc-switch { display: flex !important; grid-template-columns: auto 1fr !important; align-items: center; justify-content: flex-start; gap: 9px !important; }
.calc-switch input { width: auto; margin: 0; }
.calc-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.calc-presets button { padding: 8px 13px; color: #0b5e8e; background: #e9f7fd; border: 1px solid #7ac8ea; }
.calc-presets button.active, .calc-presets button:focus { color: #fff; background: #0b6eab; }
.calc-range { accent-color: #0aaee8; }
.calc-work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.calc-work-grid .calc-subcard { display: grid; gap: 10px; }
.calc-work-grid legend, .calc-step-body legend { padding: 0 6px; color: #0b476c; font-weight: 900; }
.calc-pending-action { margin: 15px 0; padding: 14px; border: 1px dashed #dd9a2b; border-radius: 12px; background: #fff8e7; color: #593a04; }
.calc-pending-action p { margin: 5px 0 0; }
.calc-budget-preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.calc-summary { position: sticky; top: 18px; overflow: auto; max-height: calc(100vh - 36px); padding: 20px; border: 1px solid #275879; border-radius: 16px; background: #071e31; color: #ecf8ff; box-shadow: 0 16px 38px rgba(1,22,36,.22); }
.calc-summary h2 { margin-top: 3px; color: #fff; }
.calc-summary .eyebrow { color: #41c6f2; }
.calc-summary-group { padding: 12px 0; border-top: 1px solid rgba(160,211,239,.2); }
.calc-summary-group h3 { margin: 0 0 9px; color: #92d9fa; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.calc-summary-group p { display: flex; justify-content: space-between; gap: 12px; margin: 7px 0; color: #c0d5e1; font-size: .87rem; }
.calc-summary-group strong { color: #fff; }
.calc-summary-total, .calc-sale-total { display: grid; gap: 3px; margin-top: 12px; padding: 14px; border-radius: 12px; }
.calc-summary-total { background: #123b55; }
.calc-sale-total { color: #071e31; background: linear-gradient(135deg, #3cd2f2, #79f0c2); }
.calc-summary-total > strong, .calc-sale-total > strong { font-size: clamp(1.7rem, 4vw, 2.35rem); line-height: 1; }
.calc-summary-total small, .calc-sale-total small { line-height: 1.35; }
.calc-payment-total { padding: 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; text-align: center; }
.calc-messages { display: grid; gap: 7px; padding: 0; list-style: none; }
.calc-messages li { padding: 9px; border-radius: 8px; font-size: .8rem; }
.calc-messages .error { color: #ffdada; background: #5a1720; }
.calc-messages .warning { color: #ffedbf; background: #59420d; }
.calc-budget-preview .calc-summary-group, .calc-budget-preview .calc-summary-total, .calc-budget-preview .calc-sale-total, .calc-budget-preview .calc-payment-total, .calc-budget-preview .calc-messages { margin: 0; }
.calc-budget-preview .calc-summary-group { padding: 14px; border: 1px solid #cbdce6; border-radius: 12px; }
.calc-budget-preview .calc-summary-group p { display: flex; justify-content: space-between; gap: 10px; }
.calc-budget-preview .calc-summary-total, .calc-budget-preview .calc-sale-total { color: #082437; background: #e7f6fd; }
.calc-budget-preview .calc-sale-total { background: #dff9ed; }

body.dark .calc-stage-badge { color: #74d8ff; background: #0c3248; }
body.dark .calc-readonly-notice { color: #d5f2ff; background: #0d3042; border-color: #286582; }
body.dark .calc-management > summary { color: #edf9ff; background: #132a39; }
body.dark .calc-management > summary small, body.dark .calc-printer-list small { color: #9fbac8; }
body.dark .calc-management[open] > summary, body.dark .calc-management-body section + section { border-color: #29485d; }
body.dark .calc-management-body label { color: #d6e8f1; }
body.dark .calc-printer-list article { background: #13232e; border-color: #345063; }
body.dark .calc-progress, body.dark .calc-wizard-step { background: #101e29; border-color: #29485d; }
body.dark .calc-progress button { color: #b9d5e3; background: #172a37; border-color: #345468; }
body.dark .calc-step-header, body.dark .calc-wizard-step.active .calc-step-header { color: #edf9ff; background: #132a39; }
body.dark .calc-step-heading small, body.dark .calc-help, body.dark .calc-row-meta { color: #9fbac8; }
body.dark .calc-step-body, body.dark .calc-step-actions { border-color: #29485d; }
body.dark .calc-step-body label { color: #d6e8f1; }
body.dark .calc-subcard { background: #13232e; border-color: #345063; }
body.dark .calc-pending-action { color: #ffe3a8; background: #382b10; border-color: #9f7420; }
body.dark .calc-budget-preview .calc-summary-group { border-color: #355064; }
body.dark .calc-budget-preview .calc-summary-total, body.dark .calc-budget-preview .calc-sale-total { color: #ecf8ff; background: #16364b; }

@media (max-width: 1050px) {
  .calc-layout { grid-template-columns: 1fr; }
  .calc-summary { position: static; max-height: none; }
}
@media (max-width: 720px) {
  .calc-heading { display: grid; }
  .calc-stage-badge { justify-self: start; }
  .calc-progress { grid-template-columns: repeat(4, 1fr); }
  .calc-field-grid, .calc-field-grid-3, .calc-work-grid, .calc-budget-preview { grid-template-columns: 1fr; }
  .calc-step-header { grid-template-columns: 34px minmax(0, 1fr) auto; padding: 13px; }
  .calc-step-body { padding: 14px; }
}
