.account-menu{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:relative}.account-trigger{align-items:center;gap:8px;min-width:0;max-width:220px;display:inline-flex}.account-trigger-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}button.account-trigger.secondary{background:0 0;border-color:#0000}button.account-trigger.secondary:hover:not(:disabled),button.account-trigger.secondary[aria-expanded=true]{background:var(--surface-soft);border-color:#0000}.account-trigger-icon{width:16px;height:16px;color:var(--muted);flex:none}.account-avatar{background:var(--brand-soft);width:24px;height:24px;color:var(--brand-hover);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.account-avatar-large{width:40px;height:40px;font-size:16px}.account-popover{z-index:20;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(280px,100vw - 24px);min-width:0;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #17211c29}.account-popover-profile{align-items:center;gap:10px;min-width:0;padding-bottom:12px;display:flex}.account-popover-copy{gap:3px;min-width:0;display:grid}.account-popover-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.account-email{overflow-wrap:anywhere;word-break:break-word;white-space:normal;max-width:100%;color:var(--muted);font-size:12px;line-height:1.35;display:block}.account-popover-divider{border:0;border-top:1px solid var(--line);width:100%;height:1px;margin:0 0 4px}button.account-logout{width:100%;height:auto;min-height:36px;color:var(--text);text-align:left;background:0 0;border-color:#0000;align-items:center;gap:8px;padding:8px 0;display:flex}button.account-logout svg{width:18px;height:18px;color:var(--muted);flex:none}button.account-logout:hover:not(:disabled){background:var(--surface-soft);color:var(--brand-hover);border-color:#0000}.account-popover .status{margin-top:8px}:root{--bg:#f4f6f5;--surface:#fff;--surface-soft:#f8faf9;--line:#dde3df;--line-strong:#c8d1cc;--text:#17211c;--muted:#68756f;--brand:#df6534;--brand-hover:#c94f20;--brand-soft:#df65341f;--green:#147d64;--green-soft:#e8f5ef;--blue:#2563a9;--blue-soft:#e8f0fa;--amber:#a35c00;--amber-soft:#fff4df;--red:#dc2626;--red-soft:#fef2f2;--shadow:0 1px 2px #17211c0d;--radius:8px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:IBM Plex Sans KR,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font-family:inherit}.slider-number,.read-only-value,.summary-value,.cost-bar-value,.svg-value-label,.svg-axis-label,.usage-renewable-x-label,.capacity-input input,.metric b,.scenario-stat b,.info-item b,.cost-detail b{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,IBM Plex Sans KR,ui-monospace,SFMono-Regular,Menlo,monospace}header{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:14px 24px;display:grid;position:sticky;top:0}h1{margin:0;font-size:18px;font-weight:700}h2{margin:0;font-size:15px;font-weight:700}h3{color:var(--text);margin:0 0 10px;font-size:13px;font-weight:700}main{gap:16px;max-width:1480px;margin:0 auto;padding:20px;display:grid}.stack{align-content:start;gap:14px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.empty-state{text-align:center;min-height:260px;color:var(--muted);place-items:center;display:grid}.empty-state b{color:var(--text);margin-bottom:6px;font-size:16px;display:block}.data-state{gap:16px;display:grid}.data-loading-state{min-height:260px}.data-state-message{text-align:center;justify-items:center;gap:6px;display:grid}.data-state-message b{color:var(--text);font-size:16px}.data-state-message span{color:var(--muted);font-size:12px}.data-state-skeletons{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.data-state-skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-soft) 25%, var(--line) 50%, var(--surface-soft) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite data-state-shimmer}.data-state-skeleton-card{min-height:118px}.data-state-skeleton-panel{grid-column:1/-1;min-height:220px}.simulation-loading{min-height:0;display:block}.sim-skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-soft) 25%, var(--line) 50%, var(--surface-soft) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite data-state-shimmer;display:block}.sim-summary-skeleton{display:block}.sim-skeleton-value{width:58%;height:1.1em;margin-top:8px}.sim-skeleton-meta{width:72%;height:1.5em;margin-top:8px}.sim-skeleton-unit{width:42px;height:18px}.sim-skeleton-input{width:100%;height:36px}.sim-skeleton-detail{width:72%;height:1.25em;margin-top:0}.info-item .sim-skeleton-detail{font-size:inherit}.sim-skeleton-chart{width:100%;height:100%;min-height:180px}.sim-skeleton-cost-value{width:88px;height:1.1em}.sim-skeleton-cost-detail-value{width:72%;height:1.5em}.sim-skeleton-cost-bar{border-radius:999px;width:100%;height:12px}.sim-toggle-skeleton{border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);gap:6px;padding:4px;font-size:12px;font-weight:700}.sim-toggle-skeleton:before{display:none}.sim-toggle-skeleton .pill-toggle-btn{z-index:1;color:var(--muted)}.sim-toggle-skeleton .pill-toggle-btn:first-child{background:var(--surface-soft)}.sim-month-skeleton{color:var(--muted);border-color:var(--line);background:var(--surface-soft)}.sim-month-detail{margin-bottom:12px}.sim-usage-chart{margin-top:0}.sim-heatmap-swatch{border-radius:3px;width:18px;height:10px;display:inline-block}.sim-heatmap-range{width:100px;height:12px;display:inline-block}.sim-heatmap-cell{border-radius:4px;min-height:18px}.sim-heatmap-axis{min-height:18px}.data-error-state{text-align:center;place-items:center;min-height:260px}@keyframes data-state-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.data-state-skeleton,.sim-skeleton,.header-context-skeleton{animation:none}}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.field{align-content:start;gap:6px;min-width:0;display:grid}.org-selection-field{min-width:0}.org-selection-field>.org-name-actions{grid-column:1/-1;width:100%}.org-name-actions{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.org-name-actions input{flex:180px;width:auto;min-width:0}.field.has-error input{border-color:var(--red);background:snow}.field.has-error input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.field-error{color:var(--red);font-size:12px;font-weight:600;line-height:1.35}label{color:var(--muted);font-size:12px;font-weight:500}input,select{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:100%;height:36px;color:var(--text);font:inherit;padding:0 10px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:#a3a3a3}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}select{cursor:pointer}.slider-field{gap:8px}.slider-head{justify-content:space-between;align-items:center;gap:10px;min-height:30px;display:flex}.slider-value-pill{border:1px solid var(--line);background:var(--surface-soft);border-radius:999px;align-items:center;gap:4px;height:30px;padding:0 8px;display:inline-flex}.slider-value-pill.is-readonly{border-color:var(--line-strong);background:#edf2ef}.slider-number{text-align:right;background:0 0;border:0;border-radius:0;width:84px;height:24px;padding:0;font-weight:700}.computed-number{line-height:24px;display:inline-block}.read-only-value{text-overflow:ellipsis;white-space:nowrap;min-width:72px;font-weight:700;line-height:24px;overflow:hidden}.slider-number:focus{box-shadow:none;border:0}.slider-unit{min-width:20px;color:var(--muted);font-size:12px;font-weight:700}.field-note{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.5}.slider-capacity-hint{color:var(--brand);white-space:nowrap;font-size:11px;font-weight:700}.slider-control{width:100%;height:16px;accent-color:var(--brand);cursor:pointer;appearance:none;background:0 0;border:0;padding:0}.slider-control:focus{box-shadow:none}.slider-control:focus-visible{outline-offset:3px;outline:2px solid #df653461}.slider-control::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--brand) var(--slider-progress,0%), #e5ebe7 var(--slider-progress,0%));border-radius:999px;height:4px}.slider-control::-webkit-slider-thumb{appearance:none;background:var(--brand);border:3px solid #fff;border-radius:50%;width:14px;height:14px;margin-top:-5px;box-shadow:0 1px 3px #17211c38}.slider-control::-moz-range-track{background:#e5ebe7;border-radius:999px;height:4px}.slider-control::-moz-range-progress{background:var(--brand);border-radius:999px;height:4px}.slider-control::-moz-range-thumb{background:var(--brand);border:3px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #17211c38}button{border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;height:36px;padding:0 14px;font-weight:600;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}button.secondary{border-color:var(--line-strong);background:var(--surface);color:var(--text)}button.secondary:hover:not(:disabled){background:var(--bg);border-color:var(--muted)}button.secondary.danger{color:var(--red);border-color:#f4b4b4}button.secondary.danger:hover:not(:disabled){background:var(--red-soft);border-color:#f87171}button:disabled{opacity:.5;cursor:wait}.shortcut-label{align-items:center;gap:7px;display:inline-flex}.shortcut-key{opacity:.64;border:1px solid;border-radius:5px;min-width:24px;padding:1px 5px;font-size:10px;font-weight:700;line-height:1.25}.status{min-height:26px;color:var(--green);background:#ecfdf5;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.status.warn{background:var(--brand-soft);color:var(--brand-hover)}.status.err{background:var(--red-soft);color:var(--red)}.toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-toolbar{grid-column:3;justify-self:stretch;align-items:stretch;gap:8px;min-width:0;display:grid;position:relative}.header-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.header-account{border-left:1px solid var(--line);align-items:center;margin-left:4px;padding-left:12px;display:flex}.header-status-row{flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.header-status-row>.status{overflow-wrap:anywhere;white-space:normal;min-width:0;max-width:100%}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button-with-icon{align-items:center;gap:6px;display:inline-flex}.button-with-icon svg{width:16px;height:16px}.header-pending-trigger{position:relative}.header-pending-dot{background:var(--amber);border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:5px}.ghost{color:var(--muted);background:0 0;border-color:#0000}.ghost:hover:not(:disabled){background:var(--surface-soft);color:var(--text);border-color:#0000}.icon-button{place-items:center;width:36px;min-width:36px;padding:0;display:inline-grid}.icon-button svg{width:18px;height:18px}.header-tooltip-wrap{display:inline-flex;position:relative}.header-tooltip-wrap [role=tooltip]{z-index:30;border:1px solid var(--line);background:var(--text);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;border-radius:5px;padding:5px 8px;font-size:11px;line-height:1.2;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-2px)}.header-tooltip-wrap [role=tooltip].is-wide{white-space:normal;width:max-content;max-width:min(280px,100vw - 24px);padding:6px 8px;line-height:1.35;left:0;right:auto}.header-tooltip-wrap:hover [role=tooltip],.header-tooltip-wrap:focus-within [role=tooltip]{opacity:1;visibility:visible;transform:translateY(0)}header .tabs{flex:0 auto;justify-content:center;justify-self:center}.metrics{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;display:grid}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-height:84px;padding:14px}.metric b{overflow-wrap:anywhere;margin-top:8px;font-size:clamp(18px,2vw,24px);line-height:1.15;display:block}.metric span{color:var(--muted);font-size:13px;font-weight:600}.metric.green b{color:var(--green)}.metric.blue b{color:var(--blue)}.metric.amber b{color:var(--brand)}.chart-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.chart{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;height:360px;padding:18px 20px 16px}.chart.chart-wide{height:430px}.chart-title-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.chart-title-row h3{margin:0;font-size:15px;line-height:1.25}.chart-unit{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.chart-tooltip{border:1px solid var(--line-strong);border-radius:var(--radius);min-width:150px;color:var(--text);background:#fffffff5;padding:10px 12px;box-shadow:0 8px 24px #17211c24}.chart-tooltip-label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:700}.chart-tooltip-row{justify-content:space-between;align-items:center;gap:16px;font-size:12px;font-weight:600;display:flex}.chart-tooltip-row+.chart-tooltip-row{margin-top:6px}.chart-tooltip-name{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.chart-tooltip-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.svg-value-label{fill:var(--muted);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:11px;font-weight:700}.svg-stack-segment{shape-rendering:crispedges}.svg-hover-guide-line{stroke:#2563a947;stroke-width:1px;stroke-dasharray:4 4;pointer-events:none}.svg-hover-guide-point{stroke:#fff;stroke-width:2px;pointer-events:none}.svg-legend-label{fill:#404040;font-size:12px;font-weight:700}.svg-chart-wrap{height:292px;position:relative}.chart.chart-wide .svg-chart-wrap{height:356px}.svg-chart-wrap svg{display:block}.usage-line-chart-wrap{height:100%;min-height:292px}.usage-line-chart-wrap svg{height:100%}.usage-renewable-panel{gap:10px;display:grid}.usage-renewable-chart-wrap{min-width:0;height:400px;position:relative}.usage-renewable-chart-wrap svg{width:100%;height:100%;display:block}.usage-renewable-area{fill:#ef5869d1}.svg-line-series,.usage-renewable-line{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.svg-line-point,.usage-renewable-point{stroke:#fff;stroke-width:2px}.svg-axis-label,.usage-renewable-x-label{fill:var(--muted);font-size:12px;font-weight:700}.usage-renewable-hitbox,.svg-chart-hitbox,.usage-line-hitbox{cursor:crosshair}.svg-chart-tooltip{z-index:2;pointer-events:none;position:absolute;transform:translate(-50%,calc(-100% - 10px))}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}th,td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:9px 10px}th:first-child,td:first-child{text-align:left}th{background:var(--bg);color:var(--muted);font-size:12px;font-weight:600}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.error{color:var(--red);font-weight:600}.split-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.app-title{gap:2px;line-height:1.5;display:grid}.header-context-skeleton{background:linear-gradient(90deg, var(--surface-soft) 25%, var(--line) 50%, var(--surface-soft) 75%);background-size:200% 100%;border-radius:4px;width:clamp(120px,18vw,220px);height:21px;animation:1.4s ease-in-out infinite data-state-shimmer;display:block}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:4px;display:flex;overflow-x:auto}.tab{height:30px;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;padding:0 14px;font-weight:700;text-decoration:none;transition:background .18s cubic-bezier(.2,.8,.2,1),color .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1);display:inline-flex}.tab:hover:not(:disabled){background:var(--surface-soft);color:var(--text);transform:translateY(-1px)}.tab.is-active{background:var(--text);color:#fff;box-shadow:0 5px 14px #17211c29}.pill-toggle{background:var(--brand-hover);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:inline-grid;position:relative}.pill-toggle:before{content:"";background:var(--surface);border-radius:999px;width:calc(50% - 3px);height:calc(100% - 6px);transition:transform .26s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #17211c2e}.pill-toggle.is-second:before{transform:translate(100%)}.pill-toggle-btn{z-index:1;color:#fff;background:0 0;border:0;border-radius:999px;height:30px;padding:0 14px;font-weight:700;transition:color .2s cubic-bezier(.2,.8,.2,1);position:relative}.pill-toggle-btn.is-active{color:var(--brand-hover)}.pill-toggle-btn:hover:not(:disabled){color:#fff;background:0 0}.pill-toggle-btn.is-active:hover:not(:disabled){color:var(--brand-hover)}@media (prefers-reduced-motion:reduce){.pill-toggle:before,.pill-toggle-btn{transition:none}}.stale-dot{background:var(--amber-soft);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.pill-toggle-btn.is-active .stale-dot{background:var(--amber)}.preview-note{border-radius:var(--radius);background:var(--blue-soft);color:var(--blue);padding:8px 12px;font-size:12px;font-weight:600}.tab-panel{will-change:opacity, transform;gap:14px;animation:.22s cubic-bezier(.2,.8,.2,1) both tabPanelEnter;display:grid}@keyframes tabPanelEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.tab,.tab-panel{transition:none;animation:none;transform:none}}.section-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.section-kicker{color:var(--muted);margin-top:4px;font-size:12px;font-weight:500}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.summary-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:118px;box-shadow:var(--shadow);padding:16px}.summary-card.primary{color:#fff;background:#16211c;border-color:#16211c}.summary-card.green{background:var(--green-soft);border-color:#cbe7da}.summary-card.blue{background:var(--blue-soft);border-color:#ccdaf0}.summary-card.amber{background:var(--amber-soft);border-color:#f1dcb6}.summary-label{color:inherit;opacity:.72;font-size:13px;font-weight:700}.summary-value{overflow-wrap:anywhere;margin-top:8px;font-size:clamp(22px,2.6vw,32px);font-weight:700;line-height:1.1;display:block}.summary-meta{color:inherit;opacity:.7;margin-top:8px;font-size:12px;font-weight:500}.overview-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.custom-scenario-card{gap:14px;display:grid}.scenario-section-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:inline-flex}.scenario-base-year{color:var(--muted);letter-spacing:0;font-size:11px;font-weight:600}.capacity-input-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.capacity-field{gap:6px;display:grid}.capacity-field label{color:var(--muted);font-size:12px;font-weight:600}.capacity-input{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:6px;padding:7px 10px;display:flex}.capacity-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.capacity-input input{width:100%;color:var(--text);background:0 0;border:0;padding:0;font-size:16px;font-weight:700}.capacity-input input:focus{outline:none}.capacity-input input:disabled{color:var(--muted)}.capacity-unit{color:var(--muted);font-size:12px;font-weight:600}.recommendation-stale{border-radius:var(--radius);background:var(--amber-soft);color:var(--amber);margin-bottom:10px;padding:8px 12px;font-size:12px;font-weight:600}.control-stack{gap:14px;display:grid}.target-preset-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.target-chip{border-color:var(--line-strong);background:var(--surface);height:30px;color:var(--text);border-radius:999px;padding:0 12px}.target-chip.is-active{border-color:var(--brand);background:var(--brand);color:#fff}.segmented-field{grid-column:1/-1}.horizon-field{gap:8px}.horizon-auto-chip{width:100%;font-size:12px}.horizon-auto-chip:disabled{cursor:default;opacity:1;border-color:var(--line-strong);background:var(--surface-soft);color:var(--muted)}.horizon-state{color:var(--muted);font-size:11px;font-weight:600;display:block}.computed-field-label{gap:2px;display:grid}.computed-field-label small{color:var(--muted);font-size:10px;font-weight:600}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.segmented-control .target-chip{width:100%}.inline-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.control-extra-details-body{gap:14px;display:grid}.contract-empty{border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-soft);color:var(--muted);text-align:center;margin:0;padding:18px 12px}.recommendation-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;display:grid}.recommendation-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;height:auto;min-height:auto;color:var(--text);text-align:left;white-space:normal;box-shadow:var(--shadow);align-items:stretch;gap:10px;padding:14px;line-height:1.4;display:grid}.recommendation-card:hover:not(:disabled){background:var(--surface-soft);border-color:var(--line-strong)}.recommendation-card:disabled{opacity:.6;cursor:not-allowed}.recommendation-card.is-active{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.control-drawer-backdrop{z-index:30;opacity:0;pointer-events:none;background:#17211c2e;justify-content:flex-end;transition:opacity .16s;display:flex;position:fixed;inset:0}.control-drawer-backdrop.is-open{opacity:1;pointer-events:auto}.control-drawer{background:var(--surface);border-left:1px solid var(--line);width:min(560px,100vw - 18px);height:100%;padding:18px;transition:transform .18s;overflow-y:auto;transform:translate(100%);box-shadow:-18px 0 40px #17211c29}.control-drawer-backdrop.is-open .control-drawer{transform:translate(0)}.control-drawer-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.control-drawer-head p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.45}.control-drawer-heading{align-items:flex-start;gap:8px;min-width:0;display:flex}.control-drawer-heading-text{min-width:0}.control-drawer-heading-text h2{overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;display:flex}.control-drawer-back{border-color:var(--line-strong);background:var(--surface);width:28px;height:28px;color:var(--text);flex:none;padding:0;font-size:18px;line-height:1}.control-drawer-close{border-color:var(--line-strong);background:var(--surface);width:32px;height:32px;color:var(--text);padding:0;font-size:18px;line-height:1}.control-drawer-tabs{gap:8px;margin-bottom:14px;display:flex}.control-drawer-tabs .target-chip{flex:1}.advanced-toggle-row{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.advanced-hint{overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.month-scale-grid{margin-top:10px}.contract-row.is-inactive .contract-row-main{opacity:.45}.control-drawer-body{gap:12px;padding-bottom:8px;display:grid}.control-drawer-body .panel.control-stack{border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;background:var(--surface);padding:14px}.control-drawer-footer{border-top:1px solid var(--line);background:linear-gradient(180deg, #ffffffe0, var(--surface) 36%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:flex-end;gap:8px;margin:16px -18px -18px;padding:12px 18px 18px;display:flex;position:sticky;bottom:-18px}.control-drawer:not(.data-drawer) .control-drawer-footer{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:6px;padding-top:10px;display:grid}.drawer-footer-actions,.control-drawer-footer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;width:100%;display:flex}.control-drawer:not(.data-drawer) .control-drawer-footer-actions{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr)) max-content;gap:6px;min-width:0;display:grid}.control-drawer:not(.data-drawer) .control-drawer-footer-actions:has(>button:nth-child(4)){grid-template-columns:repeat(3,minmax(0,1fr)) max-content}.control-drawer:not(.data-drawer) .control-drawer-footer-actions:not(:has(>button:nth-child(3))){grid-template-columns:minmax(0,1fr) max-content}.control-drawer-pending-row{color:var(--amber);white-space:nowrap;grid-column:1;justify-self:end;font-size:11px;font-weight:700;line-height:1.3}.control-drawer:not(.data-drawer) .control-drawer-footer-actions button{min-width:0;padding:0 8px;font-size:13px}.control-drawer:not(.data-drawer) .control-drawer-footer-actions .control-drawer-apply{min-width:max-content}.data-drawer{width:min(720px,100vw - 18px)}.data-drawer-body,.data-tab{gap:12px;display:grid}.data-source-panel,.data-org-section,.data-current-summary{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;padding:14px;display:grid}.data-source-panel h3,.data-org-section h3{margin:0}.data-source-help,.data-section-heading p,.data-date-help{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.data-storage-actions{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.data-storage-actions span{min-width:0;color:var(--muted);font-size:11px;line-height:1.4}.data-collection-fields{min-width:0}.data-date-help,.data-alias-field{grid-column:1/-1}.data-progress{gap:5px;margin-top:2px;display:grid}.data-progress-head{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.data-progress-track{border:1px solid var(--line);background:var(--surface-soft);border-radius:4px;height:8px;overflow:hidden}.data-progress-track>div{background:var(--green);height:100%;transition:width .3s}.data-fetch-error{margin-top:0}.data-section-heading{gap:2px;display:grid}.org-selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.org-region-field{grid-column:1/-1}.org-actions{justify-content:flex-start;margin-top:0}.data-org-section>.org-actions{grid-column:1/-1}.data-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.data-details{border-top:1px solid var(--line);min-width:0;padding-top:10px}.data-details summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:700}.drawer-switcher{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);align-items:center;gap:6px;min-width:0;padding:4px;display:flex}.drawer-switcher button,.drawer-switcher .target-chip{border-radius:var(--radius);min-width:0;height:36px;color:var(--muted);background:0 0;border-color:#0000;flex:1 1 0}.drawer-switcher button.is-active,.drawer-switcher button[aria-selected=true],.drawer-switcher button.is-active:hover:not(:disabled),.drawer-switcher button[aria-selected=true]:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface);color:var(--text)}.drawer-details{min-width:0}.drawer-details-summary{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);cursor:pointer;width:100%;color:var(--text);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px;padding:10px 12px;font-size:13px;font-weight:700;list-style:none;display:grid}.drawer-details-summary::-webkit-details-marker{display:none}.drawer-details[open]>.drawer-details-summary{border-radius:var(--radius) var(--radius) 0 0}.drawer-details-summary-values{color:var(--muted);overflow-wrap:anywhere;font-size:11px;font-weight:500;line-height:1.35}.drawer-details-summary-copy{gap:3px;min-width:0;display:grid}.drawer-details-toggle{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.drawer-details-toggle>span:before{content:"펼치기"}.drawer-details[open] .drawer-details-toggle>span:before{content:"접기"}.drawer-details-toggle svg{width:16px;height:16px;transition:transform .15s}.drawer-details[open] .drawer-details-toggle svg{transform:rotate(180deg)}.drawer-details-body{border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:var(--surface);border-top:0;min-width:0;margin:0;padding:12px}.data-monthly-detail{grid-column:1/-1}.org-name-actions button{height:32px;padding:0 10px;font-size:12px}.org-name-actions input{height:32px}.recommendation-card h3{margin:0;font-size:15px}.recommendation-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.scenario-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.scenario-stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);gap:3px;padding:8px;display:grid}.scenario-stat span{color:var(--muted);font-size:12px;font-weight:700}.scenario-stat b{overflow-wrap:anywhere;font-size:13px}.scenario-capacity{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:12px;font-weight:600;display:flex}.scenario-capacity span{background:var(--bg);border-radius:999px;padding:3px 7px}.cost-comparison{gap:12px;display:grid}.cost-comparison .section-head{align-items:flex-start}.cost-comparison .section-head>.pill-toggle{align-self:center}.cost-bar-row{gap:6px;display:grid}.cost-bar-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cost-bar-copy{gap:3px;min-width:0;display:grid}.cost-bar-label{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.cost-bar-desc{color:var(--muted);font-size:11px;line-height:1.35}.cost-bar-value{text-align:right;flex:none;font-size:13px;font-weight:700}.cost-comparison.is-summary .cost-bar-value{font-size:13px;line-height:1.1}.scenario-tab-panel .cost-comparison.is-summary .cost-bar-value{font-size:clamp(18px,2vw,24px)}.value-tone-good{color:var(--green)}.value-tone-bad{color:var(--red)}.value-tone-neutral{color:var(--muted)}.cost-bar-track{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;height:12px;overflow:hidden}.cost-bar-fill{background:var(--blue);border-radius:999px;height:100%}.cost-bar-fill.pp{background:var(--brand)}.cost-formula{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);color:var(--muted);gap:3px;margin-top:2px;padding:8px 10px;font-size:11px;line-height:1.45;display:grid}.cost-formula-label{color:var(--text);font-weight:700}.cost-formula-text{overflow-wrap:anywhere}.cost-detail-grid,.cost-breakdown-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.info-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.info-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);min-width:0;padding:10px}.info-item span{color:var(--muted);font-size:12px;font-weight:700;display:block}.info-item b{overflow-wrap:anywhere;margin-top:4px;font-size:13px;line-height:1.25;display:block}.month-selector{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.month-selector-label{color:var(--muted);margin-right:4px;font-size:12px;font-weight:700}.month-chip{border-color:var(--line-strong);background:var(--surface);height:30px;color:var(--text);border-radius:999px;padding:0 12px;font-size:12px}.month-chip:hover:not(:disabled){border-color:var(--muted);background:var(--surface-soft)}.month-chip.is-active,.month-chip.is-active:hover:not(:disabled){border-color:var(--text);background:var(--text);color:#fff}.month-detail-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.usage-heatmap{gap:8px;width:100%;display:grid;position:relative}.heatmap-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:11px;font-weight:700;display:flex}.heatmap-legend-item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.heatmap-legend-swatch{border:1px solid #17211c1f;border-radius:3px;width:18px;height:10px}.heatmap-grid{grid-template-columns:42px repeat(12,minmax(0,1fr));align-items:stretch;gap:3px;display:grid;position:relative}.heatmap-axis{min-height:18px;color:var(--muted);place-items:center;font-size:10px;font-weight:700;display:grid}.heatmap-cell{border:1px solid #17211c1a;border-radius:4px;min-height:18px}.heatmap-selection-band{pointer-events:none;z-index:3;border:2px solid #17211cb8;border-radius:6px;box-shadow:inset 0 0 0 1px #ffffffb8}.heatmap-tooltip{z-index:5;pointer-events:none;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.contract-editor{gap:10px;min-width:0;display:grid}.contract-list{gap:6px;width:100%;min-width:0;margin:0;padding:0;list-style:none;display:grid}.contract-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:center;gap:6px;min-width:0;padding:0 6px;display:flex}.contract-row-active{flex:none;align-items:center;display:flex}.contract-row-main{min-width:0;height:38px;color:var(--text);text-align:left;background:0 0;border:none;border-radius:6px;flex:auto;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1.1fr) 14px;align-items:center;gap:8px;padding:0 4px;font-size:12px;font-weight:400;display:grid}.contract-row-main:hover:not(:disabled){background:var(--surface-soft);border-color:#0000}.contract-row-main>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.contract-row-name{font-weight:600}.contract-row-type,.contract-row-mw,.contract-row-term,.contract-row-price{color:var(--muted)}.contract-row-go{color:var(--muted);text-align:right;font-size:16px}.contract-detail{gap:12px;min-width:0;display:grid}.contract-type-badge{border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:600}.contract-detail-group{gap:8px;min-width:0;display:grid}.contract-detail-group h4{color:var(--muted);margin:0;font-size:12px;font-weight:600}.contract-detail-actions{justify-content:flex-end;display:flex}.contract-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.contract-summary{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:12px;font-weight:600;display:flex}.contract-summary span{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:4px 8px}.contract-phase-summary{color:var(--muted);font-size:12px;font-weight:600}.cost-detail{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft);padding:10px}.cost-detail-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cost-detail-label{color:var(--muted);font-size:12px;font-weight:700}.cost-detail b{margin-top:4px;font-size:16px;display:block}.cost-detail-desc{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.35}.guide-tooltip-wrap{flex:none;align-items:center;margin-left:4px;display:inline-flex;position:relative}.guide-tooltip-trigger{border:1px solid var(--line-strong);background:var(--surface);width:18px;min-width:18px;height:18px;color:var(--muted);cursor:help;border-radius:50%;place-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.guide-tooltip-wrap:hover .guide-tooltip-trigger{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.guide-tooltip-panel{z-index:8;border:1px solid var(--line-strong);border-radius:var(--radius);width:min(260px,72vw);color:var(--text);opacity:0;visibility:hidden;pointer-events:none;background:#fffffffa;padding:10px 12px;font-size:12px;font-weight:500;line-height:1.45;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px);box-shadow:0 8px 24px #17211c24}.guide-tooltip-wrap:hover .guide-tooltip-panel{opacity:1;visibility:visible;transform:translateY(0)}.control-drawer .field{position:relative}.control-drawer .guide-tooltip-wrap{position:static}.control-drawer .guide-tooltip-panel{width:auto;left:0;right:0}.slider-head label{white-space:pre-line}.yearly-detail-table{border:1px solid var(--line);border-radius:var(--radius);max-width:100%;max-height:min(22rem,40vh);margin-top:12px;position:relative;overflow:auto}.yearly-detail-table table{border:0;width:100%;min-width:760px}.scenario-tab-panel .section-head{margin-bottom:8px}.scenario-tab-panel .custom-scenario-card{gap:10px}.scenario-tab-panel .custom-scenario-card .section-kicker{margin-top:2px}.scenario-tab-panel .chart{height:auto;min-height:0;padding:14px 16px 12px}.scenario-tab-panel .chart-title-row{margin-bottom:10px}.scenario-tab-panel .chart.chart-wide{height:auto}.scenario-tab-panel .chart .svg-chart-wrap{height:clamp(220px,24vw,292px)}.scenario-tab-panel .chart.chart-wide .svg-chart-wrap{height:clamp(240px,28vw,320px)}.scenario-tab-panel .usage-renewable-chart-wrap{height:clamp(240px,28vw,320px);min-height:0}.scenario-tab-panel .yearly-detail-table th{z-index:2;background:var(--bg);position:sticky;top:0}.scenario-tab-panel .yearly-detail-table th:first-child,.scenario-tab-panel .yearly-detail-table td:first-child{z-index:3;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.scenario-tab-panel .yearly-detail-table th:first-child{z-index:4;background:var(--bg)}.form-actions{justify-content:flex-start;margin-top:12px}.page-loading-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f4f6f5b8;place-items:center;display:grid;position:fixed;inset:0}.page-loading-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:center;justify-items:center;gap:10px;width:min(320px,100vw - 32px);padding:22px;display:grid;box-shadow:0 14px 34px #17211c24}.page-loading-card b{font-size:15px;font-weight:700}.page-loading-card span{color:var(--muted);font-size:12px;font-weight:600}.loading-spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1100px){.summary-grid,.metrics,.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}}@media (max-width:760px){header{flex-direction:column;align-items:flex-start;padding:12px;display:flex}main{padding:10px}.grid2,.grid3,.chart-grid,.summary-grid,.metrics,.info-grid,.inline-fields,.scenario-stats,.cost-detail-grid,.month-detail-grid,.capacity-input-grid,.data-state-skeletons{grid-template-columns:1fr}.toolbar{justify-content:flex-start}.header-toolbar{width:100%}.header-toolbar-actions,.header-status-row{justify-content:flex-start}.data-core-grid{grid-template-columns:1fr}:is(.control-drawer:not(.data-drawer) .control-drawer-footer-actions,.control-drawer:not(.data-drawer) .control-drawer-footer-actions:has(>button:nth-child(4)),.control-drawer:not(.data-drawer) .control-drawer-footer-actions:not(:has(>button:nth-child(3)))){grid-template-columns:repeat(2,minmax(0,1fr))}.control-drawer:not(.data-drawer) .control-drawer-footer-actions .control-drawer-apply{grid-column:1/-1;min-width:0}.tabs{width:100%}.tab{flex:none}.section-head{flex-direction:column;align-items:flex-start}.heatmap-grid{grid-template-columns:34px repeat(12,minmax(14px,1fr));gap:2px}.heatmap-axis{font-size:9px}.heatmap-cell{min-height:14px}}.contract-conditions{border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius);background:var(--brand-soft);padding:12px 14px}.contract-conditions .inline-fields{gap:12px}.contract-conditions .muted{grid-column:1/-1;margin:4px 0 0;font-size:12px}.section-label{margin:18px 0 8px}.section-label h3{margin:0}.section-label p{margin:2px 0 0;font-size:12px}.contract-timeline{margin:12px 0 16px}.contract-timeline-head{opacity:.7;justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.contract-timeline-body{background:#00000005;border:1px solid #0000001f;border-radius:8px;padding:8px;position:relative}.contract-timeline-row{height:26px;margin-bottom:6px;position:relative}.contract-timeline-row:last-child{margin-bottom:0}.contract-timeline-bar{white-space:nowrap;color:#04342c;background:#9fe1cb;border-radius:4px;height:26px;padding:0 8px;font-size:12px;line-height:26px;position:absolute;top:0;overflow:hidden}.contract-timeline-bar.type-wind{color:#042c53;background:#b5d4f4}.contract-timeline-bar.type-vppa{color:#26215c;background:#cecbf6}.contract-timeline-bar.type-self{color:#2c2c2a;background:#d3d1c7}.contract-timeline-bar.is-inactive{opacity:.45}.contract-timeline-bar.overflows-right{border-right:3px dashed #00000073;border-top-right-radius:0;border-bottom-right-radius:0}.contract-timeline-bar.starts-before{border-left:3px dashed #00000073;border-top-left-radius:0;border-bottom-left-radius:0}.contract-timeline-target{z-index:1;background:#00000080;width:2px;position:absolute;top:0;bottom:0}
