:root {
  --navy-950: #031326;
  --navy-900: #061b36;
  --navy-850: #082540;
  --navy-800: #0b2e4c;
  --blue-600: #087bf0;
  --blue-500: #1695ff;
  --cyan: #2dc8ff;
  --line: #dce4ee;
  --line-dark: #193a57;
  --panel: #f7f9fc;
  --text: #10233d;
  --muted: #62738a;
  --paper: #ffffff;
  --green: #0eae69;
  --orange: #f28c28;
  --red: #e64a52;
  --shadow: 0 8px 30px rgba(4, 25, 50, .14);
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--text); background: #dfe6ee; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.app-shell { height: 100%; display: grid; grid-template-rows: 54px 108px minmax(0, 1fr); }
.topbar { display: grid; grid-template-columns: 252px auto minmax(260px, 1fr) auto; align-items: center; gap: 14px; padding: 0 14px; color: #fff; background: linear-gradient(90deg, #03162d, #0a3153); border-bottom: 1px solid #17466c; }
.brand { display: flex; align-items: center; gap: 9px; min-width: 0; }
.brand img { width: 42px; height: 42px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0,0,0,.35)); }
.brand div { min-width: 0; line-height: 1.06; }
.brand strong { display: block; font-size: 13px; letter-spacing: .06em; white-space: nowrap; }
.brand span { display: block; margin-top: 4px; color: #67caff; font-size: 10px; letter-spacing: .04em; }
.file-actions, .export-actions { position: relative; display: flex; align-items: center; gap: 6px; }
.icon-button, .square-button { border: 1px solid rgba(255,255,255,.18); color: #e8f4ff; background: rgba(255,255,255,.05); border-radius: 7px; min-height: 32px; padding: 0 10px; }
.square-button { min-width: 32px; padding: 0; font-size: 18px; }
.icon-button:hover, .square-button:hover { background: rgba(255,255,255,.12); }
.icon-button.primary { border-color: #138fff; background: #087bf0; box-shadow: 0 4px 12px rgba(0,103,220,.26); }
.divider { width: 1px; height: 24px; margin: 0 2px; background: rgba(255,255,255,.18); }
.project-name-wrap { display: grid; grid-template-columns: auto minmax(140px, 360px) auto; align-items: center; justify-content: center; gap: 8px; min-width: 0; }
.project-name-wrap label { color: #83a5c3; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.project-name-wrap input { width: 100%; border: 1px solid transparent; outline: none; color: #fff; background: transparent; font-weight: 650; text-align: center; border-radius: 5px; padding: 5px 8px; }
.project-name-wrap input:focus { border-color: #2a80c1; background: #06203b; }
.save-state { color: #8ea8be; font-size: 10px; white-space: nowrap; }
.menu-popover { position: absolute; z-index: 50; right: 0; top: 40px; width: 188px; padding: 6px; border: 1px solid #cad6e4; background: #fff; border-radius: 9px; box-shadow: var(--shadow); }
.menu-popover button { width: 100%; border: 0; color: var(--text); background: transparent; border-radius: 6px; padding: 9px 10px; text-align: left; }
.menu-popover button:hover { background: #eaf3fd; }

.ribbon { background: #f9fbfd; border-bottom: 1px solid #bcc8d5; box-shadow: 0 2px 4px rgba(2, 20, 40, .08); }
.ribbon-tabs { height: 29px; display: flex; padding-left: 12px; border-bottom: 1px solid #d9e1e9; }
.ribbon-tabs button { min-width: 78px; border: 0; border-bottom: 2px solid transparent; color: #445872; background: transparent; font-size: 11px; }
.ribbon-tabs button.active { color: #0068d7; border-bottom-color: #087bf0; font-weight: 700; }
.ribbon-tools { height: 78px; overflow-x: auto; overflow-y: hidden; }
.ribbon-tools section { height: 100%; display: flex; align-items: stretch; gap: 2px; padding: 6px 10px; }
.tool { width: 62px; min-width: 62px; border: 1px solid transparent; color: #283f59; background: transparent; border-radius: 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.tool b { height: 29px; min-width: 29px; display: grid; place-items: center; color: #153a5d; font-size: 19px; line-height: 1; }
.tool span { font-size: 9px; white-space: nowrap; }
.tool:hover { border-color: #c4d7e9; background: #edf5fd; }
.tool.active { border-color: #88bff2; background: #dbedff; }
.tool.route b { font-size: 24px; }
.tool.route.orange b { color: var(--orange); }
.tool.route.blue b { color: #2b83e3; }
.tool.route.green b { color: #16a66a; }
.tool.route.red b { color: #e43d46; }
.ribbon-separator { width: 1px; margin: 2px 6px; background: #d7dee6; }

.workspace { min-height: 0; display: grid; grid-template-columns: 220px minmax(480px, 1fr) 286px; }
.left-panel, .right-panel { min-width: 0; background: var(--panel); border-color: #c6d0dc; overflow: hidden; }
.left-panel { border-right: 1px solid #c6d0dc; }
.right-panel { border-left: 1px solid #c6d0dc; }
.panel-tabs { height: 37px; display: flex; border-bottom: 1px solid #d4dde7; background: #eef3f8; }
.panel-tabs button { flex: 1; border: 0; border-bottom: 2px solid transparent; color: #5b6f86; background: transparent; font-size: 11px; }
.panel-tabs button.active { color: #087bf0; border-bottom-color: #087bf0; background: #fff; font-weight: 700; }
.panel-content { height: calc(100% - 37px); overflow: auto; }
.panel-heading { min-height: 39px; display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; color: #30475f; font-size: 11px; border-bottom: 1px solid #e1e7ee; }
.panel-heading button { width: 25px; height: 25px; border: 1px solid #c8d5e2; background: #fff; color: #087bf0; border-radius: 5px; }
.sheet-list, .layer-list { padding: 6px; }
.sheet-card { display: grid; grid-template-columns: 43px minmax(0,1fr) 24px; gap: 7px; align-items: center; width: 100%; padding: 7px; margin-bottom: 5px; border: 1px solid transparent; color: #31465c; background: transparent; border-radius: 7px; text-align: left; }
.sheet-card:hover { background: #eef5fc; }
.sheet-card.active { border-color: #78b8f4; background: #e2f1ff; }
.sheet-thumb { width: 43px; height: 31px; display: grid; place-items: center; border: 1px solid #b8c7d5; color: #4a6177; background: #fff; font-size: 9px; }
.sheet-card strong, .sheet-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sheet-card strong { font-size: 11px; }
.sheet-card span { margin-top: 2px; color: #789; font-size: 9px; }
.sheet-card i { width: 8px; height: 8px; border-radius: 50%; background: #1b9cff; }
.reference-rule { margin: 12px 8px; padding: 11px; border: 1px solid #bad4eb; background: #eef7ff; border-radius: 8px; }
.reference-rule span { color: #0c68bd; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.reference-rule p { margin: 6px 0 0; color: #607488; font-size: 10px; line-height: 1.45; }
.layer-row { display: grid; grid-template-columns: 19px 19px 14px minmax(0,1fr) 22px; gap: 5px; align-items: center; min-height: 34px; border-bottom: 1px solid #e5eaf0; font-size: 10px; }
.layer-row button { border: 0; background: transparent; color: #5f7183; padding: 0; }
.layer-row input[type="color"] { width: 14px; height: 14px; padding: 0; border: 0; background: transparent; }
.layer-row input[type="text"] { min-width: 0; border: 0; color: #30475e; background: transparent; }
.layer-row.current { background: #e8f4ff; }

.drawing-area { min-width: 0; min-height: 0; display: grid; grid-template-rows: 37px minmax(0, 1fr) 25px; background: #1c2934; }
.view-tabs { display: flex; align-items: end; gap: 1px; padding: 0 7px; background: #e9eef4; border-bottom: 1px solid #aab6c2; }
.view-tabs > button { height: 30px; min-width: 72px; border: 1px solid transparent; border-bottom: 0; color: #536578; background: transparent; border-radius: 6px 6px 0 0; font-size: 10px; }
.view-tabs > button.active { border-color: #b8c6d3; color: #0b61ae; background: #fff; font-weight: 700; }
.view-controls { margin-left: auto; height: 100%; display: flex; align-items: center; gap: 4px; }
.view-controls button { height: 24px; border: 1px solid #c6d0da; color: #40556b; background: #fff; border-radius: 4px; font-size: 10px; }
.view-controls span { width: 44px; color: #5a6d81; text-align: center; font-size: 9px; }
.canvas-viewport { position: relative; min-height: 0; overflow: hidden; outline: none; background: #14212c; touch-action: none; }
#cadCanvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.empty-state { position: absolute; z-index: 2; left: 50%; top: 47%; width: min(520px, 86%); transform: translate(-50%,-50%); color: #b8c9d8; text-align: center; pointer-events: none; }
.empty-state > * { pointer-events: auto; }
.empty-mark { margin: 0 auto 13px; width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid #2a526f; color: #f5f9fc; background: #0b2942; border-radius: 15px; box-shadow: 0 12px 32px rgba(0,0,0,.3); font-weight: 900; font-size: 29px; font-style: italic; }
.empty-mark span { color: #1aa2ff; }
.empty-state h1 { margin: 0 0 7px; color: #edf6fd; font-size: 20px; }
.empty-state p { margin: 0 auto 16px; max-width: 420px; font-size: 12px; line-height: 1.5; }
.empty-state button { border: 1px solid #365a76; color: #cfe1ee; background: #102f48; border-radius: 7px; padding: 9px 13px; }
.empty-state button.primary { border-color: #128eef; color: #fff; background: #087bf0; }
.empty-state small { display: block; margin-top: 13px; color: #6d8598; font-size: 9px; }
.command-line { position: absolute; z-index: 3; left: 10px; right: 10px; bottom: 8px; min-height: 31px; display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid rgba(76,125,160,.55); color: #a7bed0; background: rgba(3,22,38,.92); border-radius: 5px; box-shadow: 0 3px 12px rgba(0,0,0,.25); font-size: 10px; pointer-events: none; }
.command-line span { color: #6f91ac; }
.command-line strong { color: #4ebdff; }
.command-line em { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; }
.statusbar { display: flex; align-items: center; gap: 4px; padding: 0 7px; color: #aac1d2; background: #061b2c; border-top: 1px solid #26465d; font-size: 9px; }
.statusbar > span:first-child { min-width: 150px; }
.statusbar button { height: 19px; border: 1px solid transparent; color: #7898af; background: transparent; border-radius: 3px; font-size: 8px; }
.statusbar button.active { border-color: #276993; color: #70c5ff; background: #0a3452; }
.statusbar #selectionStatus { margin-left: auto; }

.inspector { padding: 0 11px 16px; }
.inspector-empty { padding: 22px 4px; color: #7b8b9a; text-align: center; }
.inspector-empty b { display: block; margin-bottom: 7px; color: #41566b; font-size: 12px; }
.inspector-empty p { margin: 0; font-size: 10px; line-height: 1.5; }
.property-title { margin: 0 -11px 12px; padding: 12px; color: #fff; background: #0a2942; }
.property-title small { color: #55bfff; font-size: 8px; letter-spacing: .08em; }
.property-title h2 { margin: 4px 0 0; font-size: 14px; }
.property-group { margin-bottom: 14px; padding-bottom: 11px; border-bottom: 1px solid #e0e6ec; }
.property-group h3 { margin: 0 0 9px; color: #435971; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.property-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.property-grid .full { grid-column: 1 / -1; }
.property-field { display: grid; gap: 4px; color: #687b8f; font-size: 9px; }
.property-field input, .property-field select, .property-field textarea { width: 100%; min-width: 0; border: 1px solid #cbd7e3; outline: none; color: #273e57; background: #fff; border-radius: 5px; padding: 6px 7px; font-size: 10px; }
.property-field input:focus, .property-field select:focus, .property-field textarea:focus { border-color: #2d95ef; box-shadow: 0 0 0 2px rgba(25,139,237,.12); }
.property-field input[type="color"] { height: 30px; padding: 2px; }
.property-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.property-actions button, .wide-button { min-height: 32px; border: 1px solid #c2d1de; color: #35516b; background: #fff; border-radius: 6px; font-size: 10px; }
.property-actions button:hover, .wide-button:hover { border-color: #2d94ea; color: #0874d8; }
.property-actions button.danger { border-color: #efc5c8; color: #bb3940; }
.source-card { padding: 9px; border: 1px solid #b9d5ed; background: #eff8ff; border-radius: 7px; font-size: 9px; line-height: 1.45; }
.source-card b { display: block; color: #0b6bb9; }
.source-card a { color: #087bf0; }

.library-panel { padding: 10px; }
.library-insert-help{margin:7px 0 9px;padding:7px 8px;border-left:3px solid #168ce5;background:#eef8ff;color:#526b80;font-size:8px;line-height:1.4}
.canvas-viewport.asset-drop-ready{box-shadow:inset 0 0 0 3px #1b9cff,inset 0 0 40px rgba(27,156,255,.22)}
.library-search { display: flex; gap: 5px; }
.library-search input { min-width: 0; flex: 1; border: 1px solid #c7d4e1; border-radius: 6px; padding: 7px; font-size: 10px; }
.library-search button { width: 31px; border: 1px solid #c7d4e1; background: #fff; border-radius: 6px; color: #087bf0; }
.verification-info { display: flex; align-items: center; justify-content: space-between; margin: 8px 0; padding: 8px; border: 1px solid #b8dfcd; color: #23714d; background: #edfbf5; border-radius: 6px; font-size: 8px; }
.category-chips { display: flex; gap: 5px; overflow-x: auto; padding: 2px 0 8px; }
.category-chips button { border: 1px solid #cad6e1; color: #607187; background: #fff; border-radius: 99px; padding: 5px 8px; white-space: nowrap; font-size: 8px; }
.category-chips button.active { border-color: #268de8; color: #0872cf; background: #eaf5ff; }
.library-items { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 9px; }
.library-item { overflow: hidden; border: 1px solid #d2dce6; background: #fff; border-radius: 7px; text-align: left; padding: 0; }
.library-item:hover { border-color: #4fa7f0; box-shadow: 0 3px 10px rgba(16, 102, 180,.12); }
.library-item figure { position: relative; height: 76px; display: grid; place-items: center; margin: 0; background: linear-gradient(145deg,#edf2f6,#fff); }
.library-item img { width: 100%; height: 100%; object-fit: contain; }
.library-item .technical-symbol { color: #23455f; font-size: 31px; }
.library-item .verified-badge { position: absolute; top: 4px; right: 4px; padding: 2px 4px; color: #fff; background: #0ea664; border-radius: 3px; font-size: 7px; }
.library-item div { padding: 7px; }
.library-item strong { display: block; overflow: hidden; color: #243d55; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.library-item span { display: block; margin-top: 3px; overflow: hidden; color: #748699; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.wide-button { width: 100%; }

.modal-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(1,13,25,.7); backdrop-filter: blur(4px); }
.modal { width: min(820px, 96vw); max-height: 90vh; overflow: auto; border: 1px solid #adc1d3; background: #fff; border-radius: 12px; box-shadow: 0 22px 70px rgba(0,0,0,.38); }
.modal.compact { width: min(520px, 96vw); }
.modal header { position: sticky; z-index: 2; top: 0; display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 16px 18px; color: #fff; background: #082743; }
.modal header h2 { margin: 3px 0; font-size: 17px; }
.modal header small { color: #4dc1ff; font-size: 8px; letter-spacing: .1em; }
.modal header p { margin: 0; color: #aac0d3; font-size: 10px; }
.modal header button { width: 29px; height: 29px; border: 1px solid #355b79; color: #d8e8f4; background: #113c5b; border-radius: 6px; }
.modal-body { padding: 16px 18px; }
.modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid #e0e6ec; background: #f6f8fa; }
.modal-footer button { border: 1px solid #c1cfdd; color: #344d66; background: #fff; border-radius: 6px; padding: 8px 12px; }
.modal-footer button.primary { border-color: #087bf0; color: #fff; background: #087bf0; }
.modal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.choice-card { border: 1px solid #cbd7e3; color: #385169; background: #fff; border-radius: 8px; padding: 13px; text-align: left; }
.choice-card:hover { border-color: #349af0; background: #f2f9ff; }
.choice-card b { display: block; color: #193b5c; font-size: 12px; }
.choice-card span { display: block; margin-top: 5px; color: #6e8193; font-size: 9px; line-height: 1.4; }
.template-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.template-card { overflow: hidden; border: 1px solid #c8d6e4; background: #fff; border-radius: 10px; box-shadow: 0 7px 22px rgba(10,42,70,.10); }
.template-card img { display: block; width: 100%; height: 180px; object-fit: cover; background: #e7edf3; }
.template-card div { padding: 13px; }
.template-card small { color: #1687de; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.template-card h3 { margin: 5px 0; color: #143653; font-size: 13px; }
.template-card p { min-height: 40px; margin: 0 0 10px; color: #687b8e; font-size: 9px; line-height: 1.45; }
.template-card button { width: 100%; border: 1px solid #087bf0; color: #fff; background: #087bf0; border-radius: 6px; padding: 8px; font-size: 10px; }
.sheet-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sheet-form label { display: grid; gap: 5px; color: #63758a; font-size: 9px; }
.sheet-form input, .sheet-form select, .sheet-form textarea { border: 1px solid #c8d5e2; border-radius: 6px; padding: 8px; }
.sheet-form .full { grid-column: 1/-1; }
.quantity-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.quantity-table th, .quantity-table td { padding: 8px 7px; border-bottom: 1px solid #e1e7ed; text-align: left; }
.quantity-table th { color: #557086; background: #f2f6f9; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.quantity-summary { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; padding: 12px; color: #0a466f; background: #eaf6ff; border-radius: 7px; font-size: 10px; }
.validation-list { display: grid; gap: 7px; }
.validation-item { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 8px; padding: 9px; border: 1px solid #d9e2ea; border-radius: 7px; font-size: 10px; }
.validation-item i { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; font-style: normal; }
.validation-item.ok i { color: #087a4c; background: #dff7ec; }
.validation-item.warn i { color: #9c6200; background: #fff1cf; }
.validation-item.error i { color: #a82e36; background: #ffe2e5; }
.toast { position: fixed; z-index: 150; left: 50%; bottom: 42px; transform: translateX(-50%); max-width: min(580px, 90vw); padding: 10px 14px; border: 1px solid #226b96; color: #eaf7ff; background: rgba(4,37,61,.96); border-radius: 7px; box-shadow: 0 9px 30px rgba(0,0,0,.25); font-size: 10px; }

@media (max-width: 1080px) {
  .workspace { grid-template-columns: 190px minmax(420px,1fr) 250px; }
  .topbar { grid-template-columns: 210px auto 1fr auto; }
  .project-name-wrap label, .save-state { display: none; }
  .library-items { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
  .app-shell { grid-template-rows: 54px 82px minmax(0,1fr); }
  .topbar { grid-template-columns: 1fr auto; }
  .brand div, .project-name-wrap, .file-actions .divider, #undoBtn, #redoBtn { display: none; }
  .file-actions { justify-self: end; }
  .export-actions { display: none; }
  .ribbon-tabs { height: 26px; }
  .ribbon-tools { height: 56px; }
  .tool { width: 54px; min-width: 54px; }
  .tool b { height: 22px; font-size: 16px; }
  .workspace { grid-template-columns: minmax(0,1fr); }
  .left-panel, .right-panel { position: fixed; z-index: 40; top: 136px; bottom: 0; width: min(290px,86vw); box-shadow: var(--shadow); }
  .left-panel { left: 0; transform: translateX(-100%); }
  .right-panel { right: 0; transform: translateX(100%); }
  .left-panel.mobile-open, .right-panel.mobile-open { transform: none; }
  .template-grid { grid-template-columns: 1fr; }
}

@media print {
  body { overflow: visible; background: #fff; }
  .topbar, .ribbon, .left-panel, .right-panel, .view-tabs, .statusbar, .command-line, .empty-state { display: none !important; }
  .app-shell, .workspace, .drawing-area, .canvas-viewport { display: block; width: 100%; height: auto; overflow: visible; background: #fff; }
  #cadCanvas { position: static; width: 100%; height: auto; }
}

/* V10 · Central de setores + Solar FV */
.app-shell { grid-template-rows: 54px 36px 108px minmax(0,1fr); }
.discipline-bar { display:flex; align-items:center; gap:6px; padding:4px 10px; overflow-x:auto; color:#cfe3f4; background:#061b2f; border-bottom:1px solid #183d5a; }
.discipline-bar button { height:27px; padding:0 11px; border:1px solid #264d6b; color:#abc4d8; background:#0a2942; border-radius:6px; white-space:nowrap; font-size:9px; font-weight:750; letter-spacing:.02em; }
.discipline-bar button:hover { border-color:#3887bd; color:#fff; }
.discipline-bar button.active { border-color:#168ff0; color:#fff; background:#087bf0; box-shadow:0 4px 12px rgba(0,110,220,.25); }
.solar-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
.solar-kpis article { padding:11px; border:1px solid #d6e1eb; background:#f7fbff; border-radius:8px; }
.solar-kpis small { display:block; color:#6b8094; font-size:7px; font-weight:800; letter-spacing:.08em; }
.solar-kpis b { display:block; margin-top:5px; color:#0a568f; font-size:14px; }
.solar-section { margin:11px 0; padding:12px; border:1px solid #dce5ed; border-radius:8px; background:#fff; }
.solar-section h3 { margin:0 0 9px; color:#173b59; font-size:11px; }
.solar-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.solar-form label { display:grid; gap:4px; color:#60758a; font-size:8px; }
.solar-input { display:flex; align-items:center; border:1px solid #c8d6e2; border-radius:6px; overflow:hidden; background:#fff; }
.solar-input input { min-width:0; width:100%; border:0; outline:0; padding:7px 8px; color:#17354e; }
.solar-input em { padding:0 7px; color:#6b8194; background:#f0f5f9; border-left:1px solid #d8e2ea; font-size:8px; font-style:normal; white-space:nowrap; align-self:stretch; display:grid; place-items:center; }
.solar-validation { display:grid; gap:6px; margin-top:10px; }
.solar-validation p { margin:0; display:grid; grid-template-columns:62px 1fr; gap:8px; padding:8px 9px; border:1px solid #dbe4eb; border-radius:6px; color:#486074; font-size:9px; }
.solar-validation p b { font-size:8px; }
.solar-validation p.ok { border-color:#bce7d2; background:#edf9f3; }.solar-validation p.ok b{color:#087a4c}
.solar-validation p.warn { border-color:#efd9a8; background:#fff9e9; }.solar-validation p.warn b{color:#946000}
.solar-validation p.error { border-color:#edbec2; background:#fff0f1; }.solar-validation p.error b{color:#a72c35}
.solar-chart { height:175px; display:grid; grid-template-columns:repeat(12,1fr); align-items:end; gap:5px; padding:18px 8px 4px; border:1px solid #dce6ee; border-radius:8px; background:#f9fcff; }
.solar-chart div { height:145px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:3px; }
.solar-chart span { width:68%; max-width:28px; min-height:6px; background:linear-gradient(180deg,#1aa3ff,#0873d8); border-radius:4px 4px 1px 1px; }
.solar-chart b { color:#35566f; font-size:7px; }.solar-chart small{color:#71869a;font-size:7px}
.solar-note { color:#718397; font-size:8px; line-height:1.45; }
.solar-report h3 { margin:13px 0 4px; color:#125c91; font-size:11px; }.solar-report p{margin:0;color:#4e6478;font-size:10px;line-height:1.5}
@media (max-width:900px){.solar-form{grid-template-columns:repeat(2,minmax(0,1fr))}.solar-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:780px){.app-shell{grid-template-rows:54px 36px 82px minmax(0,1fr)}.left-panel,.right-panel{top:172px}.solar-form{grid-template-columns:1fr}.solar-chart{overflow-x:auto;min-width:620px}}
