:root{--topbar-height: 56px;--sidebar-width: 260px;--primary: #d97706;--primary-600: #b45309;--bg: #f6f7fb;--surface: #ffffff;--text: #1f2430;--muted: #65708a;--border: #e6e8ef}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,Noto Sans,sans-serif;color:var(--text);background:var(--bg)}.topbar{position:sticky;top:0;height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;z-index:10;background:linear-gradient(135deg,#b45309,#d97706,#f59e0b 80%,#fbbf24);border-bottom:none;padding:0 20px;color:#fff;box-shadow:0 4px 20px #b4530959,0 1px 3px #0000001a}.topbar-left{display:flex;align-items:center;gap:0}.brand-cn{font-size:17px;font-weight:700;letter-spacing:.5px;color:#fff;white-space:nowrap}.topbar-btn{width:36px;height:36px;min-width:36px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:#ffffff1a;color:#ffffffe6;cursor:pointer}.topbar-btn:hover{background:#ffffff38;border-color:#ffffff59}.topbar-btn[title=通知]{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;border-radius:8px;pointer-events:none;box-sizing:border-box}.avatar{width:34px;height:34px;border-radius:10px;border:2px solid rgba(255,255,255,.4)}.layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr}.sidebar{position:sticky;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));background:var(--surface);border-right:1px solid var(--border);overflow:auto}.menu{list-style:none;margin:0;padding:12px}.menu-item,.menu-toggle,.submenu a{display:flex;align-items:center;gap:10px;width:100%;text-align:left;text-decoration:none;color:var(--text)}.menu-item{padding:10px 12px;border-radius:8px}.menu-item.active,.menu-item:hover{background:#d9770614;color:var(--primary)}.menu-toggle{padding:10px 12px;border:none;background:transparent;cursor:pointer;border-radius:8px}.menu-group.open>.menu-toggle{color:var(--primary);background:#d977060f}.submenu{list-style:none;margin:4px 0 8px;padding-left:8px;display:none}.menu-group.open>.submenu{display:block}.submenu a{padding:8px 12px;border-radius:8px;color:var(--muted)}.submenu a:hover{background:#f5f7fb;color:var(--primary-600)}.main{padding:16px 20px;max-width:100%;overflow-x:auto}.breadcrumb{color:var(--muted);margin-bottom:12px}.content{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;max-width:100%}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;min-height:80px}.analysis-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;align-items:end;margin-bottom:12px}.analysis-controls .form-group{margin:0;position:relative}.analysis-field{min-width:220px}.multi-plant-select{position:relative;width:100%}.multi-plant-select #anaCustomersMultiDropdown{width:100%}.multi-selected-row{display:none;align-items:flex-start;gap:12px;margin-bottom:12px}.multi-selected-row label{font-size:13px;color:#475569;min-width:70px;line-height:32px}.multi-selected-chips{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px;padding:8px;min-height:40px;border:1px dashed #cdd6e3;border-radius:8px;background:#f9fbff;flex:1}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#e2e8f0;color:#1f2937;font-size:12px;line-height:1}.chip-remove{border:none;background:transparent;color:#64748b;font-size:14px;cursor:pointer;line-height:1}.chip-remove:hover{color:#ef4444}.chip-placeholder{font-size:12px;color:#9aa4b2}.analysis-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;grid-column:1 / -1}.analysis-actions>*{flex:none}.analysis-export{position:relative}.analysis-export #exportMenu{position:absolute}.analysis-chart{width:100%;min-height:360px;background:#f8f9fc;border-radius:12px;padding:8px}.kpi-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.kpi{background:linear-gradient(180deg,#fff,#f9fbff);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:0 2px 8px #0966ff0f;transition:transform .15s ease,box-shadow .15s ease}.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0966ff1f}.kpi .top{display:flex;align-items:center;justify-content:space-between}.kpi .icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#eef4ff;color:#0a56d6;font-size:16px;font-weight:700}.kpi .label{color:var(--muted);font-size:12px;letter-spacing:.2px}.kpi .value{font-size:26px;font-weight:800;margin-top:8px;color:#0a56d6}.kpi .meta{margin-top:8px;display:flex;gap:10px;color:#65708a;font-size:12px}.kpi .delta{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#f1f3f5}.kpi .delta-up{background:#e6f4ea;color:#1e8e3e}.kpi .delta-down{background:#fdeaea;color:#d93025}.kpi-lite{padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#f9fafb,#fff);display:flex;flex-direction:column;gap:2px}.kpi-lite .label{font-size:12px;color:#6b7280}.kpi-lite .value{font-size:20px;font-weight:700;color:#0f172a}.kpi-lite .sub{font-size:11px;color:#9ca3af}.table{width:100%;border-collapse:collapse;margin-top:12px;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.table thead th{background:#f8f9fc;color:var(--muted);font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.table tbody td{padding:10px 12px;border-bottom:1px solid var(--border)}.table tbody tr:hover{background:#fafbff}.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn.primary{background:#007bff;color:#fff}.btn.primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover{background:#e0a800}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-sm{padding:4px 8px;font-size:12px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-content.curve-modal{max-width:1000px;width:95%;max-height:95vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;font-size:18px;font-weight:600}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#495057}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #e9ecef}.modal-large{max-width:800px;width:90%}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#495057}.form-control{width:100%;padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;transition:border-color .15s ease-in-out}.form-control:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.trading-table{width:100%;border-collapse:collapse;font-size:12px}.trading-table th,.trading-table td{padding:8px;text-align:center;border:1px solid #dee2e6}.trading-table th{background:#f8f9fa;font-weight:600}.buy-direction{color:#dc3545;font-weight:600}.sell-direction{color:#28a745;font-weight:600}.status-pending{color:#ffc107;font-weight:600}.status-filled{color:#28a745;font-weight:600}.text-muted{color:#6c757d}.auction-stats-compact{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat-item-compact{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;padding:16px;text-align:center;box-shadow:0 4px 15px #667eea4d}.stat-item-compact .stat-label{display:block;font-size:14px;opacity:.9;margin-bottom:8px;color:#fff!important}.stat-item-compact .stat-value{display:block;font-size:18px;font-weight:700;color:#fff!important}.auction-main-content{display:grid;grid-template-columns:5fr 1fr;gap:12px;margin-top:20px}.auction-filters{display:flex;gap:16px;align-items:center;margin-bottom:16px;padding:12px;background:#f8f9fc;border-radius:8px;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:4px;min-width:120px}.filter-group label{font-size:12px;color:#666;font-weight:500}.filter-group select{padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.auction-table{width:100%;border-collapse:collapse;font-size:14px}.auction-table th,.auction-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #e9ecef}.auction-table th{background:#f8f9fc;font-weight:600;color:#495057;cursor:pointer}.auction-table tbody tr:hover{background:#f8f9fc}.auction-direction{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600}.orderbook-table{width:100%;border-collapse:collapse;font-size:14px}.orderbook-table th,.orderbook-table td{padding:6px 8px;text-align:center;border-bottom:1px solid #e9ecef;font-size:13px}.orderbook-table th{background:#f8f9fc;font-weight:600;color:#495057}#auctionSellOrders td{background:#fff5f5!important}#auctionBuyOrders td{background:#e8f5e8!important}.highlight-sell{background:#ffcdd2!important;color:#c62828!important;font-weight:700}.highlight-buy{background:#c8e6c9!important;color:#2e7d32!important;font-weight:700}.sell-price{color:#d32f2f;font-weight:500}.buy-price{color:#2e7d32;font-weight:500}.trading-schedule{display:flex;gap:20px;margin-top:16px}.schedule-day{flex:1;border:1px solid #e1e5e9;border-radius:8px;padding:16px;background:#f8f9fa}.schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e1e5e9}.schedule-label{font-weight:600;color:#2c3e50;font-size:16px}.schedule-date{color:#65708a;font-size:14px}.schedule-markets{display:flex;flex-direction:column;gap:8px}.market-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e1e5e9}.market-name{font-weight:500;color:#2c3e50}.market-time{color:#65708a;font-size:13px}.market-status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.market-status.active{background:#d4edda;color:#155724}.market-status.upcoming{background:#fff3cd;color:#856404}.market-status.available{background:#cce5ff;color:#004085}.calendar-toolbar{display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:12px!important;padding:12px!important;background:#f8f9fc!important;border-radius:8px!important;border:1px solid #e9ecef!important}.calendar-nav{display:flex!important;align-items:center!important;gap:16px!important;justify-content:center!important}.cal-legend{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:12px;padding:8px;background:#f8f9fc;border-radius:8px;border:1px solid #e9ecef}.calendar-nav .cal-title{font-weight:700!important;color:#2c3e50!important;font-size:16px!important;min-width:120px!important;text-align:center!important}.calendar-nav .btn{padding:8px 16px!important;border:1px solid #ced4da!important;border-radius:8px!important;background:#fff!important;color:#495057!important;cursor:pointer;font-weight:500;transition:all .2s;box-shadow:0 2px 4px #0000001a}.calendar-nav .btn:hover{background:#007bff!important;color:#fff!important;border-color:#007bff!important;transform:translateY(-1px);box-shadow:0 4px 8px #007bff4d}.badge{display:inline-block;padding:2px 6px;border-radius:10px;font-size:12px;color:#fff}.badge-month{background:#7b1fa2}.badge-week{background:#1976d2}.badge-rolling{background:#ff9800}.badge-listing{background:#009688}.badge-spot{background:#ef5350}.cal-tags{display:flex;flex-wrap:wrap;gap:4px}.calendar-grid{display:grid!important;grid-template-columns:repeat(7,1fr);gap:8px;background:transparent}.cal-cell{min-height:90px;border:1px solid #e9ecef;border-radius:8px;padding:8px;background:#fff;display:flex!important;flex-direction:column}.cal-cell.empty{background:transparent;border:none}.calendar-grid,#ltCalendar{min-height:360px}.cal-day{font-weight:600;color:#495057;margin-bottom:6px}.btn-outline-secondary{background:transparent;color:#6c757d;border:1px solid #6c757d;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px}.btn-outline-secondary:hover{background:#6c757d;color:#fff}.btn-link{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.btn-link:hover{color:#0056b3;text-decoration:none}.curve-modal{border-radius:16px;box-shadow:0 20px 60px #00000026}.curve-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:24px 32px;border-bottom:none}.curve-title-section h3{margin:0 0 8px;font-size:24px;font-weight:700;color:#fff}.curve-subtitle{font-size:16px;opacity:.9;font-weight:500}.curve-body{padding:32px;background:#fafbfc;max-height:calc(95vh - 200px);overflow-y:auto}.curve-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}.info-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 12px #0000000d;border:1px solid #e9ecef;transition:all .3s ease}.info-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a}.info-icon{font-size:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border-radius:12px}.info-content{flex:1}.info-label{font-size:12px;color:#65708a;font-weight:500;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:16px;font-weight:600;color:#2c3e50}.curve-charts-container{background:#fff;border-radius:16px;padding:24px;margin-bottom:32px;box-shadow:0 4px 12px #0000000d;border:1px solid #e9ecef}.chart-tabs{display:flex;gap:8px;margin-bottom:24px;background:#f8f9fc;padding:6px;border-radius:12px}.chart-tab{flex:1;background:transparent;border:none;padding:16px 20px;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:4px}.chart-tab:hover{background:#667eea1a}.chart-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.tab-icon{font-size:20px}.tab-text{font-size:14px;font-weight:600}.tab-desc{font-size:12px;opacity:.8}.chart-content{position:relative;background:#fafbfc;border-radius:12px;padding:16px}.curve-description{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 12px #0000000d;border:1px solid #e9ecef}.description-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f0f4ff}.description-header h4{margin:0;font-size:18px;font-weight:600;color:#2c3e50}.description-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 16px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.description-content p{margin:0;line-height:1.6;color:#495057;font-size:14px}.curve-footer{background:#f8f9fc;padding:20px 32px;border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end}.curve-footer .btn{padding:12px 24px;border-radius:8px;font-weight:600;transition:all .3s ease}.curve-footer .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.curve-footer .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #667eea66}.curve-footer .btn-secondary{background:#fff;border:1px solid #e9ecef;color:#495057}.curve-footer .btn-secondary:hover{background:#f8f9fc;border-color:#d1d5db}.bilateral-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-item-large{text-align:center;padding:14px 12px;border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff)}.stat-item-large .stat-label{display:block;font-size:12px;color:#637a93;margin-bottom:4px}.stat-item-large .stat-value-large{display:block;font-size:28px;font-weight:760;letter-spacing:-.02em;line-height:1.2;color:#0f172a}.stat-item-large .stat-percentage{display:block;margin-top:4px;font-size:11.5px;color:#5f7791}.bilateral-shell{display:flex;flex-direction:column;gap:14px}.bilateral-shell .bilateral-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.bilateral-shell .bilateral-card-header{height:46px;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.bilateral-shell .bilateral-card-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:10px;min-width:0}.bilateral-shell .bilateral-card-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.bilateral-shell .bilateral-module-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.bilateral-year-control{display:inline-flex;align-items:center;gap:8px}.bilateral-year-control label{font-size:12px;color:#5f7188;font-weight:600;white-space:nowrap}.bilateral-year-control .form-control{min-width:118px;height:30px;padding:4px 30px 4px 10px;border-radius:8px}.bilateral-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.bilateral-progress-wrap{margin:0 12px 6px;border:1px solid #d9e6f4;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);padding:8px 10px}.bilateral-progress-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:#5f7791;margin-bottom:6px}.bilateral-progress-head strong{font-size:12px;color:#0f172a}.bilateral-progress-track{width:100%;height:5px;border-radius:999px;background:#e5edf7;overflow:hidden}.bilateral-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#2dd4bf,#22c55e 55%,#16a34a);border-radius:999px;transition:width .28s ease}.bilateral-shell .stat-item-compact{text-align:left;border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);box-shadow:none;color:#0f172a;padding:11px 12px;min-height:88px}.bilateral-shell .stat-item-compact .stat-label{display:block;font-size:12px;color:#617892!important;margin-bottom:6px;font-weight:600}.bilateral-shell .stat-item-compact .stat-value{display:block;font-size:28px;font-family:var(--font-number);line-height:1.1;letter-spacing:-.01em;color:#0f172a!important}.bilateral-shell .stat-item-compact .stat-meta{display:block;margin-top:3px;font-size:11.5px;color:#607991}.bilateral-shell .stat-item-compact.stat-total .stat-value,.bilateral-shell .stat-item-compact.stat-total .stat-meta{color:#0c4a6e!important}.bilateral-shell .stat-item-compact.stat-declared .stat-value,.bilateral-shell .stat-item-compact.stat-declared .stat-meta{color:#075985!important}.bilateral-shell .stat-item-compact.stat-remaining .stat-value,.bilateral-shell .stat-item-compact.stat-remaining .stat-meta{color:#9a3412!important}.bilateral-monthly-chart{height:308px;padding:0 10px 8px}.bilateral-contract-card .contract-table-container{padding:0 12px 12px;overflow-x:auto}.bilateral-contract-actions{display:inline-flex;align-items:center;gap:8px}.bilateral-contract-count{display:inline-flex;align-items:center;border:1px solid #d6e4f3;border-radius:999px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);color:#48617d;font-size:10.5px;font-weight:650;min-height:24px;padding:3px 9px;line-height:1}.bilateral-table-tools{display:flex;align-items:flex-end;gap:10px;padding:10px 12px}.bilateral-table-tools .tool-item{display:inline-flex;flex-direction:column;gap:4px}.bilateral-table-tools .tool-item label{font-size:11.5px;color:#688099;font-weight:600}.bilateral-table-tools .tool-item .form-control{height:32px;min-width:200px}.bilateral-table-tools .tool-item.tool-type .form-control{min-width:120px}.contract-table{width:100%;min-width:1020px;border-collapse:separate;border-spacing:0;font-size:13px}.contract-table th,.contract-table td{text-align:left;padding:11px 10px;border-bottom:1px solid #e4edf7;color:#334155;vertical-align:middle}.contract-table th{position:sticky;top:0;background:#f3f8ff;color:#526a86;font-weight:650;z-index:1;white-space:nowrap}.contract-table tbody tr:hover{background:#f8fbff}.contract-table td:last-child{white-space:nowrap}.contract-table td .btn{height:28px;padding:0 9px;font-size:12px;border-radius:7px}.contract-table td .btn+.btn{margin-left:6px}.contract-type{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650;border:1px solid #d4e4f4;color:#4b6380;background:#f5f9ff}.contract-type.type-year{border-color:#bad8fa;color:#175ea8;background:#eaf3ff}.contract-type.type-month{border-color:#d6c6f3;color:#6f42c1;background:#f4efff}.contract-type.type-time{border-color:#bee8cf;color:#1f8a5c;background:#eafaf0}.contract-type.type-default{border-color:#d4e4f4;color:#4b6380;background:#f5f9ff}.contract-empty-row td{text-align:center;color:#7a8fa8;padding:20px 10px;background:#fbfdff}.bilateral-form-modal{width:min(760px,92vw);max-width:760px}.bilateral-form-modal .modal-header h3{display:inline-flex;align-items:center;gap:8px}.bilateral-form-modal .modal-header h3:before{content:"";width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.bilateral-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.bilateral-form-grid .form-group{margin:0}.listing-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.listing-actions{display:flex;gap:12px;justify-content:center;margin-bottom:20px}.listing-table-container,.transaction-table-container{overflow-x:auto}.listing-table,.transaction-table{width:100%;border-collapse:collapse;font-size:14px}.listing-table th,.listing-table td,.transaction-table th,.transaction-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #e9ecef}.listing-table th,.transaction-table th{background:#f8f9fc;font-weight:600;color:#495057}.listing-table tbody tr:hover,.transaction-table tbody tr:hover{background:#f8f9fc}.countdown{font-size:12px;color:#ff6b6b;font-weight:500;margin-bottom:4px}.btn-xs{padding:2px 6px;font-size:11px;margin-left:4px}.btn-info{background:#17a2b8;color:#fff;border:none}.btn-info:hover{background:#138496}.transaction-status{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.status-picked{background:#d4edda;color:#155724}.status-reserved{background:#fff3cd;color:#856404}.status-sold{background:#cce5ff;color:#004085}.status-unsold{background:#f8d7da;color:#721c24}.reserved-status{display:inline-block;padding:4px 8px;background:#fff3cd;color:#856404;border-radius:12px;font-size:12px;font-weight:500}.pick-btn{background:#28a745!important;color:#fff!important;border:none!important;font-weight:600;box-shadow:0 2px 4px #28a7454d}.pick-btn:hover{background:#218838!important;box-shadow:0 4px 8px #28a74566}.trading-top-bar{display:flex;justify-content:flex-start;align-items:center;gap:20px;margin-bottom:16px;padding:16px 20px;background:linear-gradient(135deg,#f8f9fc,#fff);border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000000a}.trading-top-bar .date-picker{display:flex;align-items:center;gap:10px;flex-shrink:0}.trading-top-bar .date-picker label{font-weight:600;color:#374151;font-size:14px;white-space:nowrap;min-width:70px;display:flex;align-items:center;gap:6px}.trading-top-bar .date-picker input[type=date],.trading-top-bar .date-picker select{height:40px;min-width:200px;border:1.5px solid #d1d5db;border-radius:8px;padding:0 14px;font-size:14px;color:#1f2937;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px #0000000f;font-weight:500}.trading-top-bar .date-picker select{min-width:220px}.trading-top-bar .date-picker input[type=date]:focus,.trading-top-bar .date-picker select:focus{outline:none;border-color:#d97706;box-shadow:0 0 0 3px #0966ff1a}.trading-top-bar .date-picker input[type=date]:hover,.trading-top-bar .date-picker select:hover{border-color:#9ca3af}.trading-top-bar .date-picker select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px;appearance:none;-webkit-appearance:none;-moz-appearance:none}.trading-top-bar #loadBidsBtn{height:40px;padding:0 24px;font-weight:600;font-size:14px;border-radius:8px;transition:all .2s ease;box-shadow:0 2px 4px #00000014;background:#6b7280;border:none;color:#fff;display:flex;align-items:center;gap:6px}.trading-top-bar #loadBidsBtn:hover{background:#4b5563;transform:translateY(-1px);box-shadow:0 4px 8px #0000001f}.trading-top-bar #loadBidsBtn:active{transform:translateY(0);box-shadow:0 2px 4px #00000014}.trading-buttons{display:flex;gap:12px}.time-selector{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-bottom:12px}.time-btn{height:28px;border:1px solid #e9ecef;background:#fff;border-radius:6px;cursor:pointer;font-size:11px;transition:all .2s}.time-btn:hover{border-color:var(--primary);background:#f8f9fc}.time-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.orderbook{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:8px;margin-left:12px;width:200px;flex-shrink:0}.orderbook table{width:100%;border-collapse:collapse;font-size:11px}.orderbook th,.orderbook td{padding:3px 4px;text-align:center;border-bottom:1px solid #f0f0f0}.orderbook th{background:#f8f9fc;font-weight:600}.orderbook .buy-price{color:#f44336}.orderbook .sell-price{color:#4caf50}.orderbook tbody:nth-of-type(1) tr{background:#f0f8ff}.orderbook tbody:nth-of-type(2) tr{background:#fff5f5}.orderbook .highlight-sell,.orderbook .highlight-buy{font-weight:700;color:#d32f2f}.volume-chart{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:12px;margin-top:12px}.trading-info{margin-top:12px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.info-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:12px}.info-card h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#2c3e50;border-bottom:1px solid #f0f0f0;padding-bottom:6px}.info-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px}.info-item:last-child{margin-bottom:0}.info-item .label{color:#65708a;font-weight:500}.info-item .value{color:#2c3e50;font-weight:600}.info-item .value.buy-price{color:#f44336}.info-item .value.sell-price{color:#4caf50}.info-item .value.buy-volume{color:#f44336}.info-item .value.sell-volume{color:#4caf50}.deal-table-container{overflow-x:auto;margin-top:16px}.deal-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.deal-table th,.deal-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #e9ecef}.deal-table th{background:#f8f9fc;font-weight:600;color:#495057;text-align:center}.deal-table tbody tr:hover{background:#f8f9fc}.deal-table tbody tr:last-child td{border-bottom:none}.deal-direction{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600}.deal-direction.buy-direction{background:#d4edda;color:#155724}.deal-direction.sell-direction{background:#f8d7da;color:#721c24}.market-alerts{background:#fff;border:1px solid var(--border);border-radius:8px;margin-top:16px;overflow:hidden}.alerts-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fc;border-bottom:1px solid var(--border)}.alerts-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.alerts-count{font-size:13px;color:#65708a}.alerts-container{display:flex;flex-direction:column;gap:0;max-height:400px;overflow-y:auto}.alert-item{display:flex;align-items:flex-start;padding:14px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s;position:relative}.alert-item:last-child{border-bottom:none}.alert-item:hover{background-color:#f8f9fc}.alert-item.alert-urgent{border-left:3px solid #ff4d4f}.alert-item.alert-warning{border-left:3px solid #faad14}.alert-item.alert-info{border-left:3px solid #1890ff}.alert-item.alert-important{border-left:3px solid #722ed1}.alert-icon{font-size:24px;margin-right:12px;flex-shrink:0}.alert-content{flex:1;min-width:0}.alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.alert-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;background:#f0f0f0;color:#65708a}.alert-item.alert-warning .alert-type{background:#fff7e6;color:#d48806}.alert-item.alert-info .alert-type{background:#e6f7ff;color:#1890ff}.alert-item.alert-important .alert-type{background:#f9f0ff;color:#722ed1}.alert-time{font-size:12px;color:#8c8c8c}.alert-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.alert-desc{font-size:13px;color:#65708a;line-height:1.5}.alert-badge{position:absolute;top:14px;right:16px;padding:2px 8px;background:#ff4d4f;color:#fff;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.news-modules{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:12px}.news-module{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;min-height:500px}.news-module h3{margin:0;padding:12px 16px;background:#f8f9fc;border-bottom:1px solid var(--border);font-size:16px;font-weight:600;color:var(--text)}.module-content{padding:16px}.nengyi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.nengyi-desc{margin:0;color:#65708a;font-size:14px}.nengyi-filters{display:flex;gap:8px;margin-bottom:12px}.nengyi-list{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow-y:auto}.nengyi-item{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:#fff;box-shadow:0 2px 4px #0f20400a}.nengyi-item h4{margin:6px 0;font-size:16px}.nengyi-item p{margin:0 0 8px;color:#4a5568;line-height:1.6}.nengyi-meta{display:flex;gap:8px;font-size:12px;color:#65708a}.nengyi-type,.nengyi-tag{padding:2px 8px;border-radius:4px;background:#f0f5ff;font-weight:500}.nengyi-tag{background:#e1f5f0;color:#1f8a70}.nengyi-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#65708a}.btn-outline{border:1px solid var(--border);background:transparent;color:var(--text)}.weather-center-page{display:flex;flex-direction:column;gap:16px}.weather-hero{display:flex;justify-content:space-between;align-items:center;gap:24px}.weather-hero h1{margin:8px 0;font-size:26px}.weather-hero p{margin:0 0 12px;color:#4a5568}.weather-advice{margin:0;padding-left:18px;color:#65708a;line-height:1.6}.weather-hero-actions{display:flex;flex-direction:column;gap:8px;min-width:220px}.weather-kpi-card{padding:0}.weather-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border)}.weather-kpi-grid>div{padding:16px;background:#fff}.weather-kpi-grid label{display:block;font-size:13px;color:#65708a;margin-bottom:4px}.weather-kpi-grid span{font-size:20px;font-weight:600}.weather-panel .weather-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.weather-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.weather-card{padding:0}.weather-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.weather-chart{height:320px}.weather-warning-card .weather-warning-list{display:flex;flex-direction:column;gap:12px;padding:16px}.weather-warning-item{display:flex;justify-content:space-between;align-items:center;background:#f8f9fc;border-radius:8px;padding:12px 16px}.warning-title{font-weight:600;margin-bottom:4px}.warning-desc{color:#65708a;font-size:13px;margin:0}.warning-tag{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.warning-warning{background:#fff1f0;color:#cf1322}.warning-important{background:#fff7e6;color:#d46b08}.warning-info{background:#e6f7ff;color:#096dd9}.weather-forecast-card{padding-bottom:16px}.forecast-actions{display:flex;gap:8px;align-items:center}.weather-forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:16px}.forecast-item{border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,#f8fbff,#fff)}.forecast-date{display:flex;justify-content:space-between;font-size:13px;color:#65708a}.forecast-icon{font-size:32px;text-align:center}.forecast-temp{display:flex;justify-content:space-between;font-weight:600}.forecast-temp .high{color:#e76f51}.forecast-temp .low{color:#457b9d;font-size:14px}.forecast-rain{display:flex;justify-content:space-between;font-size:13px;color:#65708a}.forecast-rain strong{color:#1d4ed8}.forecast-wind{font-size:13px;color:#65708a}.forecast-advice{font-size:12px;color:#4a5568;line-height:1.4}.weather-satellite-card{padding-bottom:16px}.weather-card-desc{margin:4px 0 0;color:#65708a;font-size:13px}.sat-layer-buttons{display:flex;gap:8px}.sat-options{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}.sat-options label{display:flex;align-items:center;gap:6px;font-size:13px;color:#65708a}.sat-canvas-wrap{padding:16px;background:#0a1930}#wcSatelliteCanvas{width:100%;height:auto;border-radius:8px;border:1px solid rgba(255,255,255,.1);display:block}.sat-legend{display:flex;gap:16px;padding:0 16px 8px;font-size:12px;color:#65708a}.legend-box{display:inline-block;width:16px;height:8px;border-radius:2px;margin-right:4px}.legend-ir{background:linear-gradient(90deg,#010226,#e74c3c)}.legend-water{background:linear-gradient(90deg,#03203c,#6ee7b7)}.legend-visible{background:linear-gradient(90deg,#1b2735,#f0f0f0)}.news-tags{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tag-btn{padding:6px 12px;border:1px solid #e1e5e9;background:#fff;border-radius:16px;font-size:12px;cursor:pointer;transition:all .2s}.tag-btn:hover{border-color:var(--primary);color:var(--primary)}.tag-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.news-list{max-height:400px;overflow-y:auto}.news-item{padding:12px;border:1px solid #f0f0f0;border-radius:6px;margin-bottom:8px;cursor:pointer;transition:all .2s;background:#fff}.news-item:hover{border-color:var(--primary);background:#f8f9fc}.news-header{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.news-title{flex:1;font-size:14px;font-weight:500;color:#1f2430;line-height:1.4}.hot-icon{font-size:14px;flex-shrink:0}.news-meta{display:flex;gap:12px;font-size:12px;color:#65708a}.news-tag{background:#e3f2fd;color:#1976d2;padding:2px 6px;border-radius:4px}.news-modal{max-width:600px}.news-modal .news-meta{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e9ecef}.news-content{line-height:1.6;color:#1f2430}.market-info{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.market-item{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f8f9fc;border-radius:6px;border:1px solid #e1e5e9}.market-label{font-size:12px;color:#65708a}.market-value{font-size:16px;font-weight:600;color:#1f2430}.market-change{font-size:12px;font-weight:500}.market-change.positive{color:#16a34a}.market-change.negative{color:#dc2626}@media(max-width:768px){.market-info{grid-template-columns:1fr}}.province-selector{display:flex;align-items:center;gap:8px;margin-bottom:12px}.province-selector label{font-weight:500;color:#495057}.energy-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat-item{text-align:center;padding:12px;background:#f8f9fc;border-radius:6px}.stat-label{display:block;font-size:12px;color:#65708a;margin-bottom:4px}.stat-value{display:block;font-size:16px;font-weight:600;color:#1f2430}.weather-controls{display:flex;gap:16px;margin-bottom:12px;align-items:center}.weather-selector{display:flex;align-items:center;gap:8px}.weather-selector label{font-weight:500;color:#495057;font-size:14px}.weather-display{border:1px solid #e9ecef;border-radius:8px;overflow:hidden;background:#f8f9fc;margin:0;padding:0}.weather-display img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}.form-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px;margin-top:12px}.form-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:12px;color:#65708a;font-weight:500}.form-field input{height:32px;padding:6px 8px;border:1px solid #e1e5e9;border-radius:4px;font-size:12px;transition:border-color .2s}.form-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #d977061a}.select{height:32px;padding:4px 28px 4px 10px;border:1px solid #e1e5e9;border-radius:6px;background:#fff;font-size:14px;color:#495057;cursor:pointer;transition:all .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2365708a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 8px center;background-size:14px}.select:hover{border-color:#c1c7cd}.select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #d977061a}.form-toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.toolbar-row{display:flex;align-items:center;gap:8px}.toolbar-title{font-weight:600;color:#2c3e50}.toolbar-actions{gap:10px}.toolbar-label{color:#65708a}.spacer{flex:1}@media(max-width:768px){.toolbar-row{flex-wrap:wrap}.spacer{display:none}}#hourInputs{display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:100%}@media(min-width:1600px){#hourInputs{grid-template-columns:repeat(2,1fr)}}@media(min-width:2400px){#hourInputs{grid-template-columns:repeat(3,1fr)}}.hour-group{border:1px dashed #e9ecef;border-radius:8px;padding:10px;background:#fafbfc;width:100%;box-sizing:border-box}.group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.group-title{font-weight:600;color:#2c3e50}.group-actions{display:flex;gap:8px}.group-grid .form-field{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.group-grid{display:grid;grid-template-columns:1fr;gap:12px;width:100%;box-sizing:border-box}@media(min-width:1000px){.group-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.group-header{flex-wrap:wrap;gap:6px}.group-actions{width:100%;justify-content:flex-start;gap:6px}.btn-xs{padding:2px 6px;font-size:11px}}.segment-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;width:100%;box-sizing:border-box}.segment-row>span,.segment-row>label{flex-shrink:0;white-space:nowrap}.segment-row>input{flex-shrink:1;min-width:0}.segment-row>button{flex-shrink:0}@media(max-width:768px){.segment-row{flex-direction:row;flex-wrap:wrap;align-items:center}.segment-row>label{min-width:40px}.segment-row>input{flex:1 1 auto;min-width:60px;max-width:100px}}@media(max-width:480px){.segment-row{flex-direction:column;align-items:stretch;gap:4px}.segment-row>*{width:100%}.segment-row>input{width:100%!important;max-width:100%}}.segments-container{width:100%;box-sizing:border-box}.curve-container{width:100%;box-sizing:border-box;overflow:visible}.curve-chart{width:100%!important;min-width:0;box-sizing:border-box}.group-grid .form-field>div:first-child{display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;flex-wrap:wrap;gap:8px}.group-grid .form-field>div:first-child>label{flex:0 0 auto}.group-grid .form-field>div:first-child>div{flex:0 0 auto;display:flex;gap:4px;flex-wrap:wrap}@media(max-width:1200px){.form-row{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.form-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:480px){.form-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.layout{grid-template-columns:1fr}.sidebar{position:relative;top:0;height:auto}.cards{grid-template-columns:1fr}.kpi-cards{grid-template-columns:repeat(2,1fr)}.curve-modal{width:98%;margin:10px}.curve-body{padding:20px}.curve-info-grid{grid-template-columns:1fr;gap:16px}.chart-tabs,.curve-footer{flex-direction:column}.calendar-nav{justify-content:center;gap:12px}.calendar-nav .cal-title{font-size:14px;min-width:100px}.calendar-nav .btn{padding:6px 12px;font-size:14px}.cal-legend{justify-content:center;flex-wrap:wrap;gap:6px}.deal-table{font-size:12px}.deal-table th,.deal-table td{padding:8px 4px}.bilateral-stats{grid-template-columns:1fr}.listing-stats{grid-template-columns:repeat(2,1fr)}.contract-header{flex-direction:column;gap:12px;align-items:stretch}.contract-table{font-size:12px}.contract-table th,.contract-table td{padding:8px 4px}.listing-table,.transaction-table{font-size:12px}.listing-table th,.listing-table td,.transaction-table th,.transaction-table td{padding:8px 4px}.listing-actions{flex-direction:column;align-items:center}.trading-top-bar{flex-direction:column;gap:12px;align-items:stretch}.trading-top-bar .date-picker{justify-content:center}.trading-buttons{justify-content:center;flex-wrap:wrap}.time-selector{grid-template-columns:repeat(8,1fr)}.info-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.kpi-cards,.listing-stats,.info-grid{grid-template-columns:1fr}.time-selector{grid-template-columns:repeat(6,1fr)}}.trading-info .info-card{min-height:200px;padding:16px}.trading-info .info-card h4{font-size:18px}.trading-info .info-item{font-size:14px;line-height:1.6}.trading-info .info-item .value{font-size:16px}@media(max-width:768px){.trading-info .info-card{min-height:180px}.trading-info .info-card h4{font-size:16px}.trading-info .info-item{font-size:13px}.trading-info .info-item .value{font-size:15px}}.trading-info .info-item{align-items:flex-start;flex-wrap:wrap;gap:6px}.trading-info .info-item .label{white-space:nowrap}.trading-info .info-item .value{white-space:normal;word-break:break-word;flex-basis:100%}@media(max-width:768px){.trading-info .info-item{gap:4px}.trading-info .info-item .value{flex-basis:100%}}.trading-info .info-card{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.trading-info .info-card h4{grid-column:1 / -1;margin-bottom:4px}.trading-info .info-card .info-item{margin:0}@media(max-width:768px){.trading-info .info-card{grid-template-columns:1fr}.trading-info .info-card h4{grid-column:1 / 2}}.trading-info .info-item .label:before{content:attr(data-icon);display:inline-block;margin-right:6px;font-size:14px}.modal-mask{position:fixed!important;top:0;left:0;width:100vw;height:100vh;background:#00000047;z-index:99999!important;display:flex;align-items:center;justify-content:center}.modal{background:#fff;border-radius:12px;padding:24px 28px 18px;max-width:660px;min-width:320px;max-height:94vh;overflow-y:auto;box-shadow:0 12px 48px #0000002e}@media(max-width:640px){.modal{max-width:96vw;min-width:0;padding:14px 4px}}.settings-tab{transition:all .2s ease;position:relative}.settings-tab:hover{color:#d97706!important}.settings-tab.active{color:#d97706!important;font-weight:600;border-bottom-color:#d97706!important}.settings-panel{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}.tab-btn{padding:12px 24px;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.tab-btn:hover{color:var(--primary);background:#0966ff0d}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.strategy-page{display:flex;flex-direction:column;gap:16px}.strategy-hero{display:flex;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#eef2ff,#fdf2f8)}.hero-left h2{margin:6px 0;font-size:24px}.hero-actions{display:flex;gap:12px;margin-top:16px}.hero-flow{display:flex;align-items:center;gap:12px}.flow-node{text-align:center;font-size:12px;color:var(--muted)}.flow-node .dot{width:14px;height:14px;border-radius:50%;margin:0 auto 6px;border:2px solid #94a3b8}.flow-node .dot.active{background:var(--primary);border-color:var(--primary)}.flow-line{width:40px;height:2px;background:#cbd5f5}.strategy-modules{display:flex;flex-direction:column;gap:16px;width:100%}.strategy-module{display:flex;flex-direction:column;gap:16px}.module-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.module-header p{margin:4px 0 0;color:var(--muted)}.module-actions{display:flex;gap:8px}.strategy-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.market-analysis-page .strategy-hero .strategy-kpi-grid,.risk-analysis-page .strategy-hero .strategy-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}.strategy-kpi-grid .kpi-card{display:flex;align-items:flex-start;gap:16px;padding:20px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;transition:all .3s ease;box-shadow:0 2px 4px #0000000a;position:relative;overflow:hidden}.strategy-kpi-grid .kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#d97706,#f59e0b);opacity:0;transition:opacity .3s ease}.strategy-kpi-grid .kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#d1d5db}.strategy-kpi-grid .kpi-card:hover:before{opacity:1}.strategy-kpi-grid .kpi-card.kpi-primary:before{background:linear-gradient(90deg,#d97706,#fbbf24)}.strategy-kpi-grid .kpi-card.kpi-success:before{background:linear-gradient(90deg,#10b981,#34d399)}.strategy-kpi-grid .kpi-card.kpi-info:before{background:linear-gradient(90deg,#06b6d4,#22d3ee)}.strategy-kpi-grid .kpi-card.kpi-warning:before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.strategy-kpi-grid .kpi-icon{font-size:32px;line-height:1;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(135deg,#f3f4f6,#e5e7eb)}.strategy-kpi-grid .kpi-card.kpi-primary .kpi-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.strategy-kpi-grid .kpi-card.kpi-success .kpi-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.strategy-kpi-grid .kpi-card.kpi-info .kpi-icon{background:linear-gradient(135deg,#cffafe,#a5f3fc)}.strategy-kpi-grid .kpi-card.kpi-warning .kpi-icon{background:linear-gradient(135deg,#fef3c7,#fde68a)}.strategy-kpi-grid .kpi-content{flex:1;min-width:0}.strategy-kpi-grid .kpi-label{font-size:13px;font-weight:500;color:#6b7280;margin-bottom:8px;text-transform:none}.strategy-kpi-grid .kpi-value{font-size:28px;font-weight:700;color:#1f2937;line-height:1.2;margin-bottom:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.strategy-kpi-grid .kpi-card.kpi-primary .kpi-value{color:#d97706}.strategy-kpi-grid .kpi-card.kpi-success .kpi-value{color:#10b981}.strategy-kpi-grid .kpi-card.kpi-info .kpi-value{color:#06b6d4}.strategy-kpi-grid .kpi-card.kpi-warning .kpi-value{color:#f59e0b}.strategy-kpi-grid .kpi-desc{font-size:12px;color:#9ca3af;margin-top:4px}.strategy-kpi-grid .sub{color:var(--muted);font-size:12px}.strategy-filters{display:flex;flex-direction:column;gap:8px}.chip-bar{display:flex;flex-wrap:wrap;gap:6px}.chip-bar.compact .chip-filter{padding:4px 10px;font-size:12px}.chip-filter{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font-size:13px}.chip-filter.active{background:var(--primary);border-color:var(--primary);color:#fff}.risk-alert-item{padding:12px 14px;border-radius:10px;border:1px solid #fee2e2;background:#fff7ed;margin-bottom:10px}.risk-alert-title{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:6px}.risk-alert-name{font-weight:600;color:#b91c1c}.risk-alert-chip{padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid transparent}.risk-level-high{background:#fee2e2;border-color:#ef4444;color:#b91c1c}.risk-level-medium{background:#fef9c3;border-color:#eab308;color:#854d0e}.risk-level-low{background:#dcfce7;border-color:#22c55e;color:#166534}.risk-alert-metrics{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#6b7280;margin-bottom:4px}.risk-alert-suggestion{font-size:12px;color:#4b5563}.filter-row{display:flex;gap:8px}.table-wrapper{overflow-x:auto}.table.small th,.table.small td{padding:8px 10px;font-size:13px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid var(--border)}.tag-success{background:#ecfdf5;color:#059669;border-color:#a7f3d0}.plan-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.plan-controls .form-group{min-width:160px}.plan-layout{display:grid;grid-template-columns:minmax(320px,1fr) 280px;gap:16px}.plan-chart{min-height:360px;background:#f7f9ff;border-radius:12px;padding:12px}.plan-side{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:12px}.plan-metrics{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:8px 12px}.plan-metrics label{display:block;font-size:12px;color:var(--muted)}.plan-metrics span{font-weight:600;font-size:16px}.plan-actions{display:flex;flex-wrap:wrap;gap:8px}.plan-advice{margin:0;padding-left:18px;color:var(--muted)}.quote-title-hero{padding:14px 18px;background:#fff;border:1px solid var(--border)}.quote-title-hero h2{margin:0;font-size:28px;line-height:1.25}.quote-result-layout{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(420px,1.6fr);gap:16px;margin-top:16px}.quote-range-panel,.quote-explain-panel{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff}.quote-range-panel h4,.quote-explain-panel h4{margin:0 0 10px}.quote-explain-panel{background:#f8fafc}.quote-range-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quote-range-card{border:1px solid #dbe5f5;background:#f7f9ff;border-radius:10px;padding:10px}.quote-range-card .label{color:var(--muted);font-size:12px}.quote-range-card .value{color:#0f172a;font-size:22px;font-weight:700;line-height:1.2;margin-top:4px}.quote-range-card .sub{color:#64748b;font-size:12px;margin-top:4px}.quote-range-card-highlight{grid-column:1 / -1;background:linear-gradient(135deg,#e8f0ff,#eff6ff);border-color:#c8dcff}.quote-range-card-highlight .value{color:#0b4da1}.quote-range-card-wide{grid-column:1 / -1}.status-timeline{display:flex;align-items:center;gap:12px;padding:12px;background:#f8f9fc;border-radius:10px;overflow-x:auto}.timeline-node{text-align:center;min-width:80px}.timeline-node .label{font-size:12px;color:var(--muted)}.timeline-node .dot{width:12px;height:12px;border-radius:999px;border:2px solid var(--border);margin:0 auto 4px}.timeline-node.active .dot{border-color:var(--primary);background:var(--primary)}.timeline-line{width:36px;height:2px;background:#dbe3f4}:root{--topbar-height: 60px;--sidebar-width: 256px;--primary: #f59e0b;--primary-600: #d97706;--primary-700: #b45309;--accent: #8b5cf6;--bg: #f4f6fa;--surface: #ffffff;--surface-soft: #f8fafc;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--border-strong: #cbd5e1;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 40px rgba(15, 23, 42, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;color:var(--text);background:var(--bg)}.app{min-height:100vh}.topbar{height:var(--topbar-height);-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);background:linear-gradient(135deg,#b45309,#d97706,#f59e0b 80%,#fbbf24);border-bottom:none;box-shadow:0 4px 20px #b4530959,0 1px 3px #0000001a;color:#fff;padding:0 20px}.topbar-left{gap:0;display:flex;align-items:center}.topbar-logo{height:39px;width:auto;flex-shrink:0;object-fit:contain}.topbar-divider{width:1px;height:28px;background:#ffffff40;margin:0 16px;flex-shrink:0}.brand-cn{font-size:17px;font-weight:700;letter-spacing:.5px;color:#fff;line-height:1.3;white-space:nowrap}.topbar-right{display:flex;align-items:center;gap:6px}.topbar-btn{width:36px;height:36px;min-width:36px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:#ffffff1a;color:#ffffffe6;cursor:pointer;transition:all .2s ease}.topbar-btn svg{flex-shrink:0}.topbar-btn:hover{background:#ffffff38;border-color:#ffffff59;color:#fff;box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.topbar-btn:active{transform:translateY(0);background:#ffffff47}.topbar-user-area{display:flex;align-items:center;gap:10px;margin-left:6px;padding-left:12px;border-left:1px solid rgba(255,255,255,.2)}.topbar-user-info{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.topbar-company{font-size:11px;color:#ffffffb3;line-height:1.2;letter-spacing:.2px}.topbar-username{font-size:13px;font-weight:600;color:#fff;letter-spacing:.3px;line-height:1.2}.topbar-role-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;line-height:1.3;white-space:nowrap}.topbar-role-badge svg{width:12px;height:12px;flex-shrink:0}.layout{grid-template-columns:var(--sidebar-width) 1fr;align-items:start}.sidebar{padding:12px 10px 20px;background:linear-gradient(180deg,#fafbff,#fff);border-right:1px solid var(--border);box-shadow:2px 0 12px #0f172a0a}.menu{padding:0 2px;gap:2px;display:flex;flex-direction:column}.menu-icon{flex-shrink:0;opacity:.7;transition:opacity .15s ease}.menu-chevron{margin-left:auto;flex-shrink:0;opacity:.4;transition:transform .25s ease,opacity .15s ease}.menu-group.open>.menu-toggle .menu-chevron{transform:rotate(180deg);opacity:.7}.menu-item,.menu-toggle,.submenu a{border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.menu-item,.menu-toggle{font-weight:500;font-size:13.5px;padding:10px 12px;display:flex;align-items:center;gap:10px}.menu-item.active{color:var(--primary);background:linear-gradient(90deg,#2563eb1f,#2563eb0a);font-weight:600;position:relative}.menu-item.active .menu-icon{opacity:1;color:var(--primary)}.menu-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--primary) 0%,var(--accent) 100%)}.menu-item:hover{color:var(--primary);background:#2563eb0f}.menu-item:hover .menu-icon{opacity:1}.menu-group{margin-top:2px}.menu-group+.menu-group{border-top:1px solid rgba(226,232,240,.6);padding-top:2px}.menu-group.open>.menu-toggle{color:var(--primary);background:#2563eb0f;font-weight:600}.menu-group.open>.menu-toggle .menu-icon{opacity:1;color:var(--primary)}.menu-toggle:hover{background:#2563eb0a}.menu-toggle:hover .menu-icon{opacity:1}.submenu{padding-left:28px;margin-top:2px;margin-bottom:6px;position:relative}.submenu:before{content:"";position:absolute;left:18px;top:4px;bottom:4px;width:1px;background:linear-gradient(180deg,var(--border) 0%,transparent 100%);border-radius:1px}.submenu a{color:var(--muted);font-size:13px;padding:7px 12px;font-weight:400;position:relative}.submenu a:hover{color:var(--primary);background:#2563eb0f}.submenu a.active{color:var(--primary);background:#2563eb14;font-weight:500}.main{padding:20px 24px 28px;min-height:calc(100vh - var(--topbar-height))}.breadcrumb{margin-bottom:16px;color:var(--muted);font-weight:500;font-size:13px}.content{position:relative;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);padding:20px}.content h1,.content h2,.content h3{letter-spacing:.1px}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:none}.kpi{border:1px solid var(--border);background:var(--surface)}.kpi .icon{background:#2563eb1a;color:var(--primary)}.kpi .value{color:var(--primary-700)}.table,.trading-table,.contract-table,.listing-table,.transaction-table,.auction-table,.orderbook-table{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.table thead th,.trading-table th,.contract-table th,.listing-table th,.transaction-table th,.auction-table th,.orderbook-table th{background:#f8fafc;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px}.table tbody tr:nth-child(2n),.trading-table tbody tr:nth-child(2n),.contract-table tbody tr:nth-child(2n){background:#fafbfd}.table tbody tr:hover,.trading-table tbody tr:hover,.contract-table tbody tr:hover,.listing-table tbody tr:hover,.transaction-table tbody tr:hover,.auction-table tbody tr:hover{background:#f0f5ff}.form-group label{color:#475569;font-weight:500;font-size:13px}.form-control{border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px;padding:8px 12px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.btn{border-radius:8px;border:1px solid transparent;font-weight:500;font-size:13px;letter-spacing:.1px;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.btn:hover{transform:translateY(-1px)}.btn.primary,.btn-primary{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:transparent;box-shadow:0 2px 8px #2563eb40}.btn.primary:hover,.btn-primary:hover{box-shadow:0 4px 14px #2563eb59}.btn-secondary{background:var(--surface-soft);color:#334155;border:1px solid var(--border)}.btn-secondary:hover{background:#f1f5f9;border-color:var(--border-strong)}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:transparent}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent}.btn-outline-secondary{border-radius:8px;border-color:var(--border-strong);color:#475569}.btn-link{color:var(--primary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a66}.modal-content{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auction-filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:14px 16px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px}.strategy-page .card{margin-bottom:14px}.strategy-page h3{font-size:16px;font-weight:600}.modal-header,.modal-footer{border-color:#e5edf6}.tag{border-color:#c5d2e3;background:#f5f9ff}.badge-month{background:#0f766e}.badge-week{background:#0a5ba8}.badge-rolling{background:#f59e0b}.badge-listing{background:#0d9488}.badge-spot{background:#dc2626}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.content>.card,.content>.cards,.content>.kpi-cards,.content>.analysis-controls,.content>.plan-layout,.content>.quote-result-layout{animation:rise-in .35s ease both}.content>.cards>.card:nth-child(1),.content>.kpi-cards>.kpi:nth-child(1){animation-delay:.02s}.content>.cards>.card:nth-child(2),.content>.kpi-cards>.kpi:nth-child(2){animation-delay:.05s}.content>.cards>.card:nth-child(3),.content>.kpi-cards>.kpi:nth-child(3){animation-delay:.08s}.content>.cards>.card:nth-child(4),.content>.kpi-cards>.kpi:nth-child(4){animation-delay:.11s}*:focus-visible{outline:2px solid rgba(15,118,110,.5);outline-offset:2px}@media(max-width:980px){:root{--sidebar-width: 180px}.topbar{padding:0 12px}.brand-cn{font-size:13px}.topbar-logo{height:31px}.topbar-divider{margin:0 10px}.main{padding:14px 14px 20px}.menu-chevron{display:none}}@media(max-width:820px){.layout{grid-template-columns:1fr}.sidebar{position:relative;top:0;height:auto;border-right:none;border-bottom:1px solid var(--border)}.menu{padding:8px 6px 10px}.cards{grid-template-columns:1fr}.kpi-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-result-layout{grid-template-columns:1fr}.quote-title-hero h2{font-size:22px}}@media(max-width:540px){.topbar-right{gap:6px}.topbar-btn{min-width:30px;height:30px;padding:0 6px}.kpi-cards{grid-template-columns:1fr}.content{border-radius:14px;padding:14px}}[data-theme=ocean]{color-scheme:light}html::-webkit-scrollbar,body::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:10px;height:10px}html::-webkit-scrollbar-track,body::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{border-radius:999px;background:#4c6a916b;border:2px solid transparent;background-clip:content-box}:root{--font-ui: "Avenir Next", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-number: "DIN Alternate", "Avenir Next", "Segoe UI", sans-serif;--sidebar-width: 190px;--fz-xs: 12px;--fz-sm: 13px;--fz-md: 14px;--fz-lg: 15px;--fz-xl: 18px;--fz-2xl: 22px;--fz-3xl: 28px;--lh-tight: 1.35;--lh-base: 1.55;--space-1: 8px;--space-2: 12px;--space-3: 16px;--space-4: 20px;--space-5: 24px;--content-max-width: 100%;--content-padding-x: 22px;--content-padding-y: 18px;--card-padding: 18px;--card-min-height: 96px;--control-height: 38px;--table-row-height: 44px;--menu-level1-size: 14px;--menu-level2-size: 13px}[data-density=standard]{--topbar-height: 64px;--sidebar-width: 190px;--menu-level1-size: 14px;--menu-level2-size: 13px}[data-density=comfy]{--topbar-height: 68px;--sidebar-width: 200px;--fz-xs: 12.5px;--fz-sm: 14px;--fz-md: 15px;--fz-lg: 16px;--fz-xl: 19px;--fz-2xl: 24px;--fz-3xl: 30px;--space-1: 10px;--space-2: 14px;--space-3: 18px;--space-4: 24px;--space-5: 30px;--content-max-width: 100%;--content-padding-x: 26px;--content-padding-y: 20px;--card-padding: 20px;--card-min-height: 108px;--control-height: 42px;--table-row-height: 48px;--menu-level1-size: 15px;--menu-level2-size: 13.5px}[data-density=compact]{--topbar-height: 58px;--sidebar-width: 172px;--fz-xs: 11px;--fz-sm: 12px;--fz-md: 13px;--fz-lg: 13.5px;--fz-xl: 16px;--fz-2xl: 20px;--fz-3xl: 25px;--space-1: 6px;--space-2: 9px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--content-max-width: 100%;--content-padding-x: 16px;--content-padding-y: 12px;--card-padding: 12px;--card-min-height: 76px;--control-height: 33px;--table-row-height: 36px;--menu-level1-size: 13px;--menu-level2-size: 12px}html{font-size:var(--fz-lg)}body{font-family:var(--font-ui);font-size:var(--fz-md);line-height:var(--lh-base);letter-spacing:.1px}h1,h2,h3,h4{line-height:var(--lh-tight)}h1{font-size:clamp(1.45rem,1.15rem + .95vw,1.95rem);margin:0 0 10px}h2{font-size:clamp(1.2rem,1rem + .55vw,1.45rem)}h3{font-size:clamp(1.03rem,.95rem + .35vw,1.22rem)}.brand-cn{font-size:17px;font-weight:700;line-height:1.3}.topbar-right #userBadge{font-size:var(--fz-sm);font-weight:600}.menu>li>.menu-item,.menu>li>.menu-toggle{font-size:var(--menu-level1-size);line-height:1.45;font-weight:650}.menu .submenu a{font-size:var(--menu-level2-size);line-height:1.35;font-weight:520}.main{padding:var(--content-padding-y) var(--content-padding-x) calc(var(--content-padding-y) + 8px)}.content{max-width:var(--content-max-width);margin:0 auto;padding:var(--card-padding)}.cards{gap:var(--space-3)}.card{padding:var(--card-padding);min-height:var(--card-min-height)}.module-header h2,.module-header h3{margin:0}.module-header p{font-size:var(--fz-sm)}.kpi-cards{gap:var(--space-3)}.kpi{padding:16px 18px}.kpi .label{font-size:var(--fz-xs)}.kpi .value{font-size:clamp(26px,1.35rem + .8vw,34px);font-family:var(--font-number);letter-spacing:.2px}.kpi .meta,.kpi .delta{font-size:11.5px}.strategy-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.strategy-kpi-grid .kpi-card{min-height:128px;padding:18px}.strategy-kpi-grid .kpi-label{font-size:var(--fz-sm)}.strategy-kpi-grid .kpi-value{font-size:clamp(24px,1.2rem + .7vw,32px);font-family:var(--font-number)}.strategy-kpi-grid .kpi-desc,.strategy-kpi-grid .sub{font-size:11.5px}.btn,.topbar-btn,.form-control,select.form-control,input.form-control{font-size:var(--fz-sm)}.btn{min-height:var(--control-height);padding:8px 14px}.btn-sm{min-height:30px;padding:4px 10px;font-size:12px}.form-control{min-height:var(--control-height);padding:8px 12px}.table thead th,.table tbody td,.trading-table th,.trading-table td,.contract-table th,.contract-table td,.listing-table th,.listing-table td,.transaction-table th,.transaction-table td,.auction-table th,.auction-table td,.orderbook-table th,.orderbook-table td{font-size:var(--fz-sm);line-height:1.45;min-height:var(--table-row-height);vertical-align:middle}.table thead th,.trading-table th,.contract-table th,.listing-table th,.transaction-table th,.auction-table th,.orderbook-table th{font-weight:650}.table.small th,.table.small td{font-size:12px;min-height:36px}.breadcrumb{font-size:var(--fz-sm)}.modal-content,.modal{font-size:var(--fz-md)}.modal-header h3{font-size:var(--fz-xl)}.settings-tab{font-size:var(--fz-md)}.tab-btn{font-size:var(--fz-sm);padding:10px 18px}@media(max-width:1280px){:root{--content-max-width: 100%;--content-padding-x: 16px;--content-padding-y: 14px;--card-padding: 14px;--card-min-height: 84px}.strategy-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media(max-width:820px){:root{--fz-md: 13px;--fz-lg: 14px;--content-padding-x: 12px;--content-padding-y: 12px;--card-padding: 12px}h1{font-size:clamp(1.25rem,1.05rem + 1.1vw,1.55rem)}.module-actions{flex-wrap:wrap}.table thead th,.table tbody td{padding:8px 10px}}.market-news-hint{margin-top:8px;margin-bottom:10px;color:#64748b;font-size:13px;font-weight:520;letter-spacing:.2px}.market-alerts{border-radius:14px;border:1px solid rgba(198,212,228,.95);background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 12px 26px #0f172a12}.alerts-header{padding:14px 18px;background:linear-gradient(90deg,#0f766e1c,#0e749012 45%,#f59e0b14);border-bottom:1px solid rgba(198,212,228,.9)}.alerts-header h3{font-size:17px;font-weight:700;letter-spacing:.2px}.alerts-count{font-size:12px;font-weight:600;color:#4b5563;background:#ffffffb8;border:1px solid rgba(164,180,200,.55);padding:4px 10px;border-radius:999px}.alerts-container{max-height:340px}.alert-item{gap:4px;padding:14px 18px;border-bottom-color:#edf2f8}.alert-item:hover{background:#f5fafe}.alert-icon{width:32px;text-align:center}.alert-title{font-size:14px}.alert-desc{font-size:12.5px}.news-modules{margin-top:14px;gap:18px}.news-modules-loading{padding:22px 18px;text-align:center;color:#64748b;font-size:13px;border:1px dashed #d7e3f1;border-radius:12px;background:linear-gradient(90deg,#f8fbff,#eef5ff,#f8fbff);background-size:200% 100%;animation:newsLoadingPulse 1.5s linear infinite}.news-module{border-radius:14px;border:1px solid rgba(198,212,228,.95);box-shadow:0 12px 30px #0f172a14;min-height:520px;display:flex;flex-direction:column}.news-module h3{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px 16px;font-size:17px;font-weight:700;border-bottom:1px solid rgba(198,212,228,.85);background:linear-gradient(180deg,#f3f8ff,#eef5fc)}.news-module h3>span{letter-spacing:.2px}.news-module h3>small{font-size:12px;font-weight:600;color:#64748b}.news-module-energy h3{background:linear-gradient(180deg,#0e74901f,#0e74900f)}.news-module-feed h3{background:linear-gradient(180deg,#2563eb1f,#2563eb0f)}.news-module-insight h3{background:linear-gradient(180deg,#7c3aed21,#7c3aed0f)}.news-module-market h3{background:linear-gradient(180deg,#f59e0b24,#f59e0b0f)}.news-module .module-content{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;flex:1}.energy-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:6px}.news-module-energy .stat-item{border:1px solid #d4e1f1;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f1f7ff);box-shadow:inset 0 1px #ffffffbf,0 8px 16px #0f172a0d;padding:10px 8px 9px;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.news-module-energy .stat-label{font-size:11px;color:#6b7f98;letter-spacing:.2px;margin-bottom:7px;font-weight:600;line-height:1.2}.news-module-energy .stat-value{display:inline-flex;align-items:baseline;justify-content:center;gap:3px;max-width:100%;color:#0f172a;line-height:1.12;white-space:nowrap;overflow:visible;font-variant-numeric:tabular-nums}.news-module-energy .stat-value .stat-num{font-size:clamp(14px,.95vw,16px);font-weight:750;font-family:var(--font-number);letter-spacing:0;white-space:nowrap}.news-module-energy .stat-value .stat-unit{font-size:clamp(11px,.75vw,12px);font-weight:650;color:#475569;white-space:nowrap}.module-chart.is-chart-fallback{display:flex;align-items:center;justify-content:center;border:1px dashed #c7d8ec;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f4f8ff)}.chart-fallback{font-size:12px;color:#6b7f98;text-align:center;padding:8px 10px}#capacityChart,#marketChart{height:320px!important}.module-chart{width:100%;height:320px}.news-tags{margin-bottom:10px}.tag-btn{padding:7px 12px;border-radius:999px;font-size:12.5px;font-weight:600;border-color:#d5e0ed;background:#f7fbff}.tag-btn.active{box-shadow:0 8px 16px #0f766e33}.news-list{max-height:356px;display:flex;flex-direction:column;gap:9px;padding-right:2px}.news-item{padding:12px;border-radius:10px;border:1px solid #e3ebf5;background:linear-gradient(180deg,#fff,#f8fbff);margin-bottom:0}.news-item:hover{transform:translateY(-1px);border-color:#0f766e73;box-shadow:0 10px 18px #0f172a14}.news-title{font-size:13.5px;font-weight:620;line-height:1.45}.hot-icon{font-size:13px}.news-meta{gap:8px;align-items:center}.news-meta .news-date{color:#64748b}.news-tag{border:1px solid #bed1e8;background:#edf5ff;color:#1d4f91;font-weight:600}.nengyi-header{align-items:flex-start;margin-bottom:6px}.nengyi-desc{font-size:13px;line-height:1.5}.nengyi-filters{margin-bottom:8px}.nengyi-list{max-height:372px;gap:10px;padding-right:2px}.nengyi-item{border-radius:10px;border:1px solid #dce7f3;background:linear-gradient(180deg,#fff,#f8fbff);padding:12px}.nengyi-item h4{font-size:14px;margin:6px 0 5px}.nengyi-item p{font-size:12.5px;line-height:1.55;margin-bottom:8px}.nengyi-meta{gap:6px;flex-wrap:wrap;font-size:11.5px}.nengyi-type,.nengyi-tag{border-radius:999px;font-size:11px;font-weight:600}.nengyi-footer{font-size:11.5px;gap:8px}.market-info{gap:10px;margin-bottom:6px}.market-item{border-radius:10px;border:1px solid #dce6f2;background:linear-gradient(180deg,#f8fbff,#f1f7ff);padding:11px 12px}.market-label{font-size:11.5px}.market-value{font-size:18px;font-family:var(--font-number)}.market-change{font-size:11.5px}.alerts-container::-webkit-scrollbar,.news-list::-webkit-scrollbar,.nengyi-list::-webkit-scrollbar{width:8px}.alerts-container::-webkit-scrollbar-thumb,.news-list::-webkit-scrollbar-thumb,.nengyi-list::-webkit-scrollbar-thumb{background:#64748b59;border-radius:999px}@keyframes newsLoadingPulse{0%{background-position:0% 0}to{background-position:200% 0}}@media(max-width:1280px){.news-modules{gap:14px}.news-module{min-height:480px}}@media(max-width:960px){.news-modules{grid-template-columns:1fr}.news-module{min-height:auto}.news-list,.nengyi-list{max-height:300px}}@media(max-width:640px){.market-news-hint{font-size:12px}.alerts-header{padding:12px 14px}.alerts-header h3{font-size:15px}.news-module h3{padding:12px 14px;font-size:15px}.news-module h3>small{display:none}.news-module .module-content{padding:12px 12px 14px}.energy-stats{grid-template-columns:1fr}#capacityChart,#marketChart{height:280px!important}}.market-day-mode{margin-top:12px;border:1px solid #d8e4f1;border-radius:14px;padding:12px 14px;background:linear-gradient(180deg,#fff,#f5faff);box-shadow:0 10px 24px #0f172a0f}.dashboard-day-mode{margin-top:0;margin-bottom:12px}.day-mode-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.day-mode-main{display:flex;align-items:center;gap:10px;min-width:0}.day-mode-badge{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.2px;color:#0f172a;background:#e5edf8;border:1px solid #c9d9ec}.day-mode-badge.state-open{color:#0f5132;background:#daf5e7;border-color:#9fd8bc}.day-mode-badge.state-prepare,.day-mode-badge.state-break{color:#0f4a66;background:#deefff;border-color:#a8cbf4}.day-mode-badge.state-review{color:#6a3f07;background:#ffedd1;border-color:#f0c98b}.day-mode-badge.state-closed,.day-mode-badge.state-rest{color:#4b5563;background:#eef2f7;border-color:#d5deea}.day-mode-text{font-size:13px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-mode-next{font-size:12px;color:#64748b;white-space:nowrap}.day-mode-phases{margin-top:10px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.phase-chip{border-radius:9px;border:1px solid #d9e4f1;background:#f8fbff;color:#5f7188;font-size:11.5px;text-align:center;padding:6px 8px}.phase-chip.active{border-color:#4d8fd8;color:#114273;background:linear-gradient(180deg,#e7f2ff,#d7eaff);font-weight:650}.phase-chip.passed{color:#95a6ba;border-color:#e2e9f3;background:#f7f9fc}.day-mode-foot{margin-top:10px}.day-mode-signal{font-size:12px;color:#4b5f77;margin-bottom:6px}.day-mode-rhythm{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.rhythm-item{border:1px solid #dbe6f2;border-radius:10px;padding:6px 7px;background:#fcfeff}.rhythm-item.active{border-color:#4b8eda;box-shadow:0 0 0 2px #3b82f61f}.rhythm-label{display:block;font-size:11px;color:#5f7188;margin-bottom:4px}.rhythm-track{height:5px;border-radius:999px;background:#e7eef7}.rhythm-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}.rhythm-item.medium .rhythm-fill{background:linear-gradient(90deg,#7dd3fc,#0ea5e9)}.rhythm-item.low .rhythm-fill{background:linear-gradient(90deg,#86efac,#22c55e)}.alert-item.alert-priority{border-left:3px solid #f59e0b;background:linear-gradient(90deg,#f59e0b14,#f59e0b05 52%,#fff0)}@media(max-width:1120px){.day-mode-phases,.day-mode-rhythm{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.day-mode-head{flex-direction:column;align-items:flex-start;gap:6px}.day-mode-main{width:100%}.day-mode-text{font-size:12px}.day-mode-phases,.day-mode-rhythm{grid-template-columns:repeat(2,minmax(0,1fr))}}.market-ops-strip{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ops-pill{border:1px solid #d8e5f2;border-radius:12px;padding:12px 14px;background:linear-gradient(180deg,#fff,#f6fbff);box-shadow:0 8px 18px #0f172a0f}.ops-pill-label{font-size:11.5px;letter-spacing:.3px;color:#64748b;margin-bottom:4px}.ops-pill-value{font-size:19px;font-weight:720;line-height:1.3;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-pill-meta{margin-top:3px;font-size:12px;color:#5f7188}.ops-pill-alert{background:linear-gradient(180deg,#fffefe,#f4faff)}.ops-pill-news{background:linear-gradient(180deg,#fff,#f3f8ff)}.ops-pill-focus{background:linear-gradient(180deg,#fff,#f8f5ff)}.ops-pill-price{background:linear-gradient(180deg,#fff,#fff8ee)}.market-news-board{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"alerts energy" "feed market" "insight insight";gap:16px;align-items:start}.market-news-board>.news-modules-loading{grid-column:1 / -1}.market-news-board .news-module{min-height:auto}.board-alerts{grid-area:alerts;display:flex;flex-direction:column;min-height:320px}.board-alerts .alerts-container{max-height:338px;flex:1}.board-energy{grid-area:energy}.board-feed{grid-area:feed}.board-insight{grid-area:insight;min-height:760px}.board-market{grid-area:market}.market-news-board .board-insight .module-content{height:100%}.market-news-board .board-feed .news-list{max-height:382px}.market-news-board .board-insight .nengyi-list{max-height:380px}.market-news-board #capacityChart,.market-news-board #marketChart{height:286px!important}@media(max-width:1380px){.market-ops-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.market-ops-strip{grid-template-columns:1fr;gap:10px}.ops-pill{padding:11px 12px}.ops-pill-value{font-size:17px}.market-news-board{grid-template-columns:1fr;grid-template-areas:"alerts" "energy" "market" "feed" "insight";gap:12px}.board-alerts .alerts-container,.market-news-board .board-feed .news-list,.market-news-board .board-insight .nengyi-list{max-height:300px}.market-news-board #capacityChart,.market-news-board #marketChart{height:260px!important}}.market-news-shell{display:flex;flex-direction:column;gap:0}.market-context-bar{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px}.context-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid #d9e5f2;background:linear-gradient(180deg,#fbfdff,#f3f8ff);color:#4f647c;font-size:11.5px;font-weight:520}.context-chip strong{color:#1f3853;font-weight:650}.market-news-shell .ops-pill-value{font-size:17px}.market-news-shell .ops-pill-meta{font-size:11.5px}.market-news-shell .alerts-header h3,.market-news-shell .news-module h3{font-size:15px}.market-news-shell .alerts-header,.market-news-shell .news-module h3{height:46px;min-height:46px;padding:0 12px;box-sizing:border-box}.market-news-shell .alerts-header,.market-news-shell .news-module h3{display:flex;align-items:center;justify-content:space-between}.market-news-shell .alerts-header h3{margin:0;line-height:1;display:flex;align-items:center}.market-news-shell .alerts-title .module-dot{background:linear-gradient(180deg,#f59e0b,#c36b00);box-shadow:0 0 0 3px #f59e0b33}.market-news-shell .alerts-count{line-height:1;padding:3px 9px;display:inline-flex;align-items:center;min-height:24px;font-size:10.5px}.market-news-shell .news-module h3>small{font-size:11px;letter-spacing:.2px}.module-title{display:inline-flex;align-items:center;gap:8px}.module-dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.news-module-feed .module-dot{background:linear-gradient(180deg,#4f46e5,#3730a3);box-shadow:0 0 0 3px #6366f12e}.news-module-insight .module-dot{background:linear-gradient(180deg,#a855f7,#7e22ce);box-shadow:0 0 0 3px #a855f72e}.news-module-market .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.market-news-shell .news-module{animation:marketModuleAppear .34s ease both}.market-news-shell .board-alerts{margin-top:0;height:auto;min-height:0;align-self:start;animation-delay:.04s}.market-news-shell .board-energy{height:auto;min-height:0;align-self:start;animation-delay:.08s}.market-news-shell .board-feed{min-height:0;animation-delay:.12s}.market-news-shell .board-market{min-height:0;animation-delay:.16s}.market-news-shell .board-insight{min-height:0;animation-delay:.2s}@keyframes marketModuleAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.market-news-shell .tag-btn{padding:6px 11px;font-size:12px;border:1px solid #d4e2f1;background:linear-gradient(180deg,#f9fcff,#f3f8ff);color:#375472}.market-news-shell .tag-btn:hover{border-color:#79a7d8;color:#1a466f}.market-news-shell .tag-btn.active{color:#fff;border-color:#2069b1;background:linear-gradient(180deg,#3486d5,#1f6fb8);box-shadow:0 8px 15px #2563eb42}.market-news-shell .board-alerts .alerts-container{max-height:none;flex:1;overflow-y:auto}.market-news-shell .alert-item{padding:10px 12px;border-bottom-color:#e7eef7}.market-news-shell .alert-icon{display:none}.market-news-shell .alert-header{margin-bottom:4px;align-items:center;gap:8px}.market-news-shell .alert-type{font-size:11px;padding:2px 7px}.market-news-shell .alert-meta-right{margin-left:auto;display:inline-flex;align-items:center;gap:6px}.market-news-shell .alert-time{font-size:11px;white-space:nowrap}.market-news-shell .alert-badge{position:static;top:auto;right:auto;padding:1px 7px;border-radius:999px;font-size:10.5px;line-height:1.4;text-transform:none}.market-news-shell .alert-title{font-size:13px;margin-bottom:3px}.market-news-shell .alert-desc{font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.market-news-shell .news-item-unified{border-radius:10px;border:1px solid #dce7f3;background:linear-gradient(180deg,#fff,#f8fbff);padding:12px;margin-bottom:0}.market-news-shell .news-item-unified:hover{transform:translateY(-1px);border-color:#0f766e73;box-shadow:0 10px 18px #0f172a14}.market-news-shell .news-unified-meta{gap:6px;flex-wrap:wrap;font-size:11.5px}.market-news-shell .news-item-unified .nengyi-type,.market-news-shell .news-item-unified .nengyi-tag{border-radius:999px;font-size:11px;font-weight:600}.market-news-shell .news-item-unified .nengyi-type{background:#f0f4ff;color:#4f46e5}.market-news-shell .news-item-unified.is-hot .nengyi-type{background:#fff4e6;color:#b45309}.market-news-shell .news-unified-title-row{margin:6px 0 5px}.market-news-shell .news-unified-title-row span{font-size:14px;font-weight:650;line-height:1.45;color:#0f172a}.market-news-shell .news-unified-summary{font-size:12.5px;line-height:1.55;margin-bottom:8px;color:#5f7188;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.market-news-shell .news-unified-footer{font-size:11.5px;gap:8px}.market-news-shell .news-unified-footer .btn{margin-left:auto}.news-empty-state{border:1px dashed #d6e4f2;border-radius:10px;padding:16px 12px;text-align:center;color:#778aa3;font-size:12px;background:linear-gradient(180deg,#fbfdff,#f6faff)}.nengyi-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.nengyi-title-row em{font-style:normal;color:#8ea2ba;font-size:15px}.news-modal{width:min(800px,92vw);max-width:800px}.news-modal-meta{margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #e6edf5}.news-modal-content{line-height:1.78;color:#4a5b6f;font-size:13px}.news-modal-footer{text-align:right;padding-top:14px;border-top:1px solid #e6edf5}@media(max-width:1120px){.market-context-bar{gap:6px}.context-chip{font-size:11px;padding:4px 9px}}@media(max-width:820px){.market-context-bar{margin-top:4px}.context-chip{font-size:10.5px;padding:3px 8px}.market-news-shell .ops-pill-value{font-size:16px}.market-news-shell .news-module h3{font-size:15px}.news-snippet{margin-left:0;margin-top:5px}.market-news-shell .board-alerts{height:auto;align-self:start}.market-news-shell .board-alerts .alerts-container{max-height:320px;flex:none}}@media(prefers-reduced-motion:reduce){.market-news-shell .news-module{animation:none}}.weather-center-shell{display:flex;flex-direction:column;gap:12px}.weather-center-shell .weather-snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.weather-center-shell .weather-snapshot-item{border:1px solid #d9e6f4;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 18px #0f172a0d;padding:10px 12px;min-height:86px}.weather-center-shell .weather-snapshot-item.is-alert{border-color:#f2c4c4;background:linear-gradient(180deg,#fff7f7,#fffefe)}.weather-center-shell .snapshot-label{font-size:12px;color:#5f7188;margin-bottom:5px}.weather-center-shell .snapshot-value{font-size:22px;line-height:1.25;font-weight:700;color:#0f172a;letter-spacing:-.02em}.weather-center-shell .snapshot-meta{margin-top:5px;font-size:11.5px;color:#64748b}.weather-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.weather-center-shell .weather-module{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden;min-height:0}.weather-center-shell .weather-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;height:46px;min-height:46px;padding:0 12px;box-sizing:border-box;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#38bdf817,#93c5fd0d)}.weather-center-shell .weather-card-header h3{margin:0;font-size:15px;font-weight:680;color:#0f172a;line-height:1;display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0}.weather-center-shell .weather-card-header h3>small{font-size:11px;letter-spacing:.2px;font-weight:600;color:#688099;margin-left:10px;white-space:nowrap}.weather-center-shell .weather-module-title{min-width:0}.weather-center-shell .weather-title-forecast .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.weather-center-shell .weather-title-warning .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.weather-center-shell .weather-title-weekly .module-dot{background:linear-gradient(180deg,#4f46e5,#3730a3);box-shadow:0 0 0 3px #6366f12e}.weather-center-shell .weather-title-satellite .module-dot{background:linear-gradient(180deg,#a855f7,#7e22ce);box-shadow:0 0 0 3px #a855f72e}.weather-center-shell .weather-alerts-count{line-height:1;padding:3px 9px;display:inline-flex;align-items:center;min-height:24px;border-radius:999px;border:1px solid #d6e4f3;background:linear-gradient(180deg,#fbfdff,#f5f9ff);color:#48617d;font-size:10.5px;font-weight:650;white-space:nowrap}.weather-center-shell .weather-card-desc{margin-top:4px;font-size:12px;color:#5f7188}.weather-center-shell .weather-chart{height:336px;padding:8px 10px 10px}.weather-center-shell .wc-warning-list{display:flex;flex-direction:column;gap:8px;padding:10px;height:336px;overflow-y:auto}.weather-center-shell .wc-warning-item{display:flex;align-items:flex-start;border-radius:10px;border:1px solid #e3ecf7;padding:9px 10px;background:linear-gradient(180deg,#fff,#f7fbff)}.weather-center-shell .wc-warning-item.level-warning{border-left:3px solid #f59e0b}.weather-center-shell .wc-warning-item.level-important{border-left:3px solid #ef4444}.weather-center-shell .wc-warning-item.level-info{border-left:3px solid #3b82f6}.weather-center-shell .wc-warning-body{flex:1;min-width:0}.weather-center-shell .wc-warning-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.weather-center-shell .wc-warning-title{font-size:12.5px;font-weight:650;color:#0f172a;margin-bottom:3px}.weather-center-shell .wc-warning-desc{font-size:11.5px;color:#5f7188;line-height:1.4}.weather-center-shell .wc-warning-badge{margin-left:auto;align-self:flex-start;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:650;color:#fff;background:#64748b;white-space:nowrap}.weather-center-shell .wc-warning-item.level-warning .wc-warning-badge{background:#d97706}.weather-center-shell .wc-warning-item.level-important .wc-warning-badge{background:#dc2626}.weather-center-shell .wc-warning-item.level-info .wc-warning-badge{background:#2563eb}.weather-center-shell .wc-warning-empty{padding:30px 14px;text-align:center;color:#64748b}.weather-center-shell .wc-warning-empty-title{font-size:14px;font-weight:650;color:#0f172a}.weather-center-shell .wc-warning-empty-desc{font-size:12px;margin-top:3px;color:#64748b}.weather-center-shell .weather-forecast-card,.weather-center-shell .weather-satellite-card{padding-bottom:0}.weather-center-shell .weather-forecast-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:12px}.weather-center-shell .forecast-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 12px 0}.weather-center-shell .forecast-highlight-item{border:1px solid #d8e6f4;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:9px 10px}.weather-center-shell .forecast-highlight-item .label{font-size:11.5px;color:#688099}.weather-center-shell .forecast-highlight-item .value{margin-top:3px;font-size:18px;font-weight:720;letter-spacing:-.01em;color:#0f172a}.weather-center-shell .forecast-highlight-item .meta{margin-top:3px;font-size:11px;color:#7790aa}.weather-center-shell .forecast-item{border-radius:11px;border-color:#d9e6f4;background:linear-gradient(180deg,#fff,#f5faff);padding:10px 11px 9px;display:flex;flex-direction:column;gap:7px;border-left:3px solid #6aa5de}.weather-center-shell .forecast-item.risk-mid{border-left-color:#d99a29}.weather-center-shell .forecast-item.risk-high{border-left-color:#d6595f}.weather-center-shell .forecast-headline{display:flex;align-items:center;justify-content:space-between;gap:8px}.weather-center-shell .forecast-risk-badge{border-radius:999px;font-size:10.5px;padding:2px 7px;font-weight:650;border:1px solid #cfe0f1;color:#43627f;background:#f5faff}.weather-center-shell .forecast-item.risk-mid .forecast-risk-badge{border-color:#f0d5ab;color:#8e5a0b;background:#fff5e8}.weather-center-shell .forecast-item.risk-high .forecast-risk-badge{border-color:#f2c0c4;color:#aa3036;background:#fff2f3}.weather-center-shell .forecast-main{display:flex;align-items:center;gap:10px}.weather-center-shell .forecast-actions{display:inline-flex;gap:8px;align-items:center}.weather-center-shell .forecast-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px 0}.weather-center-shell .forecast-actions-label{display:inline-flex;align-items:center;white-space:nowrap;min-width:24px;font-size:12px;color:#5f7188;font-weight:600}.weather-center-shell .forecast-actions .form-control{min-width:120px}.weather-center-shell .forecast-date{font-size:12px}.weather-center-shell .forecast-icon{font-size:27px;line-height:1}.weather-center-shell .forecast-temp{font-size:14px;font-weight:700;display:inline-flex;align-items:baseline;gap:4px}.weather-center-shell .forecast-temp .high{color:#d35a4a}.weather-center-shell .forecast-temp .split{color:#8ca2ba;font-weight:500}.weather-center-shell .forecast-temp .low{color:#2f6ebb}.weather-center-shell .forecast-metrics{display:flex;flex-wrap:wrap;gap:6px}.weather-center-shell .forecast-rain-chip,.weather-center-shell .forecast-wind-chip{display:inline-flex;align-items:center;border:1px solid #d8e5f3;border-radius:999px;padding:2px 8px;font-size:11px;color:#5f7791;background:#f8fbff}.weather-center-shell .forecast-rainbar{width:100%;height:4px;border-radius:999px;background:#e8f0fa;overflow:hidden}.weather-center-shell .forecast-rainbar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#69aee8,#3b82f6 55%,#2563eb)}.weather-center-shell .forecast-rain,.weather-center-shell .forecast-wind,.weather-center-shell .forecast-advice{font-size:11.5px}.weather-center-shell .forecast-advice{color:#5a718a}.weather-center-shell .weather-ventusky-wrap{position:relative;width:100%;padding-bottom:52%;background:#dbe7f5}.weather-center-shell .weather-ventusky-wrap iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}@media(max-width:1120px){.weather-center-shell .weather-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-top-grid{grid-template-columns:1fr}.weather-center-shell .forecast-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-center-shell .weather-chart,.weather-center-shell .wc-warning-list{height:320px}}@media(max-width:820px){.weather-center-shell .weather-snapshot-grid{grid-template-columns:1fr}.weather-center-shell .weather-card-header{padding:9px 10px}.weather-center-shell .weather-card-header h3{font-size:14px}.weather-center-shell .weather-card-header h3>small{font-size:10.5px}.weather-center-shell .weather-chart{height:290px;padding:8px}.weather-center-shell .wc-warning-list{height:290px}.weather-center-shell .weather-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-center-shell .forecast-highlights{grid-template-columns:1fr}.weather-center-shell .forecast-toolbar{justify-content:flex-start}}@media(max-width:1120px){.bilateral-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bilateral-table-tools .tool-item .form-control{min-width:160px}}@media(max-width:820px){.bilateral-shell .bilateral-card-header{height:auto;min-height:46px;padding:8px 10px;align-items:flex-start;flex-direction:column}.bilateral-shell .bilateral-card-header h3{width:100%;font-size:14px;justify-content:space-between}.bilateral-shell .bilateral-card-header h3>small{font-size:10.5px}.bilateral-year-control{width:100%;justify-content:flex-start}.bilateral-contract-actions{width:100%;justify-content:space-between}.bilateral-table-tools{flex-direction:column;align-items:stretch}.bilateral-table-tools .tool-item .form-control,.bilateral-table-tools .tool-item.tool-type .form-control{min-width:0;width:100%}.bilateral-overview-grid{grid-template-columns:1fr}.bilateral-monthly-chart{height:286px;padding:0 6px 8px}.bilateral-form-grid{grid-template-columns:1fr}}.auction-shell{display:flex;flex-direction:column;gap:14px}.auction-shell .auction-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.auction-shell .auction-card:hover{transform:none}.auction-shell .auction-card-header{height:46px;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.auction-shell .auction-card-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.auction-shell .auction-card-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.auction-shell .auction-module-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.auction-shell .auction-title-orderbook .module-dot{background:linear-gradient(180deg,#4f46e5,#3730a3);box-shadow:0 0 0 3px #6366f129}.auction-shell .auction-title-declared .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.auction-shell .auction-title-deal .module-dot{background:linear-gradient(180deg,#16a34a,#166534);box-shadow:0 0 0 3px #16a34a29}.auction-shell .auction-period{font-size:11px;line-height:1;font-weight:650;color:#4f6b8a;padding:3px 10px;border-radius:999px;border:1px solid #d4e2f2;background:linear-gradient(180deg,#fbfdff,#f5f9ff);white-space:nowrap}.auction-stats-compact{margin:0;padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.auction-shell .stat-item-compact{text-align:left;border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);box-shadow:none;color:#0f172a;padding:11px 12px;min-height:88px}.auction-shell .stat-item-compact .stat-label{display:block;font-size:12px;color:#617892!important;margin-bottom:6px;font-weight:600}.auction-shell .stat-item-compact .stat-value{display:block;font-size:28px;font-family:var(--font-number);line-height:1.1;letter-spacing:-.01em;color:#0f172a!important}.auction-shell .stat-item-compact .stat-meta{display:block;margin-top:3px;font-size:11.5px;color:#607991}.auction-shell .stat-item-compact.stat-total .stat-value,.auction-shell .stat-item-compact.stat-total .stat-meta{color:#0c4a6e!important}.auction-shell .stat-item-compact.stat-declared .stat-value,.auction-shell .stat-item-compact.stat-declared .stat-meta{color:#075985!important}.auction-shell .stat-item-compact.stat-traded .stat-value,.auction-shell .stat-item-compact.stat-traded .stat-meta{color:#166534!important}.auction-shell .stat-item-compact.stat-remaining .stat-value,.auction-shell .stat-item-compact.stat-remaining .stat-meta{color:#9a3412!important}.auction-progress-wrap{margin:0 12px 12px;border:1px solid #d9e6f4;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);padding:8px 10px}.auction-progress-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:#5f7791;margin-bottom:6px}.auction-progress-head strong{font-size:12px;color:#0f172a}.auction-progress-track{width:100%;height:6px;border-radius:999px;background:#dce8f6;overflow:hidden}.auction-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0ea5e9,#22c55e);transition:width .3s ease}.auction-main-content{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;margin-top:0}.auction-shell .auction-right-card{align-self:start;width:260px;max-width:260px}.auction-shell .auction-left-card{min-width:0}.auction-header-tools{display:inline-flex;align-items:center;gap:8px}.auction-refresh-time,.auction-filtered-count{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.auction-filtered-count.is-filtered{color:#0b6ca5;border-color:#9bc7e4;background:#eaf4ff}.auction-shell .auction-filter-toolbar{margin:10px 12px 12px;padding:10px;border:1px solid #d8e5f3;background:#f7fbff;border-radius:10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}.auction-shell .auction-filter-toolbar .filter-group{min-width:0;display:flex;align-items:center;gap:8px}.auction-shell .auction-filter-toolbar .auction-inline-filter-group{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.auction-shell .auction-filter-toolbar .filter-group label{font-size:11px;color:#637b95;font-weight:620;margin:0;white-space:nowrap;line-height:1}.auction-shell .auction-filter-toolbar .auction-inline-filter-group label{margin:0!important;white-space:nowrap;text-align:left}.auction-shell .auction-filter-toolbar .filter-group .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.auction-shell .auction-filter-toolbar .auction-inline-filter-group .form-control{width:100%}.auction-shell .auction-filter-toolbar #resetFilters{white-space:nowrap;min-height:32px;height:32px;align-self:center}.auction-shell .auction-table-container,.auction-shell .deal-table-container{margin-top:0}.auction-shell .auction-table-container{max-height:498px;overflow:auto;overflow-y:auto;overflow-x:auto;position:relative}.auction-shell .auction-table{border:none;border-radius:0;border-collapse:separate;border-spacing:0;overflow:visible}.auction-shell .auction-table thead{position:sticky;top:0;z-index:6}.auction-shell .auction-table th{position:sticky!important;top:0!important;z-index:7;font-size:12px;color:#536d87;border-bottom:1px solid #d8e5f3;white-space:normal;line-height:1.3;padding:7px 6px;min-height:34px;background:#eff5fb}.auction-shell .auction-table td{font-size:12px;color:#1f2d3e;border-bottom-color:#e2ecf8;white-space:nowrap;line-height:1.25;padding:6px;min-height:34px}.auction-shell .auction-table th:nth-child(2),.auction-shell .auction-table td:nth-child(2){min-width:92px}.auction-shell .auction-table td:nth-child(2) .btn-link{white-space:nowrap}.auction-shell .auction-table tbody tr.is-active{background:#eaf4ff}.auction-shell .auction-table tbody tr.is-active td{border-bottom-color:#cae0f6}.auction-shell .auction-table .btn-link{font-size:12px;color:#0a6aa3;font-weight:620;padding:0;border:0;background:transparent}.auction-shell .auction-table .btn-link:hover{color:#094f79;text-decoration:underline}.auction-status{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:650;border:1px solid transparent}.auction-status.status-traded{color:#166534;background:#ecfdf3;border-color:#b7edcb}.auction-status.status-declared{color:#075985;background:#eff8ff;border-color:#b9daf6}.auction-status.status-partial{color:#92400e;background:#fff7ed;border-color:#ffd3a3}.auction-status.status-none,.auction-status.status-unknown{color:#64748b;background:#f1f5f9;border-color:#d7e0ea}.auction-shell .auction-direction{min-width:32px;text-align:center;padding:2px 7px;font-size:11px;border-radius:999px}.auction-shell .orderbook-container{padding:10px 12px 12px}.auction-shell .orderbook-table{border-radius:10px;border:1px solid #d9e5f3;overflow:hidden}.auction-shell .orderbook-table th{font-size:12px;color:#546e87}.auction-shell .orderbook-table td{font-size:12px}.auction-shell #auctionSellOrders td{background:#fff4f4!important}.auction-shell #auctionBuyOrders td{background:#f1f8f2!important}.auction-shell .deal-table{border-radius:0;border:none}.auction-shell .deal-table th{font-size:12px;color:#536d87;border-bottom:1px solid #d8e5f3;white-space:normal;line-height:1.3;padding:7px 6px;min-height:34px}.auction-shell .deal-table td{font-size:12px;color:#1f2d3e;border-bottom-color:#e2ecf8;white-space:nowrap;line-height:1.25;padding:6px;min-height:34px}.auction-shell .deal-direction{font-size:11px;padding:3px 7px}.auction-empty-cell{text-align:center;color:#8d9aae;padding:26px 10px!important}@media(max-width:1240px){.auction-stats-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.auction-main-content{grid-template-columns:1fr}.auction-shell .auction-right-card{width:auto;max-width:none}}@media(max-width:820px){.auction-shell .auction-card-header{height:auto;min-height:46px;padding:8px 10px;align-items:flex-start;flex-direction:column}.auction-shell .auction-card-header h3{width:100%;font-size:14px;justify-content:space-between}.auction-header-tools{width:100%;justify-content:space-between}.auction-shell .auction-filter-toolbar{grid-template-columns:1fr}.auction-shell .auction-filter-toolbar .filter-group{width:100%;display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center}.auction-stats-compact{grid-template-columns:1fr}}.spot-info-shell{display:flex;flex-direction:column;gap:14px}.spot-info-shell .spot-info-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.spot-info-shell .spot-info-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e91a,#93c5fd0d)}.spot-info-shell .spot-info-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.spot-info-shell .spot-info-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.spot-info-shell .spot-info-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.spot-info-shell .spot-info-actions{display:inline-flex;align-items:center;gap:8px}.spot-info-shell .spot-info-refresh{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.spot-info-shell .spot-info-toolbar{margin:12px 12px 10px;padding:10px;border:1px solid #d8e5f3;background:#f7fbff;border-radius:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}.spot-info-shell .spot-inline-filter{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.spot-info-shell .spot-inline-filter label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.spot-info-shell .spot-inline-filter .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.spot-info-shell .spot-info-kpi-grid{margin:0;padding:0 12px 10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.spot-info-shell .spot-info-kpi-item{border:1px solid #d9e5f3;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:9px 10px}.spot-info-shell .spot-info-kpi-item .kpi-label{display:block;font-size:11px;color:#637a93;margin-bottom:4px}.spot-info-shell .spot-info-kpi-item .kpi-value{display:block;font-size:20px;line-height:1.15;color:#0f172a;font-family:var(--font-number)}.spot-info-shell .spot-info-kpi-item .kpi-sub{display:block;margin-top:3px;font-size:11px;color:#6f86a1}.spot-info-shell .spot-info-main-grid{padding:0 12px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.spot-info-shell .spot-info-panel{border:1px solid #d9e5f3;border-radius:12px;background:#fff;overflow:hidden}.spot-info-shell .spot-info-panel-header{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;border-bottom:1px solid #dfe9f6;background:linear-gradient(180deg,#0ea5e914,#93c5fd0d)}.spot-info-shell .spot-info-panel-header .module-title{font-size:13px;color:#0f2741;font-weight:650}.spot-info-shell .spot-info-panel-header small{font-size:11px;color:#6f86a1}.spot-info-shell .spot-info-title-supply .module-dot{background:linear-gradient(180deg,#4f46e5,#3730a3);box-shadow:0 0 0 3px #6366f12e}.spot-info-shell .spot-info-title-record .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.spot-info-shell .spot-info-panel-body{padding:8px 10px 2px}.spot-info-shell .spot-info-chart{height:322px}.spot-info-shell .spot-info-records{margin:0 12px 12px}.spot-info-shell .spot-info-table-wrap{margin-top:0;max-height:420px;overflow:auto}.spot-info-shell .spot-info-table{border:none;border-collapse:separate;border-spacing:0}.spot-info-shell .spot-info-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-size:12px;font-weight:650;border-bottom:1px solid #d8e5f3;white-space:nowrap}.spot-info-shell .spot-info-table td{font-size:12px;line-height:1.25;padding:7px 8px;border-bottom:1px solid #e2ecf8;white-space:nowrap}.spot-info-shell .spot-dir-tag,.spot-info-shell .spot-status-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;line-height:1;font-weight:640}.spot-info-shell .spot-dir-tag.buy{color:#166534;background:#dcfce7}.spot-info-shell .spot-dir-tag.sell{color:#b91c1c;background:#fee2e2}.spot-info-shell .spot-status-tag{color:#475569;background:#ecf3fb;border:1px solid #d5e4f3}.spot-info-shell .spot-info-empty-row{text-align:center;color:#7a8da5;padding:16px 12px}@media(max-width:1280px){.spot-info-shell .spot-info-toolbar,.spot-info-shell .spot-info-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spot-info-shell .spot-info-main-grid{grid-template-columns:1fr}}@media(max-width:820px){.spot-info-shell .spot-info-header{min-height:46px;height:auto;padding:8px 10px;align-items:flex-start;flex-direction:column}.spot-info-shell .spot-info-header h3{width:100%;font-size:14px;justify-content:space-between}.spot-info-shell .spot-info-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.spot-info-shell .spot-info-toolbar{grid-template-columns:1fr}.spot-info-shell .spot-inline-filter{grid-template-columns:72px 1fr}.spot-info-shell .spot-info-kpi-grid{grid-template-columns:1fr}}.spot-results-shell{display:flex;flex-direction:column;gap:14px}.spot-results-shell .spot-results-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.spot-results-shell .spot-results-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#4f46e51a,#93c5fd0d)}.spot-results-shell .spot-results-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.spot-results-shell .spot-results-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.spot-results-shell .spot-results-title .module-dot{background:linear-gradient(180deg,#4f46e5,#312e81);box-shadow:0 0 0 3px #4f46e52e}.spot-results-shell .spot-results-actions{display:inline-flex;align-items:center;gap:8px}.spot-results-shell .spot-refresh-time{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.spot-results-shell .spot-toolbar{margin:12px 12px 10px;padding:10px;border:1px solid #d8e5f3;background:#f7fbff;border-radius:10px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) auto auto;gap:10px;align-items:end}.spot-results-shell .spot-inline-filter{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.spot-results-shell .spot-inline-filter label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.spot-results-shell .spot-inline-filter .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.spot-results-shell .spot-toolbar .btn{min-height:32px;height:32px;align-self:center;white-space:nowrap}.spot-results-shell .spot-summary-grid{margin:0;padding:0 12px 10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.spot-results-shell .spot-summary-item{border:1px solid #d9e5f3;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:9px 10px}.spot-results-shell .spot-summary-label{display:block;font-size:11px;color:#637a93;margin-bottom:4px}.spot-results-shell .spot-summary-value{display:block;font-size:20px;line-height:1.15;color:#0f172a;font-family:var(--font-number)}.spot-results-shell .spot-main-grid{padding:0 12px 10px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:10px}.spot-results-shell .spot-chart-card,.spot-results-shell .spot-key-card{border:1px solid #d9e5f3;border-radius:12px;background:#fff;overflow:hidden}.spot-results-shell .spot-section-header{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;border-bottom:1px solid #dfe9f6;background:linear-gradient(180deg,#0ea5e914,#93c5fd0d)}.spot-results-shell .spot-section-header .module-title{font-size:13px;color:#0f2741;font-weight:650}.spot-results-shell .spot-section-header small{font-size:11px;color:#6f86a1}.spot-results-shell .spot-chart-wrap{padding:8px 10px 2px}.spot-results-shell .spot-key-list{padding:10px;display:grid;gap:8px}.spot-results-shell .spot-key-item{border:1px solid #d8e5f3;border-radius:9px;background:linear-gradient(180deg,#fbfdff,#f4f8ff);padding:8px 9px}.spot-results-shell .spot-key-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.spot-results-shell .spot-key-head span{font-size:12px;color:#526b87;font-weight:620}.spot-results-shell .spot-key-head small{font-size:11px;color:#7b8fa7}.spot-results-shell .spot-key-item strong{display:block;font-size:18px;line-height:1.2;color:#0f172a;font-family:var(--font-number)}.spot-results-shell .spot-key-empty{border:1px dashed #cfe0f2;border-radius:10px;color:#71859d;font-size:12px;text-align:center;padding:24px 12px}.spot-results-shell .spot-table-wrap{margin-top:0;max-height:520px;overflow:auto}.spot-results-shell .spot-results-table{border:none;border-collapse:separate;border-spacing:0}.spot-results-shell .spot-results-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-size:12px;font-weight:650;border-bottom:1px solid #d8e5f3;white-space:nowrap}.spot-results-shell .spot-results-table td{font-size:12px;line-height:1.25;padding:7px 8px;border-bottom:1px solid #e2ecf8;white-space:nowrap}.spot-results-shell .spot-results-table tr.is-max td{background:#ef44440a}.spot-results-shell .spot-results-table tr.is-min td{background:#16a34a0d}.spot-results-shell .spot-delta{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:640;line-height:1}.spot-results-shell .spot-delta.up{color:#b91c1c;background:#fee2e2}.spot-results-shell .spot-delta.down{color:#166534;background:#dcfce7}.spot-results-shell .spot-delta.flat{color:#4b6380;background:#ecf3fb}.spot-results-shell .spot-price-tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:640;line-height:1}.spot-results-shell .spot-price-tag.high{color:#b45309;background:#fef3c7}.spot-results-shell .spot-price-tag.mid{color:#1d4ed8;background:#dbeafe}.spot-results-shell .spot-price-tag.low{color:#166534;background:#dcfce7}.spot-results-shell .spot-empty-row{text-align:center;color:#7a8da5;padding:16px 12px}@media(max-width:1180px){.spot-results-shell .spot-toolbar,.spot-results-shell .spot-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spot-results-shell .spot-main-grid{grid-template-columns:1fr}}@media(max-width:820px){.spot-results-shell .spot-results-header{min-height:46px;height:auto;padding:8px 10px;align-items:flex-start;flex-direction:column}.spot-results-shell .spot-results-header h3{width:100%;font-size:14px;justify-content:space-between}.spot-results-shell .spot-results-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.spot-results-shell .spot-toolbar{grid-template-columns:1fr}.spot-results-shell .spot-inline-filter{grid-template-columns:72px 1fr}.spot-results-shell .spot-summary-grid{grid-template-columns:1fr}}.listing-shell,.lt-results-shell{display:flex;flex-direction:column;gap:14px}.listing-shell .listing-card,.lt-results-shell .lt-results-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.listing-shell .listing-card:hover,.lt-results-shell .lt-results-card:hover{transform:none}.listing-shell .listing-card-header,.lt-results-shell .lt-results-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.listing-shell .listing-card-header h3,.lt-results-shell .lt-results-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.listing-shell .listing-card-header h3>small,.lt-results-shell .lt-results-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.listing-shell .listing-module-title .module-dot,.lt-results-shell .lt-results-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.listing-shell .listing-title-actions .module-dot{background:linear-gradient(180deg,#16a34a,#166534);box-shadow:0 0 0 3px #16a34a29}.listing-shell .listing-title-board .module-dot{background:linear-gradient(180deg,#4f46e5,#3730a3);box-shadow:0 0 0 3px #6366f129}.listing-shell .listing-title-transaction .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.listing-shell .listing-period,.listing-shell .listing-action-time,.lt-results-shell .lt-refresh-time{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.listing-shell .listing-stats{margin:0;padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.listing-shell .listing-kpi{text-align:left;border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:11px 12px;min-height:90px}.listing-shell .listing-kpi .stat-label{font-size:12px;color:#637a93;margin-bottom:5px}.listing-shell .listing-kpi .stat-value-large{font-size:28px;font-family:var(--font-number);line-height:1.1}.listing-shell .listing-kpi .stat-percentage{margin-top:2px;font-size:11.5px;color:#5f7791}.listing-shell .listing-actions{margin:0;padding:12px;display:flex;gap:10px;justify-content:flex-start;flex-wrap:wrap}.listing-shell .listing-actions .btn{min-height:34px;height:34px;padding:0 14px}.listing-shell .listing-table-container,.listing-shell .transaction-table-container{margin-top:0;max-height:430px;overflow:auto;position:relative}.listing-shell .listing-table,.listing-shell .transaction-table{width:100%;border-collapse:separate;border-spacing:0;border:none;border-radius:0}.listing-shell .listing-table th,.listing-shell .transaction-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-weight:650;font-size:12px;line-height:1.3;padding:7px 6px;border-bottom:1px solid #d8e5f3;white-space:normal}.listing-shell .listing-table td,.listing-shell .transaction-table td{font-size:12px;color:#1f2d3e;line-height:1.25;padding:6px;border-bottom:1px solid #e2ecf8;white-space:nowrap}.listing-shell .listing-table tbody tr:hover,.listing-shell .transaction-table tbody tr:hover{background:#f8fbff}.listing-shell .can-trade-time,.listing-shell .reserved-info{font-size:11px;color:#64748b;margin-bottom:4px}.listing-shell .can-trade-countdown{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.listing-shell .reserved-status,.listing-shell .transaction-status{border-radius:999px;font-size:11px;padding:3px 8px;font-weight:650}.listing-shell .status-picked{background:#ecfdf3;color:#166534}.listing-shell .status-reserved{background:#fff7ed;color:#92400e}.listing-shell .status-sold{background:#eff8ff;color:#075985}.listing-shell .status-unsold{background:#f1f5f9;color:#475569}.listing-shell .pick-btn{min-height:28px;height:28px;padding:0 10px;border-radius:7px}.listing-shell .detail-btn{margin-left:6px}.lt-results-shell .lt-results-actions{display:inline-flex;align-items:center;gap:8px}.lt-results-shell .lt-toolbar{margin:12px 12px 10px;padding:10px;border:1px solid #d8e5f3;background:#f7fbff;border-radius:10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}.lt-results-shell .lt-inline-filter{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.lt-results-shell .lt-inline-filter label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.lt-results-shell .lt-toolbar .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.lt-results-shell #ltResetFilters{min-height:32px;height:32px;align-self:center}.lt-results-shell .lt-summary-grid{padding:0 12px 10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lt-results-shell .lt-summary-item{border:1px solid #d9e5f3;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:9px 10px}.lt-results-shell .lt-summary-label{display:block;font-size:11px;color:#637a93;margin-bottom:4px}.lt-results-shell .lt-summary-value{display:block;font-size:20px;line-height:1.15;color:#0f172a;font-family:var(--font-number)}.lt-results-shell .lt-table-wrap{margin-top:0;max-height:540px;overflow:auto}.lt-results-shell .lt-results-table{border:none;border-collapse:separate;border-spacing:0}.lt-results-shell .lt-results-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-size:12px;font-weight:650;border-bottom:1px solid #d8e5f3}.lt-results-shell .lt-results-table td{font-size:12px;line-height:1.25;padding:7px 8px;border-bottom:1px solid #e2ecf8;white-space:nowrap}.lt-results-shell .lt-type-tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650;border:1px solid #d4e4f4;color:#4b6380;background:#f5f9ff}.lt-results-shell .lt-type-tag.type-bilateral{border-color:#bad8fa;color:#175ea8;background:#eaf3ff}.lt-results-shell .lt-type-tag.type-auction{border-color:#d6c6f3;color:#6f42c1;background:#f4efff}.lt-results-shell .lt-type-tag.type-rolling{border-color:#bee8cf;color:#1f8a5c;background:#eafaf0}.lt-results-shell .lt-type-tag.type-listing{border-color:#f8d8a2;color:#a05a00;background:#fff7ea}.lt-results-shell .lt-empty-row{text-align:center;color:#7a8fa8;padding:26px 10px!important}@media(max-width:1240px){.listing-shell .listing-stats,.lt-results-shell .lt-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.listing-shell .listing-card-header,.lt-results-shell .lt-results-header{min-height:46px;height:auto;padding:8px 10px;align-items:flex-start;flex-direction:column}.listing-shell .listing-card-header h3,.lt-results-shell .lt-results-header h3{width:100%;font-size:14px;justify-content:space-between}.lt-results-shell .lt-results-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.lt-results-shell .lt-toolbar{grid-template-columns:1fr}.lt-results-shell .lt-inline-filter{grid-template-columns:72px 1fr}.listing-shell .listing-stats,.lt-results-shell .lt-summary-grid{grid-template-columns:1fr}}.rolling-shell{display:flex;flex-direction:column;gap:14px}.rolling-shell .rolling-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.rolling-shell .rolling-card-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.rolling-shell .rolling-card-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.rolling-shell .rolling-card-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.rolling-shell .rolling-module-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.rolling-shell .rolling-title-time .module-dot{background:linear-gradient(180deg,#6366f1,#4338ca);box-shadow:0 0 0 3px #6366f129}.rolling-shell .rolling-title-market .module-dot{background:linear-gradient(180deg,#06b6d4,#0e7490);box-shadow:0 0 0 3px #06b6d429}.rolling-shell .rolling-title-volume .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.rolling-shell .rolling-title-insight .module-dot{background:linear-gradient(180deg,#22c55e,#15803d);box-shadow:0 0 0 3px #22c55e29}.rolling-shell .rolling-refresh-time,.rolling-shell .rolling-market-meta{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.rolling-shell .rolling-market-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.rolling-shell .rolling-market-controls label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.rolling-shell .rolling-market-controls .form-control{width:112px;min-height:30px;height:30px;padding:4px 26px 4px 8px}.rolling-shell .rolling-toolbar{margin:12px;padding:10px;border:1px solid #d8e5f3;background:#f7fbff;border-radius:10px;display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:10px;align-items:end}.rolling-shell .rolling-date-picker{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.rolling-shell .rolling-date-picker label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.rolling-shell .rolling-date-picker .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.rolling-shell .rolling-toolbar-actions{display:inline-flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.rolling-shell .rolling-toolbar-actions .btn{min-height:32px;height:32px;padding:0 12px}.rolling-shell .rolling-kpi-grid{margin:0;padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.rolling-shell .stat-item-compact{text-align:left;border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);box-shadow:none;color:#0f172a;padding:11px 12px;min-height:88px}.rolling-shell .stat-item-compact .stat-label{display:block;font-size:12px;color:#617892!important;margin-bottom:6px;font-weight:600}.rolling-shell .stat-item-compact .stat-value{display:block;font-size:28px;font-family:var(--font-number);line-height:1.1;letter-spacing:-.01em;color:#0f172a!important}.rolling-shell .stat-item-compact .stat-meta{display:block;margin-top:3px;font-size:11.5px;color:#607991}.rolling-shell .stat-item-compact.stat-total .stat-value,.rolling-shell .stat-item-compact.stat-total .stat-meta{color:#1d4ed8!important}.rolling-shell .stat-item-compact.stat-declared .stat-value,.rolling-shell .stat-item-compact.stat-declared .stat-meta{color:#0c4a6e!important}.rolling-shell .stat-item-compact.stat-traded .stat-value,.rolling-shell .stat-item-compact.stat-traded .stat-meta{color:#166534!important}.rolling-shell .stat-item-compact.stat-remaining .stat-value,.rolling-shell .stat-item-compact.stat-remaining .stat-meta{color:#9a3412!important}.rolling-shell .rolling-time-wrap{padding:12px}.rolling-shell .rolling-time-selector{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}.rolling-shell .time-btn{height:30px;border:1px solid #d7e3f1;background:#fff;border-radius:8px;cursor:pointer;font-size:11px;font-weight:600;color:#526a86;transition:all .2s ease}.rolling-shell .time-btn:hover{border-color:#9ec0e3;background:#f3f8ff}.rolling-shell .time-btn.active{background:linear-gradient(180deg,#1d4ed8,#1e40af);color:#fff;border-color:#1d4ed8;box-shadow:0 6px 12px #1d4ed833}.rolling-shell .rolling-market-body{padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px;align-items:stretch}.rolling-shell .rolling-kline-chart{min-height:430px}.rolling-shell .rolling-orderbook{margin:0;border:1px solid #d8e5f3;border-radius:10px;padding:8px;background:#f9fbff}.rolling-shell .rolling-orderbook table{width:100%;border-collapse:collapse;font-size:11px}.rolling-shell .rolling-orderbook th,.rolling-shell .rolling-orderbook td{padding:4px;text-align:center;border-bottom:1px solid #e2ecf8}.rolling-shell .rolling-orderbook th{background:#edf4fb;color:#526a86;font-weight:650}.rolling-shell .rolling-orderbook tbody:nth-of-type(1) tr{background:#fff5f5}.rolling-shell .rolling-orderbook tbody:nth-of-type(2) tr{background:#f0f9ff}.rolling-shell .rolling-orderbook .sell-price,.rolling-shell .rolling-orderbook .highlight-sell{color:#dc2626}.rolling-shell .rolling-orderbook .buy-price,.rolling-shell .rolling-orderbook .highlight-buy{color:#2563eb}.rolling-shell .rolling-orderbook tr[data-order-side]{cursor:pointer;transition:background-color .2s ease}.rolling-shell .rolling-orderbook tr[data-order-side]:hover{background:#eaf3ff!important}.rolling-shell .rolling-volume-wrap{padding:12px}.rolling-shell .rolling-volume-chart{height:300px}.rolling-shell .rolling-info-grid{padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rolling-shell .info-card{border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:10px 12px;min-height:0;display:block}.rolling-shell .info-card h4{margin:0 0 8px;font-size:14px;font-weight:680;color:#1f2d3e;border-bottom:1px solid #e2ecf8;padding-bottom:6px}.rolling-shell .info-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;gap:10px;font-size:12px}.rolling-shell .info-item:last-child{margin-bottom:0}.rolling-shell .info-item .label{color:#637b95;font-weight:600;white-space:nowrap}.rolling-shell .info-item .label:before{content:none!important}.rolling-shell .info-item .value{color:#1f2d3e;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;flex-basis:auto}.rolling-shell .info-item .value.buy-price,.rolling-shell .info-item .value.buy-volume{color:#dc2626}.rolling-shell .info-item .value.sell-price,.rolling-shell .info-item .value.sell-volume{color:#2563eb}.rolling-shell .rolling-log-actions{display:inline-flex;align-items:center;gap:8px}.rolling-shell .rolling-log-count{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.rolling-shell .rolling-log-table-wrap{max-height:330px;overflow:auto}.rolling-shell .rolling-log-table{width:100%;border-collapse:separate;border-spacing:0}.rolling-shell .rolling-log-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-size:12px;font-weight:650;border-bottom:1px solid #d8e5f3;white-space:nowrap}.rolling-shell .rolling-log-table td{font-size:12px;line-height:1.25;padding:7px 8px;border-bottom:1px solid #e2ecf8;color:#1f2d3e;white-space:nowrap}.rolling-shell .rolling-log-empty{text-align:center;color:#7a8fa8;padding:24px 10px!important}.declare-validation{border:1px dashed #d8e5f3;border-radius:10px;padding:8px 10px;background:#f8fbff}.declare-validation .validation-ok{font-size:12px;color:#0f766e}.declare-validation .validation-warning{font-size:12px;color:#b45309}.declare-validation .validation-error{font-size:12px;color:#b91c1c}.monitor-sound-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.rolling-shell .info-item .value.monitor-trigger{color:#b91c1c!important;font-weight:760}.rolling-shell .rolling-control-card.monitor-alert-buy,.rolling-shell .rolling-control-card.monitor-alert-sell,.rolling-shell .rolling-control-card.monitor-alert-both{border-color:#f6b7b7;box-shadow:0 0 0 3px #ef44441f}@media(max-width:1240px){.rolling-shell .rolling-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rolling-shell .rolling-market-body,.rolling-shell .rolling-info-grid{grid-template-columns:1fr}.rolling-shell .rolling-orderbook{max-width:420px}}@media(max-width:820px){.rolling-shell .rolling-card-header{min-height:46px;height:auto;padding:8px 10px;align-items:flex-start;flex-direction:column}.rolling-shell .rolling-card-header h3{width:100%;font-size:14px;justify-content:space-between}.rolling-shell .rolling-market-controls{width:100%;justify-content:flex-start}.rolling-shell .rolling-toolbar{grid-template-columns:1fr}.rolling-shell .rolling-toolbar-actions{justify-content:flex-start}.rolling-shell .rolling-time-selector{grid-template-columns:repeat(8,minmax(0,1fr))}}@media(max-width:520px){.rolling-shell .rolling-kpi-grid{grid-template-columns:1fr}.rolling-shell .rolling-time-selector{grid-template-columns:repeat(6,minmax(0,1fr))}}.lt-info-shell{display:flex;flex-direction:column;gap:14px}.lt-info-shell .lt-info-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.lt-info-shell .lt-info-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.lt-info-shell .lt-info-actions{display:inline-flex;align-items:center;gap:8px}.lt-info-shell .lt-year-select{display:inline-flex;align-items:center;gap:6px}.lt-info-shell .lt-year-select label{margin:0;font-size:12px;font-weight:620;color:#5f7792;white-space:nowrap}.lt-info-shell .lt-year-select .form-control{min-height:28px;height:28px;width:98px;border-radius:999px;padding:0 22px 0 10px;font-size:12px;font-weight:620;color:#26435f;border-color:#cfe0ef;background:#f7fbff}.lt-info-shell .lt-mini-btn{min-height:28px;height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:620}.lt-info-shell .lt-info-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:inline-flex;align-items:center;gap:8px;min-width:0}.lt-info-shell .lt-info-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.lt-info-shell .lt-info-title .module-dot{background:linear-gradient(180deg,#2563eb,#1e3a8a);box-shadow:0 0 0 3px #2563eb2e}.lt-info-shell .lt-title-decomposition .module-dot{background:linear-gradient(180deg,#06b6d4,#0e7490);box-shadow:0 0 0 3px #06b6d429}.lt-info-shell .lt-title-schedule .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.lt-info-shell .lt-info-refresh{font-size:11px;line-height:1;color:#5f7692;border:1px solid #cfdeee;background:#f7fbff;border-radius:999px;padding:5px 9px;white-space:nowrap}.lt-info-shell .lt-position-body{padding:12px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:12px;align-items:stretch}.lt-info-shell .lt-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lt-info-shell .lt-kpi-item{border:1px solid #d9e5f3;border-radius:11px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:11px 12px}.lt-info-shell .lt-kpi-item .stat-label{display:block;font-size:12px;color:#637a93;margin-bottom:5px}.lt-info-shell .lt-kpi-item .stat-value-large{display:block;font-size:30px;font-family:var(--font-number);line-height:1.1;color:#0f172a}.lt-info-shell .lt-kpi-item .stat-percentage{display:block;margin-top:3px;font-size:11.5px;color:#5f7791}.lt-info-shell .lt-kpi-item .stat-delta{display:block;margin-top:2px;font-size:11.5px;font-weight:620;color:#64748b}.lt-info-shell .lt-kpi-item .stat-delta.up{color:#16a34a}.lt-info-shell .lt-kpi-item .stat-delta.down{color:#dc2626}.lt-info-shell .lt-kpi-item .stat-delta.flat{color:#64748b}.lt-info-shell .lt-kpi-item.lt-kpi-long .stat-value-large,.lt-info-shell .lt-kpi-item.lt-kpi-long .stat-percentage{color:#166534}.lt-info-shell .lt-kpi-item.lt-kpi-spot .stat-value-large,.lt-info-shell .lt-kpi-item.lt-kpi-spot .stat-percentage{color:#0c4a6e}.lt-info-shell .lt-kpi-item.lt-kpi-gap .stat-value-large,.lt-info-shell .lt-kpi-item.lt-kpi-gap .stat-percentage{color:#9a3412}.lt-info-shell .lt-position-chart{min-height:292px;border:1px solid #d9e5f3;border-radius:12px;background:linear-gradient(180deg,#fdfefe,#f4f8ff)}.lt-info-shell .lt-decomposition-stack{padding:12px;display:grid;grid-template-columns:1fr;gap:12px}.lt-info-shell .lt-legend-toolbar{padding:10px 12px 0;display:flex;flex-wrap:wrap;gap:8px}.lt-info-shell .lt-legend-chip{min-height:28px;height:28px;padding:0 12px;border-radius:999px;border:1px solid #c9dbef;background:#f7fbff;color:#516982;font-size:12px;font-weight:620;cursor:pointer}.lt-info-shell .lt-legend-chip.active{border-color:#3b82f6;color:#1d4ed8;background:#e9f3ff}.lt-info-shell .lt-decomposition-panel{border:1px solid #d9e5f3;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);overflow:hidden}.lt-info-shell .lt-panel-header{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-bottom:1px solid #dbe7f5;background:#ffffffad}.lt-info-shell .lt-panel-header h4{margin:0;font-size:14px;font-weight:680;color:#1f2d3e}.lt-info-shell .lt-panel-header span{font-size:11px;color:#627b96;white-space:nowrap}.lt-info-shell .lt-control-row{margin:10px 12px 0;padding:10px;border:1px solid #d8e5f3;border-radius:10px;background:#f7fbff;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lt-info-shell .lt-control-row label{margin:0;font-size:12px;color:#637b95;font-weight:620;white-space:nowrap}.lt-info-shell .lt-control-row span{font-size:12px;color:#6b7f95}.lt-info-shell .lt-control-row .form-control{width:168px;min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.lt-info-shell .lt-chart-panel{position:relative;overflow:hidden;height:320px;margin:10px 12px 12px;border:1px solid #d9e5f3;border-radius:10px;background:#fff}.lt-info-shell .lt-chart-panel.is-loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#f7fbffd1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:8}.lt-info-shell .lt-chart-panel.is-loading:after{content:attr(data-loading-text);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;font-weight:620;color:#5f7690;z-index:9;white-space:nowrap}.lt-info-shell .lt-control-row .btn:disabled{opacity:.72;cursor:wait}.lt-info-shell .lt-schedule-wrap{padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lt-info-shell .lt-schedule-filter-row{padding:10px 12px 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.lt-info-shell .lt-schedule-chip{min-height:28px;height:28px;padding:0 11px;border-radius:999px;border:1px solid #cdddee;background:#f8fbff;color:#516b85;font-size:12px;font-weight:620;cursor:pointer}.lt-info-shell .lt-schedule-chip.active{border-color:#0ea5e9;background:#e6f7ff;color:#0369a1}.lt-info-shell .schedule-day{border:1px solid #d9e5f3;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);overflow:hidden}.lt-info-shell .schedule-header{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;border-bottom:1px solid #dbe7f5;background:#ffffffb3}.lt-info-shell .schedule-label{font-size:13px;font-weight:680;color:#1f2d3e}.lt-info-shell .schedule-date{font-size:12px;color:#617991}.lt-info-shell .schedule-markets{padding:9px;display:flex;flex-direction:column;gap:8px}.lt-info-shell .market-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;column-gap:10px;row-gap:4px;padding:8px 10px;border:1px solid #dbe7f5;border-radius:9px;background:#fff}.lt-info-shell .market-name{font-size:13px;font-weight:650;color:#1f2d3e}.lt-info-shell .market-time{font-size:12px;color:#607a95}.lt-info-shell .market-status{min-width:58px;text-align:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:620;color:#fff}.lt-info-shell .market-status.active{background:#0ea5e9}.lt-info-shell .market-status.upcoming{background:#f59e0b}.lt-info-shell .market-status.available{background:#22c55e}.lt-info-shell .market-status.done{background:#64748b}.lt-info-shell .lt-empty-market{border:1px dashed #cfe0f2;border-radius:9px;background:#f8fbff;color:#6b8199;font-size:12px;text-align:center;padding:10px 8px}@media(max-width:1240px){.lt-info-shell .lt-position-body,.lt-info-shell .lt-schedule-wrap{grid-template-columns:1fr}}@media(max-width:820px){.lt-info-shell .lt-info-header{min-height:46px;height:auto;padding:8px 10px;align-items:flex-start;flex-direction:column}.lt-info-shell .lt-info-header h3{width:100%;font-size:14px;justify-content:space-between}.lt-info-shell .lt-info-actions{width:100%;justify-content:flex-end}.lt-info-shell .lt-year-select .form-control{width:92px}.lt-info-shell .lt-kpi-grid{grid-template-columns:1fr}.lt-info-shell .lt-control-row .form-control{width:100%}}.dayahead-shell{display:flex;flex-direction:column;gap:12px}.dayahead-shell .dayahead-hero,.dayahead-shell .dayahead-chart-card,.dayahead-shell .dayahead-bid-form,.dayahead-shell .dayahead-intertie-card,.dayahead-shell .dayahead-strategy-card{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 10px 20px #0f172a0f;padding:0;overflow:hidden}.dayahead-shell .dayahead-card-header{height:46px;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.dayahead-shell .dayahead-card-header h3{margin:0;font-size:15px;font-weight:680;line-height:1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;flex:1}.dayahead-shell .dayahead-card-header h3>small{font-size:11px;color:#688099;font-weight:600;letter-spacing:.2px;white-space:nowrap}.dayahead-shell .dayahead-card-body{padding:10px 12px 12px}.dayahead-shell .dayahead-chart-inner{width:100%}.dayahead-shell .dayahead-hero .dayahead-card-header{border-bottom:0}.dayahead-shell .dayahead-hero .dayahead-card-header h3{width:auto;flex:1}.dayahead-shell .dayahead-hero-meta{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.dayahead-shell .dayahead-hero-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;border:1px solid #cfe0ef;background:#f5faff;color:#4f6782;font-size:11px;font-weight:620;line-height:1}.dayahead-shell .dayahead-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dayahead-shell .dayahead-filter-bar{margin:0!important;border:1px solid #d7e4f2;border-radius:12px;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d);box-shadow:0 10px 20px #0f172a0d;padding:10px 12px;gap:12px}.dayahead-shell .dayahead-filter-bar .date-picker{display:inline-flex;align-items:center;gap:8px}.dayahead-shell .dayahead-filter-bar .date-picker label{min-width:52px;font-size:12px;color:#526b86;font-weight:650;white-space:nowrap}.dayahead-shell .dayahead-filter-bar .date-picker input[type=date],.dayahead-shell .dayahead-filter-bar .date-picker select{height:32px;min-width:180px;border-radius:8px;border-color:#cfe0ef;background:#fff;font-size:13px;box-shadow:none}.dayahead-shell .dayahead-filter-bar #loadBidsBtn{min-height:32px;height:32px;border-radius:8px;padding:0 14px;font-size:13px;box-shadow:none}.dayahead-shell .dayahead-intertie-header{border-bottom:1px solid #d9e5f3}.dayahead-shell .dayahead-badge{font-size:11px;color:#4f6b8a;background:linear-gradient(180deg,#fbfdff,#f5f9ff);border:1px solid #d4e2f2;border-radius:999px;padding:3px 10px;font-weight:650;line-height:1;white-space:nowrap}.dayahead-shell .dayahead-intertie-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:12px 12px 0}.dayahead-shell .dayahead-intertie-summary{margin:12px;padding:10px 12px;background:#f7fbff;border:1px solid #dbe8f5;border-radius:10px;font-size:13px;color:#35506c;line-height:1.5}.dayahead-shell .form-toolbar{margin:0;padding:10px 12px 8px;border-bottom:1px solid #e1ebf6}.dayahead-shell .toolbar-label{font-size:12px;color:#607991;font-weight:620}.dayahead-shell .toolbar-actions{padding:10px;border:1px solid #d8e5f3;border-radius:10px;background:#f7fbff;gap:8px;flex-wrap:wrap}.dayahead-shell .toolbar-actions .btn{min-height:32px;height:32px;border-radius:8px;font-size:12px;padding:0 12px;font-weight:620}.dayahead-shell .toolbar-actions .select{min-height:30px;height:30px;min-width:210px;border-radius:8px;font-size:12px}.dayahead-shell #hourInputs{padding:10px;grid-template-columns:1fr;gap:10px}@media(min-width:1700px){.dayahead-shell #hourInputs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:2500px){.dayahead-shell #hourInputs{grid-template-columns:repeat(3,minmax(0,1fr))}}.dayahead-shell .hour-group{border:1px solid #dbe7f5;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f4f8ff);padding:8px}.dayahead-shell .group-header{min-height:36px;padding:0 4px;margin-bottom:8px}.dayahead-shell .group-title{color:#1f2d3d;font-size:15px;font-weight:700}.dayahead-shell .group-actions{gap:6px}.dayahead-shell .group-actions .btn{min-height:28px;height:28px;border-radius:8px;font-size:12px;padding:0 10px}.dayahead-shell .dayahead-hour-field{border:1px solid #d9e5f3!important;border-radius:10px!important;background:#fff!important;padding:8px!important}.dayahead-shell .dayahead-hour-head,.dayahead-shell .dayahead-curve-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.dayahead-shell .dayahead-hour-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.dayahead-shell .dayahead-hour-actions .btn{min-height:24px;height:24px;border-radius:7px;font-size:11px}.dayahead-shell .segment-row{border:1px solid #dbe7f5!important;border-radius:8px!important;background:#f9fbff!important}.dayahead-shell .curve-container{border:1px solid #dbe7f5!important;border-radius:10px!important;background:#f9fbff!important}.dayahead-shell .dayahead-strategy-header{min-height:46px;height:46px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d);display:flex;justify-content:space-between;align-items:center;gap:8px}.dayahead-shell .dayahead-strategy-header h3{margin:0;font-size:15px;color:#0f172a;font-weight:680;width:100%;min-width:0;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;line-height:1}.dayahead-shell .dayahead-strategy-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.dayahead-shell .dayahead-strategy-wrap{padding:10px;display:grid;grid-template-rows:auto 280px auto;gap:10px}.dayahead-shell .dayahead-strategy-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dayahead-shell .dayahead-strategy-kpi{border:1px solid #dbe7f5;border-radius:10px;background:#f8fbff;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.dayahead-shell .dayahead-strategy-kpi .kpi-label{font-size:11px;color:#657f99;font-weight:650}.dayahead-shell .dayahead-strategy-kpi .kpi-value{font-size:17px;color:#13253a;font-weight:720;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dayahead-shell .dayahead-strategy-kpi .kpi-sub{font-size:11px;color:#5b7390}.dayahead-shell .dayahead-strategy-curve{border:1px solid #dbe7f5;border-radius:10px;background:#fff}.dayahead-shell .dayahead-strategy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dayahead-shell .dayahead-strategy-item{border:1px solid #dbe7f5;border-radius:10px;background:#f9fbff;padding:8px;display:flex;flex-direction:column;gap:7px}.dayahead-shell .dayahead-strategy-item.is-active{border-color:#84b7f3;box-shadow:0 0 0 1px #3b82f63d}.dayahead-shell .dayahead-strategy-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.dayahead-shell .dayahead-strategy-item-title{display:inline-flex;align-items:center;gap:6px;min-width:0}.dayahead-shell .dayahead-strategy-item-title strong{font-size:13px;color:#13253a;font-weight:680}.dayahead-shell .dayahead-strategy-item-title .scope-tag,.dayahead-shell .dayahead-strategy-item-head .score-tag{font-size:10px;line-height:1;padding:3px 8px;border-radius:999px;white-space:nowrap}.dayahead-shell .dayahead-strategy-item-title .scope-tag{background:#e9f3ff;color:#35618d;border:1px solid #c9ddf2}.dayahead-shell .dayahead-strategy-item-head .score-tag{background:#ecfdf3;color:#16784a;border:1px solid #bdeccc;font-weight:680}.dayahead-shell .dayahead-strategy-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}.dayahead-shell .dayahead-strategy-metrics span{font-size:11px;color:#435d7a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dayahead-shell .strategy-apply-btn{align-self:flex-end;min-height:26px;height:26px;padding:0 10px;font-size:11px;border-radius:7px}.dayahead-shell .dayahead-strategy-empty{border:1px dashed #cbdcf0;border-radius:10px;min-height:74px;display:flex;align-items:center;justify-content:center;color:#607a97;font-size:12px}.dayahead-shell .hour-input-container>div{padding:6px!important;gap:6px!important}.dayahead-shell .hour-input-container label,.dayahead-shell .hour-input-container span{font-size:11px!important}.dayahead-shell .hour-input-container input{height:28px;padding:4px 6px!important;font-size:12px!important}.dayahead-shell .segment-row{margin-bottom:4px!important;padding:5px!important}.dayahead-shell .dayahead-value-table-wrap{width:100%;border:1px solid #ccd8e8;border-radius:4px;overflow:auto;background:#fff}.dayahead-shell .dayahead-value-table{margin:0;min-width:980px;border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.dayahead-shell .dayahead-value-table th{background:#f4f7fb;color:#344b63;font-size:11px;font-weight:700;padding:5px 6px;border-bottom:1px solid #ccd8e8;border-right:1px solid #dce5f1;text-align:center;letter-spacing:.1px}.dayahead-shell .dayahead-value-table td{padding:3px 6px;border-bottom:1px solid #e3eaf4;border-right:1px solid #e3eaf4;vertical-align:middle;background:#fff}.dayahead-shell .dayahead-value-table tbody tr:last-child td{border-bottom:0}.dayahead-shell .dayahead-value-table .period-col{width:58px;color:#4d6480;font-weight:650;white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums}.dayahead-shell .dayahead-value-table .value-col{width:132px}.dayahead-shell .dayahead-value-table .hour-input-container.compact{width:100%}.dayahead-shell .dayahead-value-input{width:100%;height:24px;padding:4px 6px;border:1px solid #c5d1e0;border-radius:2px;font-size:12px;color:#1e2f45;background:#fff;text-align:right;font-variant-numeric:tabular-nums}.dayahead-shell .dayahead-value-input:focus{outline:none;border-color:#4f8edc;box-shadow:0 0 0 1px #4f8edc47}.dayahead-shell .dayahead-title-main .module-dot{background:linear-gradient(180deg,#0284c7,#075985);box-shadow:0 0 0 3px #0ea5e933}.dayahead-shell .dayahead-title-boundary .module-dot{background:linear-gradient(180deg,#2563eb,#1d4ed8);box-shadow:0 0 0 3px #2563eb2e}.dayahead-shell .dayahead-title-space .module-dot{background:linear-gradient(180deg,#16a34a,#166534);box-shadow:0 0 0 3px #22c55e2e}.dayahead-shell .dayahead-title-load .module-dot{background:linear-gradient(180deg,#0891b2,#0e7490);box-shadow:0 0 0 3px #06b6d42e}.dayahead-shell .dayahead-title-spread .module-dot{background:linear-gradient(180deg,#8b5cf6,#6d28d9);box-shadow:0 0 0 3px #8b5cf62e}.dayahead-shell .dayahead-title-compare .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.dayahead-shell .dayahead-title-form .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.dayahead-shell .dayahead-title-intertie .module-dot{background:linear-gradient(180deg,#22c55e,#15803d);box-shadow:0 0 0 3px #22c55e29}.dayahead-shell .dayahead-title-strategy .module-dot{background:linear-gradient(180deg,#6366f1,#4338ca);box-shadow:0 0 0 3px #6366f12e}@media(max-width:1200px){.dayahead-shell .dayahead-top-grid{grid-template-columns:1fr}.dayahead-shell .dayahead-strategy-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.dayahead-shell .dayahead-strategy-list{grid-template-columns:1fr}}@media(max-width:820px){.dayahead-shell .dayahead-hero .dayahead-card-header{flex-direction:column;align-items:flex-start;height:auto;min-height:46px;padding:10px 12px}.dayahead-shell .dayahead-filter-bar{flex-direction:column;align-items:stretch;gap:10px}.dayahead-shell .dayahead-filter-bar .date-picker{width:100%}.dayahead-shell .dayahead-filter-bar .date-picker input[type=date],.dayahead-shell .dayahead-filter-bar .date-picker select,.dayahead-shell .toolbar-actions .select{min-width:0;width:100%}.dayahead-shell .dayahead-hour-head,.dayahead-shell .dayahead-curve-head{flex-direction:column;align-items:flex-start}.dayahead-shell .dayahead-card-header h3,.dayahead-shell .dayahead-strategy-header h3{width:100%}.dayahead-shell .dayahead-strategy-wrap{grid-template-rows:auto 240px auto}.dayahead-shell .dayahead-strategy-overview{grid-template-columns:1fr}.dayahead-shell .dayahead-value-table{font-size:11px;min-width:760px}.dayahead-shell .dayahead-value-table th,.dayahead-shell .dayahead-value-table td{padding:4px 6px}.dayahead-shell .dayahead-value-table .period-col{width:52px}.dayahead-shell .dayahead-value-input{height:24px;font-size:11px}}.rolling-modal-content{max-width:760px;border:1px solid #d7e4f2;border-radius:14px;overflow:hidden}.rolling-modify-modal .modal-body{max-height:62vh;overflow:auto}.rolling-modify-modal .trading-list h4{margin:0 0 10px;font-size:14px;color:#1f2d3e}.rolling-modify-modal .trading-table{border:1px solid #d8e5f3;border-radius:10px;overflow:hidden}.rolling-modify-modal .trading-table th{position:sticky;top:0;z-index:2;background:#eff5fb;color:#526a86;font-size:12px;border-bottom:1px solid #d8e5f3;white-space:nowrap}.rolling-modify-modal .trading-table td{font-size:12px;border-bottom:1px solid #e2ecf8;white-space:nowrap}.rolling-modify-modal .trading-table tbody tr:hover{background:#f8fbff}.strategy-admin-shell{max-width:1600px;display:flex;flex-direction:column;gap:12px}.strategy-admin-toolbar{padding:10px 12px;border:1px solid #d8e5f3;border-radius:10px;background:#f7fbff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.strategy-admin-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}.strategy-admin-filter-item{min-width:0;display:grid;gap:4px}.strategy-admin-filter-item label{margin:0;font-size:11px;color:#637b95;font-weight:620;white-space:nowrap}.strategy-admin-filter-item .form-control{min-height:32px;height:32px;padding-top:4px;padding-bottom:4px}.strategy-admin-filter-item-search{grid-column:span 1}.strategy-admin-toolbar-actions{display:inline-flex;align-items:center;gap:8px}.strategy-admin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.strategy-admin-summary-item{border:1px solid #d9e5f3;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:10px 12px;min-height:84px;display:flex;flex-direction:column;justify-content:center}.strategy-admin-summary-item .summary-label{display:block;font-size:11px;color:#637a93}.strategy-admin-summary-item .summary-value{display:block;font-size:24px;line-height:1.12;color:#0f172a;font-family:var(--font-number);margin-top:2px}.strategy-admin-summary-item .summary-sub{display:block;margin-top:3px;font-size:11px;color:#64748b}.strategy-admin-tabs{border-bottom:1px solid #d8e5f3;gap:6px;padding:0 2px}.strategy-admin-tabs .tab-btn{margin-bottom:-1px;padding:8px 12px;border-bottom-width:2px;font-size:13px;border-radius:8px 8px 0 0}.strategy-admin-card{padding:0;overflow:hidden}.strategy-admin-card+.strategy-admin-card{margin-top:2px}.strategy-admin-card-header{height:46px;min-height:46px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8e5f3;background:linear-gradient(180deg,#f8fbff,#eef5fc)}.strategy-admin-card-header h3{margin:0;display:inline-flex;align-items:center;gap:10px;font-size:16px;color:#0f1f33}.strategy-admin-card-header h3 small{font-size:11px;color:#6b7f98;font-weight:600}.strategy-admin-title .module-dot{background:linear-gradient(180deg,#0891b2,#0e7490);box-shadow:0 0 0 3px #0891b22e}.strategy-admin-title-run .module-dot{background:linear-gradient(180deg,#4f46e5,#4338ca);box-shadow:0 0 0 3px #4f46e533}.strategy-admin-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 9px;border-radius:999px;border:1px solid #cfdeee;background:#f7fbff;color:#5f7692;font-size:11px;line-height:1;white-space:nowrap}.strategy-admin-table-wrap,.strategy-admin-run-table-wrap{padding:0 12px 12px;overflow:auto}.strategy-admin-table-wrap{max-height:600px}.strategy-admin-run-table-wrap{max-height:380px}.strategy-admin-table{margin-top:0;border:none;border-collapse:separate;border-spacing:0;overflow:visible}.strategy-admin-table th{position:sticky;top:0;z-index:6;background:#eff5fb;color:#536d87;border-bottom:1px solid #d8e5f3;font-size:12px;font-weight:650;line-height:1.28;padding:7px;white-space:nowrap}.strategy-admin-table td{font-size:12px;color:#1f2d3e;border-bottom-color:#e2ecf8;white-space:nowrap;line-height:1.24;padding:6px 7px}.strategy-admin-actions{white-space:normal!important;min-width:264px}.strategy-admin-actions .btn{height:26px;min-height:26px;padding:0 8px;border-radius:7px;font-size:12px;margin:0 4px 4px 0}.btn-primary-soft{background:#eaf4ff;color:#0b6ca5;border:1px solid #bcd9f3}.btn-primary-soft:hover{background:#d8ecff;border-color:#9fc8ea}.strategy-admin-run-meta{display:inline-flex;align-items:center;gap:8px}.strategy-admin-run-controls,.strategy-admin-run-filter-grid{padding:10px 12px 0;display:grid;gap:10px;align-items:end}.strategy-admin-run-controls{grid-template-columns:2fr 1fr 1fr 1fr auto}.strategy-admin-run-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px}.strategy-admin-run-btn{min-height:32px;height:32px;align-self:center;white-space:nowrap}.strategy-admin-run-context{padding:8px 12px 0;display:grid;gap:4px}.strategy-admin-run-context label{margin:0;font-size:11px;color:#637b95;font-weight:620}.strategy-admin-run-table td:last-child .btn{height:26px;min-height:26px;padding:0 8px;border-radius:7px;font-size:12px}@media(max-width:1320px){.strategy-admin-toolbar{grid-template-columns:1fr}.strategy-admin-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.strategy-admin-summary-grid,.strategy-admin-run-controls,.strategy-admin-run-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:920px){.strategy-admin-filter-grid,.strategy-admin-summary-grid,.strategy-admin-run-controls,.strategy-admin-run-filter-grid{grid-template-columns:1fr}.strategy-admin-card-header{height:auto;min-height:46px;padding:9px 12px;align-items:flex-start;gap:6px;flex-direction:column}.strategy-admin-run-meta{width:100%;flex-wrap:wrap}}.station-plant-shell,.station-list-shell,.station-deviation-shell{display:flex;flex-direction:column;gap:14px}.station-module{border:1px solid #d7e4f2;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 8px 18px #0f172a0f;padding:0;overflow:hidden}.station-module-header,.station-card-header{min-height:46px;height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border-bottom:1px solid #d9e5f3;background:linear-gradient(180deg,#0ea5e917,#93c5fd0d)}.station-module-header h3,.station-card-header h3{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:680;line-height:1}.station-module-header h3>small,.station-card-header h3>small{font-size:11px;letter-spacing:.2px;color:#688099;font-weight:600;white-space:nowrap}.station-module-title .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1);box-shadow:0 0 0 3px #0ea5e92e}.station-title-overview .module-dot,.station-title-asset .module-dot,.station-title-load .module-dot{background:linear-gradient(180deg,#0ea5e9,#0369a1)}.station-title-power .module-dot,.station-title-analysis .module-dot{background:linear-gradient(180deg,#2563eb,#1e40af);box-shadow:0 0 0 3px #2563eb29}.station-title-deviation .module-dot,.station-title-dev .module-dot,.station-title-dev-chart .module-dot{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 0 0 3px #f59e0b33}.station-title-alert .module-dot,.station-title-dev-device .module-dot{background:linear-gradient(180deg,#8b5cf6,#6d28d9);box-shadow:0 0 0 3px #8b5cf62e}.station-toolbar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.station-toolbar .filter-group{min-width:128px}.station-module-overview .station-toolbar{align-items:center;gap:10px}.station-module-overview .station-toolbar .filter-group{min-width:auto;display:inline-flex;flex-direction:row;align-items:center;gap:6px}.station-module-overview .station-toolbar .filter-group label{margin:0;white-space:nowrap;color:#5f7791}.station-module-overview .station-toolbar .filter-group .form-control{min-width:158px}.station-kpi-grid{margin:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.station-kpi-grid .kpi-lite{min-height:84px;border-radius:11px;border-color:#d8e5f3;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:11px 12px}.station-kpi-grid .kpi-lite .label{font-size:12px;color:#617892;font-weight:600}.station-kpi-grid .kpi-lite .value{font-size:26px;line-height:1.08;letter-spacing:-.01em;font-family:DIN Alternate,Bahnschrift,Arial Narrow,Segoe UI,sans-serif}.station-kpi-grid .kpi-lite .sub{font-size:11.5px;color:#5f7791}.station-plant-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.station-chart{height:300px;padding:8px 10px 10px}.station-chart.station-chart-sm{height:198px;padding-bottom:4px}.station-mini-table-wrap{margin:0 10px 10px;border:1px solid #dce8f6;border-radius:10px;overflow:auto;max-height:190px;background:#fff}.station-mini-table{margin-top:0}.station-mini-table th,.station-mini-table td{font-size:12px;line-height:1.3;white-space:nowrap}.station-alert-list{margin:0 12px 12px;border:1px solid #dce8f6;border-radius:10px;background:#fff;max-height:236px;overflow:auto}.station-alert-item{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;border-bottom:1px dashed #e5edf6}.station-alert-item:last-child{border-bottom:none}.station-alert-main{min-width:0}.station-alert-plant{font-size:13px;font-weight:620;color:#0f172a;display:flex;align-items:center;gap:6px}.station-alert-tag{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:999px;padding:0 6px;font-size:11px;color:#fff}.station-alert-msg{margin-top:2px;font-size:12px;color:#4b5563}.station-alert-time{flex:0 0 auto;font-size:11px;color:#9ca3af;white-space:nowrap}.station-alert-empty{padding:12px;font-size:12px;color:#9ca3af}.station-list-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px}.station-list-kpi-row .kpi-lite .value{font-size:24px}.station-filter-row{margin:0 12px 10px;display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(160px,1fr)) auto auto;gap:8px}.station-selection-bar{margin:0 12px 8px;display:flex;align-items:center;gap:12px;color:#5e738d;font-size:12px}.station-table-wrap{margin:0 12px 12px;border:1px solid #dce8f6;border-radius:10px;overflow:auto;background:#fff}.station-list-table{margin-top:0}.station-list-table th,.station-list-table td{white-space:nowrap}.station-list-table td{padding-top:8px;padding-bottom:8px}.station-load-toolbar{margin:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.station-load-selector{position:relative;min-width:260px}.station-load-toolbar .filter-group{min-width:160px}.station-load-tip{width:100%;color:#65708a;font-size:12px;margin-top:2px}.station-load-table-wrap{max-height:360px}.station-analysis-shell .analysis-controls{padding:12px;margin-bottom:0}.station-analysis-tabs{margin:4px 12px 12px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #d9e5f3;padding-bottom:8px}.analysis-tab{padding:7px 12px;border:1px solid #d3e1f0;border-radius:999px;background:#f7fbff;color:#4f6784;font-size:13px;font-weight:600;cursor:pointer}.analysis-tab.active{color:#075985;border-color:#8cc3ef;background:linear-gradient(180deg,#e8f4ff,#d9ecff)}.station-analysis-shell .analysis-tab-content{padding:0 12px 12px}.station-analysis-shell .analysis-chart{min-height:320px;border:1px solid #dce8f6;background:#fafdff}.station-analysis-shell .kpi-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.station-analysis-shell .kpi{box-shadow:none;border-color:#dce8f6}.station-analysis-shell .kpi:hover{transform:none}.station-deviation-shell .station-dev-kpis{margin-top:12px}.station-device-grid{margin:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.station-device-item{padding:11px 12px;border:1px solid #dce8f6;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f6faff)}.station-device-name{font-size:14px;font-weight:650;color:#0f172a}.station-device-desc{margin-top:4px;font-size:12.5px;color:#334155}.station-device-impact{margin-top:2px;font-size:12px;color:#0f172a}@media(max-width:1320px){.station-kpi-grid,.station-list-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.station-plant-top-grid{grid-template-columns:1fr}}@media(max-width:960px){.station-module-header,.station-card-header{height:auto;min-height:46px;padding:9px 12px;flex-direction:column;align-items:flex-start;gap:6px}.station-toolbar,.station-filter-row,.station-load-toolbar{width:100%}.station-module-overview .station-toolbar .filter-group{display:flex;flex-direction:column;align-items:flex-start;width:100%}.station-filter-row,.station-kpi-grid,.station-list-kpi-row,.station-analysis-shell .kpi-cards{grid-template-columns:1fr}}
