:root{--dnse-primary:#003b7a;--dnse-primary-dark:#002952;--dnse-primary-light:#0052a3;--dnse-primary-lighter:#e3f2fd;--dnse-accent:#06c;--dnse-accent-bright:#2196f3;--dnse-success:#00c853;--dnse-success-dark:#00a344;--dnse-success-light:#b2ff59;--dnse-success-bg:#e8f5e9;--dnse-danger:#ff3d00;--dnse-danger-dark:#dd2c00;--dnse-danger-light:#ff6e40;--dnse-danger-bg:#ffebee;--dnse-warning:#ffb300;--dnse-warning-dark:#ff8f00;--dnse-warning-light:#ffc947;--dnse-warning-bg:#fff8e1;--dnse-info:#00b8d4;--dnse-info-dark:#0097a7;--dnse-info-light:#00e5ff;--dnse-info-bg:#e0f7fa;--dnse-gray-50:#fafafa;--dnse-gray-100:#f5f5f5;--dnse-gray-200:#eee;--dnse-gray-300:#e0e0e0;--dnse-gray-400:#bdbdbd;--dnse-gray-500:#9e9e9e;--dnse-gray-600:#757575;--dnse-gray-700:#616161;--dnse-gray-800:#424242;--dnse-gray-900:#212121;--dnse-bg-primary:#fff;--dnse-bg-secondary:#f8f9fa;--dnse-bg-tertiary:#f0f2f5;--dnse-bg-dark:#1a1a1a;--dnse-surface:#fff;--dnse-surface-elevated:#f8f9fa;--dnse-text-primary:#212121;--dnse-text-secondary:#616161;--dnse-text-tertiary:#9e9e9e;--dnse-text-inverse:#fff;--dnse-border-light:#e0e0e0;--dnse-border-medium:#bdbdbd;--dnse-border-dark:#757575;--dnse-shadow-sm:0 1px 3px #00000014;--dnse-shadow-md:0 4px 12px #0000001a;--dnse-shadow-lg:0 8px 24px #0000001f;--dnse-shadow-xl:0 16px 40px #00000026;--dnse-spacing-xs:4px;--dnse-spacing-sm:8px;--dnse-spacing-md:16px;--dnse-spacing-lg:24px;--dnse-spacing-xl:32px;--dnse-spacing-2xl:40px;--dnse-spacing-xxl:48px;--dnse-spacing-3xl:56px;--dnse-spacing-4xl:64px;--dnse-radius-sm:4px;--dnse-radius-md:8px;--dnse-radius-lg:12px;--dnse-radius-xl:16px;--dnse-radius-round:50%;--dnse-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--dnse-font-size-xs:12px;--dnse-font-size-sm:14px;--dnse-font-size-base:16px;--dnse-font-size-lg:18px;--dnse-font-size-xl:20px;--dnse-font-size-2xl:24px;--dnse-font-size-3xl:32px;--dnse-font-size-4xl:40px;--dnse-font-weight-normal:400;--dnse-font-weight-medium:500;--dnse-font-weight-semibold:600;--dnse-font-weight-bold:700;--dnse-transition-fast:0.15s ease;--dnse-transition-base:0.3s ease;--dnse-transition-speed:0.3s ease;--dnse-transition-slow:0.5s ease;--dnse-z-dropdown:1000;--dnse-z-sticky:1020;--dnse-z-fixed:1030;--dnse-z-modal-backdrop:1040;--dnse-z-modal:1050;--dnse-z-popover:1060;--dnse-z-tooltip:1070}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--dnse-bg-secondary);color:#212121;color:var(--dnse-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-family:var(--dnse-font-family);font-size:16px;font-size:var(--dnse-font-size-base);line-height:1.6;margin:0;padding:0}*{box-sizing:border-box}.dnse-layout{background-color:#f8f9fa;background-color:var(--dnse-bg-secondary);display:flex;min-height:100vh}.dnse-sidebar{background:linear-gradient(180deg,#003b7a,#002952);background:linear-gradient(180deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);box-shadow:0 8px 24px #0000001f;box-shadow:var(--dnse-shadow-lg);display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;transition:all .3s ease;transition:all var(--dnse-transition-base);width:280px;z-index:1030;z-index:var(--dnse-z-fixed)}.dnse-sidebar::-webkit-scrollbar{width:6px}.dnse-sidebar::-webkit-scrollbar-track{background:#ffffff0d}.dnse-sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.dnse-sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.dnse-sidebar-header{background:#00000026;border-bottom:1px solid #ffffff1a;padding:24px 16px;padding:var(--dnse-spacing-lg) var(--dnse-spacing-md)}.dnse-sidebar-brand{align-items:center;color:#fff;color:var(--dnse-text-inverse);display:flex;gap:16px;gap:var(--dnse-spacing-md);text-decoration:none}.dnse-sidebar-brand:hover{opacity:.9}.dnse-brand-icon{color:#2196f3;color:var(--dnse-accent-bright);font-size:32px}.dnse-brand-text{color:#fff;color:var(--dnse-text-inverse);font-size:20px;font-size:var(--dnse-font-size-xl);font-weight:700;font-weight:var(--dnse-font-weight-bold);margin:0}.dnse-sidebar-nav{flex:1 1;padding:16px 0;padding:var(--dnse-spacing-md) 0}.dnse-nav-section{margin-bottom:24px;margin-bottom:var(--dnse-spacing-lg)}.dnse-nav-section-title{color:#ffffff80;font-size:12px;font-size:var(--dnse-font-size-xs);font-weight:600;font-weight:var(--dnse-font-weight-semibold);letter-spacing:1px;margin:0;padding:8px 16px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);text-transform:uppercase}.dnse-nav-link{align-items:center;background:#0000;border:none;border-left:4px solid #0000;color:#fffc;cursor:pointer;display:flex;font-size:16px;font-size:var(--dnse-font-size-base);font-weight:500;font-weight:var(--dnse-font-weight-medium);gap:16px;gap:var(--dnse-spacing-md);padding:16px;padding:var(--dnse-spacing-md) var(--dnse-spacing-md);text-align:left;text-decoration:none;transition:all .15s ease;transition:all var(--dnse-transition-fast);width:100%}.dnse-nav-link i{flex-shrink:0;font-size:20px;text-align:center;width:24px}.dnse-nav-link:hover{background:#ffffff1a;border-left-color:#ffffff4d;color:#fff;color:var(--dnse-text-inverse)}.dnse-nav-link.active{background:#ffffff26;border-left-color:#2196f3;border-left-color:var(--dnse-accent-bright);box-shadow:inset 0 0 0 1px #ffffff1a;color:#fff;color:var(--dnse-text-inverse)}.dnse-nav-link.active i{color:#2196f3;color:var(--dnse-accent-bright)}.dnse-main-wrapper{display:flex;flex:1 1;flex-direction:column;margin-left:280px;min-height:100vh;transition:margin-left .3s ease;transition:margin-left var(--dnse-transition-base)}.dnse-content-area{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:100%;padding:32px;padding:var(--dnse-spacing-xl);width:100%}.dnse-content-footer{border-top:1px solid #e0e0e0;border-top:1px solid var(--dnse-border-light);color:#616161;color:var(--dnse-text-secondary);font-size:14px;font-size:var(--dnse-font-size-sm);padding:24px 32px;padding:var(--dnse-spacing-lg) var(--dnse-spacing-xl);text-align:center}.dnse-card,.dnse-content-footer{background:#fff;background:var(--dnse-bg-primary)}.dnse-card{border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light);border-radius:12px;border-radius:var(--dnse-radius-lg);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);overflow:hidden;transition:all .3s ease;transition:all var(--dnse-transition-base)}.dnse-card:hover{box-shadow:0 4px 12px #0000001a;box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.dnse-card-header{background:#f8f9fa;background:var(--dnse-bg-secondary);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--dnse-border-light);color:#212121;color:var(--dnse-text-primary);font-size:18px;font-size:var(--dnse-font-size-lg);font-weight:600;font-weight:var(--dnse-font-weight-semibold)}.dnse-card-body,.dnse-card-footer,.dnse-card-header{padding:24px;padding:var(--dnse-spacing-lg)}.dnse-card-footer{background:#f8f9fa;background:var(--dnse-bg-secondary);border-top:1px solid #e0e0e0;border-top:1px solid var(--dnse-border-light)}.dnse-btn{align-items:center;border:none;border-radius:8px;border-radius:var(--dnse-radius-md);cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-family:var(--dnse-font-family);font-size:16px;font-size:var(--dnse-font-size-base);font-weight:500;font-weight:var(--dnse-font-weight-medium);gap:8px;gap:var(--dnse-spacing-sm);justify-content:center;padding:8px 24px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);text-decoration:none;transition:all .15s ease;transition:all var(--dnse-transition-fast)}.dnse-btn:hover{box-shadow:0 4px 12px #0000001a;box-shadow:var(--dnse-shadow-md);transform:translateY(-1px)}.dnse-btn:active{transform:translateY(0)}.dnse-btn-primary{background:linear-gradient(135deg,#003b7a,#0052a3);background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-light) 100%);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);color:#fff;color:var(--dnse-text-inverse)}.dnse-btn-primary:hover{background:linear-gradient(135deg,#002952,#003b7a);background:linear-gradient(135deg,var(--dnse-primary-dark) 0,var(--dnse-primary) 100%)}.dnse-btn-success{background:#00c853;background:var(--dnse-success);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);color:#fff;color:var(--dnse-text-inverse)}.dnse-btn-success:hover{background:#00a344;background:var(--dnse-success-dark)}.dnse-btn-danger{background:#ff3d00;background:var(--dnse-danger);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);color:#fff;color:var(--dnse-text-inverse)}.dnse-btn-danger:hover{background:#dd2c00;background:var(--dnse-danger-dark)}.dnse-btn-outline{background:#0000;border:2px solid #003b7a;border:2px solid var(--dnse-primary);color:#003b7a;color:var(--dnse-primary)}.dnse-btn-outline:hover{background:#003b7a;background:var(--dnse-primary);color:#fff;color:var(--dnse-text-inverse)}.dnse-badge{align-items:center;border-radius:4px;border-radius:var(--dnse-radius-sm);display:inline-flex;font-size:12px;font-size:var(--dnse-font-size-xs);font-weight:600;font-weight:var(--dnse-font-weight-semibold);letter-spacing:.5px;padding:4px 8px;padding:var(--dnse-spacing-xs) var(--dnse-spacing-sm);text-transform:uppercase}.dnse-badge-increase,.dnse-badge-up{background:#e8f5e9;background:var(--dnse-success-bg);border:1px solid #00c853;border:1px solid var(--dnse-success);color:#00a344;color:var(--dnse-success-dark)}.dnse-badge-decrease,.dnse-badge-down{background:#ffebee;background:var(--dnse-danger-bg);border:1px solid #ff3d00;border:1px solid var(--dnse-danger);color:#dd2c00;color:var(--dnse-danger-dark)}.dnse-badge-neutral,.dnse-badge-unchanged{background:#fff8e1;background:var(--dnse-warning-bg);border:1px solid #ffb300;border:1px solid var(--dnse-warning);color:#ff8f00;color:var(--dnse-warning-dark)}.dnse-badge-primary{background:#e3f2fd;background:var(--dnse-primary-lighter);border:1px solid #003b7a;border:1px solid var(--dnse-primary);color:#002952;color:var(--dnse-primary-dark)}.dnse-badge-info{background:#e0f7fa;background:var(--dnse-info-bg);border:1px solid #00b8d4;border:1px solid var(--dnse-info);color:#0097a7;color:var(--dnse-info-dark)}.dnse-badge-warning{background:#fff8e1;background:var(--dnse-warning-bg);border:1px solid #ffb300;border:1px solid var(--dnse-warning);color:#ff8f00;color:var(--dnse-warning-dark)}.dnse-badge-secondary{background:#eee;background:var(--dnse-gray-200);border:1px solid #bdbdbd;border:1px solid var(--dnse-gray-400);color:#616161;color:var(--dnse-gray-700)}.dnse-form-group{margin-bottom:24px;margin-bottom:var(--dnse-spacing-lg)}.dnse-form-label{display:block;font-size:14px;font-size:var(--dnse-font-size-sm);font-weight:500;font-weight:var(--dnse-font-weight-medium);margin-bottom:8px;margin-bottom:var(--dnse-spacing-sm)}.dnse-form-control,.dnse-form-label{color:#212121;color:var(--dnse-text-primary)}.dnse-form-control{background:#fff;background:var(--dnse-bg-primary);border:2px solid #e0e0e0;border:2px solid var(--dnse-border-light);border-radius:8px;border-radius:var(--dnse-radius-md);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-family:var(--dnse-font-family);font-size:16px;font-size:var(--dnse-font-size-base);padding:8px 16px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all .15s ease;transition:all var(--dnse-transition-fast);width:100%}.dnse-form-control:focus{border-color:#003b7a;border-color:var(--dnse-primary);box-shadow:0 0 0 3px #e3f2fd;box-shadow:0 0 0 3px var(--dnse-primary-lighter);outline:none}.dnse-form-control:disabled{background:#f5f5f5;background:var(--dnse-gray-100);cursor:not-allowed;opacity:.6}.dnse-table{background:#fff;background:var(--dnse-bg-primary);border-collapse:initial;border-radius:12px;border-radius:var(--dnse-radius-lg);border-spacing:0;box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);overflow:hidden;width:100%}.dnse-table thead{background:#f8f9fa;background:var(--dnse-bg-secondary)}.dnse-table th{border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-border-light);color:#212121;color:var(--dnse-text-primary);font-size:14px;font-size:var(--dnse-font-size-sm);font-weight:600;font-weight:var(--dnse-font-weight-semibold);letter-spacing:.5px;text-align:left;text-transform:uppercase}.dnse-table td,.dnse-table th{padding:16px;padding:var(--dnse-spacing-md)}.dnse-table td{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--dnse-border-light);color:#616161;color:var(--dnse-text-secondary);font-size:16px;font-size:var(--dnse-font-size-base)}.dnse-table tbody tr:hover{background:#f8f9fa;background:var(--dnse-bg-secondary)}.dnse-table tbody tr:last-child td{border-bottom:none}.dnse-price-up{color:#00c853;color:var(--dnse-success)}.dnse-price-down,.dnse-price-up{font-weight:600;font-weight:var(--dnse-font-weight-semibold)}.dnse-price-down{color:#ff3d00;color:var(--dnse-danger)}.dnse-price-neutral{color:#ff8f00;color:var(--dnse-warning-dark);font-weight:500;font-weight:var(--dnse-font-weight-medium)}.dnse-chart-container{background:#fff;background:var(--dnse-bg-primary);border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light);border-radius:12px;border-radius:var(--dnse-radius-lg);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);padding:24px;padding:var(--dnse-spacing-lg)}.dnse-chart-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--dnse-border-light);display:flex;justify-content:space-between;margin-bottom:24px;margin-bottom:var(--dnse-spacing-lg);padding-bottom:16px;padding-bottom:var(--dnse-spacing-md)}.dnse-chart-title{color:#212121;color:var(--dnse-text-primary);font-size:20px;font-size:var(--dnse-font-size-xl);font-weight:600;font-weight:var(--dnse-font-weight-semibold);margin:0}.dnse-chart-controls{display:flex;gap:8px;gap:var(--dnse-spacing-sm)}.dnse-stats-grid{grid-gap:24px;grid-gap:var(--dnse-spacing-lg);display:grid;gap:24px;gap:var(--dnse-spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:32px;margin-bottom:var(--dnse-spacing-xl)}.dnse-stat-card{background:#fff;background:var(--dnse-bg-primary);border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light);border-radius:12px;border-radius:var(--dnse-radius-lg);box-shadow:0 1px 3px #00000014;box-shadow:var(--dnse-shadow-sm);padding:24px;padding:var(--dnse-spacing-lg);transition:all .3s ease;transition:all var(--dnse-transition-base)}.dnse-stat-card:hover{box-shadow:0 4px 12px #0000001a;box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.dnse-stat-label{color:#616161;color:var(--dnse-text-secondary);font-size:14px;font-size:var(--dnse-font-size-sm);font-weight:500;font-weight:var(--dnse-font-weight-medium);letter-spacing:.5px;margin-bottom:4px;margin-bottom:var(--dnse-spacing-xs);text-transform:uppercase}.dnse-stat-value{color:#212121;color:var(--dnse-text-primary);font-size:32px;font-size:var(--dnse-font-size-3xl);font-weight:700;font-weight:var(--dnse-font-weight-bold);margin:8px 0;margin:var(--dnse-spacing-sm) 0}.dnse-stat-change{align-items:center;display:flex;font-size:14px;font-size:var(--dnse-font-size-sm);font-weight:600;font-weight:var(--dnse-font-weight-semibold);gap:4px;gap:var(--dnse-spacing-xs)}.dnse-stat-change.positive{color:#00c853;color:var(--dnse-success)}.dnse-stat-change.negative{color:#ff3d00;color:var(--dnse-danger)}.dnse-alert{align-items:flex-start;border-left:4px solid;border-radius:var(--dnse-radius-md);gap:16px;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-md);padding:16px 24px;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.dnse-alert-success{background:#e8f5e9;background:var(--dnse-success-bg);border-color:#00c853;border-color:var(--dnse-success);color:#00a344;color:var(--dnse-success-dark)}.dnse-alert-danger{background:#ffebee;background:var(--dnse-danger-bg);border-color:#ff3d00;border-color:var(--dnse-danger);color:#dd2c00;color:var(--dnse-danger-dark)}.dnse-alert-warning{background:#fff8e1;background:var(--dnse-warning-bg);border-color:#ffb300;border-color:var(--dnse-warning);color:#ff8f00;color:var(--dnse-warning-dark)}.dnse-alert-info{background:#e0f7fa;background:var(--dnse-info-bg);border-color:#00b8d4;border-color:var(--dnse-info);color:#0097a7;color:var(--dnse-info-dark)}@media (max-width:1024px){.dnse-sidebar{transform:translateX(-100%);width:280px}.dnse-sidebar.active{transform:translateX(0)}.dnse-main-wrapper{margin-left:0}.dnse-content-area{padding:16px;padding:var(--dnse-spacing-md)}.dnse-stats-grid{grid-template-columns:1fr}.dnse-chart-header{align-items:flex-start;flex-direction:column;gap:16px;gap:var(--dnse-spacing-md)}}@media (max-width:480px){.dnse-content-area{padding:8px;padding:var(--dnse-spacing-sm)}.dnse-card-body,.dnse-card-footer,.dnse-card-header{padding:16px;padding:var(--dnse-spacing-md)}}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f5f5f5;background:var(--dnse-gray-100)}::-webkit-scrollbar-thumb{background:#bdbdbd;background:var(--dnse-gray-400);border-radius:4px;border-radius:var(--dnse-radius-sm)}::-webkit-scrollbar-thumb:hover{background:#9e9e9e;background:var(--dnse-gray-500)}@keyframes dnse-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dnse-fade-in{animation:dnse-fade-in .3s ease}@keyframes dnse-slide-in{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.dnse-slide-in{animation:dnse-slide-in .3s ease}.dnse-spinner{animation:dnse-spin .8s linear infinite;border:4px solid #eee;border-top-color:#003b7a;border:4px solid var(--dnse-gray-200);border-radius:50%;border-top-color:var(--dnse-primary);height:40px;width:40px}@keyframes dnse-spin{to{transform:rotate(1turn)}}.dnse-text-primary{color:#212121;color:var(--dnse-text-primary)}.dnse-text-secondary{color:#616161;color:var(--dnse-text-secondary)}.dnse-text-success{color:var(--dnse-success)}.dnse-text-danger{color:var(--dnse-danger)}.dnse-text-warning{color:#ff8f00;color:var(--dnse-warning-dark)}.dnse-text-info{color:#00b8d4;color:var(--dnse-info)}.dnse-bg-primary{background:#fff;background:var(--dnse-bg-primary)}.dnse-bg-secondary{background:#f8f9fa;background:var(--dnse-bg-secondary)}.dnse-bg-success{background:#e8f5e9;background:var(--dnse-success-bg)}.dnse-bg-danger{background:#ffebee;background:var(--dnse-danger-bg)}.dnse-bg-warning{background:#fff8e1;background:var(--dnse-warning-bg)}.dnse-bg-info{background:#e0f7fa;background:var(--dnse-info-bg)}.dnse-icon{display:inline-block;flex-shrink:0;vertical-align:middle}.dnse-icon-xs{height:12px;width:12px}.dnse-icon-sm{height:16px;width:16px}.dnse-icon-base{height:20px;width:20px}.dnse-icon-lg{height:24px;width:24px}.dnse-icon-xl{height:28px;width:28px}.dnse-icon-2xl{height:32px;width:32px}.dnse-icon-3xl{height:40px;width:40px}.dnse-icon-primary{color:#003b7a;color:var(--dnse-primary)}.dnse-icon-success{color:#00c853;color:var(--dnse-success)}.dnse-icon-danger{color:#ff3d00;color:var(--dnse-danger)}.dnse-icon-warning{color:#ffb300;color:var(--dnse-warning)}.dnse-icon-info{color:#00b8d4;color:var(--dnse-info)}.dnse-icon-muted{color:#616161;color:var(--dnse-text-secondary)}.dnse-icon-with-text{gap:4px;gap:var(--dnse-spacing-xs)}.dnse-icon-btn,.dnse-icon-with-text{align-items:center;display:inline-flex}.dnse-icon-btn{background:#0000;border:none;border-radius:4px;border-radius:var(--dnse-radius-sm);color:#616161;color:var(--dnse-text-secondary);cursor:pointer;justify-content:center;padding:4px;padding:var(--dnse-spacing-xs);transition:all .15s ease;transition:all var(--dnse-transition-fast)}.dnse-icon-btn:hover{background:#f8f9fa;background:var(--dnse-bg-secondary);color:#003b7a;color:var(--dnse-primary)}.dnse-icon-btn:active{transform:scale(.95)}.dnse-icon-btn:disabled{cursor:not-allowed;opacity:.5}.nav-icon{flex-shrink:0;height:20px;margin-right:8px;margin-right:var(--dnse-spacing-sm);transition:all .15s ease;transition:all var(--dnse-transition-fast);width:20px}.dnse-icon-badge{display:inline-flex;position:relative}.dnse-icon-badge:after{background:#ff3d00;background:var(--dnse-danger);border:2px solid #fff;border:2px solid var(--dnse-bg-primary);border-radius:50%;content:"";height:8px;position:absolute;right:-2px;top:-2px;width:8px}.dnse-icon-badge.has-notification:after{background:#00c853;background:var(--dnse-success)}.dnse-icon-spin{animation:dnse-icon-spin 1s linear infinite}@keyframes dnse-icon-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dnse-icon-pulse{animation:dnse-icon-pulse 2s ease-in-out infinite}@keyframes dnse-icon-pulse{0%,to{opacity:1}50%{opacity:.5}}.dnse-grid-12,.grid-12{grid-gap:16px;grid-gap:var(--dnse-spacing-md,16px);box-sizing:border-box;display:grid;gap:16px;gap:var(--dnse-spacing-md,16px);grid-template-columns:repeat(12,minmax(0,1fr));width:100%}.grid-12-gap-xs{gap:4px;gap:var(--dnse-spacing-xs,4px)}.grid-12-gap-sm{gap:8px;gap:var(--dnse-spacing-sm,8px)}.grid-12-gap-md{gap:16px;gap:var(--dnse-spacing-md,16px)}.grid-12-gap-lg{gap:24px;gap:var(--dnse-spacing-lg,24px)}.dnse-grid-12>*,.grid-12>*,[class*=col-]{box-sizing:border-box;max-width:100%;min-width:0}.col-1,.col-span-1{grid-column:span 1/span 1}.col-2,.col-span-2{grid-column:span 2/span 2}.col-3,.col-span-3{grid-column:span 3/span 3}.col-4,.col-span-4{grid-column:span 4/span 4}.col-5,.col-span-5{grid-column:span 5/span 5}.col-6,.col-span-6{grid-column:span 6/span 6}.col-7,.col-span-7{grid-column:span 7/span 7}.col-8,.col-span-8{grid-column:span 8/span 8}.col-9,.col-span-9{grid-column:span 9/span 9}.col-10,.col-span-10{grid-column:span 10/span 10}.col-11,.col-span-11{grid-column:span 11/span 11}.col-12,.col-span-12{grid-column:span 12/span 12}@media (min-width:1400px){.col-xxl-1{grid-column:span 1/span 1}.col-xxl-2{grid-column:span 2/span 2}.col-xxl-3{grid-column:span 3/span 3}.col-xxl-4{grid-column:span 4/span 4}.col-xxl-5{grid-column:span 5/span 5}.col-xxl-6{grid-column:span 6/span 6}.col-xxl-7{grid-column:span 7/span 7}.col-xxl-8{grid-column:span 8/span 8}.col-xxl-9{grid-column:span 9/span 9}.col-xxl-10{grid-column:span 10/span 10}.col-xxl-11{grid-column:span 11/span 11}.col-xxl-12{grid-column:span 12/span 12}}@media (max-width:1399px){.col-xl-1{grid-column:span 1/span 1}.col-xl-2{grid-column:span 2/span 2}.col-xl-3{grid-column:span 3/span 3}.col-xl-4{grid-column:span 4/span 4}.col-xl-5{grid-column:span 5/span 5}.col-xl-6{grid-column:span 6/span 6}.col-xl-7{grid-column:span 7/span 7}.col-xl-8{grid-column:span 8/span 8}.col-xl-9{grid-column:span 9/span 9}.col-xl-10{grid-column:span 10/span 10}.col-xl-11{grid-column:span 11/span 11}.col-xl-12{grid-column:span 12/span 12}}@media (max-width:1199px){.col-lg-1{grid-column:span 1/span 1}.col-lg-2{grid-column:span 2/span 2}.col-lg-3{grid-column:span 3/span 3}.col-lg-4{grid-column:span 4/span 4}.col-lg-5{grid-column:span 5/span 5}.col-lg-6{grid-column:span 6/span 6}.col-lg-7{grid-column:span 7/span 7}.col-lg-8{grid-column:span 8/span 8}.col-lg-9{grid-column:span 9/span 9}.col-lg-10{grid-column:span 10/span 10}.col-lg-11{grid-column:span 11/span 11}.col-lg-12{grid-column:span 12/span 12}}@media (max-width:1024px){.col-md-1{grid-column:span 1/span 1}.col-md-2{grid-column:span 2/span 2}.col-md-3{grid-column:span 3/span 3}.col-md-4{grid-column:span 4/span 4}.col-md-5{grid-column:span 5/span 5}.col-md-6{grid-column:span 6/span 6}.col-md-7{grid-column:span 7/span 7}.col-md-8{grid-column:span 8/span 8}.col-md-9{grid-column:span 9/span 9}.col-md-10{grid-column:span 10/span 10}.col-md-11{grid-column:span 11/span 11}.col-md-12{grid-column:span 12/span 12}}@media (max-width:767px){.col-sm-1{grid-column:span 1/span 1}.col-sm-2{grid-column:span 2/span 2}.col-sm-3{grid-column:span 3/span 3}.col-sm-4{grid-column:span 4/span 4}.col-sm-5{grid-column:span 5/span 5}.col-sm-6{grid-column:span 6/span 6}.col-sm-7{grid-column:span 7/span 7}.col-sm-8{grid-column:span 8/span 8}.col-sm-9{grid-column:span 9/span 9}.col-sm-10{grid-column:span 10/span 10}.col-sm-11{grid-column:span 11/span 11}.col-sm-12{grid-column:span 12/span 12}}@media (max-width:575px){.col-xs-1{grid-column:span 1/span 1}.col-xs-2{grid-column:span 2/span 2}.col-xs-3{grid-column:span 3/span 3}.col-xs-4{grid-column:span 4/span 4}.col-xs-5{grid-column:span 5/span 5}.col-xs-6{grid-column:span 6/span 6}.col-xs-7{grid-column:span 7/span 7}.col-xs-8{grid-column:span 8/span 8}.col-xs-9{grid-column:span 9/span 9}.col-xs-10{grid-column:span 10/span 10}.col-xs-11{grid-column:span 11/span 11}.col-xs-12{grid-column:span 12/span 12}}body,html{box-sizing:border-box;margin:0;max-width:100vw;overflow-x:hidden;padding:0;width:100%}#root,.app-layout{display:flex;width:100%}#root,.app-container,.app-layout{box-sizing:border-box;max-width:100%;min-height:100vh;overflow-x:hidden}.app-container{flex:1 1;transition:margin-left var(--dnse-transition-base),width var(--dnse-transition-base)}.dashboard-container{align-items:center;background-color:var(--dnse-bg-secondary);display:flex;justify-content:center;min-height:100vh;padding:var(--dnse-spacing-xl)}.dashboard-content{background:var(--dnse-bg-primary);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-lg);max-width:800px;padding:60px 40px;text-align:center}.dashboard-content h1{color:var(--dnse-primary);font-size:var(--dnse-font-size-4xl);font-weight:var(--dnse-font-weight-semibold);margin-bottom:var(--dnse-spacing-lg)}.dashboard-content>p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-lg);margin-bottom:var(--dnse-spacing-xl)}.dashboard-placeholder{background:linear-gradient(135deg,var(--dnse-gray-50) 0,var(--dnse-gray-100) 100%);border:2px dashed var(--dnse-border-light);border-radius:var(--dnse-radius-lg);padding:var(--dnse-spacing-xl)}.dashboard-placeholder h2{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);margin-bottom:var(--dnse-spacing-md)}.dashboard-placeholder p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-base);margin-bottom:var(--dnse-spacing-sm)}.dashboard-placeholder ul{list-style:none;margin-top:20px;padding:0}.dashboard-placeholder li{background:var(--dnse-bg-primary);border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-primary);margin:var(--dnse-spacing-sm) 0;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md)}.App{background-color:var(--dnse-bg-secondary);min-height:100vh;padding:var(--dnse-spacing-md);text-align:center}.App-header{background:linear-gradient(135deg,var(--dnse-primary-dark) 0,var(--dnse-primary) 100%);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);margin-bottom:var(--dnse-spacing-xl);padding:var(--dnse-spacing-lg)}.App-header h1{font-size:2.5rem;margin:0}.controls-container{align-items:center;background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-md);justify-content:center;margin-bottom:var(--dnse-spacing-xl);padding:var(--dnse-spacing-lg)}.control-group{gap:var(--dnse-spacing-xs);min-width:0}.control-group label{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-xs)}.control-group select{background-color:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);color:var(--dnse-text-primary);cursor:pointer;font-family:var(--dnse-font-family);font-size:var(--dnse-font-size-base);font-weight:var(--dnse-font-weight-medium);padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all var(--dnse-transition-fast);width:100%}.control-group select:hover{background-color:var(--dnse-bg-secondary);border-color:var(--dnse-primary)}.control-group select:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px var(--dnse-primary-lighter);outline:none}.stock-input-container{position:relative;width:100%}.stock-input{background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-sizing:border-box;color:var(--dnse-text-primary);font-family:var(--dnse-font-family);font-size:var(--dnse-font-size-base);font-weight:var(--dnse-font-weight-semibold);letter-spacing:.5px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);text-transform:uppercase;transition:all var(--dnse-transition-fast);width:100%}.stock-input:hover{background-color:var(--dnse-bg-secondary);border-color:var(--dnse-primary)}.stock-input:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px var(--dnse-primary-lighter);outline:none}.stock-input::placeholder{color:var(--dnse-text-secondary);font-weight:var(--dnse-font-weight-normal);letter-spacing:normal;opacity:.6;text-transform:none}.suggestions-dropdown{animation:slideDown .2s ease-out;background:var(--dnse-bg-primary);border:2px solid var(--dnse-border-light);border-radius:0 0 var(--dnse-radius-md) var(--dnse-radius-md);border-top:none;box-shadow:var(--dnse-shadow-md);left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:var(--dnse-z-dropdown)}.suggestion-item{border-bottom:1px solid var(--dnse-border-light);cursor:pointer;display:flex;flex-direction:column;gap:var(--dnse-spacing-xs);padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all var(--dnse-transition-fast)}.suggestion-item:hover{background:var(--dnse-bg-secondary)}.suggestion-item:last-child{border-bottom:none}.suggestion-symbol{align-items:center;color:var(--dnse-primary);display:flex;font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-sm)}.suggestion-name{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);margin-left:24px}.input-hint{color:#666;font-size:.85rem;margin-top:8px}.stock-trending-line{align-items:center;color:#666;color:var(--dnse-text-secondary,#666);display:flex;flex-wrap:wrap;font-size:11px;gap:2px 4px;line-height:1.5;margin-top:6px}.trending-title{color:#002952;color:var(--dnse-primary-dark,#002952);font-weight:700;margin-right:2px}.trending-subtitle{color:#757575;color:var(--dnse-text-secondary,#757575);font-size:10.5px;font-weight:600;margin-right:2px}.trending-divider{color:#ccc;font-weight:300;margin:0 4px}.trending-dash{color:#888;margin:0 2px}.trending-stock-link{align-items:baseline;background:none;border:none;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;font-family:inherit;font-size:11px;gap:2px;margin:0;padding:0 2px;transition:all .15s ease}.trending-stock-link strong{color:#003b7a;color:var(--dnse-primary,#003b7a);font-weight:800}.trending-stock-link:hover strong{color:#06c;color:var(--dnse-accent,#06c);text-decoration:underline}.trending-stock-link.active{background:#003b7a1a;border-radius:3px;padding:1px 4px}.trending-stock-link.prev{color:#555}.trending-stock-link.prev strong{color:#444}.stock-selector optgroup{color:#333;font-style:normal;font-weight:700}.stock-selector option{font-weight:400;padding:8px}.custom-symbols-list{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-top:10px;padding:10px}.custom-symbols-header{margin-bottom:8px}.custom-symbols-header small{color:#666;font-size:.85rem;font-weight:600}.custom-symbols-tags{display:flex;flex-wrap:wrap;gap:6px}.symbol-tag{animation:fadeIn .3s ease-in-out;background:var(--dnse-primary);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-xs);padding:var(--dnse-spacing-xs) var(--dnse-spacing-sm)}.remove-symbol-btn,.symbol-tag{align-items:center;display:flex}.remove-symbol-btn{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;height:16px;justify-content:center;padding:0;transition:background .2s ease;width:16px}.remove-symbol-btn:hover{background:#fff3}.chart-container{align-items:center;background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);display:flex;justify-content:center;min-height:400px;padding:var(--dnse-spacing-lg)}.chart-wrapper{height:400px;position:relative}.loading{color:#666;font-size:18px;padding:40px}.error{background-color:var(--dnse-danger-bg);border:1px solid var(--dnse-danger);border-radius:var(--dnse-radius-md);color:var(--dnse-danger-dark);margin:var(--dnse-spacing-md);padding:var(--dnse-spacing-md)}@media (max-width:768px){.controls-container{flex-direction:column;gap:15px}.control-group{align-items:center;width:100%}.App-header h1{font-size:2rem}}:root{--xs-padding:10px;--sm-padding:15px;--md-padding:20px;--lg-padding:30px;--xl-padding:40px;--xxl-padding:48px;--mobile-padding:var(--sm-padding);--tablet-padding:var(--md-padding);--desktop-padding:var(--xl-padding);--xs-font-base:13px;--sm-font-base:14px;--md-font-base:15px;--lg-font-base:15.5px;--xl-font-base:16px;--xxl-font-base:16.5px;--mobile-font-base:var(--sm-font-base);--tablet-font-base:var(--md-font-base);--desktop-font-base:var(--xl-font-base)}.lg-only,.md-only,.show-lg,.show-md,.show-sm,.show-xl,.show-xs,.show-xxl,.sm-only,.xl-only,.xs-only,.xxl-only{display:none!important}.mobile-only,.tablet-only{display:none}.desktop-only{display:block}.mobile-menu-toggle{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:50%;bottom:20px;box-shadow:var(--dnse-shadow-lg);color:var(--dnse-text-inverse);cursor:pointer;display:none;height:50px;justify-content:center;left:20px;position:fixed;transition:all var(--dnse-transition-base);width:50px;z-index:var(--dnse-z-modal)}.mobile-menu-toggle:hover{box-shadow:0 6px 16px #0006;transform:scale(1.05)}.mobile-overlay{animation:fadeIn .3s ease;background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:999}.mobile-overlay.active{display:block}@media (min-width:1400px){:root{font-size:16.5px;font-size:var(--xxl-font-base)}.show-xxl,.xxl-only{display:block!important}.dashboard-container{box-sizing:border-box;margin:0 auto;max-width:100%;padding:48px;padding:var(--xxl-padding);width:100%}}@media (min-width:1200px) and (max-width:1399px){:root{font-size:16px;font-size:var(--xl-font-base)}.show-xl,.xl-only{display:block!important}.dashboard-container{padding:40px;padding:var(--xl-padding)}}@media (min-width:1025px) and (max-width:1199px){:root{font-size:15.5px;font-size:var(--lg-font-base)}.lg-only,.show-lg{display:block!important}.tablet-only{display:block}.desktop-only{display:none}.navigation-sidebar{width:240px}.navigation-sidebar.collapsed{width:70px}.app-container{box-sizing:border-box;margin-left:240px;max-width:calc(100% - 240px)!important;width:calc(100% - 240px)!important}.app-container.sidebar-collapsed{box-sizing:border-box;margin-left:70px;max-width:calc(100% - 70px)!important;width:calc(100% - 70px)!important}.sidebar-header h2{font-size:1.1rem}.sidebar-label{font-size:.95rem}.sidebar-description{font-size:.75rem}.dashboard-container{padding:30px;padding:var(--lg-padding)}.controls-container{gap:15px;padding:15px}.chart-container{padding:20px}}@media (max-width:1024px){:root{font-size:15px;font-size:var(--md-font-base)}.md-only,.mobile-only,.show-md{display:block!important}.desktop-only{display:none!important}.mobile-menu-toggle{display:flex!important}.navigation-sidebar{height:100vh!important;left:-100%!important;max-width:85%!important;position:fixed!important;top:0!important;transition:left .3s ease!important;width:280px!important;z-index:1001!important}.navigation-sidebar.mobile-open{left:0!important}.navigation-sidebar.collapsed{max-width:85%!important;width:280px!important}.navigation-sidebar.collapsed .sidebar-content,.navigation-sidebar.collapsed .sidebar-header h2{display:block!important}.collapse-toggle{display:none!important}.app-container,.app-container.sidebar-collapsed{margin-left:0!important;padding-top:0!important}.trading-view-screen{display:flex;flex-direction:column;padding:12px}#cf-chart-header{margin-bottom:16px;order:1;width:100%}.controls-section{margin-bottom:12px;order:2;width:100%}.stock-nav-tabs-container{margin-bottom:16px;order:3;width:100%}.trading-view-screen>div:not(.controls-section):not(.stock-nav-tabs-container):not(#cf-chart-header){order:4;width:100%}.sector-map-section{display:flex;flex-direction:column;gap:16px;margin-top:0;width:100%}.sector-map-section>div{grid-column:span 12!important;max-width:100%!important;width:100%!important}.dashboard-container{padding:20px;padding:var(--md-padding)}.dashboard-content{max-width:100%;padding:24px 16px}}@media (min-width:576px) and (max-width:767px){:root{font-size:14px;font-size:var(--sm-font-base)}.show-sm,.sm-only{display:block!important}.dashboard-container{padding:15px;padding:var(--sm-padding)}.dashboard-content{padding:25px 20px}.dashboard-content h1{font-size:1.8rem}}@media (max-width:575px){:root{font-size:13px;font-size:var(--xs-font-base)}.show-xs,.xs-only{display:block!important}.app-container,.app-container.sidebar-collapsed{padding-top:0!important}.dashboard-container{padding:10px;padding:var(--xs-padding)}.dashboard-content{max-width:100%;padding:20px 12px}.dashboard-content h1{font-size:1.5rem}.controls-container{gap:10px;padding:10px}.chart-container{padding:10px}.chart-wrapper{height:250px}}@media (max-width:767px) and (orientation:landscape){.dashboard-container{padding:10px 15px}.dashboard-content{padding:20px 15px}.dashboard-content h1{font-size:1.5rem}.sidebar-item{padding:10px 15px}}@media (hover:none) and (pointer:coarse){.sidebar-item{min-height:48px}.control-group select,.logout-button,.stock-input{min-height:44px}.mobile-menu-toggle{min-height:48px;min-width:48px}.sidebar-item:active{background:#fff3}}@media print{.collapse-toggle,.controls-container,.mobile-menu-toggle,.mobile-overlay,.nav-footer,.navigation-sidebar{display:none!important}.app-container{margin-left:0!important;padding-top:0!important}.dashboard-container{padding:0!important}.chart-container{page-break-inside:avoid}.highcharts-container,.highcharts-container svg,.highcharts-root{box-sizing:border-box;max-width:100%!important;overflow:hidden!important;width:100%!important}.highcharts-grid.highcharts-xaxis-grid,.highcharts-grid.highcharts-yaxis-grid{max-width:100%!important;width:100%!important}.highcharts-grid.highcharts-xaxis-grid path,.highcharts-grid.highcharts-yaxis-grid path{vector-effect:non-scaling-stroke}}@media (prefers-contrast:high){.navigation-sidebar{border-right:3px solid #000}.sidebar-item{border:1px solid #fff6}.sidebar-item.active{border:2px solid var(--dnse-accent-bright)}.mobile-menu-toggle{border:2px solid #fff}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.mobile-overlay,.navigation-sidebar,.submenu{animation:none!important;transition:none!important}}.navigation-sidebar{background:linear-gradient(180deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);box-shadow:var(--dnse-shadow-lg);box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;max-width:280px;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;transition:width var(--dnse-transition-base);width:280px;z-index:var(--dnse-z-fixed)}.sidebar-header{align-items:center;background:#00000026;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:var(--dnse-spacing-lg) var(--dnse-spacing-md);position:relative}.sidebar-header h2{color:var(--dnse-text-inverse);flex:1 1;font-size:var(--dnse-font-size-xl);font-weight:var(--dnse-font-weight-semibold);margin:0;text-align:center}.collapse-toggle{align-items:center;background:#ffffff1a;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.collapse-toggle:hover{background:#fff3;transform:scale(1.05)}.sidebar-menu{flex:1 1;padding:20px 0}.sidebar-item{align-items:center;background:#0000;border:none;border-left:4px solid #0000;color:#fffc;cursor:pointer;display:flex;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-md) var(--dnse-spacing-md);text-align:left;transition:all var(--dnse-transition-base);width:100%}.sidebar-item:hover{background:#ffffff1a;border-left-color:#ffffff4d;color:var(--dnse-text-inverse)}.sidebar-item.active{background:#ffffff26;border-left-color:var(--dnse-accent-bright);box-shadow:inset 0 0 0 1px #ffffff1a;color:var(--dnse-text-inverse)}.sidebar-icon{flex-shrink:0;font-size:1.5rem;text-align:center;width:24px}.sidebar-content{word-wrap:break-word;flex:1 1;min-width:0;overflow-wrap:break-word}.sidebar-label{font-size:var(--dnse-font-size-base);font-weight:var(--dnse-font-weight-medium);line-height:1.2;margin-bottom:var(--dnse-spacing-xs)}.sidebar-description,.sidebar-label{word-wrap:break-word!important;overflow-wrap:break-word!important;white-space:normal!important}.sidebar-description{font-size:.8rem;line-height:1.3;opacity:.7}.sidebar-item.active .sidebar-description{opacity:.9}.navigation-sidebar.collapsed{max-width:80px!important;width:80px!important}.navigation-sidebar.collapsed .sidebar-header h2{display:none}.navigation-sidebar.collapsed .sidebar-header{justify-content:center;padding:25px 10px}.navigation-sidebar.collapsed .sidebar-item{gap:0;justify-content:center;padding:18px 10px}.navigation-sidebar.collapsed .sidebar-content{display:none}.navigation-sidebar.collapsed .sidebar-icon{font-size:1.8rem}@media (min-width:1025px){.app-container{box-sizing:border-box;margin-left:280px;max-width:calc(100% - 280px);min-height:100vh;transition:margin-left var(--dnse-transition-base),width var(--dnse-transition-base);width:calc(100% - 280px)}.app-container.sidebar-collapsed{box-sizing:border-box;margin-left:80px;max-width:calc(100% - 80px);width:calc(100% - 80px)}}@media (max-width:1024px){.app-container,.app-container.sidebar-collapsed{box-sizing:border-box;margin-left:0!important;max-width:100%!important;width:100%!important}}.nav-footer{border-top:2px solid #ecf0f1;margin-top:auto;padding:20px}.user-profile{background:#f8f9fa;border-radius:12px;gap:12px;margin-bottom:12px;padding:12px}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;flex-shrink:0;font-size:18px;font-weight:700;height:40px;justify-content:center;width:40px}.user-info{flex:1 1;min-width:0}.user-name{color:#2c3e50;font-size:14px;font-weight:600}.user-email,.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{color:#7f8c8d;font-size:12px}.logout-button{align-items:center;background:linear-gradient(135deg,var(--dnse-danger) 0,var(--dnse-danger-dark) 100%);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;display:flex;font-size:var(--dnse-font-size-sm);font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-sm);justify-content:center;padding:var(--dnse-spacing-sm);transition:all var(--dnse-transition-base);width:100%}.logout-button:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.logout-button:active{transform:translateY(0)}.logout-icon{font-size:18px}.sidebar.collapsed .user-profile{flex-direction:column;padding:8px}.sidebar.collapsed .logout-button span:last-child,.sidebar.collapsed .user-info{display:none}.menu-item-container{position:relative}.submenu-arrow{font-size:.8rem;margin-left:auto;opacity:.7;transition:transform .2s ease}.submenu-arrow.expanded{transform:rotate(180deg)}.submenu{animation:slideDown .3s ease;background:#0000001a;border-left:2px solid #ffffff1a;margin-left:20px;overflow:hidden}.submenu-item{border-left:2px solid #0000!important;font-size:.9rem;padding:12px 20px 12px 35px!important}.submenu-item:hover{background:#ffffff14!important;border-left-color:#fff3!important}.submenu-item.active{background:#ffffff1f!important;border-left-color:var(--dnse-accent-bright)!important}.submenu-item .sidebar-icon{font-size:1.2rem}.submenu-item .sidebar-label{font-size:.9rem;font-weight:400}.submenu-item .sidebar-description{font-size:.75rem}.navigation-sidebar.collapsed .submenu,.navigation-sidebar.collapsed .submenu-arrow{display:none}.elliott-chart-tooltip-wrapper{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#fffffff5;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:8px;box-shadow:0 10px 25px -5px #0000001f,0 8px 10px -6px #00000014;color:#212121;color:var(--dnse-gray-900,#212121);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;max-width:calc(100% - 32px);overflow:hidden;position:absolute;right:16px;top:14px;transition:all .25s ease-in-out;width:390px;z-index:60}.elliott-chart-tooltip-wrapper.minimized{box-shadow:0 4px 12px #0000001a;max-width:450px;width:auto}.tooltip-header{background:linear-gradient(135deg,#003b7a,#0052a3);background:linear-gradient(135deg,var(--dnse-primary,#003b7a) 0,var(--dnse-primary-light,#0052a3) 100%);color:#fff;gap:10px;padding:10px 14px}.tooltip-header-left{align-items:center;display:flex;gap:8px;overflow:hidden}.header-icon-badge{align-items:center;background-color:#ffffff2e;border-radius:6px;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.header-title-wrap{display:flex;flex-direction:column;overflow:hidden}.header-symbol{color:#93c5fd;font-size:.72rem;font-weight:700;letter-spacing:.5px;line-height:1;text-transform:uppercase}.header-wave-name{color:#fff;font-size:.88rem;font-weight:700;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tooltip-header-controls{align-items:center;display:flex;flex-shrink:0;gap:4px}.btn-header-action{align-items:center;background:#0000;border:none;border-radius:4px;color:#ffffffd9;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:background-color .2s,color .2s}.btn-header-action:hover{background-color:#fff3;color:#fff}.btn-header-close:hover{background-color:#ef444466}.tooltip-minimized-content{align-items:center;background-color:#fff;cursor:pointer;display:flex;font-size:.8rem;gap:8px;padding:8px 12px;transition:background-color .2s}.tooltip-minimized-content:hover{background-color:#f8f9fa;background-color:var(--dnse-gray-50,#f8f9fa)}.minimized-label{color:#424242;color:var(--dnse-gray-700,#424242)}.signal-badge-mini{border-radius:4px;font-size:.72rem;font-weight:700;padding:2px 6px;text-transform:uppercase}.minimized-hint{color:#888;color:var(--dnse-gray-500,#888);font-size:.7rem;margin-left:auto}.tooltip-body{display:flex;flex-direction:column;font-size:.82rem;gap:10px;max-height:520px;overflow-y:auto;padding:12px}.wave-status-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.pattern-badge-pill{align-items:center;background-color:#003b7a14;border:1px solid #003b7a33;border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-flex;font-size:.76rem;font-weight:600;gap:4px;padding:3px 8px}.special-tags-group{align-items:center;display:flex;gap:4px}.special-tag-mini{border-radius:4px;font-size:.68rem;font-weight:700;padding:2px 6px;text-transform:uppercase}.tag-extended{background-color:#00c85326;border:1px solid #00c85359;color:#047857}.tag-truncated{background-color:#ff3d0026;border:1px solid #ff3d0059;color:#b91c1c}.tag-diagonal{background-color:#9333ea26;border:1px solid #9333ea59;color:#7e22ce}.signal-badge-header{align-items:center;border-radius:4px;display:inline-flex;font-size:.74rem;font-weight:700;gap:4px;padding:3px 8px}.signal-sell{background-color:#ff3d0026;border:1px solid #ff3d0066}.signal-hold{background-color:#0066cc1f;border:1px solid #0066cc59;color:#0052a3}.signal-watch{border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);color:var(--dnse-gray-700,#4b5563)}.tooltip-metrics-grid{grid-gap:6px;background-color:#f8f9fa;background-color:var(--dnse-gray-50,#f8f9fa);border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:6px;display:grid;gap:6px;grid-template-columns:repeat(3,1fr);padding:8px 10px}.tooltip-metrics-grid .metric-box,.tooltip-metrics-grid .tooltip-metric-box{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#0000!important;border:none!important;display:flex;flex-direction:column;min-width:0!important;padding:0!important;text-align:left!important}.tooltip-metrics-grid .metric-label,.tooltip-metrics-grid .tooltip-metric-label{color:#64748b!important;display:block!important;font-size:.68rem!important;font-weight:500!important;margin-bottom:2px!important;text-transform:none!important;white-space:nowrap!important}.tooltip-metrics-grid .metric-value,.tooltip-metrics-grid .tooltip-metric-value{color:#1e293b!important;display:block!important;font-size:.85rem!important;font-weight:700!important;margin-top:1px!important}.tooltip-metrics-grid .metric-success,.tooltip-metrics-grid .tooltip-metric-value.metric-success{color:#059669!important}.tooltip-metrics-grid .metric-warning,.tooltip-metrics-grid .tooltip-metric-value.metric-warning{color:#d97706!important}.tooltip-metrics-grid .metric-danger,.tooltip-metrics-grid .tooltip-metric-value.metric-danger{color:#dc2626!important}.special-clusters-bar{display:flex;flex-direction:column;gap:4px}.cluster-item{align-items:center;border-radius:4px;display:flex;font-size:.74rem;gap:6px;padding:4px 8px}.thrust-item{background-color:#00c85314;border:1px solid #00c8534d;color:#047857}.cluster-amber{background-color:#ffb3001f;border:1px solid #ffb30059;color:#b45309}.cluster-badge-tag{background-color:#fff;border-radius:3px;font-size:.65rem;font-weight:800;padding:1px 4px;text-transform:uppercase}.cluster-desc{flex:1 1}.tooltip-tabs{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;gap:6px}.tooltip-tab-btn{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#64748b;color:var(--dnse-gray-600,#64748b);cursor:pointer;display:flex;flex:1 1;font-size:.76rem;font-weight:600;gap:5px;justify-content:center;padding:6px 8px;transition:all .2s}.tooltip-tab-btn.active,.tooltip-tab-btn:hover{color:#003b7a;color:var(--dnse-primary,#003b7a)}.tooltip-tab-btn.active{border-bottom-color:#003b7a;border-bottom-color:var(--dnse-primary,#003b7a);font-weight:700}.scenarios-content{gap:8px}.scenario-card,.scenarios-content{display:flex;flex-direction:column}.scenario-card{border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:6px;gap:4px;padding:8px 10px}.scenario-base{background-color:#0066cc08;border-color:#0066cc40}.scenario-alt{background-color:#f59e0b0a;border-color:#f59e0b40}.scenario-card-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.scenario-title-wrap{align-items:center;display:flex;gap:6px}.scenario-icon-base{color:#06c;color:var(--dnse-accent,#06c)}.scenario-icon-alt{color:#d97706}.scenario-title{color:#0f172a;color:var(--dnse-gray-900,#0f172a);font-size:.78rem;font-weight:700}.scenario-prob-badge{background-color:#00c85326;border-radius:4px;color:#047857;font-size:.68rem;font-weight:700;padding:1px 6px}.scenario-prob-badge.prob-alt{background-color:#ffb30026;color:#b45309}.scenario-summary-line{color:#334155;color:var(--dnse-gray-800,#334155);font-size:.78rem;font-weight:600;line-height:1.35}.scenario-details-text{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:.73rem;line-height:1.4}.scenario-target-pill{align-items:center;background-color:#fff;border:1px solid #06c3;border-radius:4px;display:inline-flex;font-size:.72rem;gap:6px;margin-top:2px;padding:3px 8px;width:fit-content}.scenario-target-pill strong{color:#06c;color:var(--dnse-accent,#06c)}.action-plan-box{background:linear-gradient(135deg,#003b7a0a,#0066cc0f);border:1px solid #003b7a33;border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:8px 10px}.action-plan-title{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:.76rem;font-weight:700;gap:6px}.action-strategy-text{color:#334155;color:var(--dnse-gray-800,#334155);font-size:.73rem;line-height:1.4;margin:0}.action-levels-row{border-top:1px dashed #003b7a26;display:flex;font-size:.72rem;gap:8px;justify-content:space-between;margin-top:4px;padding-top:4px}.action-level-item{display:flex;gap:4px}.level-label{color:#64748b;color:var(--dnse-gray-600,#64748b)}.level-val{font-weight:700}.level-danger{color:#dc2626}.level-success{color:#059669}.diagnostics-content{display:flex;flex-direction:column;gap:8px}.diag-section{display:flex;flex-direction:column;gap:4px}.diag-section-title{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:.76rem;font-weight:700;gap:5px}.diag-section-desc{background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:4px;color:#475569;color:var(--dnse-gray-700,#475569);font-size:.74rem;line-height:1.4;margin:0;padding:6px 8px}.invalidation-box{background-color:#ef44440d;border:1px solid #ef44444d;border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:8px 10px}.invalidation-header{align-items:center;color:#b91c1c;display:flex;font-size:.76rem;font-weight:700;gap:5px}.invalidation-price-tag{color:#991b1b;font-size:.8rem;font-weight:700}.invalidation-desc{color:#7f1d1d;font-size:.72rem;line-height:1.35;margin:0}.clusters-list{display:flex;flex-direction:column;gap:4px}.cluster-list-item{align-items:center;background-color:#ffb30014;border:1px solid #ffb30040;border-radius:4px;display:flex;font-size:.72rem;gap:6px;justify-content:space-between;padding:4px 8px}.cluster-name{color:#b45309;font-weight:600}.cluster-count{color:#78716c;color:var(--dnse-gray-600,#78716c);font-size:.68rem}.cluster-price{color:#d97706;font-weight:700}.market-scenario-container{display:flex;flex-direction:column;position:absolute;right:16px;top:14px;z-index:60}.market-scenario-switcher{background:#002952;background:var(--dnse-primary-dark,#002952);border-radius:8px 8px 0 0;box-shadow:0 4px 6px -1px #0000001a;display:flex;gap:6px;margin-bottom:-1px;padding:4px;z-index:61}.scenario-tab-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#ffffffb3;cursor:pointer;display:flex;flex:1 1;font-size:.8rem;font-weight:600;gap:6px;justify-content:center;padding:6px 12px;transition:all .2s ease}.scenario-tab-btn:hover{background:#ffffff1a;color:#fff}.scenario-tab-btn.active{background:#ffffff38;box-shadow:0 1px 3px #0003;color:#fff}.company-post-timeline-container{background-color:#fff;border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:8px;box-shadow:0 2px 8px #0000000a;padding:20px}.timeline-header{border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-gray-200,#eee);padding-bottom:12px}.post-detail-card{border-left:4px solid #003b7a;border-left:4px solid var(--dnse-primary,#003b7a);transition:all .2s ease-in-out}.date-range-selector{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--dnse-spacing-xs);width:100%}.date-toggle-header{align-items:center;display:flex;margin-bottom:2px}.date-toggle-header .toggle-label{align-items:center;color:var(--dnse-text-primary);cursor:pointer;display:inline-flex;font-size:var(--dnse-font-size-sm);font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-xs);-webkit-user-select:none;user-select:none}.date-toggle-header .toggle-label input[type=checkbox]{accent-color:var(--dnse-primary);cursor:pointer;height:16px;width:16px}.date-inputs-container{align-items:center;box-sizing:border-box;display:flex;flex-direction:row!important;gap:10px;gap:var(--dnse-spacing-sm,10px);justify-content:center;width:100%}.date-inputs-container.disabled{opacity:.5;pointer-events:none}.date-inputs-container.active{opacity:1;pointer-events:auto}.date-input-group,.highcharts-input-group{align-items:center;background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-sizing:border-box;display:flex;flex:1 1;gap:var(--dnse-spacing-xs);max-width:250px;min-width:0;padding:6px 10px;transition:all var(--dnse-transition-fast)}.date-input-group:focus-within,.highcharts-input-group:focus-within{background:var(--dnse-bg-secondary);border-color:var(--dnse-primary);box-shadow:0 0 0 2px var(--dnse-primary-lighter)}.date-input-label,.highcharts-input-label{align-items:center;color:var(--dnse-text-secondary);display:flex;font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-medium);gap:4px;white-space:nowrap}.date-range-input,.highcharts-range-input{background:#0000;border:none;color:var(--dnse-text-primary);cursor:pointer;font-family:var(--dnse-font-family);font-size:var(--dnse-font-size-xs);outline:none;padding:0;width:100%}.date-range-input:disabled,.highcharts-range-input:disabled{color:var(--dnse-gray-600);color:var(--dnse-text-muted,var(--dnse-gray-600));cursor:not-allowed}@media (max-width:768px){.date-range-selector{min-width:100%}.date-inputs-container{flex-direction:row!important;gap:8px;justify-content:center;width:100%}.highcharts-input-group{flex:1 1;min-width:0;padding:5px 6px}.highcharts-input-label,.highcharts-range-input{font-size:11px}}.news-events-list{background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-sm);margin-top:var(--dnse-spacing-lg);overflow:hidden}.news-header{align-items:center;background:var(--dnse-bg-secondary);border-bottom:1px solid var(--dnse-border-light);display:flex;justify-content:space-between;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.news-header h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);font-weight:var(--dnse-font-weight-semibold);margin:0}.news-count{background:var(--dnse-primary);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-medium);padding:var(--dnse-spacing-xs) var(--dnse-spacing-sm)}.no-news{color:var(--dnse-text-secondary);font-style:italic;margin:0}.news-items{max-height:400px;overflow:hidden}.news-item{align-items:center;border-bottom:1px solid var(--dnse-border-light);display:flex;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all var(--dnse-transition-fast)}.news-item-clickable{border-radius:var(--dnse-radius-md);cursor:pointer}.news-item-clickable:hover{background-color:#003b7a0d!important;border-color:var(--dnse-primary-light)!important;transform:translateX(3px)}.news-item-clickable:hover .news-title{color:var(--dnse-primary)!important}.news-item-arrow{opacity:.5;transition:all var(--dnse-transition-fast)}.news-item-clickable:hover .news-item-arrow{opacity:1;transform:translateX(2px)}.news-item:last-child{border-bottom:none}.news-date{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-medium);margin-top:2px;min-width:80px;text-align:right}.news-title{color:var(--dnse-text-primary);flex:1 1;font-size:var(--dnse-font-size-sm);line-height:1.4}.news-controls{background:var(--dnse-bg-secondary);border-top:1px solid var(--dnse-border-light);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg);text-align:center}.toggle-button{background:var(--dnse-primary);border:none;border-radius:var(--dnse-radius-sm);color:var(--dnse-text-inverse);cursor:pointer;font-family:var(--dnse-font-family);font-size:var(--dnse-font-size-sm);font-weight:var(--dnse-font-weight-medium);padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all var(--dnse-transition-fast)}.toggle-button:hover{background:var(--dnse-primary-dark);box-shadow:var(--dnse-shadow-sm);transform:translateY(-1px)}.toggle-button:active{transform:translateY(1px)}@media (max-width:768px){.news-header{align-items:stretch;flex-direction:column;gap:8px}.news-item{flex-direction:column;gap:4px}.news-date{min-width:auto;text-align:left}}.trading-stats-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin-bottom:24px;padding:16px;width:100%}.trading-stats-table-wrapper{border:1px solid #e0e0e0;border-radius:4px;overflow-x:auto}.trading-stats-table{border-collapse:collapse;color:#333;font-size:13px;text-align:right;width:100%}.trading-stats-table th{background-color:#f4f6f8;border:1px solid #e0e0e0;color:#003b7a;font-weight:700;padding:10px 12px;text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle}.trading-stats-table th.sortable-header{cursor:pointer;transition:background-color .2s ease}.trading-stats-table th.sortable-header:hover{background-color:#e8f0fe;color:#06c}.trading-stats-table th.active-sort{background-color:#e3effd;border-bottom:2px solid #003b7a;color:#003b7a}.trading-stats-table td{border:1px solid #e0e0e0;padding:8px 12px;vertical-align:middle;white-space:nowrap}.trading-stats-table tbody tr:nth-child(2n){background-color:#fafafa}.trading-stats-table tbody tr:hover{background-color:#f0f7ff}.trading-stats-table td.col-highlight,.trading-stats-table th.col-highlight{background-color:#eef5ff!important;color:#003b7a;font-weight:600}.trading-stats-table td.col-date{font-weight:500;text-align:center}.text-positive,.text-zero{font-weight:600}.text-zero{color:#ffb300}.text-negative{font-weight:600}.trading-stats-pagination{align-items:center;color:#555;display:flex;flex-wrap:wrap;font-size:13px;gap:12px;justify-content:space-between;padding:12px 4px 4px}.pagination-controls-left{align-items:center;display:flex;gap:8px}.pagination-size-select{border:1px solid #ccc;color:#333;font-size:13px;padding:4px 8px}.pagination-size-select:focus{outline:none}.pagination-controls-right{align-items:center;display:flex;gap:12px}.pagination-btn{background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#003b7a;padding:6px 12px;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:#003b7a;color:#fff}.pagination-btn:disabled{background-color:#f5f5f5;color:#aaa;opacity:.5}.trading-stats-footer-note{color:#666;font-size:12px;font-style:italic;margin-top:8px;text-align:right}.trading-stats-empty,.trading-stats-loading{color:#757575;padding:40px;text-align:center}@media (max-width:991px){.trading-stats-table .col-avg-buy,.trading-stats-table .col-avg-sell,.trading-stats-table .col-dot3-header,.trading-stats-table .col-market-cap,.trading-stats-table .col-price-change,.trading-stats-table .col-total-value{display:none!important}}@media (max-width:576px){.trading-stats-table .col-order-value,.trading-stats-table .col-order-volume,.trading-stats-table .col-total-orders-header{display:none!important}.trading-stats-table td.col-date,.trading-stats-table td.col-pct-change,.trading-stats-table td.col-price-close,.trading-stats-table td.col-total-volume,.trading-stats-table th.col-date,.trading-stats-table th.col-pct-change,.trading-stats-table th.col-price-close,.trading-stats-table th.col-total-volume{font-size:11.5px!important;padding:6px 8px!important}}.financial-statements-container{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px #0000000d;font-family:inherit;margin-top:10px;width:100%}.financial-subtabs-bar{background-color:#f9fafb;border-bottom:2px solid #e5e7eb;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:2px;padding:4px 8px 0;width:100%}.financial-subtab-btn{background:#0000;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;color:#374151;cursor:pointer;flex:1 1 auto;font-size:13px;font-weight:500;padding:8px 14px;text-align:center;transition:all .2s ease}.financial-subtab-btn:hover{background-color:#f3f4f6;color:#003b7a}.financial-subtab-btn.active{background-color:#eab308;color:#fff;font-weight:600}.financial-controls-bar{align-items:center;background-color:#fff;border-bottom:1px solid #f3f4f6;display:flex;font-size:13px;gap:16px;padding:12px 16px}.control-group{align-items:center;gap:8px}.control-group label{color:#4b5563;font-size:13px;font-weight:500}.financial-select{background-color:#fff;border:1px solid #d1d5db;border-radius:4px;color:#1f2937;cursor:pointer;font-size:13px;outline:none;padding:4px 10px}.financial-select:focus{border-color:#003b7a}.financial-btn-view{background-color:#eab308;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:4px 16px;transition:background-color .2s ease}.financial-btn-view:hover{background-color:#d97706}.financial-pagination{align-items:center;display:flex;gap:4px;margin-left:auto}.page-nav-btn{align-items:center;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;color:#4b5563;cursor:pointer;display:inline-flex;height:28px;justify-content:center;transition:all .15s ease;width:28px}.page-nav-btn:hover{background-color:#e5e7eb;color:#111827}.financial-loading-container{align-items:center;color:#4b5563;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:60px 20px}.financial-tables-container{padding:16px}.financial-section{margin-bottom:28px}.financial-section-title{color:#0284c7;font-size:20px;font-weight:700;margin-bottom:12px}.financial-table-wrapper{border:1px solid #e5e7eb;border-radius:4px;overflow-x:auto}.financial-table{border-collapse:collapse;font-size:13px;width:100%}.financial-table td,.financial-table th{border:1px solid #e5e7eb;padding:8px 12px}.financial-table th{background-color:#eff6ff;color:#1e3a8a;font-weight:700;text-align:right;vertical-align:middle}.financial-table th.mini-icon-col,.financial-table th.row-header-col,.financial-table th.unit-header-col{background-color:#eff6ff;border-right:none}.financial-table th.period-col{min-width:110px;padding:6px 12px;text-align:right}.period-title{color:#003b7a;font-size:13px;font-weight:700}.period-date{color:#0284c7;font-size:11px;font-weight:500;margin-top:1px}.period-sub{color:#1e3a8a;font-size:10px;font-weight:600;margin-top:1px}.financial-row:hover{background-color:#fefce8}.financial-row.row-bold td.row-name-cell,.financial-row.row-bold td.value-cell{color:#111827;font-weight:700}.financial-row.row-indent td.row-name-cell{color:#4b5563;padding-left:28px}.row-name-cell{color:#1f2937;min-width:280px;text-align:left}.unit-cell{color:#4b5563;font-size:12px;font-weight:500;padding-right:4px;text-align:right;width:40px}.mini-icon-cell{color:#0284c7;padding:4px 6px;text-align:center;width:36px}.mini-bar-icon{display:inline-block;vertical-align:middle}.mini-trend-bars{align-items:flex-end;display:inline-flex;gap:2px;height:16px;justify-content:center;vertical-align:middle;width:24px}.trend-bar{border-radius:1px 1px 0 0;min-height:2px;transition:height .2s ease,background-color .2s ease;width:3px}.trend-bar-pos{background-color:#0284c7}.trend-bar-neg{background-color:#dc2626}.trend-bar-empty{background-color:#cbd5e1;height:2px}.financial-row:hover .trend-bar-pos{background-color:#0369a1}.financial-row:hover .trend-bar-neg{background-color:#b91c1c}.value-cell{font-family:inherit;font-size:13px;text-align:right}.value-cell.negative-val{color:#dc2626}.financial-footer-legend{align-items:center;border-top:1px solid #f3f4f6;color:#374151;display:flex;flex-wrap:wrap;font-size:12px;gap:16px;justify-content:flex-end;margin-top:14px;padding:8px 4px}.financial-footer-legend span strong{color:#111827;font-weight:700}@media (max-width:991px){.financial-table .mini-icon-cell,.financial-table .mini-icon-col,.financial-table .unit-cell,.financial-table .unit-header-col{display:none!important}.financial-table td.row-name-cell,.financial-table th.row-header-col{font-size:12px!important;max-width:200px!important;min-width:150px!important;overflow-wrap:break-word!important;padding:6px 8px!important;word-break:break-word!important}.financial-table td.value-cell,.financial-table th.period-col{font-size:12px!important;min-width:85px!important;padding:6px 8px!important}.financial-table tr td:nth-child(n+7),.financial-table tr th:nth-child(n+7){display:none!important}}@media (max-width:576px){.financial-table .mini-icon-cell,.financial-table .mini-icon-col,.financial-table .unit-cell,.financial-table .unit-header-col{display:none!important}.financial-table td.row-name-cell,.financial-table th.row-header-col{font-size:11px!important;max-width:140px!important;min-width:110px!important;overflow-wrap:break-word!important;padding:6px!important;word-break:break-word!important}.financial-table td.value-cell,.financial-table th.period-col{font-size:11px!important;min-width:75px!important;padding:6px!important}.financial-table tr td:nth-child(n+5),.financial-table tr th:nth-child(n+5){display:none!important}}.company-profile-view{display:flex;flex-direction:column;font-family:inherit;gap:20px;margin-top:14px}.company-profile-loading{align-items:center;color:#4b5563;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:60px 20px}.company-profile-loading,.profile-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px}.profile-card{box-shadow:0 1px 3px #0000000a;padding:16px 20px}.section-header-title{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:6px}.section-header-title h2{color:#003b7a;font-size:17px;font-weight:700;margin:0}.section-header-title.clickable-header{cursor:pointer}.header-arrow-icon{color:#0284c7;transition:transform .2s ease}.section-header-title.clickable-header:hover .header-arrow-icon{transform:translateX(3px)}.profile-top-grid{width:100%}.branding-card{display:flex;flex-direction:column;gap:14px}.branding-header{align-items:center;display:flex;gap:16px}.company-logo-badge{flex-shrink:0}.logo-star-circle{align-items:center;background:linear-gradient(135deg,#e11d48,#b91c1c);border:2px solid #fef08a;border-radius:50%;box-shadow:0 2px 6px #e11d4840;display:flex;height:56px;justify-content:center;width:56px}.logo-symbol-text{color:#fff;font-size:16px;font-weight:800;letter-spacing:.5px}.company-titles{display:flex;flex-direction:column;gap:2px}.company-main-name{color:#b91c1c;font-size:20px;font-weight:800;letter-spacing:-.2px;margin:0}.company-sub-name{color:#64748b;font-size:12px;font-weight:500;margin:0}.business-areas-box{background-color:#faf7f0;border:1px solid #f3ebd8;border-radius:6px;padding:14px 18px}.business-areas-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.business-areas-list li{color:#334155;font-size:13px;line-height:1.5}.no-data-text{color:#64748b;font-size:13px;line-height:1.5;margin:0}.listing-table{border-collapse:collapse;font-size:13px;width:100%}.listing-table td{border-bottom:1px solid #f1f5f9;padding:7px 4px}.listing-table tr:last-child td{border-bottom:none}.listing-label{color:#334155;font-weight:500;text-align:left}.listing-value{color:#0f172a;font-family:inherit;font-weight:600;text-align:right}.profile-bottom-grid{width:100%}.profile-left-column,.profile-right-column{display:flex;flex-direction:column;gap:20px}.table-scrollable{max-height:480px;overflow-y:auto;scrollbar-color:#cbd5e1 #f8fafc;scrollbar-width:thin}.table-scrollable::-webkit-scrollbar{width:6px}.table-scrollable::-webkit-scrollbar-track{background:#f8fafc}.table-scrollable::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:3px}.holders-table,.officers-table,.subsidiaries-table{border-collapse:collapse;font-size:13px;width:100%}.holders-table th,.officers-table th,.subsidiaries-table th{background-color:#f8fafc;border-bottom:1px solid #e2e8f0;color:#003b7a;font-size:13px;font-weight:700;padding:8px 10px;position:sticky;text-align:left;top:0;z-index:1}.sortable-th{transition:background-color .15s ease,color .15s ease}.sortable-th:hover{background-color:#f1f5f9!important;color:#0284c7!important}.sortable-th.is-sorted{background-color:#eff6ff!important;color:#0284c7!important}.th-sort-wrapper{align-items:center;display:inline-flex;gap:6px;width:100%}.th-label-box{display:inline-block;line-height:1.25}.th-sub-label{font-size:11px;font-weight:400;opacity:.85}.sort-icon-box{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.sort-icon.is-active{stroke-width:2.4;color:#0284c7}.sort-icon.is-idle{color:#94a3b8;opacity:.35;transition:opacity .15s ease,color .15s ease}.sortable-th:hover .sort-icon.is-idle{color:#64748b;opacity:.9}.holders-table td,.officers-table td,.subsidiaries-table td{border-bottom:1px solid #f1f5f9;color:#1e293b;font-size:13px;padding:8px 10px}.holder-row:hover,.officer-row:hover,.subsidiary-row:hover{background-color:#fefce8}.name-bullet{color:#0284c7;font-size:16px;margin-right:4px}.officer-name-cell,.subsidiary-name-cell{color:#1e293b;font-weight:500;min-width:180px}.subsidiary-name-cell.is-highlight{color:#0284c7;font-weight:600}.entity-name-with-link{align-items:center;display:inline-flex;flex-wrap:wrap;gap:6px}.entity-main-title{display:inline}.stock-symbol-badge-link{align-items:center;background-color:#e0f2fe;border:1px solid #bae6fd;border-radius:4px;color:#0284c7;display:inline-flex;font-size:11px;font-weight:700;gap:2px;line-height:1.2;padding:1px 5px;text-decoration:none;transition:all .15s ease;vertical-align:middle}.stock-symbol-badge-link:hover{background-color:#0284c7;border-color:#0284c7;box-shadow:0 2px 4px #0284c733;color:#fff;transform:translateY(-1px)}.badge-text{letter-spacing:.5px}.badge-ext-icon{margin-left:1px}.officer-pos-cell{color:#475569;font-weight:500}.holder-shares-cell,.officer-shares-cell,.subsidiary-capital-cell{color:#0f172a;font-weight:500}.holder-name-cell{color:#06c;font-weight:600}.holder-pct-cell,.subsidiary-ownership-cell{color:#0f172a;font-weight:600}.holder-term-cell,.officer-term-cell,.subsidiary-term-cell{color:#64748b;font-size:12px;font-weight:500;white-space:nowrap}.sparkline-cell{min-width:76px;padding:4px 6px;text-align:center;width:76px}.mini-sparkline-wrapper{align-items:center;display:inline-flex;height:22px;justify-content:center;vertical-align:middle}.mini-sparkline-wrapper.is-clickable{border-radius:4px;cursor:pointer;padding:2px 4px;transition:transform .15s ease,background-color .15s ease}.mini-sparkline-wrapper.is-clickable:hover{background-color:#f1f5f9;transform:scale(1.08)}.mini-sparkline-svg{display:block;overflow:visible}.sparkline-placeholder{color:#94a3b8;font-size:12px}.no-data-cell{color:#94a3b8;padding:24px;text-align:center}.card-footer-bar{align-items:center;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;margin-top:12px;padding-top:8px}.snapshot-date-tag{color:#64748b;font-size:12px}.table-pagination-bar{align-items:center;display:flex;gap:12px}.pagination-info{color:#64748b;font-size:12px}.pagination-nav{align-items:center;display:flex;gap:6px}.table-page-btn{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;display:inline-flex;height:26px;justify-content:center;transition:all .2s ease;width:26px}.table-page-btn:hover:not(:disabled){background-color:#eff6ff;border-color:#0284c7;color:#0284c7}.table-page-btn:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.4}.page-current-tag{color:#003b7a;font-size:12px;font-weight:600;padding:0 4px}.ownership-chart-container{align-items:center;display:flex;gap:16px;justify-content:space-around;padding:10px 0}.pie-svg-wrapper{flex-shrink:0;height:130px;width:130px}.ownership-svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.08));height:100%;overflow:visible;width:100%}.pie-slice{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.pie-slice:hover{opacity:.88;transform:scale(1.02);transform-origin:center}.ownership-legend{display:flex;flex:1 1;flex-direction:column;gap:8px}.legend-row{font-size:12px}.legend-bullet{border-radius:50%;flex-shrink:0;height:10px;width:10px}.legend-label{color:#334155;flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-pct{color:#0f172a;font-weight:700;text-align:right}.dividends-card{margin-top:16px}.dividends-table{border-collapse:collapse;font-size:13px;width:100%}.dividends-table td,.dividends-table th{border-bottom:1px solid #f1f5f9;padding:8px 10px}.dividend-row:hover{background-color:#fefce8}.year-highlight{background-color:#f1f5f9;border-radius:4px;color:#003b7a;display:inline-block;font-size:12px;font-weight:700;padding:2px 8px}.cash-val{color:#059669}.stock-val{color:#0284c7;font-weight:600}.dividend-assets-cell,.dividend-equity-cell{color:#334155;font-weight:500}@media (max-width:1024px){.profile-bottom-grid,.profile-top-grid{grid-template-columns:1fr}}.history-modal-backdrop{align-items:center;animation:modalFadeIn .2s ease-out;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:#0f172a99;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:9999}.history-modal-dialog{animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1);background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 20px 35px -5px #0003,0 10px 15px -5px #0000001a;display:flex;flex-direction:column;max-width:820px;overflow:hidden;width:100%}.modal-top-accent-bar{background:linear-gradient(90deg,#f59e0b,#fbbf24);height:4px;width:100%}.history-modal-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:16px 20px}.history-modal-title{color:#003b7a;font-size:17px;font-weight:700;margin:0 0 2px}.history-modal-sub{color:#64748b;font-size:12px;margin:0}.history-modal-close-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#64748b;cursor:pointer;display:inline-flex;justify-content:center;padding:4px;transition:all .15s ease}.history-modal-close-btn:hover{background-color:#fee2e2;color:#ef4444}.history-modal-body{background-color:#fff;padding:16px 20px 10px;position:relative}.history-modal-empty{color:#94a3b8;font-size:13px;padding:40px;text-align:center}.chart-scroll-container{overflow-x:auto;padding-bottom:8px;position:relative;scrollbar-color:#cbd5e1 #f8fafc;scrollbar-width:thin}.chart-scroll-container::-webkit-scrollbar{height:6px}.chart-scroll-container::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:3px}.history-chart-svg{display:block;overflow:visible}.chart-point-dot{cursor:pointer;transition:r .15s ease,stroke-width .15s ease}.chart-point-dot:hover{r:6.5px}.chart-floating-tooltip{background:#0f172aeb;border:1px solid #ffffff26;border-radius:6px;box-shadow:0 4px 14px #00000040;color:#fff;display:flex;flex-direction:column;gap:2px;min-width:110px;padding:6px 10px;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:10}.tooltip-date-tag{color:#94a3b8;font-size:10px;font-weight:500}.tooltip-main-val{color:#38bdf8;font-size:13px;font-weight:700}.tooltip-sub-pct{color:#cbd5e1;font-size:10.5px;font-weight:500}.tooltip-diff-tag{font-size:10px;font-weight:600}.tooltip-diff-tag.is-up{color:#4ade80}.tooltip-diff-tag.is-down{color:#f87171}.history-modal-footer{align-items:center;background-color:#fafafa;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:12px 20px}.modal-summary-note{color:#64748b;font-size:12px}@media (max-width:576px){.dividends-card .dividends-table td.dividend-equity-cell,.dividends-card .dividends-table th:nth-child(5),.holders-card .holders-table td.holder-term-cell,.holders-card .holders-table th:nth-child(5),.officers-card .officers-table td.officer-term-cell,.officers-card .officers-table th:nth-child(5),.subsidiaries-card .subsidiaries-table td.subsidiary-capital-cell,.subsidiaries-card .subsidiaries-table td.subsidiary-term-cell,.subsidiaries-card .subsidiaries-table th:nth-child(3),.subsidiaries-card .subsidiaries-table th:nth-child(5){display:none!important}.officers-card .officers-table td.officer-name-cell,.officers-card .officers-table th:first-child{font-size:11.5px!important;max-width:140px!important;min-width:110px!important;overflow-wrap:break-word!important;padding:6px!important;word-break:break-word!important}}.industry-peers-container{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;gap:16px;margin-top:12px}.industry-peers-header-card{background-color:#fff;border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:8px;box-shadow:0 1px 3px #0000000d;justify-content:space-between;padding:16px 20px}.industry-peers-header-card,.industry-peers-title-area{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.industry-peers-main-title{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1.15rem;font-weight:700;margin:0}.industry-badge{align-items:center;background:#f0f7ff;border:1px solid #bae0ff;border-radius:6px;color:#0052a3;color:var(--dnse-primary-light,#0052a3);display:inline-flex;font-size:.82rem;font-weight:600;gap:6px;padding:4px 10px}.peers-count-tag{background:#f3f4f6;border-radius:12px;color:#4b5563;font-size:.78rem;font-weight:600;padding:2px 8px}.industry-peers-actions{align-items:center;display:flex;gap:10px}.peers-search-box{align-items:center;display:flex;position:relative}.peers-search-input{border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:6px;font-size:.85rem;outline:none;padding:6px 12px 6px 32px;transition:border-color .2s,box-shadow .2s;width:220px}.peers-search-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 2px #0066cc26}.peers-search-icon{color:#9ca3af;left:9px;pointer-events:none;position:absolute}.peers-refresh-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:6px;color:#4b5563;cursor:pointer;display:inline-flex;font-size:.85rem;gap:6px;padding:6px 10px;transition:all .2s}.peers-refresh-btn:hover{background:#f9fafb;border-color:#9ca3af;color:#003b7a;color:var(--dnse-primary,#003b7a)}.peers-table-card{background-color:#fff;border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:8px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.peers-table-wrapper{overflow-x:auto;width:100%}.peers-table{border-collapse:collapse;font-size:.875rem;white-space:nowrap;width:100%}.peers-table thead th{background-color:#f8fafc;border-bottom:2px solid #e2e8f0;color:#1e293b;cursor:pointer;font-weight:700;padding:12px 14px;text-align:right;transition:background-color .15s;-webkit-user-select:none;user-select:none}.peers-table thead th:hover{background-color:#edf2f7}.peers-table thead th.col-symbol{background-color:#f8fafc;box-shadow:2px 0 4px #00000008;left:0;position:sticky;text-align:left;z-index:2}.peers-table thead th.col-symbol:hover{background-color:#edf2f7}.sort-icon{color:#0284c7;font-size:.75rem;margin-left:4px}.peers-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background-color .15s}.peers-table tbody tr:hover{background-color:#f8fafc}.peers-table tbody tr.target-stock-row{background-color:#fefce8!important;font-weight:600}.peers-table tbody tr.target-stock-row td{border-bottom:1px solid #fef08a;border-top:1px solid #fef08a}.peers-table tbody tr.target-stock-row td.col-symbol-cell{background-color:#fefce8!important}.peers-table tbody td{font-feature-settings:"tnum";color:#334155;font-variant-numeric:tabular-nums;padding:10px 14px;text-align:right}.peers-table tbody td.col-symbol-cell{background-color:#fff;box-shadow:2px 0 4px #00000008;left:0;position:sticky;text-align:left;z-index:1}.peers-table tbody tr:hover td.col-symbol-cell{background-color:#f8fafc}.peers-symbol-link{align-items:center;border-radius:4px;color:#0052a3;color:var(--dnse-primary-light,#0052a3);display:inline-flex;font-weight:700;gap:4px;padding:2px 6px;text-decoration:none;transition:background-color .15s,color .15s}.peers-symbol-link:hover{background-color:#e0f2fe;color:#0284c7}.target-badge-pill{background:#f59e0b;border-radius:4px;color:#fff;font-size:.68rem;letter-spacing:.5px;margin-left:4px;padding:1px 5px;text-transform:uppercase}.price-increase{color:#00c853!important;color:var(--dnse-success,#00c853)!important;font-weight:700}.price-decrease{color:#ff3d00!important;color:var(--dnse-danger,#ff3d00)!important;font-weight:700}.price-neutral{color:#ffb300!important;color:var(--dnse-warning,#ffb300)!important;font-weight:600}.peers-pagination-bar{align-items:center;background-color:#fafafa;border-top:1px solid #e5e7eb;border-top:1px solid var(--dnse-gray-200,#e5e7eb);color:#64748b;display:flex;flex-wrap:wrap;font-size:.85rem;gap:12px;justify-content:space-between;padding:12px 20px}.peers-page-size-selector{align-items:center;display:flex;gap:8px}.peers-page-size-select{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:4px;font-size:.85rem;outline:none;padding:4px 8px}.peers-page-controls{align-items:center;display:flex;gap:6px}.peers-page-btn{background:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:4px;color:#334155;cursor:pointer;font-size:.85rem;padding:4px 10px;transition:all .15s}.peers-page-btn:hover:not(:disabled){background-color:#f1f5f9;border-color:#94a3b8}.peers-page-btn:disabled{cursor:not-allowed;opacity:.4}.peers-page-btn.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff;font-weight:700}.peers-empty-state,.peers-loading-state{align-items:center;color:#64748b;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:60px 20px}.peers-spinner{animation:spin 1s linear infinite;color:#0052a3;color:var(--dnse-primary-light,#0052a3)}@media (max-width:768px){.industry-peers-header-card{align-items:flex-start;flex-direction:column}.industry-peers-actions{flex-direction:column;width:100%}.peers-search-input{width:100%}}@media (max-width:991px){.peers-table .target-badge-pill{display:none!important}.peers-table tbody tr.target-stock-row{background-color:#fef08a!important;border-left:4px solid #ca8a04!important}.peers-table tbody tr.target-stock-row td{background-color:#fef08a!important;font-weight:700!important}}@media (min-width:577px) and (max-width:991px){.peers-table .col-price-high,.peers-table .col-price-low{display:none!important}}@media (max-width:576px){.peers-table .col-foreign-buy,.peers-table .col-foreign-sell,.peers-table .col-price-high,.peers-table .col-price-low,.peers-table .col-value{display:none!important}.peers-table td,.peers-table th{font-size:11.5px!important;padding:8px 6px!important}}.test-chart-page{box-sizing:border-box;color:#212121;color:var(--dnse-gray-900,#212121);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0 auto;max-width:100%;padding:24px;width:100%}.test-chart-header-card{align-items:center;background:linear-gradient(135deg,#002952,#003b7a 60%,#0052a3);border-radius:14px;box-shadow:0 10px 25px -5px #00295240;color:#fff;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px;padding:24px 28px}.header-info{max-width:650px}.header-badge{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border:1px solid #ffffff40;border-radius:20px;display:inline-flex;font-size:.78rem;font-weight:600;gap:6px;letter-spacing:.5px;margin-bottom:10px;padding:4px 12px;text-transform:uppercase}.header-title{font-size:1.65rem;font-weight:700;letter-spacing:-.3px;line-height:1.25;margin:0 0 8px}.header-desc{color:#ffffffd9;font-size:.88rem;line-height:1.5;margin:0}.header-desc code{background:#fff3;border-radius:4px;font-family:monospace;font-size:.82rem;padding:2px 6px}.header-metrics{display:flex;flex-wrap:wrap;gap:12px}.header-metrics .metric-box{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:10px;min-width:110px;padding:12px 18px;text-align:center}.header-metrics .metric-label{color:#ffffffbf;display:block;font-size:.72rem;font-weight:600;margin-bottom:4px;text-transform:uppercase}.header-metrics .metric-value{color:#fff;display:block;font-size:1.35rem;font-weight:800}.header-metrics .metric-sub{color:#fffc;display:block;font-size:.72rem;margin-top:2px}.test-chart-controls-card{align-items:center;background:#fff;border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:12px;box-shadow:0 2px 8px #0000000a;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:24px;padding:18px 24px}.selector-group{align-items:center;display:flex;gap:12px}.selector-label{color:#212121;color:var(--dnse-gray-900,#212121);font-size:.88rem;font-weight:600}.preset-buttons{display:flex;flex-wrap:wrap;gap:6px}.filter-group{align-items:center;flex-wrap:wrap;gap:8px}.filter-title{align-items:center;display:flex;font-size:.82rem;gap:4px}.filter-btn,.filter-title{color:#757575;color:var(--dnse-gray-600,#757575);font-weight:600}.filter-btn{background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5);border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:6px;cursor:pointer;font-size:.78rem;padding:4px 10px;transition:all .2s ease}.filter-btn:hover{background:#eee;background:var(--dnse-gray-200,#eee);color:#003b7a;color:var(--dnse-primary,#003b7a)}.filter-btn.active{background:#003b7a;background:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff}.search-form{gap:10px}.input-wrapper,.search-form{align-items:center;display:flex}.input-wrapper{position:relative}.search-icon{color:#757575;color:var(--dnse-gray-600,#757575);left:12px}.search-input{border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:8px;font-size:.88rem;padding:8px 12px 8px 36px;transition:all .2s ease;width:200px}.search-input:focus{box-shadow:0 0 0 3px #0066cc1f}.zoom-toolbar{border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:8px;box-shadow:0 2px 6px #0000000d;display:flex;gap:6px;padding:4px 8px}.zoom-btn,.zoom-toolbar{align-items:center;background:#fff}.zoom-btn{border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:6px;color:#212121;color:var(--dnse-gray-900,#212121);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.zoom-btn:hover{border-color:#06c;border-color:var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c)}.zoom-badge,.zoom-btn:hover{background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5)}.zoom-badge{border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:.78rem;font-weight:700;min-width:44px;padding:2px 8px;text-align:center}.company-scatter-container{align-items:center;background:#fff;border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:14px;box-shadow:0 4px 16px #0000000d;display:flex;flex-direction:column;margin-bottom:24px;padding:28px}.scatter-chart-header{margin-bottom:20px;text-align:center}.scatter-chart-title{color:#111827;font-size:1.35rem;font-weight:700;margin:0 0 6px}.scatter-chart-subtitle{color:#6b7280;font-size:.9rem}.scatter-canvas-wrapper{margin:0 auto;max-width:720px;position:relative;width:100%}.scatter-svg{background:#fafafa;border:1px solid #e2e8f0;border-radius:12px;display:block;height:auto;width:100%}.axis-tick-text{fill:#475569;font-size:13px;font-weight:600}.axis-title-text{fill:#1e293b;font-size:14px;font-weight:700}.node-label-text{fill:#1e293b;font-size:11px;font-weight:700;pointer-events:none;text-shadow:0 1px 3px #ffffffe6}.node-label-text.hub-label{fill:#c2410c;font-size:13px;font-weight:800}.scatter-tooltip-card{animation:fadeIn .15s ease-out;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 25px -5px #0000002e;min-width:200px;padding:12px 16px;pointer-events:none;position:absolute;z-index:100}.tooltip-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.tooltip-symbol{color:#0f172a;font-size:1.05rem;font-weight:800}.tooltip-badge{border-radius:12px;color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px}.tooltip-name{border-bottom:1px solid #f1f5f9;color:#475569;font-size:.82rem;font-weight:600;margin-bottom:8px;padding-bottom:6px}.tooltip-row{color:#64748b;display:flex;font-size:.78rem;justify-content:space-between;margin-bottom:4px}.tooltip-row strong{color:#0f172a}.scatter-legend-box{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:20px;justify-content:flex-end;margin-top:16px;max-width:720px;padding:12px 20px;width:100%}.legend-row{align-items:center;display:flex;gap:8px}.legend-text{color:#334155;font-size:.82rem;font-weight:500}.legend-symbol-icon{align-items:center;display:inline-flex;height:20px;justify-content:center;position:relative;width:20px}.icon-blue-dot{background:#93c5fd;border:1.5px solid #3b82f6;border-radius:50%;height:12px;width:12px}.icon-red-line{align-items:center;display:flex;height:16px;justify-content:center;position:relative;width:22px}.line-bar-red{background:#ef4444;height:2.5px;width:22px}.dot-red{background:#ef4444;border-radius:50%;height:8px;position:absolute;width:8px}.icon-orange-hub{background:#ea580c;border:2px solid #7c2d12;border-radius:50%;height:14px;width:14px}.icon-purple-cluster{align-items:center;display:flex;height:18px;justify-content:center;width:18px}.square-purple-box{background:#a855f7;border:1.5px solid #6b21a8;border-radius:2px;height:12px;width:12px}.table-card{margin-top:10px}.row-root{background:#fafafa;background:var(--dnse-gray-50,#fafafa)}.row-parent{background:#fff5f5}.row-sub{background:#f0fdf4}.text-bold{font-weight:700}.text-success{color:#00c853;color:var(--dnse-success,#00c853)}.text-primary{color:#003b7a;color:var(--dnse-primary,#003b7a)}.error-card,.loading-card{background:#fff;border:1px solid #eee;border:1px solid var(--dnse-gray-200,#eee);border-radius:12px;margin-bottom:24px;padding:40px;text-align:center}.loading-card p{color:#757575;color:var(--dnse-gray-600,#757575);margin-top:14px}@media (max-width:768px){.test-chart-page{padding:14px}.test-chart-header-card{align-items:flex-start;flex-direction:column;padding:18px}.header-metrics{width:100%}.metric-box{flex:1 1;min-width:45%}.test-chart-controls-card{align-items:stretch;flex-direction:column}.search-input{width:100%}.scatter-legend-box{gap:12px;justify-content:center}}div.vis-tooltip{background:#0000!important;border:none!important;border-radius:0!important;box-shadow:none!important;font-family:inherit!important;padding:0!important;pointer-events:none!important;position:absolute!important;z-index:9999!important}.relations-graph-container{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;gap:16px;margin-top:12px}.relations-header-card{background-color:#fff;border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:8px;box-shadow:0 1px 3px #0000000d;gap:14px;justify-content:space-between;padding:16px 20px}.relations-header-card,.relations-title-area{align-items:center;display:flex;flex-wrap:wrap}.relations-title-area{gap:12px}.relations-main-title{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1.15rem;font-weight:700;margin:0}.relations-stats-pills{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.relations-stat-pill{align-items:center;border-radius:12px;display:inline-flex;font-size:.78rem;font-weight:600;gap:4px;padding:3px 10px}.stat-pill-parent{background:#ede9fe;border:1px solid #ddd6fe;color:#5b21b6}.stat-pill-sub{background:#e0f2fe;border:1px solid #bae6fd;color:#0369a1}.stat-pill-grandchild{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.relations-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.relations-view-toggle{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;display:flex;padding:2px}.relations-toggle-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#64748b;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:5px;padding:6px 12px;transition:all .15s}.relations-toggle-btn.active{background:#fff;box-shadow:0 1px 2px #00000014;color:#003b7a;color:var(--dnse-primary,#003b7a)}.relations-search-input{border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:6px;font-size:.85rem;outline:none;padding:6px 12px 6px 30px;transition:border-color .2s;width:200px}.relations-search-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.relations-action-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-200,#d1d5db);border-radius:6px;color:#4b5563;cursor:pointer;display:inline-flex;font-size:.82rem;gap:5px;padding:6px 10px;transition:all .15s}.relations-action-btn:hover{background:#f9fafb;border-color:#9ca3af;color:#003b7a;color:var(--dnse-primary,#003b7a)}.relations-legend-bar{background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.8rem;gap:16px;justify-content:space-between;padding:10px 16px}.legend-items,.relations-legend-bar{align-items:center;display:flex;flex-wrap:wrap}.legend-items{gap:14px}.legend-item{color:#4b5563;display:inline-flex;font-weight:500}.dot-root{background:#003b7a}.dot-parent{background:#6366f1}.dot-sub{background:#0284c7}.dot-associate{background:#059669}.dot-grandchild{background:#d97706}.relations-canvas-card{align-items:center;background-color:#f8fafc;background-image:radial-gradient(#e2e8f0 1px,#0000 0);background-size:20px 20px;border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:8px;display:flex;flex-direction:column;min-height:520px;overflow:auto;padding:30px 20px;position:relative}.tree-flow-wrapper{box-sizing:border-box;gap:24px;max-width:100%;transform-origin:top center;transition:transform .2s ease-out}.tree-flow-wrapper,.tree-level-tier{align-items:center;display:flex;flex-direction:column;width:100%}.tier-heading{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0000000a;color:#64748b;font-size:.8rem;font-weight:700;letter-spacing:.6px;margin-bottom:12px;padding:3px 12px;text-transform:uppercase}.tier-nodes-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;width:100%}.tree-connector-down{align-items:center;display:flex;flex-direction:column;margin:4px 0}.connector-line{background-color:#cbd5e1;height:24px;width:2px}.connector-arrow{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #94a3b8;height:0;width:0}.node-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 4px #0000000d;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:12px 16px;position:relative;transition:all .2s;width:260px}.node-card:hover{box-shadow:0 6px 12px #00000014;transform:translateY(-2px)}.node-card.node-root{background:#003b7a;border:2px solid #0052a3;box-shadow:0 4px 14px #003b7a40;color:#fff;padding:16px 20px;width:320px}.node-card.node-root .node-name{color:#fff;font-size:1.05rem}.node-card.node-root .node-badge{background:#0052a3;color:#e0f2fe}.node-card.node-root .node-meta-value{color:#f1f5f9}.node-card.node-parent{border-left:4px solid #6366f1}.node-card.node-parent:hover{border-color:#6366f1}.node-card.node-sub{border-left:4px solid #0284c7}.node-card.node-associate{border-left:4px solid #059669}.node-card.node-grandchild{background:#fffbeb;border-left:4px solid #d97706;width:240px}.node-header-row{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.node-symbol-wrap{align-items:center;display:flex;gap:6px}.node-symbol-link{align-items:center;color:#0284c7;display:inline-flex;font-size:.95rem;font-weight:700;gap:3px;text-decoration:none}.node-symbol-link:hover{text-decoration:underline}.node-name{color:#1e293b;font-size:.88rem;font-weight:600;line-height:1.3;word-break:break-word}.node-badge{background:#f1f5f9;border-radius:4px;color:#475569;font-size:.72rem;font-weight:600;padding:2px 7px;white-space:nowrap}.badge-parent{background:#ede9fe;color:#5b21b6}.badge-sub{background:#e0f2fe;color:#0369a1}.badge-associate{background:#d1fae5;color:#065f46}.badge-grandchild{background:#fef3c7;color:#92400e}.node-metrics-grid{grid-gap:6px;background:#00000005;border-radius:4px;display:grid;gap:6px;grid-template-columns:1fr 1fr;padding:6px 8px}.node-meta-item{display:flex;flex-direction:column}.node-meta-label{color:#64748b;font-size:.7rem}.node-meta-value{color:#0f172a;font-size:.8rem;font-weight:600}.node-ownership-pill{align-self:flex-start;background:#ecfdf5;border-radius:4px;color:#059669;font-size:.75rem;font-weight:700;padding:1px 6px}.node-expand-toggle{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:4px;color:#0284c7;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;justify-content:space-between;margin-top:4px;padding:4px 8px;transition:all .15s}.node-expand-toggle:hover{background:#e0f2fe;border-color:#0284c7}.grandchildren-container{background:#fff;border:1px dashed #f59e0b;border-radius:6px;display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;padding:12px;width:100%}.relations-grid-view{display:flex;flex-direction:column;gap:20px;width:100%}.grid-section-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px 20px}.grid-section-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:8px;margin-bottom:14px;padding-bottom:8px}.grid-section-title{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1rem;font-weight:700;margin:0}.relations-table-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.relations-table{border-collapse:collapse;font-size:.85rem;white-space:nowrap;width:100%}.relations-table thead th{background-color:#f8fafc;border-bottom:2px solid #e2e8f0;color:#1e293b;font-weight:700;padding:10px 14px;text-align:left}.relations-table tbody td{border-bottom:1px solid #f1f5f9;padding:10px 14px}.relations-table tbody tr:hover{background-color:#f8fafc}.relations-empty,.relations-loading{align-items:center;color:#64748b;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:60px 20px}.relations-spinner{animation:spin 1s linear infinite;color:#0052a3;color:var(--dnse-primary-light,#0052a3)}.relations-network-card{background-color:#f8fafc;background-image:radial-gradient(#d1d5db 1px,#0000 0);background-size:24px 24px;border:1px solid #e5e7eb;border:1px solid var(--dnse-gray-200,#e5e7eb);border-radius:8px;cursor:grab;min-height:640px;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none}.relations-network-card:active{cursor:grabbing}.network-svg-container{display:block;height:680px;width:100%}.network-cluster-label{fill:#1e293b;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:700;letter-spacing:-.2px}.network-cluster-sub{fill:#64748b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.75rem}.network-arrow-path{stroke:#64748b;stroke-width:1.8;fill:none;transition:stroke .25s,stroke-width .25s,opacity .25s}.network-arrow-path.highlighted{stroke:#0284c7;stroke-width:3.8;filter:drop-shadow(0 0 6px rgba(2,132,199,.5));opacity:1!important}.network-arrow-path.dimmed{opacity:.08}.network-hub-pill{fill:#1e293b;rx:6px;ry:6px;cursor:move;transition:fill .2s,transform .2s}.network-hub-pill.highlighted,.network-hub-pill:hover{fill:#003b7a;filter:drop-shadow(0 0 8px rgba(0,59,122,.4))}.network-hub-text{fill:#fff;text-anchor:middle;dominant-baseline:central;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.78rem;font-weight:700;pointer-events:none}.network-node-group{cursor:pointer;transform-origin:center center;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s,filter .25s}.network-node-group.is-hovered{filter:drop-shadow(0 10px 24px rgba(2,132,199,.45))!important;opacity:1!important}.network-node-group.is-related{filter:drop-shadow(0 6px 16px rgba(2,132,199,.35))!important;opacity:1!important}.network-node-group.is-dimmed{filter:grayscale(80%)!important;opacity:.12!important}.network-avatar-rect{fill:#fff;stroke:#cbd5e1;stroke-width:1.5;rx:12px;ry:12px;transition:all .2s}.network-node-group.is-hovered .network-avatar-rect{stroke:#0284c7;stroke-width:2.8;fill:#f0f9ff}.network-node-group.is-related .network-avatar-rect{stroke:#38bdf8;stroke-width:2.2}.network-halo-circle{fill:none;stroke:#22c55e;stroke-width:3.5;filter:drop-shadow(0 0 12px rgba(34,197,94,.5));transition:all .3s}.network-halo-bg{fill:#f0fdf4;stroke:#86efac;stroke-width:1.5}.network-protagonist-label{fill:#15803d;text-anchor:middle;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:700}.network-node-name{fill:#1e293b;font-size:.8rem;font-weight:600}.network-node-name,.network-node-subtext{text-anchor:middle;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.network-node-subtext{fill:#64748b;font-size:.7rem}.network-badge-pct{fill:#059669;text-anchor:middle;font-size:.72rem;font-weight:700}.network-red-cross{fill:#ef4444;font-family:sans-serif;font-size:1rem;font-weight:900}.network-canvas-legend{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffeb;border:1px solid #e2e8f0;border-radius:8px;bottom:20px;box-shadow:0 2px 6px #0000000d;display:flex;flex-direction:column;font-size:.8rem;gap:8px;left:24px;padding:10px 14px;position:absolute}.network-legend-row{align-items:center;color:#334155;display:flex;font-weight:500;gap:8px}.halo-legend-icon{border:2.5px solid #22c55e;border-radius:50%;height:16px;width:16px}.cross-legend-icon{color:#ef4444;font-size:1.1rem;font-weight:900;line-height:1}.network-active-path-banner{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ae0;border-radius:20px;box-shadow:0 4px 14px #0003;color:#fff;display:flex;font-size:.82rem;font-weight:600;gap:8px;left:50%;padding:6px 18px;pointer-events:none;position:absolute;top:16px;transform:translateX(-50%);z-index:15}@media (max-width:768px){.network-svg-container{height:520px}}.scatter-axis-guides line{stroke:#cbd5e1}.scatter-tier-title{fill:#475569;font-size:.78rem;font-weight:800;letter-spacing:.5px}.scatter-tier-sub{fill:#94a3b8;font-size:.7rem;font-weight:600}.scatter-flow-line{transition:stroke .2s,stroke-width .2s,opacity .2s}.scatter-bubble-circle{cursor:pointer;transition:all .2s ease-out}.scatter-bubble-circle:hover{filter:drop-shadow(0 8px 16px rgba(2,132,199,.35))}.scatter-root-pulse-ring{fill:none;stroke:#38bdf8;stroke-width:2px;animation:scatterPulse 2.5s ease-out infinite}@keyframes scatterPulse{0%{r:58px;opacity:.8}50%{r:72px;opacity:.3}to{r:80px;opacity:0}}.scatter-active-ring{animation:activeRingPulse 1.8s ease-in-out infinite}@keyframes activeRingPulse{0%,to{stroke-width:2px;opacity:.6}50%{stroke-width:3.5px;opacity:1}}.scatter-node-group{-webkit-user-select:none;user-select:none}.scatter-node-group.is-dimmed{opacity:.18}.scatter-node-group.is-related,.scatter-node-group.is-self{opacity:1}.scatter-node-label{pointer-events:none}.scatter-badge-btn{transition:all .2s}.scatter-badge-btn:hover{fill:#0369a1;filter:drop-shadow(0 2px 6px rgba(2,132,199,.4))}.relations-modal-backdrop{align-items:center;animation:modalFadeIn .2s ease-out;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172aa6;bottom:0;display:flex;justify-content:center;left:0;padding:24px;position:fixed;right:0;top:0;z-index:9999}.relations-modal-dialog{animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1);background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0000000d;display:flex;flex-direction:column;max-height:90vh;max-width:960px;overflow:hidden;width:100%}.relations-modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:18px 24px}.modal-title-group{align-items:center;display:flex;gap:14px}.modal-company-avatar{align-items:center;border-radius:12px;box-shadow:0 4px 10px #0000001a;color:#fff;display:flex;font-size:1rem;font-weight:800;height:46px;justify-content:center;width:46px}.modal-company-avatar.avatar-root{background:linear-gradient(135deg,#0052a3,#002952)}.modal-company-avatar.avatar-sub{background:linear-gradient(135deg,#38bdf8,#0284c7)}.modal-company-avatar.avatar-assoc{background:linear-gradient(135deg,#fbbf24,#b45309)}.modal-company-name{color:#0f172a;font-size:1.15rem;font-weight:800;margin:0}.modal-symbol-badge{align-items:center;background:#e0f2fe;border-radius:6px;color:#0284c7;display:inline-flex;font-size:.82rem;font-weight:800;gap:4px;padding:3px 8px;text-decoration:none;transition:background .15s}.modal-symbol-badge:hover{background:#bae6fd}.modal-company-meta{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:.8rem;gap:8px;margin-top:4px}.modal-meta-pill{border-radius:12px;font-size:.72rem;font-weight:700;padding:2px 8px}.modal-meta-pill.pill-ownership{background:#dcfce7;color:#15803d}.modal-meta-pill.pill-capital{background:#f1f5f9;color:#475569}.modal-meta-pill.pill-count{background:#e0f2fe;color:#0369a1}.modal-close-btn{background:#0000;border-radius:8px;color:#94a3b8;font-size:1.25rem;padding:6px 10px;transition:all .15s}.modal-close-btn:hover{background:#e2e8f0;color:#0f172a}.relations-modal-body{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:20px 24px}.modal-section-title{display:flex;flex-direction:column;gap:2px}.modal-section-title h4{color:#1e293b;font-size:.95rem;font-weight:800;margin:0}.modal-subtree-canvas-wrap{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto;padding:12px}.modal-children-table-wrap{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.modal-table{font-size:.82rem;margin:0;width:100%}.modal-table-symbol-link{align-items:center;color:#0284c7;display:inline-flex;font-weight:800;gap:3px;text-decoration:none}.modal-table-symbol-link:hover{text-decoration:underline}.modal-btn-view{background:#f1f5f9;border-radius:6px;color:#0369a1;display:inline-block;font-size:.75rem;font-weight:700;padding:4px 10px;text-decoration:none;transition:all .15s}.modal-btn-view:hover{background:#0284c7;color:#fff}.modal-leaf-info{display:flex;justify-content:center;padding:24px}.modal-leaf-card{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;max-width:500px;padding:24px;text-align:center}.vos-network-wrapper{display:flex;flex-direction:column;gap:14px;width:100%}.vos-toolbar{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 20px}.vos-toolbar-left{display:flex;flex-direction:column;gap:4px}.vos-title-badge{align-items:center;color:#0284c7;display:inline-flex;font-size:.76rem;font-weight:700;gap:6px;letter-spacing:.5px;text-transform:uppercase}.vos-heading{color:#0f172a;font-size:1.1rem;font-weight:700;margin:0}.vos-toolbar-right{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.vos-search-box{align-items:center;display:flex;position:relative}.vos-search-box .search-icon{color:#94a3b8;left:10px;position:absolute}.vos-search-input{border:1px solid #cbd5e1;border-radius:6px;font-size:.82rem;outline:none;padding:7px 12px 7px 30px;transition:all .2s ease;width:210px}.vos-search-input:focus{border-color:#0284c7;box-shadow:0 0 0 3px #0284c71f}.vos-slider-box{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;display:flex;font-size:.8rem;font-weight:600;gap:8px;padding:6px 12px}.vos-range-slider{accent-color:#0284c7;cursor:pointer;width:90px}.vos-zoom-group{align-items:center;display:flex;gap:4px}.vos-hover-banner{align-items:center;animation:fadeIn .2s ease;background:#0f172ad9;border-radius:8px;box-shadow:0 4px 12px #00000026;color:#fff;font-size:.84rem;gap:8px;left:16px;padding:8px 14px;top:14px}.vos-hover-banner,.vos-legend-box{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;position:absolute;z-index:10}.vos-legend-box{background:#ffffffeb;border:1px solid #cbd5e1;border-radius:10px;bottom:16px;box-shadow:0 4px 14px #00000014;flex-direction:column;gap:10px;max-width:320px;padding:12px 14px;right:16px}.vos-legend-header{align-items:center;border-bottom:1px solid #e2e8f0;color:#0f172a;display:flex;font-size:.78rem;font-weight:700;gap:6px;padding-bottom:6px;text-transform:uppercase}.vos-legend-grid{display:flex;flex-wrap:wrap;gap:6px 10px}.legend-chip{align-items:center;color:#334155;display:flex;font-size:.72rem;font-weight:600;gap:5px}.legend-chip .dot{border-radius:50%;box-shadow:0 0 2px #0000004d;display:inline-block;height:10px;width:10px}.vos-scale-indicator{align-items:center;border-top:1px dashed #cbd5e1;display:flex;gap:10px;justify-content:space-between;margin-top:2px;padding-top:8px}.scale-title{color:#64748b;font-size:.7rem;font-weight:600}.scale-circles{align-items:center;display:flex;gap:8px}.scale-circles .circle{align-items:center;background:#f1f5f9;border:1px solid #94a3b8;border-radius:50%;color:#475569;display:inline-flex;font-size:.65rem;font-weight:700;justify-content:center}.scale-circles .circle-lg{height:32px;width:32px}.scale-circles .circle-md{height:24px;width:24px}.scale-circles .circle-sm{height:18px;width:18px}.vos-detail-drawer{background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 25px -5px #0000001a;overflow:hidden;position:absolute;right:16px;top:14px;width:280px;z-index:12}.vos-detail-drawer .drawer-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:12px 16px}.vos-detail-drawer .drawer-header h3{color:#0f172a;font-size:.95rem;margin:0}.vos-detail-drawer .close-btn{background:none;border:none;color:#64748b;cursor:pointer;font-size:1.2rem}.vos-detail-drawer .drawer-body{color:#334155;font-size:.82rem;line-height:1.6;padding:14px 16px}.badge-root{background:#dcfce7;color:#15803d;font-weight:700}.tier-badge-pill{align-items:center;display:inline-flex;gap:5px;vertical-align:middle}.tier-color-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;width:8px}.badge-parent .tier-color-dot{background-color:#8b5cf6}.badge-sub .tier-color-dot{background-color:#0284c7}.badge-associate .tier-color-dot{background-color:#f59e0b}.badge-grandchild .tier-color-dot{background-color:#059669}.badge-root .tier-color-dot{background-color:#10b981}@media (max-width:991px){.relations-table td.col-tier-cell,.relations-table th.col-tier{max-width:32px!important;min-width:28px!important;padding:6px 2px!important;text-align:center!important;width:28px!important}.relations-table .tier-label-text{display:none!important}.relations-table .tier-badge-pill{border-radius:50%!important;box-sizing:border-box!important;height:18px!important;justify-content:center!important;margin:0 auto!important;padding:4px!important;width:18px!important}.relations-table .tier-color-dot{height:10px!important;margin:0!important;width:10px!important}.relations-table td.col-name-cell,.relations-table th.col-name{font-size:12px!important;line-height:1.35!important;overflow-wrap:break-word!important;padding:6px 8px!important;white-space:normal!important;word-break:normal!important}.relations-table td.col-shares-cell,.relations-table td.col-symbol-cell{font-size:12px!important;padding:6px!important;white-space:nowrap!important}}@media (min-width:577px) and (max-width:991px){.relations-table .col-relationship,.relations-table .col-relationship-cell{display:none!important}.relations-table td.col-name-cell,.relations-table th.col-name{min-width:180px!important}}@media (max-width:576px){.relations-table .col-charter-capital,.relations-table .col-charter-capital-cell,.relations-table .col-ownership,.relations-table .col-ownership-cell,.relations-table .col-relationship,.relations-table .col-relationship-cell{display:none!important}.relations-table td.col-name-cell,.relations-table th.col-name{min-width:130px!important}}.covered-warrants-container{display:flex;flex-direction:column;font-family:inherit;gap:16px;margin-bottom:24px;margin-top:4px}.cw-header-row{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;padding:16px 20px}.cw-title-area{display:flex;flex-direction:column;gap:4px}.cw-main-title{color:#0f172a;font-size:1.15rem;font-weight:800;margin:0}.cw-sub-title{color:#64748b;font-size:.82rem}.cw-action-btn{align-items:center;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;color:#334155;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 12px;transition:all .15s}.cw-action-btn:hover{background:#0284c7;border-color:#0284c7;color:#fff}.cw-spinner{animation:cwSpin 1s linear infinite}@keyframes cwSpin{to{transform:rotate(1turn)}}.cw-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.cw-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #00000008;gap:12px;padding:12px 14px}.cw-stat-card,.cw-stat-icon{align-items:center;display:flex}.cw-stat-icon{border-radius:8px;flex-shrink:0;height:38px;justify-content:center;width:38px}.icon-total{background:#e0f2fe;color:#0284c7}.icon-up{background:#dcfce7;color:#16a34a}.icon-down{background:#fee2e2;color:#dc2626}.icon-flat{background:#fef3c7;color:#d97706}.icon-volume{background:#f1f5f9;color:#475569}.icon-value{background:#f3e8ff;color:#7c3aed}.cw-stat-info{display:flex;flex-direction:column}.cw-stat-label{color:#64748b;font-size:.72rem;font-weight:600}.cw-stat-value{color:#0f172a;font-size:1.1rem;font-weight:800}.text-success{color:#16a34a!important}.text-danger{color:#dc2626!important}.text-warning{color:#d97706!important}.cw-toolbar-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.cw-search-box{flex:1 1;position:relative;width:100%}.cw-search-icon{color:#94a3b8;left:10px;position:absolute;top:50%;transform:translateY(-50%)}.cw-search-input{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;font-size:.82rem;outline:none;padding:7px 12px 7px 32px;transition:border-color .15s;width:100%}.cw-search-input:focus{background:#fff;border-color:#0284c7}.cw-filter-pills{align-items:center;display:flex;gap:6px}.cw-filter-btn{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:700;gap:4px;padding:6px 12px;transition:all .15s}.cw-filter-btn:hover{background:#e2e8f0}.cw-filter-btn.active{background:#003b7a;border-color:#003b7a;color:#fff}.cw-filter-btn.filter-up.active{background:#16a34a;border-color:#16a34a;color:#fff}.cw-filter-btn.filter-down.active{background:#dc2626;border-color:#dc2626;color:#fff}.cw-filter-btn.filter-flat.active{background:#d97706;border-color:#d97706;color:#fff}.cw-table-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.cw-table-responsive{overflow-x:auto;width:100%}.cw-table{border-collapse:collapse;font-size:.82rem;margin:0;width:100%}.cw-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#475569;font-weight:700;padding:10px 14px;white-space:nowrap}.cw-table td{border-bottom:1px solid #f1f5f9;padding:10px 14px;vertical-align:middle}.cw-table-row:hover{background:#f8fafc}.cw-symbol-cell{align-items:center;display:flex;gap:6px}.cw-symbol-link{align-items:center;color:#0284c7;display:inline-flex;font-size:.88rem;font-weight:800;gap:3px;text-decoration:none}.cw-symbol-link:hover{text-decoration:underline}.cw-exchange-badge{background:#f1f5f9;border-radius:4px;color:#64748b;font-size:.65rem;font-weight:700;padding:2px 4px}.cw-issuer-cell{align-items:center;display:inline-flex}.cw-issuer-badge{background:#e0f2fe;border:1px solid #bae6fd;border-radius:6px;color:#0369a1;font-size:.76rem;font-weight:800;padding:3px 8px;white-space:nowrap}.cw-date-cell{color:#475569;font-size:.78rem;font-weight:600;white-space:nowrap}.cw-change-pill{border-radius:6px;display:inline-block;font-size:.76rem;font-weight:800;padding:3px 8px}.cw-change-pill.status-up{background:#dcfce7;color:#15803d}.cw-change-pill.status-down{background:#fee2e2;color:#b91c1c}.cw-change-pill.status-flat{background:#fef3c7;color:#b45309}.cw-range-wrapper{align-items:center;display:flex;gap:6px;justify-content:center;min-width:140px}.cw-range-val{color:#64748b;font-size:.72rem;font-weight:600}.cw-range-bar-track{background:#e2e8f0;border-radius:3px;flex:1 1;height:6px;overflow:hidden;position:relative}.cw-range-bar-fill{background:linear-gradient(90deg,#38bdf8,#0284c7);border-radius:3px;height:100%;position:absolute}.cw-btn-analyze{background:#f1f5f9;border-radius:6px;color:#0369a1;display:inline-block;font-size:.75rem;font-weight:700;padding:4px 10px;text-decoration:none;transition:all .15s;white-space:nowrap}.cw-btn-analyze:hover{background:#0284c7;color:#fff}.cw-empty-container,.cw-loading-container{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;color:#475569;display:flex;flex-direction:column;font-size:.9rem;font-weight:600;gap:12px;justify-content:center;padding:48px 24px}.cw-modal-backdrop{align-items:center;animation:cwModalBackdropFade .2s ease-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172ab3;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}@keyframes cwModalBackdropFade{0%{opacity:0}to{opacity:1}}.cw-modal-dialog{animation:cwModalScaleIn .25s cubic-bezier(.16,1,.3,1);background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #0006,0 0 0 1px #ffffff1a;display:flex;flex-direction:column;height:92vh;max-height:880px;max-width:1440px;overflow:hidden;width:96vw}@keyframes cwModalScaleIn{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.cw-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:14px 20px}.cw-modal-title-area{align-items:center;display:flex;flex:1 1;gap:12px}.cw-modal-symbol-box{align-items:center;background:#003b7a;border-radius:8px;color:#fff;display:flex;flex-direction:column;flex-shrink:0;justify-content:center;padding:4px 10px}.cw-modal-symbol-badge{font-size:.95rem;font-weight:800;letter-spacing:.5px}.cw-modal-exchange{font-size:.62rem;font-weight:600;opacity:.8}.cw-modal-title-info{display:flex;flex-direction:column;gap:2px}.cw-modal-company-name{color:#0f172a;font-size:1.05rem;font-weight:800;margin:0}.cw-modal-meta-row{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:.78rem;gap:12px}.cw-modal-meta-item strong{color:#1e293b}.cw-modal-header-actions{align-items:center;display:flex;gap:12px}.cw-resolution-picker{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:2px;padding:3px 4px}.cw-resolution-label{color:#64748b;font-size:.72rem;font-weight:700;padding:0 6px}.cw-res-btn{background:#0000;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:.76rem;font-weight:700;padding:5px 10px;transition:all .15s}.cw-res-btn:hover{background:#e2e8f0;color:#0f172a}.cw-res-btn.active{background:#003b7a;box-shadow:0 1px 3px #003b7a40;color:#fff}.cw-modal-close-btn{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:34px;justify-content:center;transition:all .15s;width:34px}.cw-modal-close-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#ef4444}.cw-modal-body{background:#f8fafc;display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:12px}.cw-chart-gui-wrapper{box-shadow:0 2px 6px #0000000a;overflow:hidden;width:100%}.cw-chart-error-state,.cw-chart-gui-wrapper,.cw-chart-loading-state{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1 1}.cw-chart-error-state,.cw-chart-loading-state{align-items:center;color:#64748b;display:flex;flex-direction:column;font-size:.92rem;font-weight:600;gap:12px;justify-content:center;min-height:480px}.cw-pagination-bar{background:#fff;border-top:1px solid #e2e8f0;gap:12px;justify-content:space-between;padding:14px 20px}.cw-pagination-bar,.cw-pagination-info{align-items:center;display:flex;flex-wrap:wrap}.cw-pagination-info{color:#64748b;font-size:.84rem;gap:10px}.cw-pagination-label{color:#64748b;font-weight:600}.cw-page-size-select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;color:#1e293b;cursor:pointer;font-size:.82rem;font-weight:700;outline:none;padding:5px 10px;transition:all .15s}.cw-page-size-select:focus,.cw-page-size-select:hover{background:#fff;border-color:#0284c7}.cw-pagination-summary{color:#475569;font-size:.82rem}.cw-pagination-summary strong{color:#0f172a}.cw-page-controls{gap:4px}.cw-page-btn,.cw-page-controls{align-items:center;display:flex}.cw-page-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;font-size:.82rem;font-weight:700;height:32px;justify-content:center;min-width:32px;padding:0 8px;transition:all .15s}.cw-page-btn:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1;color:#0f172a}.cw-page-btn.active{background:#003b7a;border-color:#003b7a;box-shadow:0 2px 4px #003b7a40;color:#fff}.cw-page-btn:disabled{cursor:not-allowed;opacity:.4}.cw-page-ellipsis{color:#94a3b8;font-size:.82rem;font-weight:700;padding:0 4px}@media (max-width:991px){.cw-table .action-btn-text,.cw-table .cw-exchange-badge{display:none!important}.cw-table .cw-btn-analyze{padding:6px 8px!important}}@media (min-width:577px) and (max-width:991px){.cw-table .col-foreign,.cw-table .col-issuer,.cw-table .col-value{display:none!important}.cw-table td,.cw-table th{font-size:12px!important;padding:8px 10px!important}}@media (max-width:576px){.cw-table .col-foreign,.cw-table .col-issuer,.cw-table .col-start-date,.cw-table .col-value,.cw-table .col-volume{display:none!important}.cw-table td,.cw-table th{font-size:11.5px!important;padding:6px!important}}.cw-detail-container{display:flex;flex-direction:column;gap:20px;margin-bottom:24px;margin-top:10px}.cw-detail-header-card{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:12px;box-shadow:0 4px 6px -1px #0000000d;padding:24px}.cw-header-main{align-items:flex-start;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.cw-title-section{display:flex;flex-direction:column;gap:6px}.cw-symbol-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.cw-symbol-badge{background:linear-gradient(135deg,#003b7a,#0052a3);background:linear-gradient(135deg,var(--dnse-primary,#003b7a) 0,var(--dnse-primary-light,#0052a3) 100%);border-radius:8px;color:#fff;font-size:22px;font-weight:800;letter-spacing:.5px;padding:4px 14px}.cw-tag{border-radius:6px;font-size:12px;font-weight:600;padding:4px 10px}.cw-tag-active{background-color:#00c8531f;border:1px solid #00c8534d;color:#00c853;color:var(--dnse-success,#00c853)}.cw-tag-issuer{background-color:#0066cc1a;border:1px solid #0066cc40;color:#06c;color:var(--dnse-accent,#06c)}.cw-names-sub{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:14px;font-weight:500}.cw-underlying-btn-wrapper{align-items:center;display:flex;gap:8px}.cw-underlying-link-btn{align-items:center;background-color:#fff;border:1.5px solid #0052a3;border:1.5px solid var(--dnse-primary-light,#0052a3);border-radius:8px;box-shadow:0 2px 4px #0000000a;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:8px 16px;text-decoration:none;transition:all .2s ease}.cw-underlying-link-btn:hover{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);box-shadow:0 4px 8px #003b7a33;color:#fff}.cw-metrics-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.cw-metric-box{align-items:center;background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:10px;display:flex;gap:14px;padding:14px 16px;transition:transform .2s ease,box-shadow .2s ease}.cw-metric-box:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-2px)}.cw-metric-icon-wrap{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.cw-icon-blue{background-color:#003b7a1a;color:#003b7a;color:var(--dnse-primary,#003b7a)}.cw-icon-green{background-color:#00c8531a;color:#00c853;color:var(--dnse-success,#00c853)}.cw-icon-amber{background-color:#ffb3001f;color:#d97706}.cw-icon-purple{background-color:#9333ea1a;color:#9333ea}.cw-metric-content{display:flex;flex-direction:column}.cw-metric-label{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:12px;font-weight:500;margin-bottom:2px}.cw-metric-val{color:#1e293b;color:var(--dnse-gray-900,#1e293b);font-size:16px;font-weight:700}.cw-cards-section{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.cw-card{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:12px;box-shadow:0 2px 4px #00000008;padding:20px}.cw-card-title{align-items:center;border-bottom:1.5px solid #f1f5f9;border-bottom:1.5px solid var(--dnse-gray-100,#f1f5f9);color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:16px;font-weight:700;gap:8px;margin-bottom:16px;margin-top:0;padding-bottom:10px}.cw-specs-table{border-collapse:collapse;width:100%}.cw-specs-table tr{border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--dnse-gray-100,#f1f5f9)}.cw-specs-table tr:last-child{border-bottom:none}.cw-specs-table td{font-size:13px;padding:10px 4px}.cw-spec-label{color:#64748b;color:var(--dnse-gray-600,#64748b);font-weight:500;width:45%}.cw-spec-value{color:#0f172a;color:var(--dnse-gray-900,#0f172a);font-weight:600;text-align:right}.cw-timeline-item{align-items:flex-start;border-bottom:1px dashed #e2e8f0;border-bottom:1px dashed var(--dnse-gray-200,#e2e8f0);display:flex;gap:12px;padding:10px 0}.cw-timeline-item:last-child{border-bottom:none}.cw-timeline-dot{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-radius:50%;flex-shrink:0;height:10px;margin-top:5px;width:10px}.cw-timeline-dot.highlight{background-color:#ef4444;background-color:var(--dnse-danger,#ef4444);box-shadow:0 0 0 3px #ef444433}.cw-timeline-content{align-items:center;display:flex;justify-content:space-between;width:100%}.cw-timeline-name{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:13px;font-weight:500}.cw-timeline-date{color:#0f172a;color:var(--dnse-gray-900,#0f172a);font-size:13px;font-weight:700}.cw-error-card,.cw-loading-card{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:12px;padding:48px 24px;text-align:center}.cw-error-card p,.cw-loading-card p{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:14px;margin-top:12px}.stock-filter-signals-tab{display:flex;flex-direction:column;font-family:inherit;gap:var(--dnse-spacing-lg);padding:0 0 var(--dnse-spacing-xl) 0;width:100%}.signals-header-banner{background:linear-gradient(135deg,#003b7a0f,#0066cc08);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);flex-wrap:wrap;justify-content:space-between;padding:var(--dnse-spacing-lg)}.signals-header-banner,.signals-title-group{align-items:center;display:flex;gap:var(--dnse-spacing-md)}.signals-icon-box{align-items:center;background:var(--dnse-primary);border-radius:var(--dnse-radius-md);color:#fff;display:flex;height:44px;justify-content:center;width:44px}.signals-title-group h2{color:var(--dnse-primary-dark);font-size:1.25rem;font-weight:700;margin:0}.signals-subtitle{color:var(--dnse-gray-600);font-size:.85rem;margin:2px 0 0}.signals-header-actions{align-items:center;display:flex;gap:var(--dnse-spacing-sm)}.signals-refresh-btn{align-items:center;background:#fff;border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);color:var(--dnse-primary);cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s ease}.signals-refresh-btn:hover{background:var(--dnse-gray-100);border-color:var(--dnse-primary-light)}.signals-summary-row{grid-gap:var(--dnse-spacing-md);display:grid;gap:var(--dnse-spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-metric-card{align-items:center;background:var(--dnse-surface);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-xs);display:flex;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.summary-icon-circle{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:38px;justify-content:center;width:38px}.summary-icon-circle.success{background:#00c8531f;color:var(--dnse-success)}.summary-icon-circle.danger{background:#ff3d001f;color:var(--dnse-danger)}.summary-icon-circle.warning{background:#ffb30026;color:#d97706}.summary-icon-circle.primary{background:#003b7a1a;color:var(--dnse-primary)}.summary-metric-info{display:flex;flex-direction:column}.summary-metric-label{color:var(--dnse-gray-600);font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.summary-metric-val{color:var(--dnse-gray-900);font-size:1.1rem;font-weight:700}.signals-models-grid{grid-gap:var(--dnse-spacing-lg);display:grid;gap:var(--dnse-spacing-lg);grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.model-signal-card{background:#fff;border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);display:flex;flex-direction:column;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.model-signal-card:hover{box-shadow:var(--dnse-shadow-md)}.model-card-header{align-items:center;background:#fafbfc;border-bottom:1px solid var(--dnse-border-light);display:flex;justify-content:space-between;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.model-card-title-group{align-items:center;display:flex;gap:10px}.model-tier-badge{background:var(--dnse-primary-light);border-radius:4px;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:3px 8px}.model-card-title{color:var(--dnse-primary-dark);font-size:.95rem;font-weight:700;margin:0}.model-status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.78rem;font-weight:700;gap:4px;padding:4px 10px}.model-status-badge.badge-success{background:#00c8531f;border:1px solid #00c8534d;color:#008738}.model-status-badge.badge-danger{background:#ff3d001a;border:1px solid #ff3d0040;color:#d62d00}.model-status-badge.badge-warning{background:#ffb30026;border:1px solid #ffb30059;color:#b45309}.model-status-badge.badge-neutral{background:var(--dnse-gray-100);border:1px solid var(--dnse-border-light);color:var(--dnse-gray-600)}.model-card-body{display:flex;flex:1 1;flex-direction:column;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-lg)}.model-highlight-box{align-items:center;background:var(--dnse-gray-50);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);display:flex;justify-content:space-between;padding:var(--dnse-spacing-md)}.model-highlight-label{color:var(--dnse-gray-600);font-size:.85rem;font-weight:500}.model-highlight-val{color:var(--dnse-primary-dark);font-size:1.25rem;font-weight:800}.model-details-table{border-collapse:collapse;font-size:.84rem;width:100%}.model-details-table tr{border-bottom:1px solid var(--dnse-gray-100)}.model-details-table tr:last-child{border-bottom:none}.model-details-table td{color:var(--dnse-gray-900);padding:8px 0}.model-details-table td.prop-name{color:var(--dnse-gray-600);width:55%}.model-details-table td.prop-val{font-weight:600;text-align:right}.text-success{color:#008738!important}.text-danger{color:#d62d00!important}.text-warning{color:#b45309!important}.model-card-footer{align-items:center;background:var(--dnse-gray-50);border-top:1px solid var(--dnse-border-light);color:var(--dnse-gray-600);display:flex;font-size:.78rem;gap:6px;padding:10px var(--dnse-spacing-lg)}.signals-empty-state,.signals-error-state,.signals-loading-state{align-items:center;background:#fff;border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);color:var(--dnse-gray-600);display:flex;flex-direction:column;gap:var(--dnse-spacing-md);justify-content:center;padding:60px 20px;text-align:center}.signals-spinner{animation:spin 1s linear infinite;color:var(--dnse-primary)}@media (max-width:768px){.signals-models-grid{grid-template-columns:1fr}.signals-header-banner{align-items:flex-start;flex-direction:column}}.elliott-screener-tab{display:flex;flex-direction:column;gap:16px;width:100%}.elliott-screener-toolbar{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:14px;padding:16px 20px}.elliott-screener-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.elliott-screener-title-wrap{align-items:center;display:flex;gap:10px}.elliott-screener-title{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:1.15rem;font-weight:700;gap:8px;margin:0}.elliott-screener-subtitle{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.85rem;margin:2px 0 0}.elliott-screener-controls-grid{grid-gap:12px;align-items:flex-end;display:grid;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr))}.basket-btn-group{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border-radius:6px;display:flex;gap:4px;padding:3px}.basket-btn{font-size:.82rem}.basket-btn.active{box-shadow:0 1px 3px #0000001a}.timeframe-btn-group{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border-radius:6px;display:flex;gap:4px;padding:3px}.timeframe-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#616161;color:var(--dnse-gray-700,#616161);cursor:pointer;display:inline-flex;flex:1 1;font-size:.82rem;font-weight:600;height:32px;justify-content:center;transition:all .2s}.timeframe-btn:hover:not(.active){background-color:#0000000d;color:#212121;color:var(--dnse-gray-900,#212121)}.timeframe-btn.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);box-shadow:0 1px 3px #0000001f;color:#fff}.stock-tf-pill{background-color:#003b7a1a;border:1px solid #003b7a33;border-radius:3px;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-block;font-size:.68rem;font-weight:700;margin-left:4px;padding:1px 5px;vertical-align:middle}.btn-scan{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.88rem;gap:6px;height:38px;justify-content:center;transition:background-color .2s}.btn-scan:hover:not(:disabled){background-color:#0052a3;background-color:var(--dnse-primary-light,#0052a3)}.btn-scan:disabled{cursor:not-allowed;opacity:.65}.elliott-kpi-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr))}.elliott-kpi-card{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000a;display:flex;gap:12px;padding:14px 16px}.kpi-icon-wrap{height:42px;width:42px}.kpi-icon-warning{background-color:#ffb3001f;color:#d97706}.elliott-table-container{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.table-responsive-wrapper{overflow-x:auto;width:100%}.elliott-screener-table{border-collapse:collapse;font-size:.85rem;text-align:left;width:100%}.elliott-screener-table th{background-color:#f8f9fa;background-color:var(--dnse-gray-50,#f8f9fa);border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-gray-200,#e0e0e0);color:#424242;color:var(--dnse-gray-700,#424242);font-weight:600;padding:12px 14px;white-space:nowrap}.elliott-screener-table td{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--dnse-gray-200,#f0f0f0);color:#212121;color:var(--dnse-gray-900,#212121);padding:12px 14px;vertical-align:middle}.elliott-screener-table tr:hover td{background-color:#003b7a05}.stock-symbol-link{color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;font-size:.95rem;font-weight:700;text-decoration:none}.stock-symbol-link:hover{color:#06c;color:var(--dnse-accent,#06c);text-decoration:underline}.badge-exchange{background-color:#eee;background-color:var(--dnse-gray-100,#eee);border-radius:4px;color:#616161;color:var(--dnse-gray-600,#616161);font-size:.7rem;font-weight:600;padding:2px 6px}.company-name-text{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.78rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wave-pattern-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:.78rem;font-weight:600;gap:5px;padding:4px 8px;white-space:nowrap}.wave-pattern-impulse{background-color:#00c8531a;border:1px solid #00c8534d;color:#059669}.wave-pattern-corrective{background-color:#ffb3001f;border:1px solid #ffb3004d;color:#b45309}.wave-pattern-diagonal{background-color:#9333ea1f;border:1px solid #9333ea59;color:#7e22ce}.wave-pattern-triangle{background-color:#0ea5e91f;border:1px solid #0ea5e959;color:#0369a1}.wave-pattern-flat{background-color:#f59e0b1f;border:1px solid #f59e0b59;color:#b45309}.wave-pattern-other{background-color:#f3f4f6;background-color:var(--dnse-gray-100,#f3f4f6);color:#4b5563;color:var(--dnse-gray-600,#4b5563)}.current-wave-tag{border-radius:12px;display:inline-block;font-size:.76rem;font-weight:600;padding:3px 8px;white-space:nowrap}.wave-tag-w2{background-color:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.wave-tag-w3{background-color:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.wave-tag-w4{background-color:#fefce8;border:1px solid #fef08a;color:#a16207}.wave-tag-w5{border:1px solid #fecdd3}.wave-tag-truncated,.wave-tag-w5{background-color:#fff1f2;color:#be123c}.wave-tag-truncated{border:1px dashed #f43f5e;font-weight:700}.wave-tag-diagonal{background-color:#f5f3ff;border:1px solid #c4b5fd;color:#6d28d9}.wave-tag-triangle{background-color:#f0f9ff;border:1px solid #bae6fd;color:#0284c7}.wave-tag-flat{background-color:#fffbeb;border:1px solid #fde68a;color:#b45309}.wave-tag-wc{background-color:#f5f3ff;border:1px solid #ddd6fe;color:#6d28d9}.wave-tag-wa{background-color:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.wave-tag-wb{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.wave-tag-completed{background-color:#f3f4f6;border:1px solid #e5e7eb;color:#4b5563}.wave-extra-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.special-wave-badge{border-radius:4px;font-size:.68rem;font-weight:700;letter-spacing:.2px;padding:1px 5px;text-transform:uppercase}.badge-extended{background-color:#00c8531f;border:1px solid #00c8534d;color:#047857}.badge-truncated{background-color:#ff3d001f;border:1px solid #ff3d004d;color:#b91c1c}.badge-diagonal{background-color:#9333ea1f;border:1px solid #9333ea4d;color:#7e22ce}.thrust-target-label{background-color:#00c85314;border-radius:4px;color:#00c853;color:var(--dnse-success,#00c853);display:inline-block;font-size:.72rem;font-weight:600;margin-top:2px;padding:2px 6px}.fib-clusters-container{display:flex;flex-direction:column;gap:2px;margin-top:4px}.fib-cluster-pill{background:linear-gradient(135deg,#ffb30026,#ff980038);border:1px solid #ffb30073;border-radius:4px;color:#b45309;display:inline-block;font-size:.7rem;font-weight:600;padding:2px 6px;white-space:nowrap}.signal-badge-screener{align-items:center;border-radius:4px;display:inline-flex;font-size:.8rem;font-weight:700;gap:4px;padding:4px 10px;white-space:nowrap}.signal-buy{background-color:#00c85326;border:1px solid #00c85366;color:#047857}.signal-sell{background-color:#ff3d001f;border:1px solid #ff3d0059}.signal-hold{background-color:#003b7a1a;border:1px solid #003b7a4d;color:#003b7a;color:var(--dnse-primary,#003b7a)}.signal-watch{background-color:#f3f4f6;background-color:var(--dnse-gray-100,#f3f4f6);color:#4b5563;color:var(--dnse-gray-600,#4b5563)}.price-text-strong{font-family:inherit;font-weight:700}.upside-pct{color:#00c853;color:var(--dnse-success,#00c853);font-size:.75rem;font-weight:600;margin-left:4px}.btn-chart-view{gap:4px;padding:5px 10px}.screener-empty-state,.screener-loading-state{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;flex-direction:column;gap:12px;padding:48px 24px;text-align:center}.spin-icon{animation:spin 1s linear infinite}@media (max-width:992px){.elliott-kpi-grid,.elliott-screener-controls-grid{grid-template-columns:repeat(6,1fr)}}@media (max-width:768px){.elliott-kpi-grid,.elliott-screener-controls-grid{grid-template-columns:1fr}}.sortable-th{transition:background-color .15s ease}.sortable-th:hover{background-color:#003b7a14}.th-content-sort{align-items:center;display:inline-flex;gap:6px;width:100%}.sort-icon-inactive{color:silver;opacity:.6}.elliott-pagination-bar{align-items:center;background-color:#fff;border-radius:0 0 8px 8px;border-top:1px solid #e0e0e0;border-top:1px solid var(--dnse-gray-200,#e0e0e0);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 18px}.elliott-pagination-info{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;font-size:.85rem;gap:10px}.pagination-label{font-weight:500}.pagination-size-select{color:#212121;color:var(--dnse-gray-900,#212121);cursor:pointer;height:32px}.pagination-size-select:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.pagination-summary{margin-left:6px}.elliott-page-controls{align-items:center;display:flex;gap:4px}.page-nav-btn,.page-num-btn{display:inline-flex;height:32px;min-width:32px;padding:0 8px;transition:all .15s ease}.page-nav-btn:hover:not(:disabled),.page-num-btn:hover:not(:disabled){background-color:#fafafa;background-color:var(--dnse-gray-50,#fafafa);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.page-nav-btn:disabled{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);opacity:.45}.page-ellipsis{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.82rem}.screener-sub-tabs-bar{align-items:center;background-color:#fff;border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px 8px 0 0;display:flex;gap:8px;margin-bottom:16px;padding:6px 12px 0}.screener-sub-tab-btn{align-items:center;background:#0000;border:solid #0000;border-radius:4px 4px 0 0;border-width:1px 1px 3px;color:#757575;color:var(--dnse-gray-600,#757575);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s ease}.screener-sub-tab-btn:hover{background-color:#fafafa;background-color:var(--dnse-gray-50,#fafafa);color:#003b7a;color:var(--dnse-primary,#003b7a)}.screener-sub-tab-btn.active{background-color:#fff;border-bottom-color:#003b7a;border-bottom-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.checkbox-control-label{align-items:center;color:#333;color:var(--dnse-gray-800,#333);cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:8px;height:38px;padding:0 4px;-webkit-user-select:none;user-select:none}.control-checkbox{accent-color:#003b7a;accent-color:var(--dnse-primary,#003b7a);cursor:pointer;height:16px;width:16px}.ta-trendline-screener-container{display:flex;flex-direction:column;gap:16px;width:100%}.screener-intro-card{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;padding:16px 20px}.screener-intro-header{flex-wrap:wrap;justify-content:space-between}.screener-intro-header,.screener-intro-title{align-items:center;display:flex;gap:12px}.screener-intro-title h3{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1.15rem;font-weight:700;margin:0}.screener-intro-sub{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.85rem;line-height:1.4;margin:4px 0 0}.advanced-param-btn{align-items:center;display:flex;font-size:.82rem;font-weight:600;gap:6px;padding:6px 14px}.advanced-params-panel{grid-gap:16px;border-top:1px dashed #e0e0e0;border-top:1px dashed var(--dnse-gray-200,#e0e0e0);display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:14px;padding-top:14px}.advanced-param-group{display:flex;flex-direction:column;gap:4px}.advanced-param-group label{color:#424242;color:var(--dnse-gray-700,#424242);font-size:.78rem;font-weight:600}.param-input{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:6px;font-size:.85rem;height:34px;outline:none;padding:0 10px;transition:border-color .2s}.param-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 2px #0066cc26}.screener-filter-bar{align-items:flex-end;background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-label{color:#424242;color:var(--dnse-gray-700,#424242);font-size:.8rem}.btn-group-pill{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border-radius:6px;display:flex;gap:4px;padding:3px}.btn-pill{background:#0000;border:none;border-radius:4px;color:#424242;color:var(--dnse-gray-700,#424242);cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 12px;transition:all .2s ease}.btn-pill:hover{background-color:#0000000a;color:#003b7a;color:var(--dnse-primary,#003b7a)}.btn-pill.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);box-shadow:0 1px 3px #003b7a40;color:#fff}.filter-select{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:6px;color:#212121;color:var(--dnse-gray-900,#212121);cursor:pointer;font-size:.85rem;font-weight:500;height:36px;min-width:200px;outline:none;padding:0 12px;transition:border-color .2s}.filter-select:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.filter-search-group{flex:1 1;min-width:180px}.search-input-wrapper{align-items:center;display:flex}.search-icon{color:#9e9e9e;color:var(--dnse-gray-500,#9e9e9e);left:10px;pointer-events:none;position:absolute}.search-input{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:6px;font-size:.85rem;height:36px;outline:none;padding:0 12px 0 32px;transition:border-color .2s}.search-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 2px #0066cc26}.filter-actions{align-items:flex-end;display:flex}.btn-scan{align-items:center;display:flex;font-size:.85rem;font-weight:600;gap:8px;height:36px;padding:0 18px;white-space:nowrap}.screener-kpi-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.kpi-card{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000a;display:flex;gap:14px;padding:16px;transition:transform .2s,box-shadow .2s}.kpi-card:hover{box-shadow:0 4px 8px #00000014;transform:translateY(-2px)}.kpi-card-total .kpi-icon-wrap{background-color:#003b7a1a;color:#003b7a;color:var(--dnse-primary,#003b7a)}.kpi-card-buy .kpi-icon-wrap{background-color:#00c8531f;color:#00c853;color:var(--dnse-success,#00c853)}.kpi-card-sell .kpi-icon-wrap{background-color:#ff3d001f;color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.kpi-card-trend .kpi-icon-wrap{background-color:#0066cc1a;color:#06c;color:var(--dnse-accent,#06c)}.kpi-content{overflow:hidden}.kpi-label{font-size:.78rem;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.kpi-value{font-size:1.5rem;margin:2px 0}.kpi-success{color:#00c853;color:var(--dnse-success,#00c853)}.kpi-danger{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.kpi-dual-values{align-items:center;display:flex;font-size:1.25rem;font-weight:700;gap:6px;margin:2px 0}.kpi-separator{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd);font-size:1rem}.kpi-sub{color:#9e9e9e;color:var(--dnse-gray-500,#9e9e9e);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screener-table-card{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.screener-table-wrapper{overflow-x:auto;width:100%}.ta-trendline-table{border-collapse:collapse;font-size:.85rem;width:100%}.ta-trendline-table thead th{background-color:#f8fafc;border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-gray-200,#e0e0e0);color:#424242;color:var(--dnse-gray-700,#424242);font-size:.78rem;font-weight:700;letter-spacing:.3px;padding:12px 14px;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-th:hover{background-color:#f1f5f9}.th-content.justify-end{justify-content:flex-end}.th-content.justify-center{justify-content:center}.sort-icon-inactive{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd)}.ta-trendline-table tbody tr{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--dnse-gray-200,#e0e0e0);transition:background-color .15s}.ta-trendline-table tbody tr:hover{background-color:#0066cc08}.row-buy-signal{background-color:#00c8530a}.row-buy-signal:hover{background-color:#00c85314!important}.row-sell-signal{background-color:#ff3d000a}.row-sell-signal:hover{background-color:#ff3d0014!important}.ta-trendline-table tbody td{padding:11px 14px;vertical-align:middle;white-space:nowrap}.stock-symbol-cell{align-items:center;display:flex;gap:8px}.stock-symbol-btn{background:none;border:none;font-size:.95rem;padding:0;transition:color .15s}.stock-symbol-btn:hover{color:#06c;color:var(--dnse-accent,#06c);text-decoration:underline}.stock-exchange-badge{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:4px;color:#757575;color:var(--dnse-gray-600,#757575);font-size:.68rem;font-weight:700;padding:2px 6px}.stock-name-tooltip{color:#9e9e9e;color:var(--dnse-gray-500,#9e9e9e);font-size:.78rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-date-badge{background-color:#f8fafc;background-color:var(--dnse-gray-100,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:4px;color:#1e293b;color:var(--dnse-gray-800,#1e293b);display:inline-block;font-size:.8rem;font-weight:600;padding:3px 8px}.trend-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:.75rem;font-weight:700;gap:4px;padding:3px 8px}.trend-badge.trend-up{background-color:#00c8531f;border:1px solid #00c8534d;color:#00873a}.trend-badge.trend-down{background-color:#ff3d001a;border:1px solid #ff3d0040;color:#d32f2f}.distance-val{font-weight:600}.text-positive{color:#00873a}.text-negative{color:#d32f2f}.text-small{font-size:.78rem}.ha-val{color:#00873a;font-weight:600}.slash-sep{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd);margin:0 4px}.ema-val{color:#06c;font-weight:600}.channel-band{color:#757575;color:var(--dnse-gray-600,#757575)}.signal-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:700;gap:6px;letter-spacing:.2px;padding:4px 10px}.signal-buy{background-color:#dcfce7;border:1px solid #86efac;color:#15803d}.signal-sell{background-color:#fee2e2;border:1px solid #fca5a5;color:#b91c1c}.signal-hold{background-color:#e0f2fe;border:1px solid #bae6fd;color:#0369a1}.signal-observe{background-color:#f3f4f6;border:1px solid #e5e7eb;color:#6b7280}.pulse-dot-green{animation:pulse-green 1.8s infinite;background-color:#22c55e;border-radius:50%;box-shadow:0 0 0 0 #22c55eb3;height:7px;width:7px}@keyframes pulse-green{0%{box-shadow:0 0 0 0 #22c55eb3;transform:scale(.95)}70%{box-shadow:0 0 0 5px #22c55e00;transform:scale(1)}to{box-shadow:0 0 0 0 #22c55e00;transform:scale(.95)}}.pulse-dot-red{animation:pulse-red 1.8s infinite;background-color:#ef4444;border-radius:50%;box-shadow:0 0 0 0 #ef4444b3;height:7px;width:7px}@keyframes pulse-red{0%{box-shadow:0 0 0 0 #ef4444b3;transform:scale(.95)}70%{box-shadow:0 0 0 5px #ef444400;transform:scale(1)}to{box-shadow:0 0 0 0 #ef444400;transform:scale(.95)}}.status-msg-cell{color:#333;color:var(--dnse-gray-800,#333);font-size:.8rem;font-weight:500}.col-action-td,.col-action-th{position:sticky;right:0;text-align:center;z-index:2}.col-action-th{background-color:#f8fafc!important;z-index:3}.col-action-td,.col-action-th{box-shadow:-4px 0 6px -2px #00000014}.col-action-td{background-color:#fff}.ta-trendline-table tbody tr:hover .col-action-td{background-color:#f1f8ff}.ta-trendline-table tbody tr.row-buy-signal .col-action-td{background-color:#f0fdf4}.ta-trendline-table tbody tr.row-sell-signal .col-action-td{background-color:#fef2f2}.ta-trendline-table tbody tr.row-buy-signal:hover .col-action-td{background-color:#dcfce7!important}.ta-trendline-table tbody tr.row-sell-signal:hover .col-action-td{background-color:#fee2e2!important}.btn-chart-view{align-items:center;background-color:initial;border:1px solid #003b7a;border:1px solid var(--dnse-primary,#003b7a);border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:5px;padding:5px 12px;transition:all .2s;white-space:nowrap}.btn-chart-view:hover{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff}.screener-pagination-bar{align-items:center;background-color:#fafafa;border-top:1px solid #e0e0e0;border-top:1px solid var(--dnse-gray-200,#e0e0e0);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 18px}.pagination-info{align-items:center;display:flex;gap:10px}.pagination-label{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.82rem}.pagination-size-select{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:4px;font-size:.82rem;height:30px;outline:none;padding:0 8px}.pagination-summary{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.82rem}.page-controls{align-items:center;display:flex;gap:4px}.page-nav-btn,.page-num-btn{align-items:center;background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:4px;color:#424242;color:var(--dnse-gray-700,#424242);cursor:pointer;display:flex;font-size:.82rem;font-weight:500;height:28px;justify-content:center;min-width:28px;padding:0 6px;transition:all .15s}.page-nav-btn:hover:not(:disabled),.page-num-btn:hover{border-color:#06c;border-color:var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c)}.page-num-btn.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff;font-weight:700}.page-nav-btn:disabled{cursor:not-allowed;opacity:.4}.page-ellipsis{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd);padding:0 4px}.table-empty-state,.table-loading-state{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;flex-direction:column;gap:12px;justify-content:center;padding:50px 20px;text-align:center}.table-empty-state h4{color:#333;color:var(--dnse-gray-800,#333);font-size:1.05rem;margin:0}.table-empty-state p{color:#9e9e9e;color:var(--dnse-gray-500,#9e9e9e);font-size:.85rem;margin:0}@media (max-width:1024px){.screener-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.screener-kpi-grid{grid-template-columns:1fr}.screener-filter-bar{align-items:stretch;flex-direction:column}.btn-group-pill{flex-wrap:wrap}.btn-scan,.filter-actions{width:100%}.btn-scan{justify-content:center}}.signal-date-cell-wrap{align-items:center;display:flex;flex-direction:column;gap:3px;justify-content:center}.bars-recency-pill{align-items:center;border-radius:4px;display:inline-flex;font-size:.7rem;font-weight:600;gap:3px;line-height:1.3;padding:1px 6px}.bars-recency-pill.pill-fresh{background-color:#00c8531f;border:1px solid #00c8534d;color:#008738}.bars-recency-pill.pill-recent{background-color:#0066cc1a;border:1px solid #0066cc40;color:#06c;color:var(--dnse-accent,#06c)}.bars-recency-pill.pill-old{background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-300,#e0e0e0);color:#757575;color:var(--dnse-gray-600,#757575)}.vsa-screener-tab{display:flex;flex-direction:column;gap:16px;width:100%}.vsa-toolbar-card{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:14px;padding:16px 20px}.vsa-toolbar-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.toolbar-title-wrap{align-items:center;display:flex;gap:10px}.vsa-brand-icon{color:#00c853;color:var(--dnse-success,#00c853)}.vsa-toolbar-header h3{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1.15rem;font-weight:700;margin:0}.vsa-subtitle{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.85rem;margin:2px 0 0}.refresh-btn{font-size:.85rem;font-weight:600;gap:6px;height:38px;padding:0 16px}.vsa-controls-grid{grid-gap:12px;align-items:flex-end;display:grid;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr))}.control-group{display:flex;flex-direction:column;gap:6px}.control-group label{align-items:center;color:#424242;color:var(--dnse-gray-700,#424242);display:flex;font-size:.8rem;font-weight:600;gap:4px}.control-input,.control-select{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);border-radius:6px;color:#212121;color:var(--dnse-gray-900,#212121);font-size:.85rem;height:38px;outline:none;padding:0 12px;transition:border-color .2s,box-shadow .2s;width:100%}.control-input:focus,.control-select:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 3px #0066cc26}.basket-button-group{align-items:center;background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border-radius:6px;display:flex;gap:4px;height:38px;padding:3px}.basket-btn{background:#0000;border:none;border-radius:4px;color:#616161;color:var(--dnse-gray-700,#616161);cursor:pointer;flex:1 1;font-size:.8rem;font-weight:600;height:32px;padding:0 6px;text-align:center;transition:all .2s}.basket-btn:hover{background-color:#003b7a14;color:#003b7a;color:var(--dnse-primary,#003b7a)}.basket-btn.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);box-shadow:0 1px 2px #0000001a;color:#fff}.resolution-button-group{align-items:center;background-color:#f5f5f5;background-color:var(--dnse-gray-100,#f5f5f5);border-radius:6px;display:flex;gap:4px;height:38px;padding:3px}.resolution-btn{background:#0000;border:none;border-radius:4px;color:#616161;color:var(--dnse-gray-700,#616161);cursor:pointer;flex:1 1;font-size:.8rem;font-weight:600;height:32px;padding:0 6px;text-align:center;transition:all .2s}.resolution-btn:hover{background-color:#003b7a14;color:#003b7a;color:var(--dnse-primary,#003b7a)}.resolution-btn.active{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);box-shadow:0 1px 2px #0000001a;color:#fff}.vsa-date-badge{background-color:#f8fafc;background-color:var(--dnse-gray-100,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:4px;color:#1e293b;color:var(--dnse-gray-800,#1e293b);display:inline-block;font-size:.8rem;font-weight:600;padding:3px 8px}.vsa-kpi-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(12,minmax(0,1fr))}.vsa-kpi-card{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 2px #0000000a;gap:14px;padding:14px 16px}.kpi-icon-wrap,.vsa-kpi-card{align-items:center;display:flex}.kpi-icon-wrap{border-radius:8px;flex-shrink:0;height:44px;justify-content:center;width:44px}.kpi-icon-primary{background-color:#003b7a1a;color:#003b7a;color:var(--dnse-primary,#003b7a)}.kpi-icon-success{background-color:#00c8531f;color:#00c853;color:var(--dnse-success,#00c853)}.kpi-icon-danger{background-color:#ff3d001f;color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.kpi-icon-accent{background-color:#0066cc1a;color:#06c;color:var(--dnse-accent,#06c)}.kpi-content{display:flex;flex-direction:column}.kpi-value{color:#212121;color:var(--dnse-gray-900,#212121);font-size:1.35rem;font-weight:700;line-height:1.2}.kpi-label{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.8rem;margin-top:2px}.vsa-table-card{background-color:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000d;overflow:hidden}.table-responsive{overflow-x:auto;width:100%}.vsa-table{border-collapse:collapse;font-size:.85rem;text-align:left;width:100%}.vsa-table thead{background-color:#fafafa;background-color:var(--dnse-gray-50,#fafafa);border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-gray-200,#e0e0e0)}.vsa-table th{color:#424242;color:var(--dnse-gray-700,#424242);font-weight:600;padding:12px 14px;white-space:nowrap}.vsa-table td{border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-gray-200,#eee);padding:12px 14px;vertical-align:middle}.vsa-table tbody tr:hover{background-color:#0066cc08}.sortable-th:hover{background-color:#f0f0f0;background-color:var(--dnse-gray-100,#f0f0f0)}.th-content{gap:4px}.symbol-cell-wrap{display:flex;flex-direction:column}.symbol-badge-btn{background:none;border:none;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;font-size:.95rem;font-weight:700;padding:0;text-align:left;text-decoration:underline}.symbol-badge-btn:hover{color:#06c;color:var(--dnse-accent,#06c)}.company-name-sub{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.75rem;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exchange-tag{background-color:#f0f0f0;background-color:var(--dnse-gray-100,#f0f0f0);color:#616161;color:var(--dnse-gray-700,#616161);font-size:.75rem}.price-val{color:#212121;color:var(--dnse-gray-900,#212121)}.change-pct{align-items:center;display:inline-flex;font-weight:600;gap:2px}.price-up{color:#00c853;color:var(--dnse-success,#00c853)}.price-down{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.vsa-signal-wrap{display:flex;flex-direction:column}.signal-code-label{font-size:.85rem;font-weight:700}.color-sos{color:#00c853;color:var(--dnse-success,#00c853)}.color-sow{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.signal-name-label{color:#424242;color:var(--dnse-gray-700,#424242);font-size:.75rem}.vsa-category-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:700;padding:3px 8px}.badge-sos{background-color:#00c8531f;border:1px solid #00c8534d;color:#007e33}.badge-sow{background-color:#ff3d001f;border:1px solid #ff3d004d;color:#d32f2f}.vol-ratio-val{color:#212121;color:var(--dnse-gray-900,#212121);font-weight:600}.confirm-tag{align-items:center;border-radius:4px;display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;padding:2px 8px}.confirm-tag.confirmed{background-color:#e8f5e9;color:#2e7d32}.confirm-tag.pending{background-color:#fff3e0;color:#e65100}.forecast-text{color:#424242;color:var(--dnse-gray-700,#424242);display:block;font-size:.8rem;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-chart-btn{align-items:center;background-color:#fff;border:1px solid #06c;border:1px solid var(--dnse-accent,#06c);border-radius:4px;color:#06c;color:var(--dnse-accent,#06c);cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:4px;padding:6px 12px;transition:all .2s}.view-chart-btn:hover{background-color:#06c;background-color:var(--dnse-accent,#06c);color:#fff}.table-empty-cell{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.9rem;padding:40px!important;text-align:center}.table-loading-wrap{color:#003b7a;color:var(--dnse-primary,#003b7a);font-weight:600;justify-content:center}.table-loading-wrap,.vsa-pagination-bar{align-items:center;display:flex;gap:10px}.vsa-pagination-bar{background-color:#fafafa;background-color:var(--dnse-gray-50,#fafafa);border-top:1px solid #e0e0e0;border-top:1px solid var(--dnse-gray-200,#e0e0e0);flex-wrap:wrap;justify-content:space-between;padding:12px 16px}.pagination-info{color:#424242;color:var(--dnse-gray-700,#424242);font-size:.85rem}.pagination-controls{gap:8px}.page-size-select{border-radius:4px;color:#374151;color:var(--dnse-gray-800,#374151);outline:none;padding:0 8px}.page-btn,.page-size-select{background-color:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-gray-300,#d1d5db);font-size:.8rem;height:32px}.page-btn{color:#374151;color:var(--dnse-gray-700,#374151);font-weight:500;padding:0 12px;transition:all .2s}.page-btn:hover:not(:disabled){background-color:#f3f4f6;background-color:var(--dnse-gray-100,#f3f4f6);border-color:#9ca3af;border-color:var(--dnse-gray-400,#9ca3af)}.page-btn:disabled{opacity:.5}.page-current{color:#374151;color:var(--dnse-gray-700,#374151);font-size:.85rem;font-weight:600}@media (max-width:1200px){.vsa-controls-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.control-group[style*="grid-column: span 2"],.control-group[style*="grid-column: span 3"]{grid-column:span 3!important}.vsa-kpi-card{grid-column:span 6!important}}@media (max-width:768px){.vsa-controls-grid{grid-template-columns:1fr}.control-group{grid-column:span 1!important}.vsa-kpi-card{grid-column:span 12!important}.vsa-pagination-bar{align-items:stretch;flex-direction:column}.pagination-controls{justify-content:center}}.exchange-area-widget{margin-bottom:20px}.exchange-card{background:#fff;background:var(--dnse-bg-card,#fff);border:1px solid #e0e0e0;border:1px solid var(--dnse-border-color,#e0e0e0);border-radius:8px;cursor:pointer;padding:14px;transition:all .2s ease-in-out}.exchange-card:hover{border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);box-shadow:0 4px 12px #003b7a1f;transform:translateY(-2px)}.exchange-card.selected{background:#003b7a08;border:2px solid #003b7a;border:2px solid var(--dnse-primary,#003b7a)}.exchange-card-header{align-items:center;border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-gray-200,#eee);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.exchange-title-box{align-items:center;display:flex;gap:6px}.exchange-icon{color:#003b7a;color:var(--dnse-primary,#003b7a)}.exchange-title{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:.95rem;font-weight:700}.exchange-card-body{display:flex;flex-direction:column;gap:10px}.exchange-pe-row{align-items:center;display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:8px}.pe-label{color:#757575;color:var(--dnse-gray-600,#757575);font-weight:500}.pe-val{color:#212121;color:var(--dnse-gray-900,#212121)}.pe-highlight{background:#ffb30033;border-radius:4px;color:#b78103;padding:2px 8px}.exchange-stats-grid{background:#fafafa;background:var(--dnse-gray-50,#fafafa);border-radius:6px;display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding:8px 10px}.cash-stat{align-items:center;display:flex;font-size:.78rem;justify-content:space-between}.stat-label{color:#757575;color:var(--dnse-gray-600,#757575)}.stat-val{align-items:center;display:flex;font-weight:600;gap:4px}.exchange-profit-bar-container{margin-bottom:10px}.profit-bar-labels{align-items:center;display:flex;font-size:.78rem;font-weight:500;justify-content:space-between;margin-bottom:5px}.profit-loss-separator{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd);font-weight:700;margin:0 6px}.profit-count{color:#00c853;color:var(--dnse-success,#00c853)}.loss-count,.profit-count{align-items:center;display:inline-flex;gap:3px}.loss-count{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.profit-bar-track{background:#eee;background:var(--dnse-gray-200,#eee);border-radius:3px;display:flex;height:6px;overflow:hidden;width:100%}.profit-bar-fill{background:#00c853;background:var(--dnse-success,#00c853)}.loss-bar-fill,.profit-bar-fill{height:100%;transition:width .3s ease}.loss-bar-fill{background:#ff3d00;background:var(--dnse-danger,#ff3d00)}.exchange-ranks{border-top:1px dashed #eee;border-top:1px dashed var(--dnse-gray-200,#eee);display:flex;flex-direction:column;font-size:.72rem;gap:4px;padding-top:8px}.rank-row{align-items:center;display:flex;gap:6px}.rank-label{color:#757575;color:var(--dnse-gray-600,#757575);font-weight:600;min-width:50px}.rank-stocks{color:#212121;color:var(--dnse-gray-900,#212121);font-weight:500}.exchange-badge{border-radius:12px;font-size:.75rem;font-weight:600;padding:2px 8px}.badge-all{background:#003b7a1a;color:#003b7a;color:var(--dnse-primary,#003b7a)}.badge-exc{background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5);color:#616161;color:var(--dnse-gray-700,#616161)}.metric-row{display:flex;gap:8px;justify-content:space-between}.metric-item{display:flex;flex-direction:column}.metric-label{color:#757575;color:var(--dnse-gray-600,#757575);font-size:.75rem}.metric-val{color:#212121;color:var(--dnse-gray-900,#212121);font-size:.95rem;font-weight:700}.highlight-yellow{background:#ffb30033;border-radius:4px;color:#b78103;padding:1px 6px}.cash-flow-box{background:#fafafa;background:var(--dnse-gray-50,#fafafa);border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:8px 10px}.cash-item{align-items:center;display:flex;font-size:.8rem;justify-content:space-between}.cash-label{color:#757575;color:var(--dnse-gray-600,#757575)}.cash-val{align-items:center;display:flex;font-weight:600;gap:4px}.dnse-text-success{color:#00c853;color:var(--dnse-success,#00c853)}.dnse-text-danger{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.top-stocks-preview{margin-top:4px}.top-label{color:#757575;color:var(--dnse-gray-600,#757575);display:block;font-size:.75rem;font-weight:600;margin-bottom:4px}.top-symbols-list{display:flex;flex-wrap:wrap;gap:4px}.stock-tag{border-radius:4px;font-size:.72rem;font-weight:600;padding:2px 6px}.min-tag{background:#00c8531a;border:1px solid #00c85340;color:#00c853;color:var(--dnse-success,#00c853)}.text-danger{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.text-muted,.text-neutral{color:#757575;color:var(--dnse-gray-600,#757575)}.text-muted{font-size:.75rem}.sector-area-widget{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 2px 6px #0000000a;margin-bottom:20px;padding:16px}.sector-widget-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:14px}.header-title-group{align-items:center;display:flex;gap:10px}.header-icon-box{align-items:center;background-color:#003b7a14;border-radius:8px;display:flex;height:36px;justify-content:center;width:36px}.sector-widget-title{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:16px;font-weight:700;margin:0}.sector-widget-subtitle{color:#757575;color:var(--dnse-gray-600,#757575);font-size:12px}.header-actions{gap:10px}.sector-search-box{align-items:center;display:flex;position:relative}.sector-search-box .search-icon{color:#757575;color:var(--dnse-gray-600,#757575);left:10px;pointer-events:none;position:absolute}.sector-search-input{border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:6px;font-size:13px;height:32px;outline:none;padding:4px 10px 4px 30px;transition:border-color .2s;width:180px}.sector-search-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.clear-sector-btn{align-items:center;background:#0000;border:1px solid #003b7a;border:1px solid var(--dnse-primary,#003b7a);border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;height:32px;padding:0 12px;transition:all .2s}.clear-sector-btn:hover{background:#003b7a;background:var(--dnse-primary,#003b7a);color:#fff}.sector-table-container{border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:6px;max-height:400px;overflow:auto;position:relative}.sector-table-container .dnse-table,table.sector-table{border-collapse:initial;border-radius:0!important;border-spacing:0;box-shadow:none!important;font-size:12px;overflow:visible!important;width:100%}.sector-table th,.sector-table thead{position:sticky;top:0;z-index:20}.sector-table th{background-color:#f8f9fa;background-color:var(--dnse-gray-100,#f8f9fa);border-bottom:2px solid #cbd5e1;border-bottom:2px solid var(--dnse-gray-300,#cbd5e1);box-shadow:0 2px 4px #0000000d;color:#333;color:var(--dnse-gray-800,#333);font-weight:600;padding:10px 12px;white-space:nowrap}.sortable-th{transition:background-color .15s}.sortable-th:hover{background-color:#eee;background-color:var(--dnse-gray-200,#eee)}.sortable-th .sort-icon-active{stroke-width:2.5;color:#06c;color:var(--dnse-accent,#06c)}.sortable-th .sort-icon-idle{color:#b0b0b0;color:var(--dnse-gray-400,#b0b0b0)}.sector-table td{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--dnse-gray-200,#f0f0f0);padding:9px 12px;white-space:nowrap}.sector-row{cursor:pointer;transition:background-color .15s ease}.sector-row:hover{background-color:#0066cc0a}.sector-row.row-selected{background-color:#0066cc1a!important;font-weight:600}.sector-name-cell{align-items:center;display:flex;gap:8px}.sector-name-text{color:#212121;color:var(--dnse-gray-900,#212121);font-weight:600}.selected-indicator-badge{background-color:#06c;background-color:var(--dnse-accent,#06c);border-radius:10px;color:#fff;font-size:10px;font-weight:600;padding:2px 6px}.pe-sector-cell{font-weight:700}.pe-highlight-val{background:#fef3c7;border-radius:4px;color:#d97706;padding:2px 6px}.pe-stock-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.pe-stock-tag{align-items:baseline;background:#f1f3f5;background:var(--dnse-gray-100,#f1f3f5);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:4px;display:inline-flex;font-size:11px;gap:3px;padding:2px 5px}.pe-stock-tag strong{color:#003b7a;color:var(--dnse-primary,#003b7a)}.pe-stock-tag small{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:10px}.loss-ratio-badge{border-radius:12px;font-size:11px;font-weight:600;padding:2px 8px}.loss-ratio-badge.has-loss{background-color:#fee2e2;color:#b91c1c}.loss-ratio-badge.no-loss{background-color:#dcfce7;color:#15803d}.text-positive{color:#00c853;color:var(--dnse-success,#00c853)}.text-negative{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.empty-val{color:#94a3b8;color:var(--dnse-gray-600,#94a3b8)}.sector-empty-state,.sector-loading-state{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;flex-direction:column;font-size:13px;gap:8px;justify-content:center;padding:30px}.pe-trend-line-chart-widget{background:#fff;background:var(--dnse-bg-card,#fff);border:1px solid #e0e0e0;border:1px solid var(--dnse-border-color,#e0e0e0);border-radius:8px;margin-bottom:20px;padding:16px}.chart-header-toolbar{border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-gray-200,#eee);justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.chart-header-toolbar,.chart-title-area{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.chart-main-title{align-items:center;color:#002952;color:var(--dnse-primary-dark,#002952);display:flex;font-size:1rem;font-weight:700;gap:8px}.chart-icon{color:#003b7a;color:var(--dnse-primary,#003b7a)}.chart-current-badges{align-items:center;display:flex;gap:8px}.current-badge{border-radius:4px;font-size:.75rem;padding:3px 8px}.badge-pos{background:#00c8531f;border:1px solid #00c85340;color:#00c853;color:var(--dnse-success,#00c853)}.badge-neg{background:#ff3d001f;border:1px solid #ff3d0040;color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.cache-badge{align-items:center;background:#0066cc1a;border-radius:12px;color:#06c;color:var(--dnse-accent,#06c);display:flex;font-size:.72rem;font-weight:600;gap:4px;padding:2px 8px}.chart-controls-area{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.scope-select-box{align-items:center;background:#fafafa;background:var(--dnse-gray-50,#fafafa);border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-300,#e0e0e0);border-radius:6px;display:flex;gap:6px;padding:2px 8px}.control-icon{color:#757575;color:var(--dnse-gray-600,#757575)}.dnse-form-select{background:#0000;border:none;color:#212121;color:var(--dnse-gray-900,#212121);cursor:pointer;font-size:.85rem;outline:none;padding:4px 6px}.timeframe-chips-group{display:flex;gap:4px}.tf-btn{border-radius:4px;font-size:.78rem;min-width:40px;padding:4px 10px}.refresh-btn{align-items:center;display:flex;justify-content:center;padding:6px}.chart-body{min-height:380px;position:relative}.chart-empty-state,.chart-loading-state{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;flex-direction:column;font-size:.9rem;gap:12px;height:380px;justify-content:center}.spin{animation:spin 1s linear infinite}.company-statistic-table-container{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;box-shadow:0 2px 8px #0000000a;margin-bottom:24px;padding:16px}.table-toolbar{gap:12px;justify-content:space-between;margin-bottom:14px}.table-toolbar,.toolbar-left{align-items:center;display:flex;flex-wrap:wrap}.toolbar-left{gap:10px}.search-box{align-items:center;display:flex;position:relative}.search-box .search-icon{color:#757575;color:var(--dnse-gray-600,#757575);left:10px;pointer-events:none;position:absolute}.stock-search-input{border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:6px;font-size:13px;height:34px;outline:none;padding:4px 10px 4px 32px;text-transform:uppercase;transition:border-color .2s;width:170px}.stock-search-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.filter-chip{align-items:center;background:#f8f9fa;background:var(--dnse-gray-100,#f8f9fa);border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:6px;color:#333;color:var(--dnse-gray-800,#333);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;height:34px;padding:0 12px;transition:all .2s}.filter-chip:hover{background:#e9ecef;background:var(--dnse-gray-200,#e9ecef)}.filter-chip.chip-active{background:#0066cc1a;border-color:#06c;border-color:var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c)}.filter-chip.diamond-active{background:#9333ea1f;border-color:#9333ea;color:#7e22ce}.toolbar-right{align-items:center;display:flex;gap:12px}.record-counter{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:13px}.export-btn,.record-counter strong{color:#003b7a;color:var(--dnse-primary,#003b7a)}.export-btn{align-items:center;background:#fff;border:1px solid #003b7a;border:1px solid var(--dnse-primary,#003b7a);border-radius:6px;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;height:34px;padding:0 14px;transition:all .2s}.export-btn:hover{background:#003b7a;background:var(--dnse-primary,#003b7a);color:#fff}.table-responsive-wrapper{border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:6px;max-height:580px;overflow:auto;position:relative}.company-statistic-table-container .dnse-table,table.company-statistic-grid{border-collapse:initial;border-radius:0!important;border-spacing:0;box-shadow:none!important;font-size:12px;overflow:visible!important;width:100%}.company-statistic-grid thead{position:sticky;top:0;z-index:20}.company-statistic-grid thead th{background-color:#f8f9fa;background-color:var(--dnse-gray-100,#f8f9fa);border-bottom:2px solid #cbd5e1;border-bottom:2px solid var(--dnse-gray-300,#cbd5e1);box-shadow:0 2px 4px #0000000d;color:#1e293b;color:var(--dnse-gray-800,#1e293b);font-weight:600;padding:10px 12px;position:sticky;top:0;white-space:nowrap;z-index:20}.sticky-col-header{background-color:#f1f5f9!important;background-color:var(--dnse-gray-100,#f1f5f9)!important;box-shadow:2px 2px 4px #00000014;left:0;position:sticky;top:0;z-index:30!important}.sticky-col-cell{background-color:#fff;box-shadow:2px 0 4px #0000000d;left:0;position:sticky;z-index:5}.company-row:hover .sticky-col-cell{background-color:#f8fafc}.symbol-cell-content{align-items:center;display:flex;gap:6px}.symbol-link{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-flex;font-size:13px;gap:3px;text-decoration:none}.symbol-link:hover{color:#06c;color:var(--dnse-accent,#06c);text-decoration:underline}.diamond-badge{background:#f3e8ff;border:1px solid #d8b4fe;border-radius:4px;color:#7e22ce;font-size:10px;font-weight:700;padding:1px 4px;white-space:nowrap}.highlight-header{background-color:#fef08a!important;color:#854d0e!important}.highlight-col{background-color:#fefce8!important;color:#a16207}.company-statistic-grid td{border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--dnse-gray-200,#f1f5f9);padding:8px 12px;white-space:nowrap}.company-row{transition:background-color .12s}.company-row:hover{background-color:#f8fafc}.row-diamond{background-color:#f3e8ff40}.quarter-cell{color:#64748b;color:var(--dnse-gray-600,#64748b);font-family:monospace}.sector-cell{color:#334155;color:var(--dnse-gray-700,#334155);max-width:160px;overflow:hidden;text-overflow:ellipsis}.loss-badge{background-color:#fee2e2;border:1px solid #fca5a5;border-radius:4px;color:#dc2626;display:inline-block;font-size:11px;font-weight:800;letter-spacing:.5px;padding:2px 6px}.pm-pill{border-radius:4px;display:inline-block;font-weight:600;padding:1px 6px}.pm-diamond{background-color:#f3e8ff;border:1px solid #e9d5ff;color:#7e22ce}.pe-val,.pm-diamond{font-weight:700}.text-positive{color:#16a34a;color:var(--dnse-success,#16a34a)}.text-negative{color:#dc2626;color:var(--dnse-danger,#dc2626)}.table-state-cell{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:14px;padding:40px!important}.table-pagination-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--dnse-gray-200,#e2e8f0);flex-wrap:wrap;gap:12px;margin-top:14px;padding-top:10px}.page-size-selector{color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:12px;gap:8px}.page-select{background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:4px;font-size:12px;height:30px;outline:none;padding:2px 8px}.page-info{margin-left:8px}.page-btn{align-items:center;background:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:4px;color:#1e293b;color:var(--dnse-gray-800,#1e293b);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;height:30px;padding:0 10px;transition:all .15s}.page-btn:hover:not(:disabled){background:#f1f5f9;background:var(--dnse-gray-100,#f1f5f9);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.page-btn:disabled{cursor:not-allowed;opacity:.45}.sortable-th{cursor:pointer;transition:background-color .15s,color .15s;-webkit-user-select:none;user-select:none}.sortable-th:hover{background-color:#e2e8f0!important;background-color:var(--dnse-gray-200,#e2e8f0)!important}.sortable-th.sorted-th{background-color:#eaf2fb!important;color:#06c!important;color:var(--dnse-accent,#06c)!important}.sortable-th span{margin-right:4px}.sort-icon-active{stroke-width:2.5;color:#06c;color:var(--dnse-accent,#06c)}.sort-icon-idle{color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);opacity:.6}.col-visibility-wrapper{display:inline-block;position:relative}.col-visibility-btn{align-items:center;background:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-300,#cbd5e1);border-radius:6px;color:#334155;color:var(--dnse-gray-700,#334155);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;height:34px;padding:0 12px;transition:all .2s}.col-visibility-btn.active,.col-visibility-btn:hover{background:#003b7a0a;border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.col-visibility-popover{animation:popoverFadeIn .18s ease-out;background:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-300,#cbd5e1);border-radius:8px;box-shadow:0 12px 28px -4px #0000002e,0 8px 12px -6px #0000001a;display:flex;flex-direction:column;max-width:92vw;position:absolute;right:0;top:calc(100% + 8px);width:460px;z-index:1050}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.col-visibility-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;justify-content:space-between;padding:12px 16px}.popover-title{align-items:center;color:#0f172a;color:var(--dnse-gray-900,#0f172a);display:flex;font-size:14px;gap:8px}.popover-title strong{font-weight:700}.col-count-badge{background:#003b7a14;border-radius:12px;color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:11px;font-weight:700;padding:2px 8px}.popover-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#64748b;color:var(--dnse-gray-500,#64748b);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .15s}.popover-close-btn:hover{background:#f1f5f9;background:var(--dnse-gray-100,#f1f5f9);color:#1e293b;color:var(--dnse-gray-800,#1e293b)}.col-visibility-presets{align-items:center;background:#f8fafc;background:var(--dnse-gray-50,#f8fafc);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px}.preset-label{color:#64748b;color:var(--dnse-gray-500,#64748b);font-size:11px;font-weight:700;letter-spacing:.5px;margin-right:2px;text-transform:uppercase}.preset-btn{align-items:center;background:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-300,#cbd5e1);border-radius:14px;color:#334155;color:var(--dnse-gray-700,#334155);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:3px 10px;transition:all .15s}.preset-btn:hover{background:#003b7a0a;border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.preset-btn.reset-btn{border-style:dashed;color:#475569;color:var(--dnse-gray-600,#475569)}.preset-btn.reset-btn:hover{border-color:#06c;border-color:var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c)}.col-visibility-body{gap:14px;max-height:380px;overflow-y:auto;padding:12px 16px}.col-group-section,.col-visibility-body{display:flex;flex-direction:column}.col-group-header{align-items:center;border-bottom:1px dashed #e2e8f0;border-bottom:1px dashed var(--dnse-gray-200,#e2e8f0);display:flex;justify-content:space-between;margin-bottom:6px;padding-bottom:4px}.col-group-title{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.group-toggle-link{background:none;border:none;color:#06c;color:var(--dnse-accent,#06c);cursor:pointer;font-size:11px;padding:2px 4px;text-decoration:underline;transition:color .15s}.group-toggle-link:hover{color:#002952;color:var(--dnse-primary-dark,#002952)}.col-checkbox-grid{grid-gap:6px 12px;display:grid;gap:6px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.col-checkbox-label{align-items:center;border-radius:4px;color:#334155;color:var(--dnse-gray-700,#334155);cursor:pointer;display:flex;font-size:12px;gap:8px;padding:4px 6px;transition:background-color .12s;-webkit-user-select:none;user-select:none}.col-checkbox-label:hover:not(.locked){background:#f1f5f9;background:var(--dnse-gray-100,#f1f5f9)}.col-checkbox-label.locked{background:#003b7a0a;cursor:default;opacity:.9}.col-checkbox-label input[type=checkbox]{accent-color:#003b7a;accent-color:var(--dnse-primary,#003b7a);cursor:pointer;height:15px;margin:0;width:15px}.col-checkbox-label.locked input[type=checkbox]{cursor:not-allowed}.locked-tag{background:#e2e8f0;background:var(--dnse-gray-200,#e2e8f0);border-radius:3px;color:#64748b;color:var(--dnse-gray-600,#64748b);font-size:10px;font-weight:600;margin-left:auto;padding:1px 5px}.col-visibility-footer{align-items:center;background:#f8fafc;background:var(--dnse-gray-50,#f8fafc);border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #e2e8f0;border-top:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;justify-content:space-between;padding:10px 16px}.storage-hint{align-items:center;color:#00c853;color:var(--dnse-success,#00c853);display:flex;font-size:11px;font-weight:600;gap:4px}.finish-btn{background:#003b7a;background:var(--dnse-primary,#003b7a);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px;transition:background .15s}.finish-btn:hover{background:#002952;background:var(--dnse-primary-dark,#002952)}.company-statistic-screener-tab{animation:fadeIn .25s ease-in-out;width:100%}.screener-header-banner{align-items:center;background:linear-gradient(135deg,#002952,#003b7a 50%,#0052a3);border-radius:10px;box-shadow:0 4px 12px #003b7a26;color:#fff;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding:20px 24px}.banner-info{max-width:680px}.banner-title{align-items:center;display:flex;font-size:20px;font-weight:700;gap:10px;margin:0 0 6px}.banner-icon{color:#38bdf8}.banner-desc{color:#e2e8f0;font-size:13px;line-height:1.5;margin:0}.banner-stats-pill{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #fff3;border-radius:8px;display:flex;padding:8px 16px}.stat-pill-item{align-items:center;display:flex;flex-direction:column;padding:0 12px}.pill-label{color:#cbd5e1;font-size:11px;margin-bottom:2px}.pill-val{font-size:16px;font-weight:700}.stat-pill-divider{background:#fff3;height:24px;width:1px}.screener-toolbar-grid{align-items:flex-end;background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-gray-200,#e0e0e0);border-radius:8px;margin-bottom:16px;padding:16px}.control-item{display:flex;flex-direction:column}.control-label{color:#333;color:var(--dnse-gray-800,#333);font-size:12px;font-weight:600;margin-bottom:6px}.date-input-wrapper,.select-wrapper{position:relative;width:100%}.control-select{background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:6px;font-size:13px;height:38px;outline:none;padding:0 12px;transition:border-color .2s;width:100%}.control-select:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.date-input-wrapper{align-items:center;display:flex}.date-input-wrapper .date-icon{color:#64748b;color:var(--dnse-gray-600,#64748b);left:10px;pointer-events:none;position:absolute}.control-date-input{border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:6px;font-size:13px;height:38px;outline:none;padding:0 12px 0 32px;transition:border-color .2s;width:100%}.control-date-input:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.reload-btn{align-items:center;background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;height:38px;justify-content:center;transition:background-color .2s;width:100%}.reload-btn:hover:not(:disabled){background-color:#0052a3;background-color:var(--dnse-primary-light,#0052a3)}.reload-btn:disabled{cursor:not-allowed;opacity:.65}.dnse-alert{align-items:center;border-radius:8px;display:flex;font-size:13px;gap:10px;margin-bottom:16px;padding:12px 16px}.dnse-alert-danger{background-color:#fee2e2;border:1px solid #f87171;color:#b91c1c}#cf-chart-header,.chart-header{grid-gap:8px;grid-gap:var(--dnse-spacing-sm,8px);background:#fff;background:var(--dnse-surface,#fff);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-border-light,#e2e8f0);box-sizing:border-box;display:grid!important;gap:8px;gap:var(--dnse-spacing-sm,8px);grid-template-columns:repeat(12,minmax(0,1fr));max-width:100%!important;padding:6px 12px;width:100%!important}.chart-header-error,.chart-header-loading{align-items:center;color:#64748b;color:var(--dnse-text-secondary,#64748b);display:flex;font-size:13px;gap:10px;justify-content:center;min-height:60px}.chart-header .box-chart-header{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0);border-radius:8px;border-radius:var(--dnse-radius-md,8px);box-shadow:0 1px 2px #0000000a;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:4px 8px;transition:all .15s ease;width:100%}.chart-header .box-chart-header:hover{border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3);box-shadow:0 2px 4px #00000014}.indices-table-block{overflow-x:auto}.index-table-mini{border-collapse:collapse;font-size:11px;width:100%}.index-table-mini thead th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#475569;color:var(--dnse-text-secondary,#475569);font-size:11px;font-weight:700;padding:2px 6px;white-space:nowrap}.index-table-mini tbody tr{border-bottom:1px solid #f1f5f9;transition:background .1s ease}.index-table-mini tbody tr:last-child{border-bottom:none}.index-table-mini tbody tr:hover{background:#f8fafc}.index-table-mini td{padding:2px 6px;white-space:nowrap}.td-symbol,.th-symbol{color:#002952;color:var(--dnse-primary-dark,#002952);font-weight:800;text-align:left}.td-price,.th-price{font-weight:700;text-align:right}.td-change,.th-change{font-weight:600;text-align:right}.td-gtgd,.th-gtgd{color:#334155;color:var(--dnse-text-primary,#334155);font-weight:500;text-align:right}.td-stats,.th-stats{text-align:center}.td-stats{align-items:center;display:flex;gap:6px;justify-content:center}@media (max-width:768px){.td-stats,.th-stats{display:none!important}}.mini-stat{font-size:10.5px;font-weight:700}.mini-stat.up{color:#00c853;color:var(--dnse-success,#00c853)}.mini-stat.flat{color:#f59e0b;color:var(--dnse-warning,#f59e0b)}.mini-stat.down{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.mini-list-card{width:100%}.mini-card-title{align-items:center;display:flex;font-size:11px;font-weight:700;margin-bottom:2px}.mini-card-title.green{color:#00c853;color:var(--dnse-success,#00c853)}.mini-card-title.orange{color:#fd7e14}.mini-card-list{display:flex;flex-direction:column;gap:2px;max-height:60px;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.mini-list-item{align-items:center;border-radius:3px;display:flex;font-size:10.5px;justify-content:space-between;padding:1px 3px}.mini-list-item:hover{background:#f1f5f9}.mini-item-symbol{color:#002952;color:var(--dnse-primary-dark,#002952);font-weight:700}.mini-item-price,.mini-item-vol{font-weight:600}.mini-item-vol{color:#64748b;color:var(--dnse-text-secondary,#64748b)}.sector-map-enhanced-wrapper{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000a;flex-direction:column;font-family:Arial,Helvetica,sans-serif;gap:12px;overflow:hidden;padding:12px}.enhanced-top-bar,.sector-map-enhanced-wrapper{box-sizing:border-box;display:flex;max-width:100%;width:100%}.enhanced-top-bar{align-items:center;border-bottom:1px solid #eee;flex-wrap:wrap;gap:8px;justify-content:space-between;padding-bottom:8px}.tab-buttons-group{display:flex;flex-wrap:wrap;gap:4px;width:100%}.tab-btn{background-color:#fff;border:1px solid #d1d5db;border-radius:4px;color:#424242;cursor:pointer;flex:1 1 auto;font-size:13px;font-weight:700;padding:6px 14px;text-align:center;transition:all .2s ease}.tab-btn.active{background-color:#ffc107;border-color:#ffc107;color:#000}.top-bar-controls-group{align-items:stretch;display:flex;flex-direction:column;gap:6px}.area-type-filter-select,.exchange-filter-select,.top-bar-controls-group{box-sizing:border-box;max-width:100%;width:100%}.area-type-filter-select .header-select,.exchange-filter-select .header-select{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;cursor:pointer;font-size:12px;max-width:100%;overflow:hidden;padding:6px 10px;text-overflow:ellipsis;white-space:nowrap;width:100%}.svg-treemap-container{background-color:#f5f5f5;border:1px solid #dcdcdc;border-radius:4px;box-sizing:border-box;max-width:100%!important;overflow:hidden;position:relative;width:100%!important}.stock-svg-rect{transition:filter .15s ease}.stock-svg-rect:hover{filter:brightness(1.15)}.enhanced-bottom-bar{align-items:center;border-top:1px solid #eee;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;max-width:100%;padding-top:8px;width:100%}.breadth-pills-group{display:flex;flex-wrap:wrap;gap:4px}.breadth-pill{align-items:center;border-radius:3px;color:#fff;display:inline-flex;font-size:12px;font-weight:400;gap:4px;padding:6px 12px}.breadth-pill.ceiling{background-color:#7c4dff}.breadth-pill.gain{background-color:#00c853}.breadth-pill.neutral{background-color:#ffb300}.breadth-pill.loss{background-color:#ff3d00}.breadth-pill.floor{background-color:#00b0ff}.bottom-right-controls{align-items:center;display:flex;gap:8px}.stock-search-input{border:1px solid #ccc;border-radius:4px;font-size:12px;padding:6px 10px;width:110px}.config-btn{background-color:#ffc107;border:none;border-radius:4px;color:#000;cursor:pointer;font-size:12px;font-weight:700;padding:6px 16px;transition:opacity .2s ease}.config-btn:hover{opacity:.9}.sector-config-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000073;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.sector-config-modal{animation:modalFadeIn .2s ease-out;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 24px #0000002e;max-width:480px;overflow:hidden;width:90%}.sector-config-modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:14px 20px}.sector-config-modal-header h3{color:#111;font-size:16px;font-weight:700;margin:0}.sector-config-close-btn{background:none;border:none;color:#757575;cursor:pointer;font-size:20px;line-height:1;padding:0 4px}.sector-config-close-btn:hover{color:#000}.sector-config-modal-body{display:flex;flex-direction:column;gap:16px;padding:20px}.config-form-group{display:flex;flex-direction:column;gap:6px}.config-form-group label{color:#333;font-size:13px;font-weight:700}.config-form-group select{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:13px;padding:8px 12px}.sector-config-modal-footer{background-color:#f8f9fa;border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:14px 20px}.config-modal-btn-save{background-color:#ffc107;border:none;border-radius:4px;color:#000}.config-modal-btn-cancel,.config-modal-btn-save{cursor:pointer;font-size:13px;font-weight:700;padding:8px 18px}.config-modal-btn-cancel{background-color:#fff;border:1px solid #d1d5db;border-radius:4px;color:#555}@media (max-width:768px){.enhanced-top-bar{gap:8px}.enhanced-bottom-bar,.enhanced-top-bar{align-items:stretch;flex-direction:column}.bottom-right-controls{justify-content:flex-end}}.market-overview-sidebar{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 6px #00000008;box-sizing:border-box;display:flex;flex-direction:column;font-family:Arial,Roboto,sans-serif;padding:16px;width:100%}.sidebar-index-group{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.index-row{align-items:center;display:flex;font-size:13px;justify-content:space-between}.index-name{color:#212121;font-weight:700}.index-metrics{align-items:center;display:flex;font-size:13px;font-weight:700;gap:8px}.index-metrics.positive{color:#00c853}.index-metrics.negative{color:#ff3d00}.index-change,.index-val,.stats-value{white-space:nowrap!important}.short-label-text{display:none}.full-label-text{display:inline}.sidebar-divider{background-color:#eee;height:1px;margin:8px 0 12px}.sidebar-stats-table{grid-gap:6px 16px;display:grid;gap:6px 16px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.stats-row{align-items:center;background-color:#f8fafc;border:1px solid #edf2f7;border-radius:4px;box-sizing:border-box;display:flex;font-size:12px;justify-content:space-between;padding:3px 6px;width:100%}.stats-label-container{align-items:center;cursor:help;display:inline-flex;gap:4px;position:relative}.tooltip-icon{color:#9e9e9e;font-size:11px;transition:color .15s ease}.stats-label-container:hover .tooltip-icon{color:#06c}.custom-tooltip-text{word-wrap:break-word;background-color:#212121;border-radius:6px;bottom:125%;box-shadow:0 4px 12px #00000040;color:#fff;font-size:11px;font-weight:400;left:0;line-height:1.4;opacity:0;padding:6px 10px;pointer-events:none;position:absolute;text-align:left;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;visibility:hidden;width:230px;z-index:100}.stats-label-container:hover .custom-tooltip-text{opacity:1;visibility:visible}.stats-label{color:#424242}.stats-label.bold-label{color:#212121;font-weight:700}.stats-value{color:#212121;font-size:12px}.stats-value.bold-value{font-weight:700}.sidebar-footnote{color:#9e9e9e;font-size:10px;font-style:italic;margin-top:14px}@media (max-width:991px){.market-overview-sidebar{min-width:100%;width:100%}}@media (max-width:480px){.sidebar-stats-table{gap:6px;grid-template-columns:1fr}.full-label-text{display:inline!important}.short-label-text{display:none!important}}.company-post-bubble-chart-card{background:#fff;background:var(--dnse-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0);border-radius:10px;border-radius:var(--dnse-radius-lg,10px);box-shadow:0 1px 3px #0000000d;box-shadow:var(--dnse-shadow-sm,0 1px 3px #0000000d);margin-bottom:16px;margin-bottom:var(--dnse-spacing-lg,16px);padding:14px;padding:var(--dnse-spacing-md,14px)}.bubble-chart-toolbar{border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--dnse-border-light,#f1f5f9);gap:10px;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.bubble-chart-title,.bubble-chart-toolbar{align-items:center;display:flex;flex-wrap:wrap}.bubble-chart-title{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:13.5px;font-weight:700;gap:8px}.bubble-title-icon{color:#003b7a;color:var(--dnse-primary,#003b7a)}.bubble-subtitle{color:#64748b;color:var(--dnse-text-secondary,#64748b);font-size:11.5px;font-weight:400;margin-left:4px}.bubble-chart-actions-group{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.bubble-exchange-filter-group{align-items:center;background:#f8fafc;background:var(--dnse-bg-secondary,#f8fafc);border:1px solid #cbd5e1;border:1px solid var(--dnse-border-light,#cbd5e1);border-radius:6px;display:inline-flex;gap:6px;padding:3px 8px}.bubble-filter-label{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:11.5px;font-weight:700}.bubble-exchange-select{background:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-border-light,#cbd5e1);border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;font-size:11.5px;font-weight:600;outline:none;padding:3px 8px;transition:all .15s ease}.bubble-exchange-select:focus,.bubble-exchange-select:hover{border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);box-shadow:0 0 0 2px #003b7a1a}.bubble-chart-nav-group{align-items:center;display:flex;gap:6px}.bubble-nav-btn{align-items:center;background:#f8fafc;background:var(--dnse-bg-secondary,#f8fafc);border:1px solid #cbd5e1;border:1px solid var(--dnse-border-light,#cbd5e1);border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;padding:4px 10px;transition:all .15s ease}.bubble-nav-btn:hover:not(:disabled){background:#003b7a;background:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff}.bubble-nav-btn:disabled{cursor:not-allowed;opacity:.45}.bubble-nav-indicator{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#002952;color:var(--dnse-primary-dark,#002952);display:inline-flex;font-size:11.5px;font-weight:700;padding:4px 10px;white-space:nowrap}.bubble-chart-container{min-height:380px;position:relative;width:100%}.bubble-chart-empty,.bubble-chart-loading{align-items:center;color:#64748b;color:var(--dnse-text-secondary,#64748b);display:flex;flex-direction:column;font-size:13px;gap:12px;justify-content:center;min-height:340px}.bubble-chart-legend-bar{align-items:center;border-top:1px dashed #e2e8f0;border-top:1px dashed var(--dnse-border-light,#e2e8f0);display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-top:10px;padding-top:10px}.legend-item{align-items:center;color:#1e293b;color:var(--dnse-text-primary,#1e293b);display:flex;font-size:12px;gap:6px}.legend-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.legend-dot.ceiling{background-color:#a855f7;box-shadow:0 0 4px #a855f766}.legend-dot.increase{background-color:#00c853;box-shadow:0 0 4px #00c85366}.legend-dot.flat{background-color:#f59e0b;box-shadow:0 0 4px #f59e0b66}.legend-dot.decrease{background-color:#ff3d00;box-shadow:0 0 4px #ff3d0066}.legend-dot.floor{background-color:#00b8d4;box-shadow:0 0 4px #00b8d466}.legend-text strong{font-weight:700}.company-tagged-news-stats-card{background:#fff;background:var(--dnse-bg-card,#fff);border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light,#e0e0e0);border-radius:12px;border-radius:var(--dnse-radius-lg,12px);box-shadow:0 4px 6px #0000000d;box-shadow:var(--dnse-shadow-md,0 4px 6px #0000000d);box-sizing:border-box;margin-bottom:24px;margin-top:20px;max-width:100%;overflow:hidden;padding:20px;padding:var(--dnse-spacing-lg,20px);transition:box-shadow .2s ease-in-out;width:100%}.company-tagged-news-stats-card:hover{box-shadow:0 6px 12px #00000014;box-shadow:var(--dnse-shadow-lg,0 6px 12px #00000014)}.stats-header-container{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--dnse-border-light,#f0f0f0);flex-wrap:wrap;justify-content:space-between;margin-bottom:18px;padding-bottom:14px}.stats-header-container,.stats-title-group{align-items:center;display:flex;gap:12px}.stats-icon-badge{align-items:center;background:linear-gradient(135deg,#003b7a,#0052a3);background:linear-gradient(135deg,var(--dnse-primary,#003b7a),var(--dnse-primary-light,#0052a3));border-radius:10px;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.stats-title-text h3{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:1.15rem;font-weight:700;margin:0}.stats-subtitle{color:#666;color:var(--dnse-text-secondary,#666);font-size:.85rem;margin:4px 0 0}.stats-timerange-tag{align-items:center;background:#003b7a14;border:1px solid #003b7a26;border-radius:20px;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-flex;font-size:.82rem;font-weight:600;gap:6px;padding:5px 12px}.stats-metrics-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:20px}.stats-metric-card{align-items:center;background:#f8fafd;background:var(--dnse-bg-secondary,#f8fafd);border:1px solid #e8edf5;border:1px solid var(--dnse-border-light,#e8edf5);border-radius:10px;display:flex;gap:14px;padding:14px 18px}.stats-metric-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.stats-metric-icon.gold{background:#ffb30026;color:#d97706}.stats-metric-icon.blue{background:#0066cc1f;color:#06c;color:var(--dnse-accent,#06c)}.stats-metric-icon.green{background:#00c8531f;color:#00c853;color:var(--dnse-success,#00c853)}.stats-metric-content{display:flex;flex-direction:column}.stats-metric-label{color:#666;color:var(--dnse-text-secondary,#666);font-size:.8rem;font-weight:500}.stats-metric-value{color:#212121;color:var(--dnse-text-primary,#212121);font-size:1.25rem;font-weight:700;margin-top:2px}.stats-table-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:14px}.stats-search-box{align-items:center;background:#fff;border:1px solid #ccc;border:1px solid var(--dnse-border,#ccc);border-radius:6px;box-shadow:0 1px 2px #00000008;display:flex;flex:1 1;gap:8px;padding:7px 12px}.stats-search-input{border:none;color:#333;color:var(--dnse-text-primary,#333);font-size:.85rem;outline:none;width:100%}.stats-toolbar-controls{align-items:center;box-sizing:border-box;display:flex;flex-direction:row!important;gap:8px;justify-content:space-between;width:100%}.stats-page-size-selector{align-items:center;display:flex;gap:6px}.stats-control-label{color:#666;color:var(--dnse-text-secondary,#666);font-size:.82rem;font-weight:500}.stats-page-size-select{background-color:#fff;border:1px solid #ccc;border:1px solid var(--dnse-border,#ccc);border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;font-size:.82rem;font-weight:600;outline:none;padding:6px 10px;transition:border-color .15s ease}.stats-page-size-select:focus{border-color:#003b7a;border-color:var(--dnse-primary,#003b7a)}.stats-count-badge{background:#f4f6fa;background:var(--dnse-bg-secondary,#f4f6fa);border-radius:6px;color:#666;color:var(--dnse-text-secondary,#666);font-size:.82rem;padding:5px 10px}.stats-count-badge,.stats-table-wrapper{border:1px solid #e5e9f0;border:1px solid var(--dnse-border-light,#e5e9f0)}.stats-table-wrapper{border-radius:8px;overflow-x:auto}.stats-custom-table{border-collapse:collapse;font-size:.88rem;text-align:left;width:100%}.stats-custom-table th{background:#f4f6fa;background:var(--dnse-bg-secondary,#f4f6fa);border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--dnse-border-light,#e0e0e0);color:#002952;color:var(--dnse-primary-dark,#002952);font-weight:600;padding:10px 14px;-webkit-user-select:none;user-select:none;white-space:nowrap}.stats-custom-table th.sortable-header{cursor:pointer;transition:background-color .15s ease}.stats-custom-table th.sortable-header:hover{background-color:#e8edf5}.th-content{align-items:center;display:flex;gap:6px}.th-content.center{justify-content:center}.th-content.right{justify-content:flex-end}.sort-icon-neutral{color:#a0aec0;opacity:.6}.sort-icon-active{color:#003b7a;color:var(--dnse-primary,#003b7a);font-weight:700}.stats-custom-table td{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--dnse-border-light,#f0f0f0);color:#333;color:var(--dnse-text-primary,#333);padding:11px 14px;vertical-align:middle}.stats-custom-table tbody tr:hover{background-color:#003b7a08}.stats-pagination-bar{align-items:center;background:#fafbfd;border:1px solid #e5e9f0;border:1px solid var(--dnse-border-light,#e5e9f0);border-radius:0 0 8px 8px;border-top:none;display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end;padding:12px 14px}.pagination-info{color:#666;color:var(--dnse-text-secondary,#666);font-size:.82rem}.pagination-actions{align-items:center;display:flex;gap:4px}.pagination-btn{background:#fff;border:1px solid #d1d5db;border:1px solid var(--dnse-border,#d1d5db);border-radius:6px;color:#333;color:var(--dnse-text-primary,#333);font-size:.82rem;font-weight:600;height:32px;min-width:32px;padding:0 6px;transition:all .15s ease}.pagination-btn:hover:not(:disabled){background:#f0f4fa;background:var(--dnse-bg-secondary,#f0f4fa);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#003b7a;color:var(--dnse-primary,#003b7a)}.pagination-btn:disabled{background:#f5f5f5}.pagination-btn.page-num.active{background:#003b7a;background:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);box-shadow:0 2px 4px #003b7a33;color:#fff}.pagination-ellipsis{color:#999;font-size:.82rem;padding:0 4px}.rank-badge{align-items:center;border-radius:50%;display:inline-flex;font-size:.8rem;font-weight:700;height:26px;justify-content:center;width:26px}.rank-badge.top-1{background:linear-gradient(135deg,gold,#ffb300);box-shadow:0 2px 4px #ffb3004d;color:#5d3f00}.rank-badge.top-2{background:linear-gradient(135deg,#e0e0e0,#bdbdbd);color:#333}.rank-badge.top-3{background:linear-gradient(135deg,#e6a15c,#cd7f32);color:#fff}.rank-badge.standard{background:#f0f2f5;color:#666}.stock-symbol-btn{align-items:center;background:#003b7a14;border:1px solid #003b7a33;border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;font-weight:700;gap:6px;padding:4px 10px;transition:all .15s ease}.stock-symbol-btn:hover{background:#003b7a;background:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff;transform:translateY(-1px)}.exchange-tag{background:#f0f2f5;border-radius:4px;color:#555;font-size:.72rem;font-weight:600;margin-left:6px;padding:2px 6px}.exchange-tag.hose{background:#e3f2fd;color:#1976d2}.exchange-tag.hnx{background:#fff3e0;color:#e65100}.exchange-tag.upcom{background:#f3e5f5;color:#7b1fa2}.news-bar-container{align-items:center;display:flex;gap:10px;max-width:200px;width:100%}.news-progress-track{background:#e9ecef;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.news-progress-fill{background:linear-gradient(90deg,#06c,#0052a3);background:linear-gradient(90deg,var(--dnse-accent,#06c),var(--dnse-primary-light,#0052a3));border-radius:4px;height:100%;transition:width .4s ease}.news-count-value{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:.92rem;font-weight:700}.news-pct-value{color:#666;color:var(--dnse-text-secondary,#666);font-size:.82rem;min-width:45px}.view-stock-action-btn{background:#0000;border:1px solid #06c;border:1px solid var(--dnse-accent,#06c);border-radius:5px;color:#06c;color:var(--dnse-accent,#06c);cursor:pointer;font-size:.8rem;font-weight:600;padding:4px 10px;transition:all .15s ease}.view-stock-action-btn:hover{background:#06c;background:var(--dnse-accent,#06c);color:#fff}.stats-empty-box,.stats-loading-box{align-items:center;color:#757575;color:var(--dnse-text-secondary,#757575);display:flex;flex-direction:column;gap:12px;justify-content:center;padding:40px 20px}.stats-modal-backdrop{align-items:center;animation:modalFadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#001226a6;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}.stats-modal-content{animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1);background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light,#e0e0e0);border-radius:12px;box-shadow:0 16px 40px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:1100px;overflow:hidden;width:100%}.stats-modal-header{align-items:center;background:linear-gradient(135deg,#f8fafd,#eef4fc);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--dnse-border-light,#e0e0e0);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.stats-modal-title-group{align-items:center;display:flex;gap:14px}.stats-modal-symbol-badge{align-items:center;background:#003b7a;background:var(--dnse-primary,#003b7a);border-radius:8px;color:#fff;display:inline-flex;font-size:1.1rem;font-weight:800;justify-content:center;letter-spacing:.5px;padding:6px 14px}.stats-modal-company-name{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:1.1rem;font-weight:700;margin:0}.stats-modal-meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.stats-modal-timerange-badge{background:#003b7a0f;border:1px solid #003b7a1f;border-radius:4px;color:#555;color:var(--dnse-text-secondary,#555);font-size:.8rem;padding:2px 8px}.stats-modal-close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#666;color:var(--dnse-text-secondary,#666);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .15s ease}.stats-modal-close-btn:hover{background:#00000014;color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.stats-modal-body{flex:1 1;overflow-y:auto;padding:16px 20px 24px}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.stats-header-container{align-items:flex-start;flex-direction:column}.stats-metrics-grid{grid-template-columns:1fr}.stats-search-box{width:100%}.stats-modal-content{max-height:96vh;padding:0}.stats-modal-header{padding:12px 14px}.stats-modal-body{padding:10px}}@media (max-width:991px){.stats-custom-table .action-btn-text,.stats-custom-table .col-exchange,.stats-custom-table .col-pct{display:none!important}.stats-custom-table .view-stock-action-btn{align-items:center;border-radius:50%;display:inline-flex;height:28px;justify-content:center;padding:5px;width:28px}}@media (max-width:576px){.stats-toolbar-controls{align-items:center!important;display:flex!important;flex-direction:row!important;gap:4px!important;justify-content:space-between!important;width:100%!important}.stats-page-size-selector{gap:2px!important}.stats-control-label,.stats-page-size-select,.stats-page-size-selector{font-size:10.5px!important}.stats-page-size-select{padding:3px 5px!important}.stats-count-badge{font-size:10.5px!important;padding:4px 6px!important;white-space:nowrap!important}.stats-custom-table .col-company,.stats-custom-table .col-exchange,.stats-custom-table .col-pct,.stats-custom-table .col-rank{display:none!important}.stats-custom-table td.col-postcount,.stats-custom-table td.col-symbol,.stats-custom-table th.col-postcount,.stats-custom-table th.col-symbol{width:auto!important}.stats-custom-table td.col-action,.stats-custom-table th.col-action{text-align:center!important;width:40px!important}}.stock-trending-single-row{align-items:center;border-top:1px dashed #e2e8f0;border-top:1px dashed var(--dnse-border-light,#e2e8f0);box-sizing:border-box;color:#666;color:var(--dnse-text-secondary,#666);display:flex;font-size:11.5px;line-height:1.4;margin-top:10px;overflow-x:auto;padding-top:8px;scrollbar-width:thin;white-space:nowrap;width:100%}.stock-trending-single-row::-webkit-scrollbar{height:3px}.stock-trending-single-row::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.stock-trending-single-row .trending-title{color:#002952;color:var(--dnse-primary-dark,#002952);flex-shrink:0;font-weight:700;margin-right:4px}.stock-trending-single-row .trending-subtitle{color:#757575;color:var(--dnse-text-secondary,#757575);flex-shrink:0;font-size:11px;font-weight:600;margin-right:3px}.stock-trending-single-row .trending-divider{color:#cbd5e1;flex-shrink:0;font-weight:300;margin:0 6px}.stock-trending-single-row .trending-dash{color:#94a3b8;flex-shrink:0;margin:0 3px}.stock-trending-single-row .trending-stock-link{align-items:baseline;background:none;border:none;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:11.5px;gap:2px;margin:0;padding:1px 3px;transition:all .15s ease}.stock-trending-single-row .trending-stock-link strong{color:#003b7a;color:var(--dnse-primary,#003b7a);font-weight:800}.stock-trending-single-row .trending-stock-link:hover strong{color:#06c;color:var(--dnse-accent,#06c);text-decoration:underline}.stock-trending-single-row .trending-stock-link.active{background:#003b7a1a;border-radius:4px;padding:1px 5px}.stock-trending-single-row .trending-stock-link.prev{color:#555}.stock-trending-single-row .trending-stock-link.prev strong{color:#475569}.portfolio-sidebar{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;height:100%;max-height:1200px;overflow:hidden}.portfolio-sidebar-header{align-items:center;background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;justify-content:space-between;padding:12px 14px}.portfolio-sidebar-title{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:14px;font-weight:700;gap:8px;letter-spacing:-.2px}.portfolio-sidebar-actions{align-items:center;display:flex;gap:6px}.portfolio-action-btn{align-items:center;background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:4px;color:#334155;color:var(--dnse-gray-700,#334155);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;padding:4px 8px;transition:all .15s ease-in-out}.portfolio-action-btn:hover{background-color:#f1f5f9;background-color:var(--dnse-gray-100,#f1f5f9);border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3);color:#003b7a;color:var(--dnse-primary,#003b7a)}.portfolio-action-btn.import-btn{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff}.portfolio-action-btn.import-btn:hover{background-color:#002952;background-color:var(--dnse-primary-dark,#002952);border-color:#002952;border-color:var(--dnse-primary-dark,#002952)}.portfolio-action-btn.refresh-btn{padding:4px 6px}.portfolio-search-box{background-color:#fff;border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--dnse-gray-100,#f1f5f9);padding:8px 12px;position:relative}.portfolio-search-icon{color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);left:20px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.portfolio-search-input{background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:4px;box-sizing:border-box;color:#1e293b;color:var(--dnse-gray-900,#1e293b);font-size:12px;padding:6px 26px 6px 28px;transition:border-color .15s ease,background-color .15s ease;width:100%}.portfolio-search-input:focus{background-color:#fff;border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 2px #0066cc1a;outline:none}.portfolio-search-clear{background:none;border:none;color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);cursor:pointer;font-size:14px;line-height:1;padding:0;position:absolute;right:20px;top:50%;transform:translateY(-50%)}.portfolio-search-clear:hover{color:#334155;color:var(--dnse-gray-700,#334155)}.portfolio-sidebar-body{flex:1 1;overflow-y:auto;padding:8px}.portfolio-empty-state,.portfolio-error-state,.portfolio-loading-state{align-items:center;color:#64748b;color:var(--dnse-gray-500,#64748b);display:flex;flex-direction:column;font-size:12.5px;justify-content:center;padding:32px 16px;text-align:center}.portfolio-empty-state p{color:#475569;color:var(--dnse-gray-600,#475569);font-weight:500;margin:0}.portfolio-groups-list{display:flex;flex-direction:column;gap:8px}.portfolio-group-card{background-color:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:6px;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.portfolio-group-card.has-active{border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3)}.portfolio-group-header{align-items:center;background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);cursor:pointer;display:flex;justify-content:space-between;padding:9px 10px;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.portfolio-group-header:hover{background-color:#f1f5f9}.portfolio-group-title-row{align-items:center;display:flex;flex:1 1;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-group-arrow{align-items:center;color:#64748b;color:var(--dnse-gray-500,#64748b);display:flex;transition:transform .15s ease}.portfolio-group-name{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio-group-meta{align-items:center;display:flex;gap:6px}.portfolio-group-count{background-color:#e2e8f0;background-color:var(--dnse-gray-200,#e2e8f0);border-radius:10px;color:#334155;color:var(--dnse-gray-700,#334155);font-size:11px;font-weight:600;padding:1px 6px}.portfolio-group-add-btn{align-items:center;background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-200,#cbd5e1);border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;height:20px;justify-content:center;padding:0;transition:all .15s ease-in-out;width:20px}.portfolio-group-add-btn:hover{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#fff;transform:scale(1.05)}.portfolio-group-del-btn{background:none;border:none;border-radius:3px;color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);cursor:pointer;opacity:.6;padding:2px 4px;transition:opacity .15s ease,color .15s ease}.portfolio-group-del-btn:hover{background-color:#fee2e2;color:#ff3d00;color:var(--dnse-danger,#ff3d00);opacity:1}.portfolio-symbols-container{background-color:#fff;border-top:1px solid #f1f5f9;border-top:1px solid var(--dnse-gray-100,#f1f5f9);padding:6px 8px 8px}.portfolio-symbols-list{display:flex;flex-direction:column;gap:4px}.portfolio-symbol-row{align-items:center;background-color:initial;border:1px solid #0000;border-radius:5px;display:flex;justify-content:space-between;position:relative;transition:all .15s ease-in-out;width:100%}.portfolio-symbol-row:hover{background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border-color:#e2e8f0;border-color:var(--dnse-gray-200,#e2e8f0)}.portfolio-symbol-row.active{background-color:#e0f2fe;border-color:#06c;border-color:var(--dnse-accent,#06c)}.portfolio-symbol-btn{align-items:center;background-color:initial;border:none;cursor:pointer;display:flex;flex:1 1;justify-content:space-between;padding:7px 6px 7px 10px;text-align:left}.portfolio-symbol-remove-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);cursor:pointer;display:inline-flex;flex-shrink:0;height:22px;justify-content:center;margin-right:6px;opacity:0;transition:all .15s ease-in-out;width:22px}.portfolio-symbol-row:hover .portfolio-symbol-remove-btn{opacity:.65}.portfolio-symbol-remove-btn:hover{background-color:#fee2e2;color:#ff3d00;color:var(--dnse-danger,#ff3d00);opacity:1!important}.portfolio-symbol-item{align-items:center;background-color:initial;border:1px solid #0000;border-radius:5px;cursor:pointer;display:flex;justify-content:space-between;padding:7px 10px;text-align:left;transition:all .15s ease-in-out;width:100%}.portfolio-symbol-item:hover{background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border-color:#e2e8f0;border-color:var(--dnse-gray-200,#e2e8f0)}.portfolio-symbol-item.active{background-color:#e0f2fe;border-color:#06c;border-color:var(--dnse-accent,#06c)}.portfolio-symbol-main{align-items:center;display:flex;gap:8px}.symbol-item-icon{color:#06c;color:var(--dnse-accent,#06c)}.symbol-item-code{color:#1e293b;font-size:13.5px;font-weight:700;letter-spacing:.2px}.portfolio-symbol-item.active .symbol-item-code,.portfolio-symbol-row.active .symbol-item-code{color:#002952;color:var(--dnse-primary-dark,#002952)}.symbol-active-indicator{background-color:#003b7a;background-color:var(--dnse-primary,#003b7a);border-radius:4px;color:#fff;font-size:10px;font-weight:600;padding:2px 6px}.portfolio-no-symbols{color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);font-size:11.5px;font-style:italic;padding:6px;text-align:center}.portfolio-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0f172a99;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:9999}.portfolio-modal-container{animation:slideUp .2s ease-out;background-color:#fff;border-radius:10px;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #00000014;max-width:540px;overflow:hidden;width:100%}.portfolio-modal-header{align-items:center;background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;justify-content:space-between;padding:14px 18px}.portfolio-modal-title{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:15px;font-weight:700;gap:8px}.portfolio-modal-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#94a3b8;color:var(--dnse-gray-400,#94a3b8);cursor:pointer;display:flex;padding:4px;transition:color .15s ease,background-color .15s ease}.portfolio-modal-close-btn:hover{background-color:#e2e8f0;background-color:var(--dnse-gray-200,#e2e8f0);color:#334155;color:var(--dnse-gray-700,#334155)}.portfolio-modal-form{padding:18px}.portfolio-form-group{margin-bottom:14px}.portfolio-form-label{color:#334155;color:var(--dnse-gray-700,#334155);display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}.required-star{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.portfolio-form-input,.portfolio-form-textarea{background-color:#fff;border:1px solid #cbd5e1;border:1px solid var(--dnse-gray-300,#cbd5e1);border-radius:6px;box-sizing:border-box;color:#1e293b;font-family:inherit;font-size:13px;padding:8px 12px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.portfolio-form-input:focus,.portfolio-form-textarea:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 3px #0066cc26;outline:none}.portfolio-form-hint{color:#64748b;color:var(--dnse-gray-500,#64748b);font-size:11.5px;line-height:1.4;margin-top:5px}.portfolio-quick-picks{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.portfolio-quick-pill{background-color:#f1f5f9;background-color:var(--dnse-gray-100,#f1f5f9);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;font-size:11.5px;font-weight:500;padding:3px 8px;transition:all .15s ease}.portfolio-quick-pill.active,.portfolio-quick-pill:hover{background-color:#e0f2fe;border-color:#06c;border-color:var(--dnse-accent,#06c);color:#002952;color:var(--dnse-primary-dark,#002952);font-weight:600}.portfolio-modal-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--dnse-gray-200,#e2e8f0);display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding-top:14px}.portfolio-target-info-box{background-color:#f8fafc;background-color:var(--dnse-gray-50,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--dnse-gray-200,#e2e8f0);border-radius:6px;margin-bottom:12px;padding:10px 14px}.portfolio-target-title{align-items:center;display:flex;gap:8px}.portfolio-target-title .target-name{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:14px;font-weight:700}.portfolio-target-title .target-code{background-color:#e2e8f0;background-color:var(--dnse-gray-200,#e2e8f0);border-radius:3px;color:#64748b;color:var(--dnse-gray-500,#64748b);font-family:monospace;font-size:11.5px;padding:1px 5px}.portfolio-target-sub{color:#475569;color:var(--dnse-gray-600,#475569);font-size:11.5px;line-height:1.4;margin-top:5px;word-break:break-word}.portfolio-quick-add-suggestion{align-items:center;display:flex;gap:8px;margin-bottom:4px;margin-top:10px}.portfolio-quick-add-suggestion .quick-add-label{color:#475569;color:var(--dnse-gray-600,#475569);font-size:11.5px;font-weight:500}.portfolio-quick-add-chip{align-items:center;background-color:#e0f2fe;border:1px solid #06c;border:1px solid var(--dnse-accent,#06c);border-radius:12px;color:#06c;color:var(--dnse-accent,#06c);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;padding:3px 9px;transition:all .15s ease-in-out}.portfolio-quick-add-chip:hover{background-color:#06c;background-color:var(--dnse-accent,#06c);color:#fff;transform:translateY(-1px)}.trading-view-screen{font-family:var(--dnse-font-family);margin:0 auto;overflow-x:hidden;padding:var(--dnse-spacing-lg)}.controls-section,.trading-view-screen{box-sizing:border-box;max-width:100%;width:100%}.controls-section{display:flex;justify-content:center;margin-bottom:var(--dnse-spacing-xl)}.controls-card{background:var(--dnse-surface);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);box-sizing:border-box;max-width:100%;overflow:hidden;padding:var(--dnse-spacing-md);width:100%}.controls-row{align-items:center;box-sizing:border-box;max-width:100%}.controls-row,.sector-map-section{grid-gap:var(--dnse-spacing-md);display:grid;gap:var(--dnse-spacing-md);grid-template-columns:repeat(12,minmax(0,1fr));width:100%}.sector-map-section{align-items:start;margin-top:0}.data-info,.sector-map-section{margin-bottom:var(--dnse-spacing-lg)}.data-info{background:linear-gradient(135deg,var(--dnse-primary-lighter) 0,var(--dnse-info-bg) 100%);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);overflow:hidden;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.data-source{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.source-badge{align-items:center;background:var(--dnse-primary);display:flex;gap:var(--dnse-spacing-xs)}.data-count,.source-badge{border-radius:var(--dnse-radius-xl);color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-semibold);padding:var(--dnse-spacing-xs) var(--dnse-spacing-sm)}.data-count{background:var(--dnse-success)}.date-range{align-items:center;background:var(--dnse-warning);border-radius:var(--dnse-radius-xl);color:var(--dnse-text-inverse);display:flex;font-size:var(--dnse-font-size-xs);font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-xs);padding:var(--dnse-spacing-xs) var(--dnse-spacing-sm)}.stat-card{background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);padding:var(--dnse-spacing-lg);text-align:center;transition:all var(--dnse-transition-base)}.stat-card:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.stat-label{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);font-weight:var(--dnse-font-weight-medium);letter-spacing:.5px;margin-bottom:var(--dnse-spacing-sm);text-transform:uppercase}.stat-value{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);font-weight:var(--dnse-font-weight-bold)}.stat-value.price{color:var(--dnse-primary)}.stat-value.change.positive{color:var(--dnse-success)}.stat-value.change.negative{color:var(--dnse-danger)}.chart-section{align-items:center;background:var(--dnse-bg-primary);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);clear:both;display:flex;justify-content:center;margin-bottom:var(--dnse-spacing-xl);min-height:500px}.chart-section,.chart-wrapper{box-sizing:border-box;overflow:hidden}.chart-wrapper{height:100%;max-width:100%;width:100%}.loading-container{background:linear-gradient(135deg,var(--dnse-surface) 0,var(--dnse-surface-elevated) 100%);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);flex-direction:column;min-height:300px;padding:var(--dnse-spacing-4xl) var(--dnse-spacing-lg)}.loading-container p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-lg);font-weight:var(--dnse-font-weight-medium);margin-top:var(--dnse-spacing-md);text-align:center}.error-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:var(--dnse-spacing-4xl) var(--dnse-spacing-lg)}.error-message{background:linear-gradient(135deg,var(--dnse-danger-bg) 0,#fff5f5 100%);border:2px solid var(--dnse-danger);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);margin:0 auto;max-width:500px;padding:var(--dnse-spacing-2xl);text-align:center}.error-message h3{color:var(--dnse-danger-dark);font-size:var(--dnse-font-size-xl);font-weight:var(--dnse-font-weight-semibold);margin-bottom:var(--dnse-spacing-md)}.error-message p{color:var(--dnse-danger-dark);margin-bottom:var(--dnse-spacing-lg)}.error-message p,.retry-button{font-size:var(--dnse-font-size-base)}.retry-button{align-items:center;background:var(--dnse-primary);border:none;border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;font-weight:var(--dnse-font-weight-semibold);gap:var(--dnse-spacing-xs);padding:var(--dnse-spacing-md) var(--dnse-spacing-xl);transition:all var(--dnse-transition-speed) ease}.retry-button:hover{background:var(--dnse-primary-dark);box-shadow:var(--dnse-shadow-md);transform:translateY(-1px)}.retry-button:active{box-shadow:var(--dnse-shadow-sm);transform:translateY(0)}.trading-view-chart{box-sizing:border-box;max-width:100%;overflow:hidden;padding:20px;width:100%}.chart-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.chart-header h3{color:#1a1a1a;font-size:1.5rem;font-weight:600;margin:0}.chart-info{color:#666;font-size:.9rem}.chart-container{border-radius:8px;box-sizing:border-box;height:500px;overflow:hidden;position:relative;width:100%}.chart-placeholder{align-items:center;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;display:flex;font-size:1.1rem;height:400px;justify-content:center}.chart-features{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;padding:30px;text-align:center}.feature-list h3{color:#fff;font-size:1.5rem;font-weight:600;margin-bottom:20px}.feature-list ul{display:inline-block;list-style:none;margin:0;padding:0;text-align:left}.feature-list li{align-items:center;display:flex;font-size:1.1rem;gap:10px;padding:8px 0}@media (max-width:768px){.trading-view-screen{padding:15px}.controls-card{padding:var(--dnse-spacing-md)}.chart-header{align-items:flex-start;flex-direction:column;gap:10px}.chart-container{height:300px}.trading-view-chart{padding:15px}.indicator-selector{float:none!important;margin-bottom:20px;margin-right:0!important;width:100%!important}}@media (max-width:480px){.market-stats{grid-template-columns:1fr}.chart-container{height:250px}.indicator-selector{float:none!important;margin-right:0!important;width:100%!important}}.news-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 12px #00000014;margin-top:30px;padding:20px}.news-section h3{border-bottom:2px solid #2196f3;color:#1a1a1a;font-size:1.5rem;margin-bottom:15px;padding-bottom:8px}.sector-map-section{background:var(--dnse-surface);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);margin-top:var(--dnse-spacing-xl);min-height:400px;padding:var(--dnse-spacing-lg)}.stock-nav-tabs-container{align-items:center;border-bottom:3px solid #ffb800;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:6px 4px;margin-bottom:var(--dnse-spacing-lg);margin-top:var(--dnse-spacing-md);max-width:100%;padding-bottom:4px;width:100%}.stock-nav-tab-btn{background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#06c;cursor:pointer;flex:1 1 auto;font-family:inherit;font-size:13px;font-weight:500;margin-bottom:2px;padding:7px 12px;text-align:center;transition:all .2s ease;white-space:nowrap}.stock-nav-tab-btn:hover{background-color:#f5f7fa;color:#049}.stock-nav-tab-btn.active{background-color:#ffb800;border-color:#ffb800;box-shadow:0 2px 6px #0000001a;color:#fff;font-weight:700}.news-tooltip::-webkit-scrollbar{width:4px}.news-tooltip::-webkit-scrollbar-track{background:#ffffff1a;border-radius:2px}.news-tooltip::-webkit-scrollbar-thumb{background:#2196f3;border-radius:2px}.news-tooltip::-webkit-scrollbar-thumb:hover{background:#1976d2}@media (max-width:768px){.news-section{margin-top:20px;padding:15px}}@media (max-width:480px){.news-section{margin-top:15px;padding:10px}.news-section h3{font-size:1.3rem}}.elliott-wave-controls{align-items:center;background:var(--dnse-primary-dark);border:1px solid #ffffff14;border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px}.elliott-wave-toggle-label{align-items:center;color:var(--dnse-gray-100);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;-webkit-user-select:none;user-select:none;white-space:nowrap}.elliott-wave-toggle-label input[type=checkbox]{accent-color:var(--dnse-accent);cursor:pointer;height:15px;width:15px}.elliott-wave-param-group{align-items:center;color:var(--dnse-gray-200);display:flex;font-size:12px;gap:6px}.elliott-wave-param-group label{color:var(--dnse-gray-200);white-space:nowrap}.elliott-wave-param-input{background:#ffffff14;border:1px solid #ffffff26;border-radius:4px;color:var(--dnse-gray-100);font-size:12px;padding:3px 6px;text-align:center;width:52px}.elliott-wave-param-input:focus{background:#ffffff1f;border-color:var(--dnse-accent);outline:none}.elliott-wave-select{background:#ffffff14;border:1px solid #ffffff26;border-radius:4px;color:var(--dnse-gray-100);cursor:pointer;font-size:12px;padding:3px 8px}.elliott-wave-select:focus{border-color:var(--dnse-accent);outline:none}.elliott-wave-apply-btn{background:var(--dnse-accent);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:4px 12px;transition:background .2s ease;white-space:nowrap}.elliott-wave-apply-btn:hover{background:var(--dnse-primary-light)}.elliott-wave-apply-btn:disabled{background:var(--dnse-gray-600);cursor:not-allowed}.elliott-wave-status{align-items:center;border-radius:12px;display:inline-flex;font-size:11px;font-weight:700;gap:4px;letter-spacing:.4px;padding:2px 10px;text-transform:uppercase}.elliott-wave-status.impulse{background:#2196f32e;border:1px solid #2196f359;color:#64b5f6}.elliott-wave-status.corrective{background:#ff98002e;border:1px solid #ff980059;color:#ffb74d}.elliott-wave-status.insufficient,.elliott-wave-status.mixed{background:#bdbdbd1f;border:1px solid #bdbdbd33;color:var(--dnse-gray-200)}.elliott-wave-fib-legend{background:#00000040;border-top:1px solid #ffffff0f;display:flex;flex-wrap:wrap;font-size:11px;gap:6px 12px;padding:6px 12px}.elliott-wave-fib-item{align-items:center;color:var(--dnse-gray-200);display:flex;gap:5px}.elliott-wave-fib-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.elliott-wave-loading{align-items:center;animation:pulse 1.4s ease-in-out infinite;color:var(--dnse-gray-200);display:flex;font-size:12px;gap:8px;padding:4px 0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.demo-page{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);font-family:var(--dnse-font-family);min-height:100vh;padding:var(--dnse-spacing-lg)}.demo-header{background:var(--dnse-surface);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-xl);margin-bottom:var(--dnse-spacing-2xl);padding:var(--dnse-spacing-2xl);text-align:center}.demo-header h1{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-3xl);font-weight:700;margin-bottom:var(--dnse-spacing-sm)}.demo-header p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-lg);margin-bottom:var(--dnse-spacing-xl)}.demo-navigation{display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-md);justify-content:center}.demo-navigation button{align-items:center;background:var(--dnse-surface);border:2px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-primary);cursor:pointer;display:flex;font-size:var(--dnse-font-size-sm);font-weight:600;gap:var(--dnse-spacing-xs);justify-content:center;min-width:160px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all .3s ease}.demo-navigation button:hover{background:var(--dnse-gray-50);border-color:var(--dnse-primary);box-shadow:var(--dnse-shadow-md);color:var(--dnse-primary);transform:translateY(-2px)}.demo-navigation button.active{background:linear-gradient(45deg,var(--dnse-primary),var(--dnse-primary-dark));border-color:var(--dnse-primary);box-shadow:var(--dnse-shadow-lg);color:var(--dnse-text-inverse);transform:translateY(-2px)}.demo-content{box-sizing:border-box;margin:0 auto;max-width:100%;width:100%}.demo-section{margin-bottom:var(--dnse-spacing-2xl)}.demo-section h2{color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-2xl);text-align:center;text-shadow:0 2px 4px #0000004d}.demo-card,.demo-section h2{margin-bottom:var(--dnse-spacing-xl)}.demo-card{background:var(--dnse-surface);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-xl);padding:var(--dnse-spacing-xl);transition:transform .3s ease,box-shadow .3s ease}.demo-card:hover{box-shadow:var(--dnse-shadow-2xl);transform:translateY(-5px)}.demo-card h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-xl);padding-bottom:var(--dnse-spacing-sm)}.demo-card h3,.demo-card-header{align-items:center;border-bottom:3px solid var(--dnse-primary);display:flex;margin-bottom:var(--dnse-spacing-lg)}.demo-card-header{justify-content:space-between;padding-bottom:var(--dnse-spacing-md)}.demo-card-header h3{border:none;color:var(--dnse-text-primary);flex:1 1;font-size:var(--dnse-font-size-xl);margin:0;padding:0}.doc-button{align-items:center;background:var(--dnse-surface);border:2px solid var(--dnse-primary);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-primary);cursor:pointer;display:flex;font-size:var(--dnse-font-size-sm);font-weight:600;gap:var(--dnse-spacing-xs);justify-content:center;min-width:140px;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all .3s ease}.doc-button:hover{background:var(--dnse-primary);box-shadow:var(--dnse-shadow-md);color:var(--dnse-text-inverse);transform:translateY(-2px)}.doc-button:active{box-shadow:var(--dnse-shadow-sm);transform:translateY(0)}.doc-button:focus{box-shadow:0 0 0 3px var(--dnse-primary-lighter);outline:none}.demo-footer,.demo-footer-section{display:none!important}.demo-info h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);margin-bottom:var(--dnse-spacing-xl);text-align:center}.feature-grid{grid-gap:var(--dnse-spacing-xl);display:grid;gap:var(--dnse-spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--dnse-spacing-2xl)}.feature-item{background:var(--dnse-gray-50);border-left:5px solid var(--dnse-primary);border-radius:var(--dnse-radius-lg);padding:var(--dnse-spacing-xl);transition:transform .3s ease}.feature-item:hover{transform:translateY(-3px)}.feature-item h4{align-items:center;color:var(--dnse-text-primary);display:flex;font-size:var(--dnse-font-size-lg);margin-bottom:var(--dnse-spacing-md)}.feature-item ul{list-style:none;margin:0;padding:0}.feature-item li{color:var(--dnse-text-secondary);padding:var(--dnse-spacing-xs) 0;padding-left:var(--dnse-spacing-lg);position:relative}.feature-item li:before{color:var(--dnse-success);content:"✓";font-weight:700;left:0;position:absolute}.demo-stats{border-top:2px solid var(--dnse-border-light);display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-3xl);justify-content:center;padding-top:var(--dnse-spacing-xl)}.stat{background:linear-gradient(135deg,var(--dnse-primary),var(--dnse-primary-dark));border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);color:var(--dnse-text-inverse);min-width:120px;padding:var(--dnse-spacing-lg);text-align:center;transition:transform .3s ease}.stat:hover{transform:scale(1.05)}.stat-number{display:block;font-size:var(--dnse-font-size-3xl);font-weight:700;margin-bottom:var(--dnse-spacing-xs)}.stat-label{font-size:var(--dnse-font-size-base);font-weight:500;opacity:.9}@media (max-width:768px){.demo-page{padding:var(--dnse-spacing-md)}.demo-header{padding:var(--dnse-spacing-lg)}.demo-header h1{font-size:var(--dnse-font-size-2xl)}.demo-navigation{align-items:center;flex-direction:column}.demo-navigation button{width:200px}.demo-card{padding:var(--dnse-spacing-lg)}.demo-card-header{align-items:flex-start;flex-direction:column;gap:var(--dnse-spacing-sm)}.doc-button{align-self:flex-end;font-size:var(--dnse-font-size-xs);min-width:120px;padding:var(--dnse-spacing-xs) var(--dnse-spacing-md)}.feature-grid{grid-template-columns:1fr}.demo-stats{gap:var(--dnse-spacing-xl)}.stat{min-width:100px;padding:var(--dnse-spacing-md)}.stat-number{font-size:var(--dnse-font-size-2xl)}}@media (max-width:480px){.demo-header h1{font-size:var(--dnse-font-size-xl)}.demo-header p{font-size:var(--dnse-font-size-base)}.demo-section h2{font-size:var(--dnse-font-size-xl)}.demo-card h3{font-size:var(--dnse-font-size-lg)}.demo-card-header{align-items:flex-start;flex-direction:column;gap:var(--dnse-spacing-sm)}.demo-card-header h3{font-size:var(--dnse-font-size-base)}.doc-button{align-self:stretch;font-size:var(--dnse-font-size-xs);min-width:auto;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md)}.demo-stats{align-items:center;flex-direction:column;gap:var(--dnse-spacing-lg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.demo-card{animation:fadeInUp .6s ease-out}.demo-card:nth-child(2){animation-delay:.1s}.demo-card:nth-child(3){animation-delay:.2s}.demo-card:nth-child(4){animation-delay:.3s}.chart-category{background:var(--dnse-surface);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-xl);margin-bottom:var(--dnse-spacing-4xl);padding:var(--dnse-spacing-xl)}.category-title{background:var(--dnse-gray-50);border-left:5px solid var(--dnse-primary);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);font-weight:700;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg);text-align:center}.category-title,.chart-category .demo-card{margin-bottom:var(--dnse-spacing-xl)}.chart-category .demo-card:last-child{margin-bottom:0}.chart-category .demo-card-header h4{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-lg);font-weight:600;margin:0}.line-basic-chart-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;box-sizing:border-box;margin:1em auto;padding:20px;width:100%}.line-basic-chart-container .highcharts-container{margin:0 auto;max-width:100%;width:100%!important}.chart-description{box-sizing:border-box;line-height:1.6;margin:15px auto;max-width:100%;padding:0 20px;width:100%}@media (max-width:768px){.line-basic-chart-container{margin:.5em auto;padding:15px}.chart-description{font-size:12px;padding:0 10px}}@media (max-width:480px){.line-basic-chart-container{padding:10px}}.login-page{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);bottom:0;display:flex;height:100vh;justify-content:center;left:0;min-height:100vh;padding:var(--dnse-spacing-lg);position:fixed;right:0;top:0;width:100vw;z-index:9999}.login-container,.login-page{box-sizing:border-box;overflow-y:auto}.login-container{animation:slideUp .5s ease-out;background:var(--dnse-surface);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-xl);max-height:calc(100vh - 40px);max-width:520px;padding:var(--dnse-spacing-xl);width:100%}.login-header{margin-bottom:var(--dnse-spacing-xl);text-align:center}.login-header h1{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);font-weight:700;margin:0 0 var(--dnse-spacing-sm) 0}.login-header p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);margin:0}.login-tabs{border-bottom:2px solid var(--dnse-border-light);display:flex;gap:var(--dnse-spacing-sm);margin-bottom:var(--dnse-spacing-xl)}.tab-button{background:#0000;border:none;border-bottom:3px solid #0000;color:var(--dnse-text-secondary);cursor:pointer;flex:1 1;font-size:var(--dnse-font-size-base);font-weight:600;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg);position:relative;transition:all .3s ease}.tab-button.active,.tab-button:hover{color:var(--dnse-primary)}.tab-button.active{border-bottom-color:var(--dnse-primary)}.alert{align-items:center;animation:fadeIn .3s ease-out;border-radius:var(--dnse-radius-md);display:flex;font-size:var(--dnse-font-size-sm);gap:var(--dnse-spacing-sm);margin-bottom:var(--dnse-spacing-lg);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.alert-error{background-color:var(--dnse-danger-bg);border:1px solid var(--dnse-danger-light);color:var(--dnse-danger-dark)}.alert-success{background-color:var(--dnse-success-bg);border:1px solid var(--dnse-success);color:var(--dnse-success-dark)}.alert span{font-size:18px}.login-form{display:flex;flex-direction:column;gap:var(--dnse-spacing-lg)}.login-form,.register-form{box-sizing:border-box;width:100%}.register-form{max-height:60vh;overflow-y:auto;padding-right:6px}.register-form::-webkit-scrollbar{width:6px}.register-form::-webkit-scrollbar-track{background:var(--dnse-gray-100);border-radius:var(--dnse-radius-sm)}.register-form::-webkit-scrollbar-thumb{background:var(--dnse-primary);border-radius:var(--dnse-radius-sm)}.form-row{box-sizing:border-box;display:flex;gap:var(--dnse-spacing-md);width:100%}.form-row .form-group{flex:1 1;min-width:0}.form-group{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--dnse-spacing-sm);width:100%}.form-group label{font-size:var(--dnse-font-size-sm);font-weight:600}.form-group input,.form-group select{border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-sizing:border-box;font-family:inherit;font-size:var(--dnse-font-size-sm);padding:var(--dnse-spacing-md) var(--dnse-spacing-md);transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px #003b7a1a;outline:none}.form-group input:disabled,.form-group select:disabled{background-color:var(--dnse-gray-100);cursor:not-allowed;opacity:.6}.form-group select{cursor:pointer}.submit-button{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;font-size:var(--dnse-font-size-base);font-weight:600;margin-top:var(--dnse-spacing-sm);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg);transition:all .3s ease}.submit-button:hover:not(:disabled){box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid var(--dnse-border-light);margin-top:var(--dnse-spacing-xl);padding-top:var(--dnse-spacing-lg);text-align:center}.login-footer p{color:var(--dnse-text-tertiary);font-size:var(--dnse-font-size-xs);margin:0}.verify-header-badge{align-items:center;background:#003b7a14;border:1px solid #003b7a33;border-radius:var(--dnse-radius-lg);display:flex;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-xl);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.verify-icon{color:var(--dnse-primary);flex-shrink:0}.verify-title-wrap h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);font-weight:700;margin:0 0 2px}.verify-title-wrap p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-xs);margin:0;word-break:break-all}.validate-code-input{background-color:var(--dnse-gray-50)!important;border:2px dashed var(--dnse-border-medium)!important;color:var(--dnse-primary)!important;font-family:Courier New,Courier,monospace;font-size:1.4rem!important;font-weight:700;letter-spacing:6px;padding:12px!important;text-align:center;text-transform:uppercase}.validate-code-input:focus{background-color:#fff!important;border-color:var(--dnse-primary)!important;border-style:solid!important}.input-hint{color:var(--dnse-text-tertiary);font-size:var(--dnse-font-size-xs);margin-top:4px}.verify-actions{display:flex;flex-direction:column;gap:var(--dnse-spacing-sm);margin-top:var(--dnse-spacing-lg)}.resend-button{align-items:center;background:#0000;border:1px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-md);color:var(--dnse-primary);cursor:pointer;display:flex;font-size:var(--dnse-font-size-sm);font-weight:600;justify-content:center;padding:10px 14px;transition:all .2s ease}.resend-button:hover:not(:disabled){background-color:#003b7a0d;border-color:var(--dnse-primary)}.resend-button:disabled{color:var(--dnse-text-tertiary);cursor:not-allowed;opacity:.6}.back-button{background:#0000;color:var(--dnse-text-secondary);display:flex;font-size:var(--dnse-font-size-xs);padding:6px;transition:color .2s ease}.back-button:hover{color:var(--dnse-primary);text-decoration:underline}@keyframes spinIcon{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin{animation:spinIcon 1s linear infinite}@media (max-width:600px){.login-container{padding:var(--dnse-spacing-xl) var(--dnse-spacing-lg)}.login-header h1{font-size:var(--dnse-font-size-xl)}.form-row{flex-direction:column;gap:var(--dnse-spacing-lg)}.tab-button{font-size:var(--dnse-font-size-sm);padding:var(--dnse-spacing-sm) var(--dnse-spacing-md)}}.loading-container{flex-shrink:0;min-height:200px;width:100%}.loading-container,.loading-overlay{align-items:center;display:flex;justify-content:center}.loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-content{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:16px}.loading-text{animation:fadeInOut 1.5s ease-in-out infinite;font-size:14px;font-weight:500;margin-top:8px}.loading-small .loading-text{font-size:12px}.loading-medium .loading-text{font-size:14px}.loading-large .loading-text{font-size:16px}.loading-xlarge .loading-text{font-size:18px}.loading-default{aspect-ratio:1/1!important;display:inline-block!important;flex-shrink:0!important;height:56px!important;margin:0 auto!important;max-height:56px!important;max-width:56px!important;min-height:56px!important;min-width:56px!important;position:relative!important;width:56px!important}.loading-small .loading-default{height:24px!important;max-height:24px!important;max-width:24px!important;min-height:24px!important;min-width:24px!important;width:24px!important}.loading-medium .loading-default{height:40px!important;max-height:40px!important;max-width:40px!important;min-height:40px!important;min-width:40px!important;width:40px!important}.loading-large .loading-default{height:56px!important;max-height:56px!important;max-width:56px!important;min-height:56px!important;min-width:56px!important;width:56px!important}.loading-xlarge .loading-default{height:72px!important;max-height:72px!important;max-width:72px!important;min-height:72px!important;min-width:72px!important;width:72px!important}.loading-spinner{animation:spin .8s linear infinite!important;aspect-ratio:1/1!important;border:4px solid #00000014!important;border-radius:50%!important;border-top:4px solid var(--loading-color)!important;box-sizing:border-box!important;height:100%!important;left:0!important;position:absolute!important;top:0!important;width:100%!important}.loading-small .loading-spinner{border-width:2px!important}.loading-medium .loading-spinner{border-width:3px!important}.loading-large .loading-spinner{border-width:4px!important}.loading-xlarge .loading-spinner{border-width:5px!important}.loading-points{align-items:center;display:flex;gap:8px;height:40px}.loading-small .loading-points{gap:5px;height:24px}.loading-large .loading-points{gap:10px;height:56px}.loading-xlarge .loading-points{gap:12px;height:72px}.loading-point{animation:bounce 1.4s ease-in-out infinite;background:var(--loading-color);border-radius:50%;height:12px;width:12px}.loading-small .loading-point{height:8px;width:8px}.loading-large .loading-point{height:16px;width:16px}.loading-xlarge .loading-point{height:20px;width:20px}.loading-point:first-child{animation-delay:0s}.loading-point:nth-child(2){animation-delay:.2s}.loading-point:nth-child(3){animation-delay:.4s}.loading-corners{aspect-ratio:1/1;flex-shrink:0;height:50px;position:relative;width:50px}.loading-small .loading-corners{height:30px;width:30px}.loading-large .loading-corners{height:70px;width:70px}.loading-xlarge .loading-corners{height:90px;width:90px}.loading-corner{animation:cornerMove 1.5s ease-in-out infinite;background:var(--loading-color);border-radius:50%;height:12px;position:absolute;width:12px}.loading-small .loading-corner{height:8px;width:8px}.loading-large .loading-corner{height:16px;width:16px}.loading-xlarge .loading-corner{height:20px;width:20px}.loading-corner:first-child{animation-delay:0s;left:0;top:0}.loading-corner:nth-child(2){animation-delay:.3s;right:0;top:0}.loading-corner:nth-child(3){animation-delay:.6s;bottom:0;right:0}.loading-corner:nth-child(4){animation-delay:.9s;bottom:0;left:0}.loading-border{animation:rotate 2s linear infinite;aspect-ratio:1/1;border:3px solid #00000014;border-radius:8px;box-sizing:border-box;flex-shrink:0;height:50px;position:relative;width:50px}.loading-small .loading-border{border-width:2px;height:30px;width:30px}.loading-large .loading-border{border-width:4px;height:70px;width:70px}.loading-xlarge .loading-border{border-width:5px;height:90px;width:90px}.loading-border-inner{animation:spin 1s linear infinite;border-bottom:3px solid #0000;border-left:3px solid #0000;border-radius:8px;border-right:3px solid #0000;border-right-color:var(--loading-color);border-top:3px solid #0000;border-top-color:var(--loading-color);bottom:-3px;left:-3px;position:absolute;right:-3px;top:-3px}.loading-small .loading-border-inner{border-width:2px;bottom:-2px;left:-2px;right:-2px;top:-2px}.loading-large .loading-border-inner{border-width:4px;bottom:-4px;left:-4px;right:-4px;top:-4px}.loading-xlarge .loading-border-inner{border-width:5px;bottom:-5px;left:-5px;right:-5px;top:-5px}.loading-gradient{aspect-ratio:1/1;flex-shrink:0;height:50px;width:50px}.loading-small .loading-gradient{height:30px;width:30px}.loading-large .loading-gradient{height:70px;width:70px}.loading-xlarge .loading-gradient{height:90px;width:90px}.loading-gradient-spinner{animation:spin 1s linear infinite;background:conic-gradient(from 0deg,#0000 0deg,var(--loading-color) 180deg,#0000 1turn);border-radius:50%;height:100%;mask:radial-gradient(circle,#0000 60%,#000 0);-webkit-mask:radial-gradient(circle,#0000 60%,#000 0);width:100%}.loading-circles{aspect-ratio:1/1;flex-shrink:0;height:50px;position:relative;width:50px}.loading-small .loading-circles{height:30px;width:30px}.loading-large .loading-circles{height:70px;width:70px}.loading-xlarge .loading-circles{height:90px;width:90px}.loading-circle{animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--loading-color);height:100%;position:absolute;width:100%}.loading-circle:first-child{animation-delay:-.45s;opacity:1}.loading-circle:nth-child(2){animation-delay:-.3s;opacity:.7}.loading-circle:nth-child(3){animation-delay:-.15s;opacity:.5}.loading-circle:nth-child(4){animation-delay:0s;opacity:.3}.loading-square{grid-gap:4px;aspect-ratio:1/1;display:grid;flex-shrink:0;gap:4px;grid-template-columns:1fr 1fr;height:50px;width:50px}.loading-small .loading-square{gap:3px;height:30px;width:30px}.loading-large .loading-square{gap:5px;height:70px;width:70px}.loading-xlarge .loading-square{gap:6px;height:90px;width:90px}.loading-square-item{animation:squarePulse 1.2s ease-in-out infinite;background:var(--loading-color);border-radius:3px}.loading-square-item:first-child{animation-delay:0s}.loading-square-item:nth-child(2){animation-delay:.2s}.loading-square-item:nth-child(3){animation-delay:.4s}.loading-square-item:nth-child(4){animation-delay:.6s}.loading-scale{align-items:center;display:flex;gap:4px;height:40px}.loading-small .loading-scale{gap:3px;height:24px}.loading-large .loading-scale{gap:5px;height:56px}.loading-xlarge .loading-scale{gap:6px;height:72px}.loading-scale-bar{animation:scaleBar 1s ease-in-out infinite;background:var(--loading-color);border-radius:10px;height:100%;width:6px}.loading-small .loading-scale-bar{width:4px}.loading-large .loading-scale-bar{width:8px}.loading-xlarge .loading-scale-bar{width:10px}.loading-scale-bar:first-child{animation-delay:0s}.loading-scale-bar:nth-child(2){animation-delay:.1s}.loading-scale-bar:nth-child(3){animation-delay:.2s}.loading-scale-bar:nth-child(4){animation-delay:.3s}.loading-scale-bar:nth-child(5){animation-delay:.4s}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes bounce{0%,80%,to{opacity:.5;transform:scale(0)}40%{opacity:1;transform:scale(1)}}@keyframes cornerMove{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}@keyframes squarePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.5)}}@keyframes scaleBar{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}@keyframes fadeInOut{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-color-scheme:dark){.loading-overlay{background:#0f172af2}}.course-management-container{box-sizing:border-box;padding:var(--dnse-spacing-lg);width:100%}.course-management-header{margin-bottom:var(--dnse-spacing-xl)}.course-management-header h1{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-2xl);margin-bottom:var(--dnse-spacing-sm)}.course-management-header p{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-base)}.course-controls{align-items:center;display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-lg)}.search-box{flex:1 1;width:100%}.view-controls{align-items:center;display:flex;gap:var(--dnse-spacing-sm)}.view-toggle{border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);display:flex;overflow:hidden}.view-button,.view-toggle{background:var(--dnse-surface)}.view-button{align-items:center;border:none;border-right:1px solid var(--dnse-border-light);color:var(--dnse-text-secondary);cursor:pointer;display:inline-flex;font-size:18px;justify-content:center;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all .3s}.view-button:last-child{border-right:none}.view-button:hover{background:var(--dnse-gray-100)}.view-button.active{background:var(--dnse-primary);color:var(--dnse-text-inverse)}.view-button.active:hover{background:var(--dnse-primary-dark)}.search-input{border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);font-size:var(--dnse-font-size-sm);padding:var(--dnse-spacing-md) var(--dnse-spacing-md);transition:border-color .3s;width:100%}.search-input:focus{border-color:var(--dnse-primary);outline:none}.refresh-button{align-items:center;background-color:var(--dnse-primary);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;font-size:var(--dnse-font-size-sm);font-weight:500;gap:6px;height:38px;justify-content:center;padding:0 16px;transition:background-color .3s;white-space:nowrap}.refresh-button:hover:not(:disabled){background-color:var(--dnse-primary-dark)}.refresh-button:disabled{background-color:var(--dnse-gray-400);cursor:not-allowed}.init-course-button{align-items:center;background-color:#0284c7;border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;font-size:var(--dnse-font-size-sm);font-weight:500;gap:6px;height:38px;justify-content:center;padding:0 16px;transition:all .3s;white-space:nowrap}.init-course-button:hover:not(:disabled){background-color:#0369a1}.init-course-button:disabled{background-color:var(--dnse-gray-400);cursor:not-allowed}.error-message{background-color:var(--dnse-danger-bg);padding:var(--dnse-spacing-md)}.loading-spinner{padding:60px var(--dnse-spacing-lg);text-align:center}.spinner{border-top:4px solid var(--dnse-gray-200);margin:0 auto var(--dnse-spacing-lg)}svg.spinner{animation:spin 1s linear infinite;border:none;height:auto;margin:0;width:auto}.course-stats{grid-gap:var(--dnse-spacing-md);display:grid;gap:var(--dnse-spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--dnse-spacing-2xl)}.table-container{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);overflow-x:auto}.course-table{min-width:900px}.course-table thead{background-color:var(--dnse-surface-elevated)}.course-table th{border-bottom:2px solid var(--dnse-border-light);color:var(--dnse-text-primary);font-weight:600;padding:var(--dnse-spacing-md);text-align:left;white-space:nowrap}.course-table th.sortable{cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}.course-table th.sortable:hover{background-color:var(--dnse-gray-100)}.course-table td{border-bottom:1px solid var(--dnse-gray-100);color:var(--dnse-text-secondary);padding:var(--dnse-spacing-md)}.course-table tbody tr{transition:background-color .2s}.course-table tbody tr:hover{background-color:var(--dnse-surface-elevated)}.col-course-name,.course-name{word-wrap:break-word;max-width:450px;min-width:180px;overflow-wrap:break-word;white-space:normal;word-break:break-word}.course-name-content{align-items:flex-start;display:flex;gap:8px;width:100%}.course-icon{flex-shrink:0;font-size:1.2rem;margin-top:2px}.col-course-name .course-name-content span:last-child,.course-name span:last-child{word-wrap:break-word;line-height:1.4;overflow:visible;overflow-wrap:break-word;text-overflow:clip;white-space:normal;word-break:break-word}.number-cell{font-family:Courier New,monospace;text-align:right}.date-cell{white-space:nowrap}.link-cell a{color:var(--dnse-primary);font-weight:500;text-decoration:none}.link-cell a:hover{text-decoration:underline}.action-cell{text-align:center}.view-detail-btn{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;justify-content:center;padding:var(--dnse-spacing-sm);text-decoration:none;transition:all .3s ease;white-space:nowrap}.view-detail-btn:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.no-data{color:var(--dnse-text-tertiary);font-size:1.1rem;padding:var(--dnse-spacing-2xl);text-align:center}.grid-container{grid-gap:var(--dnse-spacing-2xl);display:grid;gap:var(--dnse-spacing-2xl);grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:var(--dnse-spacing-sm)}.course-card-link{color:inherit;display:block;text-decoration:none}.course-card{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .3s ease}.course-card:hover{box-shadow:var(--dnse-shadow-lg);transform:translateY(-5px)}.card-header{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);display:flex;justify-content:space-between;padding:var(--dnse-spacing-md) var(--dnse-spacing-md)}.course-category{background:#ffffffe6;border-radius:var(--dnse-radius-sm);color:var(--dnse-primary-dark);font-size:11px;font-weight:700;letter-spacing:.5px;padding:4px var(--dnse-spacing-md)}.video-badge{background:#fff3;border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-xs);font-weight:500;padding:4px var(--dnse-spacing-sm)}.card-image{align-items:center;background:linear-gradient(135deg,var(--dnse-gray-100) 0,var(--dnse-border-light) 100%);display:flex;height:200px;justify-content:center;overflow:hidden;width:100%}.image-placeholder{text-align:center}.course-icon-large{font-size:80px;opacity:.6}.card-content{display:flex;flex:1 1;flex-direction:column;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-lg)}.card-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--dnse-text-primary);display:-webkit-box;font-size:var(--dnse-font-size-base);font-weight:600;line-height:1.4;margin:0;min-height:44px;overflow:hidden;text-overflow:ellipsis}.card-meta{color:var(--dnse-text-secondary);flex-direction:column;font-size:13px}.card-author,.card-date,.card-meta{display:flex;gap:var(--dnse-spacing-xs)}.card-author,.card-date{align-items:center}.card-progress{margin:var(--dnse-spacing-md) 0;padding:var(--dnse-spacing-sm) 0}.card-progress .progress-info{gap:var(--dnse-spacing-xs)}.card-progress .progress-bar-container{gap:var(--dnse-spacing-sm)}.card-progress .progress-bar{height:18px}.card-progress .progress-text{font-size:13px;font-weight:600;min-width:60px}.card-stats{border-top:1px solid var(--dnse-border-light);display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-md);padding-top:var(--dnse-spacing-sm)}.stat-item{align-items:center;color:var(--dnse-text-primary);display:flex;font-size:13px;gap:var(--dnse-spacing-xs)}.stat-icon{font-size:16px}.card-link,.stat-text{font-weight:500}.card-link{align-items:center;color:var(--dnse-primary);display:inline-flex;font-size:var(--dnse-font-size-sm);gap:var(--dnse-spacing-xs);margin-top:auto;padding-top:var(--dnse-spacing-sm);text-decoration:none;transition:color .3s}.card-link:hover{color:var(--dnse-primary-dark);text-decoration:underline}.no-data-grid{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);color:var(--dnse-text-tertiary);font-size:1.2rem;grid-column:1/-1;padding:60px var(--dnse-spacing-lg);text-align:center}@media (max-width:768px){.course-management-container{padding:var(--dnse-spacing-md)}.course-management-header h1{font-size:var(--dnse-font-size-xl)}.course-stats{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1.4rem}.course-controls{align-items:stretch;flex-direction:column}.search-box{min-width:100%}.view-controls{justify-content:space-between;width:100%}.table-container{border-radius:8px}.course-table td,.course-table th{font-size:.9rem;padding:10px}.grid-container{gap:15px;grid-template-columns:1fr}.card-image{height:160px}.course-icon-large{font-size:60px}}.action-cell{display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-sm)}.edit-btn{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:var(--dnse-spacing-xs);justify-content:center;padding:var(--dnse-spacing-sm);text-decoration:none;transition:all .3s ease}.edit-btn:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.edit-btn:active{transform:translateY(0)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:var(--dnse-spacing-lg);position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlideIn .3s ease-out;background:var(--dnse-surface);border-radius:var(--dnse-radius-xl);box-shadow:var(--dnse-shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border-bottom:2px solid var(--dnse-border-light);color:var(--dnse-text-inverse);display:flex;justify-content:space-between;padding:var(--dnse-spacing-lg)}.modal-header h2{font-size:1.5rem;font-weight:600;margin:0}.close-btn{align-items:center;background:#0000;border:none;border-radius:var(--dnse-radius-round);color:var(--dnse-text-inverse);cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;transition:all .2s ease;width:40px}.close-btn:hover{background:#fff3;transform:rotate(90deg)}.modal-body{flex:1 1;overflow-y:auto;padding:var(--dnse-spacing-lg)}.course-info-display{background:var(--dnse-surface-elevated);border-left:4px solid var(--dnse-primary);border-radius:var(--dnse-radius-md);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}.course-info-display,.form-group{margin-bottom:var(--dnse-spacing-lg)}.form-group label{color:var(--dnse-text-primary);display:block;font-size:.95rem;margin-bottom:var(--dnse-spacing-sm)}.form-input{border-radius:var(--dnse-radius-md);box-sizing:border-box;font-size:1rem;padding:var(--dnse-spacing-md)}.form-input:focus{box-shadow:0 0 0 3px #003b7a1a}.form-input:disabled{background:var(--dnse-gray-100)}.description-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--dnse-spacing-sm)}.preview-toggle-btn{background:var(--dnse-gray-100);border:1px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-md);cursor:pointer;font-size:.85rem;padding:var(--dnse-spacing-xs) var(--dnse-spacing-md);transition:all .2s ease}.preview-toggle-btn:hover{background:var(--dnse-gray-200);border-color:var(--dnse-primary)}.preview-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.form-textarea{border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);box-sizing:border-box;font-family:Monaco,Courier New,monospace;font-size:.95rem;min-height:200px;padding:var(--dnse-spacing-md)}.form-textarea:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px #003b7a1a}.form-textarea:disabled{background:var(--dnse-gray-100)}.markdown-preview{background:var(--dnse-surface-elevated);border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);max-height:auto;min-height:200px;padding:var(--dnse-spacing-lg)}.markdown-preview h1{font-size:1.8rem;margin-bottom:var(--dnse-spacing-lg);margin-top:0}.markdown-preview h2{font-size:1.5rem;margin-bottom:var(--dnse-spacing-md);margin-top:var(--dnse-spacing-lg)}.markdown-preview h3{font-size:1.2rem;margin-bottom:var(--dnse-spacing-sm);margin-top:var(--dnse-spacing-lg)}.markdown-preview ol,.markdown-preview ul{margin-bottom:var(--dnse-spacing-md);margin-left:var(--dnse-spacing-lg)}.markdown-preview li{margin-bottom:var(--dnse-spacing-xs)}.markdown-preview p{line-height:1.6;margin-bottom:var(--dnse-spacing-md)}.markdown-preview code{background:var(--dnse-gray-100);border-radius:var(--dnse-radius-sm);font-family:Monaco,Courier New,monospace;padding:2px var(--dnse-spacing-xs)}.markdown-preview pre{border-radius:var(--dnse-radius-md);color:var(--dnse-gray-100);margin-bottom:var(--dnse-spacing-md);padding:var(--dnse-spacing-md)}.markdown-preview pre code{background:#0000;color:inherit}.no-content{color:var(--dnse-text-tertiary);font-style:italic}.modal-footer{background:var(--dnse-surface-elevated);border-top:2px solid var(--dnse-border-light);display:flex;gap:var(--dnse-spacing-md);justify-content:flex-end;padding:var(--dnse-spacing-lg) var(--dnse-spacing-lg)}.cancel-btn,.save-btn{border:none;border-radius:var(--dnse-radius-md);cursor:pointer;font-size:1rem;font-weight:500;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all .3s ease}.cancel-btn{background:var(--dnse-border-light);color:var(--dnse-text-primary)}.cancel-btn:hover{background:var(--dnse-border-medium)}.cancel-btn:disabled{cursor:not-allowed;opacity:.5}.save-btn{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);color:var(--dnse-text-inverse)}.save-btn:hover:not(:disabled){box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.save-btn:disabled{cursor:not-allowed;opacity:.6}.success-message{background:var(--dnse-success-bg);border-left:4px solid var(--dnse-success);border-radius:var(--dnse-radius-md);color:var(--dnse-success-dark);margin-bottom:var(--dnse-spacing-lg);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}@media (max-width:768px){.modal-content{margin:10px;max-height:95vh}.modal-header h2{font-size:1.2rem}.modal-body,.modal-footer{padding:16px}.action-cell{flex-direction:column}.edit-btn,.view-detail-btn{justify-content:center;width:100%}}.progress-cell{min-width:200px}.progress-info{display:flex;flex-direction:column;gap:var(--dnse-spacing-xs)}.progress-bar-container{align-items:center;display:flex;gap:var(--dnse-spacing-sm)}.progress-bar{background:var(--dnse-border-light);border-radius:var(--dnse-radius-sm);flex:1 1;height:20px;overflow:hidden;position:relative}.progress-bar.complete{background:var(--dnse-success-bg)}.progress-fill{background:linear-gradient(90deg,var(--dnse-primary) 0,var(--dnse-success) 100%);border-radius:var(--dnse-radius-sm);height:100%;transition:width .5s ease}.progress-bar.complete .progress-fill{background:linear-gradient(90deg,var(--dnse-success-dark) 0,var(--dnse-success) 100%)}.progress-text{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-xs);font-weight:600;min-width:50px;text-align:right}.progress-details{font-size:11px;text-align:center}.pagination-container{align-items:center;background:var(--dnse-surface);border-top:2px solid var(--dnse-border-light);display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-md);justify-content:space-between;padding:var(--dnse-spacing-lg)}.pagination-info{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);font-weight:500}.pagination-controls{align-items:center;display:flex;flex-wrap:wrap;gap:var(--dnse-spacing-lg)}.page-size-selector{align-items:center;display:flex;gap:var(--dnse-spacing-sm)}.page-size-selector label{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-sm);font-weight:500}.page-size-selector select{background:var(--dnse-surface);border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);cursor:pointer;font-size:var(--dnse-font-size-sm);padding:var(--dnse-spacing-xs) var(--dnse-spacing-md);transition:all .3s ease}.page-size-selector select:hover{border-color:var(--dnse-primary)}.page-size-selector select:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px #003b7a1a;outline:none}.pagination-buttons{align-items:center;gap:var(--dnse-spacing-sm)}.pagination-btn{align-items:center;background:var(--dnse-surface);border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);color:var(--dnse-text-primary);cursor:pointer;display:inline-flex;font-size:var(--dnse-font-size-sm);font-weight:500;gap:var(--dnse-spacing-xs);justify-content:center;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all .3s ease}.pagination-btn:hover:not(:disabled){background:var(--dnse-primary);border-color:var(--dnse-primary);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-inverse);transform:translateY(-2px)}.pagination-btn:disabled{cursor:not-allowed;opacity:.4}.page-indicator{background:var(--dnse-surface-elevated);border-radius:var(--dnse-radius-md);color:var(--dnse-text-primary);font-size:var(--dnse-font-size-sm);font-weight:600;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg)}@media (max-width:768px){.pagination-container{align-items:stretch;flex-direction:column}.pagination-controls{flex-direction:column;width:100%}.pagination-buttons{flex-wrap:wrap;justify-content:center}.pagination-info{text-align:center}}.crawling-search-box{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.crawling-search-box .table-filter-select{border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:180px;padding:6px 12px}.course-table{border-collapse:collapse;min-width:100%!important;width:100%}@media (max-width:1024px){.course-management-container{padding-top:8px!important}.course-management-header{align-items:center!important;display:flex!important;flex-direction:column!important;margin-bottom:14px!important}.course-management-header,.course-management-header h1{justify-content:center!important;text-align:center!important}.course-management-header h1{font-size:1.5rem!important;gap:8px!important}.course-management-header p{font-size:13px!important;text-align:center!important}.table-container{box-sizing:border-box!important;overflow-x:auto!important}.course-table,.table-container{max-width:100%!important;width:100%!important}.course-table{min-width:100%!important;table-layout:fixed!important}.course-table td,.course-table th{box-sizing:border-box!important;font-size:11.5px!important;padding:6px 4px!important}.course-management-container .course-table .col-actions{max-width:60px!important;min-width:60px!important;padding:4px 2px!important;width:60px!important}.course-management-container .course-table .action-cell{align-items:center!important;display:flex!important;flex-direction:row!important;gap:3px!important;justify-content:center!important}.course-management-container .course-table .edit-btn,.course-management-container .course-table .view-detail-btn{align-items:center!important;border-radius:4px!important;display:inline-flex!important;height:24px!important;justify-content:center!important;min-width:24px!important;padding:3px 4px!important;width:24px!important}.course-management-container .course-table .edit-btn svg,.course-management-container .course-table .view-detail-btn svg{height:14px!important;width:14px!important}.course-management-container .course-table .col-authors,.course-management-container .course-table .col-created-date,.course-management-container .course-table .col-duration,.course-management-container .course-table .col-resource-link,.course-management-container .course-table .col-size,.course-management-container .course-table .col-videos{display:none!important}.course-management-container .course-table .col-course-name{max-width:none!important;overflow:visible!important;white-space:normal!important;width:auto!important}.course-management-container .course-table .col-course-name .course-name-content{align-items:flex-start!important;display:flex!important;gap:6px!important;overflow:visible!important;width:100%!important}.course-management-container .course-table .col-course-name .course-name-content span:last-child{font-size:12px!important;line-height:1.4!important;overflow:visible!important;overflow-wrap:break-word!important;text-overflow:clip!important;white-space:normal!important;word-break:break-word!important}.course-management-container .course-table .col-progress{max-width:110px!important;min-width:110px!important;width:110px!important}.course-management-container .course-table .col-sessions{max-width:70px!important;min-width:70px!important;text-align:right!important;width:70px!important}}@media (max-width:576px){.course-management-container{padding-left:10px!important;padding-right:10px!important;padding-top:8px!important}.course-management-header{align-items:center!important;display:flex!important;flex-direction:column!important;margin-bottom:14px!important}.course-management-header,.course-management-header h1{justify-content:center!important;text-align:center!important}.course-management-header h1{font-size:1.4rem!important;gap:8px!important}.course-management-header p{font-size:12px!important;text-align:center!important}.crawling-search-box{display:flex!important;flex-wrap:wrap!important;gap:8px!important;width:100%!important}.crawling-search-box .date-filter-group{align-items:center!important;display:flex!important;flex-basis:calc(50% - 4px);flex-grow:1;flex-shrink:1;gap:4px!important;min-width:0!important}.crawling-search-box .date-filter-group label{font-size:12px!important;white-space:nowrap!important}.crawling-search-box .date-input{font-size:11.5px!important;min-width:0!important;padding:5px 4px!important;width:100%!important}.crawling-search-box .table-filter-group{align-items:center!important;display:flex!important;flex:1 1 100%!important;gap:8px!important;margin-top:4px!important;width:100%!important}.crawling-search-box .table-filter-group label{font-size:12px!important;white-space:nowrap!important}.crawling-search-box .table-filter-select{flex:1 1!important;font-size:12px!important;min-width:0!important;padding:6px 8px!important;width:100%!important}.table-container{box-sizing:border-box!important;overflow-x:auto!important}.course-table,.table-container{max-width:100%!important;width:100%!important}.course-table{min-width:100%!important;table-layout:fixed!important}.course-table td,.course-table th{box-sizing:border-box!important;font-size:11px!important;padding:6px 3px!important}.course-management-container .course-table .col-actions{max-width:58px!important;min-width:58px!important;padding:4px 2px!important;width:58px!important}.course-management-container .course-table .action-cell{align-items:center!important;display:flex!important;flex-direction:row!important;gap:3px!important;justify-content:center!important}.course-management-container .course-table .edit-btn,.course-management-container .course-table .view-detail-btn{align-items:center!important;border-radius:4px!important;display:inline-flex!important;height:24px!important;justify-content:center!important;min-width:24px!important;padding:3px 4px!important;width:24px!important}.course-management-container .course-table .edit-btn svg,.course-management-container .course-table .view-detail-btn svg{height:14px!important;width:14px!important}.course-management-container .course-table .col-course-name{max-width:none!important;overflow:visible!important;white-space:normal!important;width:auto!important}.course-management-container .course-table .col-course-name .course-name-content{align-items:flex-start!important;display:flex!important;gap:4px!important;overflow:visible!important;width:100%!important}.course-management-container .course-table .col-course-name .course-name-content span:last-child{font-size:11px!important;line-height:1.3!important;overflow:visible!important;overflow-wrap:break-word!important;text-overflow:clip!important;white-space:normal!important;word-break:break-word!important}.course-management-container .course-table .col-authors{max-width:75px!important;white-space:normal!important;width:75px!important;word-break:break-word!important}.course-management-container .course-table .col-progress{max-width:75px!important;min-width:75px!important;width:75px!important}.course-management-container .course-table .col-progress .progress-container{gap:2px!important}.course-management-container .course-table .col-progress .progress-text{font-size:10px!important}.course-management-container .course-table .col-created-date,.course-management-container .course-table .col-duration,.course-management-container .course-table .col-resource-link,.course-management-container .course-table .col-sessions,.course-management-container .course-table .col-size,.course-management-container .course-table .col-videos{display:none!important}}.course-detail-container{box-sizing:border-box;margin:0 auto;max-width:100%;padding:var(--dnse-spacing-lg);width:100%}.detail-header{gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-xl)}.detail-header,.detail-title{align-items:center;display:flex}.detail-title{color:var(--dnse-text-primary);flex:1 1;font-size:var(--dnse-font-size-3xl);font-weight:700;gap:var(--dnse-spacing-sm);line-height:1.3;margin:0}.detail-info-grid{grid-gap:var(--dnse-spacing-lg);display:grid;gap:var(--dnse-spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:var(--dnse-spacing-xl)}.info-card{align-items:center;background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);display:flex;gap:var(--dnse-spacing-md);padding:var(--dnse-spacing-lg);transition:all .3s ease}.info-card:hover{box-shadow:var(--dnse-shadow-lg);transform:translateY(-3px)}.info-icon{flex-shrink:0;font-size:32px}.info-content{display:flex;flex:1 1;flex-direction:column;gap:var(--dnse-spacing-xs)}.info-label{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-xs);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-value{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);font-weight:600;word-break:break-word}.info-link{color:var(--dnse-primary);font-weight:600;text-decoration:none;transition:color .3s ease}.info-link:hover{color:var(--dnse-primary-dark);text-decoration:underline}.detail-section{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);margin-bottom:var(--dnse-spacing-2xl);padding:var(--dnse-spacing-2xl)}.section-title{border-bottom:2px solid var(--dnse-border-light);color:var(--dnse-text-primary);font-size:var(--dnse-font-size-xl);font-weight:700;margin:0 0 var(--dnse-spacing-lg) 0;padding-bottom:var(--dnse-spacing-md)}.markdown-content{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm)}.markdown-content h1{font-weight:700;margin-bottom:var(--dnse-spacing-md);margin-top:var(--dnse-spacing-2xl)}.markdown-content h2{font-weight:600;margin-bottom:var(--dnse-spacing-md);margin-top:var(--dnse-spacing-lg)}.markdown-content h3{color:var(--dnse-text-secondary);font-weight:600;margin-bottom:var(--dnse-spacing-sm);margin-top:var(--dnse-spacing-md)}.markdown-content ol,.markdown-content ul{margin-bottom:var(--dnse-spacing-md);margin-left:var(--dnse-spacing-2xl)}.markdown-content li{margin-bottom:var(--dnse-spacing-sm)}.markdown-content p{margin-bottom:var(--dnse-spacing-md)}.markdown-content code{font-family:Courier New,monospace;font-size:.9em}.markdown-content pre{background:var(--dnse-text-primary);color:var(--dnse-gray-100);margin-bottom:var(--dnse-spacing-md)}.markdown-content pre code{background:#0000}.sessions-grid{grid-gap:var(--dnse-spacing-lg);display:grid;gap:var(--dnse-spacing-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.session-card-link{color:inherit;display:block;text-decoration:none}.session-card{background:linear-gradient(135deg,var(--dnse-surface-elevated) 0,var(--dnse-gray-100) 100%);border-left:4px solid var(--dnse-primary);border-radius:var(--dnse-radius-lg);padding:var(--dnse-spacing-lg);transition:all .3s ease}.session-card:hover{border-left-color:var(--dnse-primary-dark);box-shadow:var(--dnse-shadow-lg);transform:translateY(-3px)}.session-header{justify-content:space-between;margin-bottom:var(--dnse-spacing-sm)}.session-number{color:var(--dnse-primary);font-size:var(--dnse-font-size-xs);font-weight:700;letter-spacing:.5px;text-transform:uppercase}.session-video-count{background:var(--dnse-primary);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:11px;font-weight:600;padding:4px var(--dnse-spacing-sm)}.session-title{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);font-weight:600;line-height:1.4;margin:0 0 var(--dnse-spacing-md) 0}.session-stats{display:flex;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-md)}.session-stat{align-items:center;color:var(--dnse-text-secondary);display:flex;font-size:13px;font-weight:500;gap:var(--dnse-spacing-xs)}.session-stat .stat-icon{font-size:16px}.session-meta{border-top:1px solid var(--dnse-border-medium);font-size:var(--dnse-font-size-xs);padding-top:var(--dnse-spacing-md)}.no-sessions,.session-meta{color:var(--dnse-text-secondary)}.no-sessions{font-size:var(--dnse-font-size-base);padding:var(--dnse-spacing-2xl);text-align:center}.info-card.progress-card{grid-column:span 2}.progress-info{width:100%}.progress-bar-container{background-color:var(--dnse-gray-200);border-radius:var(--dnse-radius-sm);height:8px;margin-bottom:var(--dnse-spacing-sm);overflow:hidden;width:100%}.progress-bar-fill{border-radius:var(--dnse-radius-sm);height:100%;transition:width .3s ease}.progress-text{align-items:center;display:flex;font-size:var(--dnse-font-size-sm);gap:var(--dnse-spacing-md)}.progress-percentage{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);font-weight:700}.progress-details{color:var(--dnse-text-secondary)}.completed-badge{background:var(--dnse-success);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:11px;font-weight:600;padding:2px var(--dnse-spacing-sm)}@media (max-width:1024px){.course-detail-container{padding:var(--dnse-spacing-md)}.detail-title{font-size:1.25rem!important;line-height:1.35!important}.detail-info-grid{gap:var(--dnse-spacing-md)!important;grid-template-columns:1fr!important;margin-bottom:var(--dnse-spacing-lg)!important}.detail-info-grid .info-card{display:none!important}.detail-info-grid .info-card.progress-card{display:flex!important;grid-column:span 1!important;width:100%!important}.sessions-grid{grid-template-columns:1fr!important}.section-title{font-size:var(--dnse-font-size-base)!important}.detail-section{margin-bottom:var(--dnse-spacing-lg)!important;padding:var(--dnse-spacing-lg)!important}}.session-container{box-sizing:border-box;margin:0 auto;max-width:100%;min-height:calc(100vh - 40px);padding:var(--dnse-spacing-lg);width:100%}.session-header{align-items:center;display:flex;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-lg)}.back-button{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;flex-shrink:0;height:38px;justify-content:center;margin-bottom:0;padding:0;transition:all .3s ease;width:38px}.back-button:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.breadcrumb{align-items:center;color:var(--dnse-text-secondary);display:flex;flex:1 1;flex-wrap:wrap;font-size:var(--dnse-font-size-sm);gap:var(--dnse-spacing-sm)}.breadcrumb-course{color:var(--dnse-text-primary);font-weight:600}.breadcrumb-separator{color:var(--dnse-border-medium);font-size:18px}.breadcrumb-session{color:var(--dnse-primary);font-weight:600}.session-content{grid-gap:var(--dnse-spacing-lg);align-items:start;display:grid;gap:var(--dnse-spacing-lg);grid-template-columns:repeat(12,minmax(0,1fr))}.session-content,.video-section{box-sizing:border-box;max-width:100%;width:100%}.video-section{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);grid-column:span 12;min-width:0;padding:var(--dnse-spacing-lg)}@media (max-width:1024px){.session-content{gap:var(--dnse-spacing-md)!important;grid-template-columns:1fr!important}.video-section{grid-column:span 12!important;max-width:100%!important;padding:var(--dnse-spacing-md)!important;width:100%!important}}.video-player{aspect-ratio:16/9;background:#000;border-radius:var(--dnse-radius-md);box-sizing:border-box;max-width:100%;overflow:hidden;position:relative;width:100%}.video-element{height:100%;object-fit:contain;width:100%}.caption-toggle-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border:2px solid #ffffff4d;border-radius:var(--dnse-radius-md);bottom:60px;color:var(--dnse-text-inverse);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:var(--dnse-spacing-xs);padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);position:absolute;right:15px;transition:all .3s ease;z-index:10}.caption-toggle-button:hover{background:#000000d9;border-color:#ffffff80;box-shadow:var(--dnse-shadow-md);transform:translateY(-2px)}.caption-toggle-button:active{transform:translateY(0)}.video-info{margin-top:var(--dnse-spacing-lg)}.video-title{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-lg);font-weight:700;line-height:1.4;margin:0 0 var(--dnse-spacing-md) 0;word-break:break-word}.video-meta{border-bottom:1px solid var(--dnse-border-light);justify-content:space-between;margin-bottom:var(--dnse-spacing-md);padding-bottom:var(--dnse-spacing-md)}.video-meta,.video-meta-items{align-items:center;display:flex;gap:var(--dnse-spacing-md)}.video-meta-items{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}.modules-drawer-toggle{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);box-shadow:var(--dnse-shadow-sm);color:var(--dnse-text-inverse);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:600;gap:var(--dnse-spacing-xs);margin-left:auto;padding:6px 14px;transition:all .3s ease}.modules-drawer-toggle:hover{box-shadow:var(--dnse-shadow-md);transform:translateY(-1px)}.modules-drawer-toggle.active{background:var(--dnse-primary-dark)}.modules-drawer-backdrop{animation:drawerFadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;bottom:0;display:flex;justify-content:flex-end;left:0;position:fixed;right:0;top:0;z-index:1000}.modules-section.drawer-mode{animation:drawerSlideIn .3s cubic-bezier(.16,1,.3,1);background:var(--dnse-surface);box-shadow:-4px 0 24px #00000040;display:flex;flex-direction:column;height:100vh;max-width:90vw;overflow-y:auto;padding:var(--dnse-spacing-lg);width:420px}.modules-close-btn{align-items:center;background:none;border:none;border-radius:var(--dnse-radius-sm);color:var(--dnse-text-secondary);cursor:pointer;display:flex;justify-content:center;padding:var(--dnse-spacing-xs);transition:color .2s ease}.modules-close-btn:hover{color:var(--dnse-danger)}.bottom-sheet-handle-bar{display:none;justify-content:center;padding:4px 0 10px;width:100%}.bottom-sheet-handle{background:var(--dnse-border-medium);border-radius:2px;height:4px;width:40px}@media (max-width:1024px){.modules-drawer-toggle span{display:none!important}.modules-drawer-toggle{border-radius:var(--dnse-radius-md)!important;justify-content:center!important;padding:8px!important}.bottom-sheet-handle-bar{display:flex}.modules-drawer-backdrop{align-items:flex-end!important;justify-content:center!important}.modules-section.drawer-mode{animation:drawerSlideUp .3s cubic-bezier(.16,1,.3,1)!important;border-radius:20px 20px 0 0!important;box-shadow:0 -8px 30px #0000004d!important;height:75vh!important;max-height:80vh!important;max-width:100vw!important;padding:var(--dnse-spacing-md) var(--dnse-spacing-lg) var(--dnse-spacing-lg) var(--dnse-spacing-lg)!important;width:100%!important}}@keyframes drawerSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes drawerSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}.video-duration,.video-format,.video-size{align-items:center;color:var(--dnse-text-secondary);display:flex;font-size:13px;gap:var(--dnse-spacing-xs)}.video-controls{align-items:center;background:var(--dnse-surface-elevated);border-radius:var(--dnse-radius-md);display:flex;justify-content:space-between;padding:var(--dnse-spacing-md)}.nav-button{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:var(--dnse-radius-md);color:var(--dnse-text-inverse);cursor:pointer;font-size:var(--dnse-font-size-sm);font-weight:600;padding:var(--dnse-spacing-sm) var(--dnse-spacing-lg);transition:all .3s ease}.nav-button:hover:not(:disabled){box-shadow:var(--dnse-shadow-sm);transform:translateY(-2px)}.nav-button:disabled{background:var(--dnse-border-medium);cursor:not-allowed;transform:none}.video-counter{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-sm);font-weight:600}.no-video{align-items:center;background:var(--dnse-surface-elevated);border-radius:var(--dnse-radius-md);color:var(--dnse-text-secondary);display:flex;font-size:var(--dnse-font-size-base);justify-content:center;min-height:400px}.modules-section{background:var(--dnse-surface);border-radius:var(--dnse-radius-lg);box-shadow:var(--dnse-shadow-md);display:flex;flex-direction:column;max-height:calc(100vh - 120px);position:sticky;top:var(--dnse-spacing-lg)}.modules-header{align-items:center;border-bottom:2px solid var(--dnse-border-light);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--dnse-spacing-lg)}.modules-header h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-lg);font-weight:700;margin:0}.modules-count{background:var(--dnse-primary);border-radius:var(--dnse-radius-lg);color:var(--dnse-text-inverse);font-size:var(--dnse-font-size-xs);font-weight:600;padding:4px var(--dnse-spacing-md)}.modules-list{flex:1 1;overflow-y:auto;padding:var(--dnse-spacing-sm)}.modules-list::-webkit-scrollbar{width:8px}.modules-list::-webkit-scrollbar-track{background:var(--dnse-gray-100);border-radius:var(--dnse-radius-sm)}.modules-list::-webkit-scrollbar-thumb{background:var(--dnse-border-medium);border-radius:var(--dnse-radius-sm)}.modules-list::-webkit-scrollbar-thumb:hover{background:var(--dnse-border-dark)}.module-item{border:2px solid #0000;border-radius:var(--dnse-radius-md);cursor:pointer;display:flex;gap:var(--dnse-spacing-md);margin-bottom:var(--dnse-spacing-sm);padding:var(--dnse-spacing-md);transition:all .2s ease}.module-item:hover{background:var(--dnse-surface-elevated)}.module-item.active{background:linear-gradient(135deg,var(--dnse-primary-lighter) 0,#0059b31a 100%);border-color:var(--dnse-primary)}.module-item.non-video{cursor:default;opacity:.7}.module-item.non-video:hover{background:#0000}.module-checkbox{align-items:center;border:2px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-sm);display:flex;flex-shrink:0;font-size:var(--dnse-font-size-xs);height:24px;justify-content:center;width:24px}.module-item.active .module-checkbox{background:var(--dnse-primary);border-color:var(--dnse-primary)}.check-icon{color:var(--dnse-border-medium)}.module-item.active .check-icon,.playing-icon{color:var(--dnse-text-inverse)}.module-content{flex:1 1;min-width:0}.module-title{align-items:center;display:flex;gap:var(--dnse-spacing-sm);margin-bottom:var(--dnse-spacing-xs)}.file-icon{flex-shrink:0;font-size:16px}.file-name{color:var(--dnse-text-primary);flex:1 1;font-size:var(--dnse-font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-item.active .file-name{color:var(--dnse-primary);font-weight:600}.module-meta{color:var(--dnse-text-secondary);display:flex;font-size:var(--dnse-font-size-xs);gap:var(--dnse-spacing-md)}.module-duration,.module-size{align-items:center;display:flex;gap:var(--dnse-spacing-xs)}.related-header{align-items:center;border-top:2px solid var(--dnse-border-light);display:flex;justify-content:space-between;margin-top:var(--dnse-spacing-lg);padding:var(--dnse-spacing-md) var(--dnse-spacing-md) var(--dnse-spacing-sm) var(--dnse-spacing-md)}.related-header h4{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-sm);font-weight:600;margin:0}.related-count{color:var(--dnse-text-secondary);font-size:var(--dnse-font-size-xs);font-weight:500}.related-list{display:flex;flex-direction:column;gap:var(--dnse-spacing-sm);padding:0 var(--dnse-spacing-md) var(--dnse-spacing-md) var(--dnse-spacing-md)}.related-item{background:var(--dnse-surface-elevated);border:1px solid var(--dnse-border-light);border-radius:var(--dnse-radius-md);padding:var(--dnse-spacing-sm) var(--dnse-spacing-md);transition:all .2s ease}.related-item:hover{background:var(--dnse-gray-100);border-color:var(--dnse-border-medium)}.related-content{justify-content:space-between}.related-content,.related-title{align-items:center;display:flex;gap:var(--dnse-spacing-sm)}.related-title{flex:1 1;min-width:0}.related-title .file-name{color:var(--dnse-text-primary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.related-size{color:var(--dnse-text-secondary);font-size:11px;font-weight:500;white-space:nowrap}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:var(--dnse-spacing-md);justify-content:center;min-height:400px}.spinner{border:4px solid var(--dnse-gray-200);border-radius:var(--dnse-radius-round);border-top-color:var(--dnse-primary);height:50px;width:50px}.error-message{border-radius:var(--dnse-radius-md);margin-bottom:var(--dnse-spacing-lg);padding:var(--dnse-spacing-md) var(--dnse-spacing-lg)}@media (max-width:1200px){.session-content{grid-template-columns:1fr 350px}}@media (max-width:992px){.session-content{grid-template-columns:1fr}.modules-section{max-height:500px;position:static}}@media (max-width:768px){.session-container,.video-section{padding:var(--dnse-spacing-md)}.video-title{font-size:var(--dnse-font-size-lg)}.video-meta{flex-wrap:nowrap!important;gap:var(--dnse-spacing-md)!important;overflow-x:auto!important;white-space:nowrap!important}.video-controls,.video-meta{align-items:center!important;flex-direction:row!important}.video-controls{gap:var(--dnse-spacing-sm)!important;justify-content:space-between!important;width:100%!important}.nav-button{padding:var(--dnse-spacing-xs) var(--dnse-spacing-md)!important;width:auto!important}.nav-button,.video-counter{flex-shrink:0!important;font-size:12px!important}.video-counter{white-space:nowrap!important}.breadcrumb{font-size:var(--dnse-font-size-xs)}}.notes-section{background:var(--dnse-surface-elevated);border:2px solid var(--dnse-border-light);border-radius:var(--dnse-radius-lg);margin-top:var(--dnse-spacing-xl);padding:var(--dnse-spacing-lg)}.notes-header{align-items:center;border-bottom:2px solid var(--dnse-border-medium);display:flex;flex-wrap:nowrap;justify-content:space-between;margin-bottom:var(--dnse-spacing-md);padding-bottom:var(--dnse-spacing-md)}.notes-header h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-lg);margin:0}.notes-controls{display:flex;gap:var(--dnse-spacing-sm)}.notes-controls,.preview-toggle{align-items:center;flex-shrink:0}.preview-toggle{background:var(--dnse-surface);border:1.5px solid var(--dnse-primary);border-radius:var(--dnse-radius-md);color:var(--dnse-primary);cursor:pointer;display:inline-flex;height:34px;justify-content:center;padding:0;transition:all .3s ease;width:34px}.preview-toggle:hover{transform:translateY(-1px)}.preview-toggle.active,.preview-toggle:hover{background:var(--dnse-primary);color:var(--dnse-text-inverse)}.completion-badge{background:var(--dnse-success-bg);border:1px solid var(--dnse-success);border-radius:var(--dnse-radius-md);color:var(--dnse-success-dark)}.completion-badge,.save-status{align-items:center;display:inline-flex;flex-shrink:0;height:34px;justify-content:center;padding:0;width:34px}.save-status{border-radius:var(--dnse-radius-md)}.save-status.saved{background:var(--dnse-success-bg);color:var(--dnse-success-dark)}.save-status.saving{background:var(--dnse-warning-bg);color:var(--dnse-warning-dark)}.notes-editor{background:var(--dnse-surface);border:2px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-md);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--dnse-font-size-sm);line-height:1.6;min-height:300px;padding:var(--dnse-spacing-md);resize:vertical;width:100%}.notes-editor:focus{border-color:var(--dnse-primary);outline:none}.notes-preview{background:var(--dnse-surface);border:2px solid var(--dnse-border-medium);border-radius:var(--dnse-radius-md);min-height:300px;padding:var(--dnse-spacing-lg)}.markdown-content{color:var(--dnse-text-primary);line-height:1.8}.markdown-content h1{border-bottom:2px solid var(--dnse-border-light);font-size:var(--dnse-font-size-xl);padding-bottom:var(--dnse-spacing-sm)}.markdown-content h1,.markdown-content h2{color:var(--dnse-text-primary);margin:var(--dnse-spacing-lg) 0 var(--dnse-spacing-sm)}.markdown-content h2{font-size:var(--dnse-font-size-lg)}.markdown-content h3{color:var(--dnse-text-primary);font-size:var(--dnse-font-size-base);margin:var(--dnse-spacing-md) 0 var(--dnse-spacing-xs)}.markdown-content ol,.markdown-content ul{margin:var(--dnse-spacing-sm) 0;padding-left:var(--dnse-spacing-xl)}.markdown-content li{margin:var(--dnse-spacing-xs) 0}.markdown-content code{background:var(--dnse-surface-elevated);border-radius:var(--dnse-radius-sm);color:var(--dnse-danger);font-family:Monaco,Menlo,monospace;font-size:13px;padding:2px var(--dnse-spacing-xs)}.markdown-content pre{background:var(--dnse-surface-elevated);border-radius:var(--dnse-radius-md);margin:var(--dnse-spacing-md) 0;overflow-x:auto;padding:var(--dnse-spacing-md)}.markdown-content pre code{background:none;color:inherit;padding:0}.markdown-content blockquote{background:var(--dnse-surface-elevated);border-left:4px solid var(--dnse-primary);color:var(--dnse-text-secondary);margin:var(--dnse-spacing-md) 0;padding:var(--dnse-spacing-sm) var(--dnse-spacing-md)}.markdown-content p{margin:var(--dnse-spacing-sm) 0}.markdown-content strong{color:var(--dnse-text-primary);font-weight:700}.markdown-content em{color:var(--dnse-text-primary);font-style:italic}.empty-notes{color:var(--dnse-text-tertiary);font-style:italic;padding:var(--dnse-spacing-2xl);text-align:center}.image-upload-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1050}.image-upload-modal{animation:slideUp .4s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:24px;box-shadow:0 24px 64px #667eea4d;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:100%}.image-modal-header{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border-bottom:none;color:#fff;display:flex;justify-content:space-between;padding:24px 32px}.image-modal-title{align-items:center;display:flex;font-size:24px;font-weight:700;gap:12px;letter-spacing:-.5px;margin:0}.image-modal-title svg{stroke-width:2.5;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.modal-close-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:36px}.modal-close-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.1)}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.image-modal-body{flex:1 1;overflow-y:auto;padding:32px}.form-label{color:var(--dnse-text-primary);font-size:14px;letter-spacing:-.2px}.form-label-required:after{color:var(--dnse-danger);content:" *"}.form-input{background:#fff;border:2px solid var(--dnse-border-light);border-radius:12px;color:var(--dnse-text-primary);outline:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.form-input:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 3px #667eea1a}.form-input:disabled{background:var(--dnse-bg-secondary);opacity:.6}.form-hint{color:var(--dnse-text-secondary);font-size:12px;font-weight:500;margin-top:6px}.file-input-wrapper{position:relative}.file-input{background:var(--dnse-bg-secondary);border:2px dashed var(--dnse-border-medium);border-radius:12px;color:var(--dnse-text-secondary);cursor:pointer;font-size:14px;padding:12px 16px;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.file-input:hover:not(:disabled){background:var(--dnse-bg-tertiary);border-color:var(--dnse-primary)}.file-input:disabled{cursor:not-allowed;opacity:.5}.file-input::file-selector-button{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-right:12px;padding:8px 16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.file-input::file-selector-button:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.paste-area{background:linear-gradient(135deg,var(--dnse-bg-secondary) 0,var(--dnse-bg-tertiary) 100%);border:2px dashed var(--dnse-border-medium);border-radius:16px;cursor:pointer;min-height:180px;overflow:hidden;padding:32px;position:relative;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.paste-area:focus{background:linear-gradient(135deg,var(--dnse-bg-tertiary) 0,var(--dnse-success-bg) 100%);border-color:var(--dnse-primary);box-shadow:0 0 0 3px #667eea1a;outline:none}.paste-area:hover:not(:has(.paste-preview)){background:linear-gradient(135deg,var(--dnse-bg-tertiary) 0,var(--dnse-success-bg) 100%);border-color:var(--dnse-primary);box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.paste-area-empty{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center}.paste-icon{stroke-width:2;animation:float 3s ease-in-out infinite;color:var(--dnse-primary)}.paste-text{font-size:15px;font-weight:600}.paste-hint,.paste-text{color:var(--dnse-text-secondary);margin:0}.paste-hint{font-size:13px;font-weight:500}.paste-preview{align-items:center;animation:fadeIn .3s ease-out;display:flex;flex-direction:column;gap:16px}.paste-preview img{border-radius:12px;box-shadow:0 8px 24px #0000001f;max-height:250px;max-width:100%;object-fit:contain}.paste-preview-badge{align-items:center;background:linear-gradient(135deg,#48bb78,#38a169);border-radius:24px;box-shadow:0 4px 12px #48bb784d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px}.upload-progress{background:var(--dnse-bg-tertiary);height:8px;margin-bottom:24px}.upload-progress,.upload-progress-bar{border-radius:12px;overflow:hidden;position:relative}.upload-progress-bar{animation:progressAnimation 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);height:100%}.upload-progress-bar:after{animation:shimmer 1s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.upload-progress-text{color:var(--dnse-primary);font-size:13px;font-weight:600;margin-top:8px;text-align:center}.error-message{animation:shake .5s ease-in-out;background:linear-gradient(135deg,#fed7d7,#feb2b2);border-left:4px solid var(--dnse-danger);border-radius:12px;color:#742a2a;font-weight:500;gap:12px;margin-bottom:24px;padding:16px 20px}.error-icon{color:var(--dnse-danger);flex-shrink:0}.image-modal-footer{background:var(--dnse-bg-secondary);border-top:1px solid var(--dnse-border-light);display:flex;gap:12px;justify-content:flex-end;padding:24px 32px}.modal-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:-.2px;outline:none;padding:12px 24px;transition:all .2s cubic-bezier(.4,0,.2,1)}.modal-btn-cancel{background:#fff;border:2px solid var(--dnse-border-light);color:var(--dnse-text-secondary)}.modal-btn-cancel:hover:not(:disabled){background:var(--dnse-bg-secondary);border-color:var(--dnse-border-medium);transform:translateY(-1px)}.modal-btn-primary{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;box-shadow:0 4px 12px #667eea4d;color:#fff}.modal-btn-primary:hover:not(:disabled){box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.modal-btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes progressAnimation{0%{width:0}50%{width:100%}to{width:100%}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:768px){.image-upload-modal{border-radius:20px;margin:0 16px;max-width:100%}.image-modal-header{padding:20px 24px}.image-modal-title{font-size:20px}.image-modal-body{padding:24px}.image-modal-footer{flex-direction:column;padding:20px 24px}.modal-btn{justify-content:center;width:100%}.paste-area{min-height:150px;padding:24px}}.file-input:focus,.form-input:focus,.modal-btn:focus,.modal-close-btn:focus,.paste-area:focus{outline:2px solid var(--dnse-primary);outline-offset:2px}@media (prefers-color-scheme:dark){.image-modal-body,.image-upload-modal{background:var(--dnse-text-primary)}.form-input,.form-label,.paste-text{color:var(--dnse-border-light)}.form-input{border-color:var(--dnse-text-secondary)}.file-input,.form-input,.form-input:disabled{background:var(--dnse-text-primary)}.file-input{color:var(--dnse-border-light)}.file-input,.paste-area{border-color:var(--dnse-text-secondary)}.paste-area{background:linear-gradient(135deg,var(--dnse-text-primary) 0,var(--dnse-text-secondary) 100%)}.image-modal-footer{background:var(--dnse-text-primary);border-top-color:var(--dnse-text-secondary)}.modal-btn-cancel{background:var(--dnse-text-primary);border-color:var(--dnse-text-secondary);color:var(--dnse-border-light)}.modal-btn-cancel:hover:not(:disabled){background:var(--dnse-text-secondary)}}.my-notes-page-detail{background:linear-gradient(135deg,var(--dnse-bg-secondary) 0,var(--dnse-bg-tertiary) 100%);color:var(--dnse-text);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;height:100vh}.notes-header{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border-bottom:1px solid #ffffff1a;box-shadow:0 4px 20px #667eea40;padding:16px 24px}.notes-header-content{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-start;margin:0 auto;max-width:100%;width:100%}.btn-back{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-back:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-1px)}.note-info{align-items:center;display:flex;gap:16px}.note-type-badge{background:#fff;border-radius:10px;box-shadow:0 4px 12px #0000001a;display:flex;font-size:13px;font-weight:700;letter-spacing:.5px;padding:10px 20px;text-transform:uppercase;transform:translateY(-2px)}.note-info h1{color:#fff;font-size:22px;font-weight:600;letter-spacing:-.3px;margin:0}.header-actions{align-items:center;display:flex;gap:12px;margin-left:auto}.unsaved-indicator{color:var(--dnse-warning);font-size:13px;font-weight:600}.last-saved{color:#fffc;font-size:13px;font-weight:500}.btn-save,.btn-toggle{align-items:center;background:#fff;border:none;border-radius:10px;box-shadow:0 4px 12px #0000001a;color:var(--dnse-primary);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-save:hover,.btn-toggle:hover{background:var(--dnse-primary-lighter);box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.btn-save:disabled{cursor:not-allowed;opacity:.6}.spinner{animation:spin 1s linear infinite}.error-message{border-radius:8px;justify-content:space-between;margin:16px 24px;padding:16px}.btn-login{background:var(--dnse-danger-dark);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:8px 16px}.notes-content{grid-gap:0;box-sizing:border-box;display:grid;flex:1 1;gap:0;grid-template-columns:1fr 2fr;margin:0 auto;max-width:100%;overflow:hidden;width:100%}.notes-content.editor-only,.notes-content.preview-only{grid-template-columns:1fr}.notes-content.with-outline{grid-template-columns:1fr 2fr 280px}.notes-content.editor-only.with-outline,.notes-content.preview-only.with-outline{grid-template-columns:1fr 280px}.view-mode-selector{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #ffffff40;border-radius:10px;box-shadow:0 4px 12px #0000001a;gap:2px;padding:3px}.btn-mode,.view-mode-selector{align-items:center;display:flex}.btn-mode{background:#0000;border:none;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:13px;font-weight:600;gap:6px;padding:7px 14px;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-mode:hover{background:#fff3;color:#fff}.btn-mode.active{background:#fff;box-shadow:0 2px 8px #00000026;color:var(--dnse-primary)}.editor-panel{background:#fff;border-right:1px solid var(--dnse-border-light);display:flex;flex-direction:column;overflow:hidden}.editor-toolbar{background:var(--dnse-surface-elevated);border-bottom:1px solid var(--dnse-border-light);flex-wrap:wrap;overflow-x:auto;padding:12px 16px}.editor-toolbar,.toolbar-group{align-items:center;display:flex;gap:4px}.toolbar-divider{background:var(--dnse-border-medium);height:24px;margin:0 8px;width:1px}.toolbar-btn{align-items:center;background:#fff;border:1px solid var(--dnse-border-light);border-radius:6px;color:var(--dnse-text-secondary);cursor:pointer;display:flex;font-size:12px;font-weight:600;height:32px;justify-content:center;min-width:32px;padding:0 8px;transition:all .2s}.toolbar-btn:hover{background:var(--dnse-primary);border-color:var(--dnse-primary);color:#fff;transform:translateY(-1px)}.markdown-editor{background:#fff;border:none;color:var(--dnse-text-primary);flex:1 1;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.8;outline:none;overflow-y:auto;padding:24px;resize:none;width:100%}.preview-panel{background:#fff;display:flex;flex-direction:column;overflow:hidden}.preview-header{align-items:center;background:var(--dnse-surface-elevated);border-bottom:1px solid var(--dnse-border-light);display:flex;justify-content:space-between;padding:14px 20px}.btn-outline-toggle-mobile{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:none;height:32px;justify-content:center;transition:all .2s ease;width:32px}.btn-outline-toggle-mobile:hover{background:#ffffff4d}.preview-header h3{color:#fff;font-size:16px;font-weight:700;letter-spacing:-.2px;margin:0}.markdown-preview{color:var(--dnse-text-primary);flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.8;overflow-y:auto;padding:32px 40px}.markdown-preview h1{border-bottom:2px solid var(--dnse-border-light);font-size:32px;margin:32px 0 16px;padding-bottom:8px}.markdown-preview h1,.markdown-preview h2{color:var(--dnse-text-primary);font-weight:700}.markdown-preview h2{border-bottom:1px solid var(--dnse-border-light);font-size:26px;margin:28px 0 14px;padding-bottom:6px}.markdown-preview h3{color:var(--dnse-text-primary);font-size:22px;font-weight:700;margin:24px 0 12px}.markdown-preview h4{color:var(--dnse-text-secondary);font-size:18px;font-weight:700;margin:20px 0 10px}.markdown-preview p{line-height:1.8;margin:12px 0}.markdown-preview ol,.markdown-preview ul{margin:12px 0;padding-left:28px}.markdown-preview li{line-height:1.7;margin:8px 0}.markdown-preview code{background:var(--dnse-bg-secondary);border:1px solid var(--dnse-border-light);border-radius:4px;color:var(--dnse-danger);font-family:Consolas,Monaco,monospace;font-size:.9em;padding:2px 6px}.markdown-preview pre{background:var(--dnse-text-primary);border-radius:8px;color:var(--dnse-bg-secondary);margin:16px 0;overflow-x:auto;padding:16px}.markdown-preview pre code{background:none;border:none;color:var(--dnse-bg-secondary);padding:0}.markdown-preview blockquote{background:var(--dnse-bg-secondary);border-left:4px solid var(--dnse-primary);color:var(--dnse-text-secondary);font-style:italic;margin:16px 0;padding:12px 20px}.markdown-preview table{border:2px solid var(--dnse-border-medium);border-collapse:collapse;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin:24px 0;overflow:hidden;width:100%}.markdown-preview td,.markdown-preview th{border:2px solid var(--dnse-border-medium);padding:14px 18px;text-align:left}.markdown-preview th{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);color:#fff;font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.markdown-preview tr:nth-child(2n){background-color:var(--dnse-bg-secondary)}.markdown-preview tr:hover{background-color:#667eea0d;transition:background-color .2s ease}.markdown-preview img{border-radius:12px;box-shadow:0 4px 16px #0000001a;height:auto;margin:24px 0;max-width:100%}.markdown-preview a{border-bottom:1px solid #0000;color:var(--dnse-primary);font-weight:600;text-decoration:none;transition:all .2s ease}.markdown-preview a:hover{border-bottom-color:var(--dnse-primary);color:var(--dnse-primary)}.markdown-preview hr{border:none;border-top:2px solid var(--dnse-border-light);margin:24px 0}.markdown-preview input[type=checkbox]{cursor:pointer;margin-right:8px}.outline-panel{background:var(--dnse-surface-elevated);border-left:1px solid var(--dnse-border-light);display:flex;flex-direction:column;overflow:hidden}.outline-header{align-items:center;background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border-bottom:1px solid #ffffff1a;color:#fff;display:flex;gap:10px;justify-content:space-between;padding:16px 20px}.outline-title-wrap{align-items:center;display:flex;gap:8px}.outline-close-mobile{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:none;justify-content:center;padding:4px}.outline-mobile-backdrop{display:none}.outline-header h3{font-size:15px;font-weight:700;letter-spacing:-.2px;margin:0}.outline-content{flex:1 1;overflow-y:auto;padding:16px}.outline-list{list-style:none;margin:0;padding:0}.outline-item{background:#fff;border-left:3px solid #0000;border-radius:6px;color:var(--dnse-text-secondary);cursor:pointer;font-size:13px;line-height:1.4;margin:4px 0;padding:8px 12px;transition:all .2s ease}.outline-item:hover{background:var(--dnse-primary-lighter);border-left-color:var(--dnse-primary);color:var(--dnse-text-primary);transform:translateX(2px)}.outline-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outline-level-1{font-size:14px;font-weight:700;padding-left:12px}.outline-level-2{font-weight:600;padding-left:24px}.outline-level-3{font-weight:500;padding-left:36px}.outline-level-4{font-size:12px;padding-left:48px}.outline-level-5{font-size:12px;font-style:italic;padding-left:60px}.outline-level-6{color:var(--dnse-text-secondary);font-size:11px;font-style:italic;padding-left:72px}.outline-empty{align-items:center;color:var(--dnse-text-tertiary);display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.outline-empty p{font-size:14px;font-weight:600;margin:0 0 8px}.outline-empty span{font-size:12px;line-height:1.5}@media (max-width:1200px){.notes-content{grid-template-columns:1fr 1fr}.notes-content.with-outline{grid-template-columns:1fr 1fr 240px}}@media (max-width:991px){.notes-header{padding:8px 14px!important}.notes-header-content{align-items:center!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:space-between!important}.btn-back{border-radius:8px!important;flex-shrink:0!important;padding:6px 8px!important}.btn-back .btn-back-text,.note-type-badge{display:none!important}.note-info{align-items:center!important;display:flex!important;gap:6px!important;margin:0!important;min-width:0!important}.note-info h1{font-size:14px!important;margin:0!important;max-width:140px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.header-actions{align-items:center!important;display:flex!important;flex-wrap:nowrap!important;gap:6px!important;margin-left:auto!important;width:auto!important}.last-saved{display:none!important}.view-mode-selector{display:flex!important;gap:2px!important;width:auto!important}.view-mode-selector .btn-mode{padding:4px 8px!important}.btn-save,.btn-toggle,.view-mode-selector .btn-mode{font-size:11px!important;height:30px!important;white-space:nowrap!important}.btn-save,.btn-toggle{flex-shrink:0!important;padding:4px 10px!important}}@media (max-width:768px){.my-notes-page-detail{height:100vh!important;max-height:100vh!important;overflow:hidden!important}.notes-content,.notes-content.editor-only,.notes-content.editor-only.with-outline,.notes-content.preview-only,.notes-content.preview-only.with-outline,.notes-content.with-outline{display:flex!important;flex:1 1!important;flex-direction:column!important;grid-template-columns:1fr!important;height:100%!important;max-width:100%!important;min-height:0!important;overflow:hidden!important;width:100%!important}.editor-panel,.preview-panel{border-left:none!important;border-right:none!important;box-sizing:border-box!important;display:flex!important;flex:1 1!important;flex-direction:column!important;height:100%!important;max-width:100%!important;min-height:0!important;width:100%!important}.editor-toolbar{flex-shrink:0!important}.markdown-editor{flex:1 1!important;font-size:13px!important;height:100%!important;min-height:0!important;padding:12px!important;resize:none!important}.preview-header{flex-shrink:0!important}.markdown-preview{box-sizing:border-box!important;flex:1 1!important;font-size:13px!important;height:100%!important;min-height:0!important;padding:16px 12px!important;width:100%!important}.markdown-preview,.markdown-preview h1{overflow-wrap:break-word!important;word-break:normal!important}.markdown-preview h1{font-size:1.4rem!important;line-height:1.3!important;margin-bottom:8px!important;margin-top:12px!important}.markdown-preview h2{font-size:1.2rem!important}.markdown-preview h2,.markdown-preview h3{overflow-wrap:break-word!important;word-break:normal!important}.markdown-preview h3{font-size:1.05rem!important}.outline-mobile-backdrop{-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important;background:#00000080!important;display:block!important;top:0!important;z-index:9999!important}.outline-mobile-backdrop,.outline-panel{bottom:0!important;left:0!important;position:fixed!important;right:0!important}.outline-panel{animation:slideUpOutline .25s cubic-bezier(.16,1,.3,1)!important;background:#fff!important;border-left:none!important;border-top:none!important;border-top-left-radius:16px!important;border-top-right-radius:16px!important;box-shadow:0 -8px 30px #0000004d!important;max-height:75vh!important;top:auto!important;z-index:10000!important}.outline-header{border-top-left-radius:16px!important;border-top-right-radius:16px!important;justify-content:space-between!important;padding:12px 18px!important}.outline-close-mobile{display:flex!important}.header-actions .btn-toggle{display:none!important}.btn-outline-toggle-mobile{display:inline-flex!important}.view-mode-selector .btn-mode-both{display:none!important}}@media (orientation:landscape) and (max-height:550px){.notes-header{padding:6px 12px!important}.notes-header-content{align-items:center!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:space-between!important}.btn-back{border-radius:8px!important;padding:6px 8px!important}.btn-back .btn-back-text,.note-type-badge{display:none!important}.note-info{align-items:center!important;display:flex!important;gap:6px!important;margin:0!important}.note-info h1{font-size:14px!important;margin:0!important;max-width:140px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.header-actions{align-items:center!important;display:flex!important;gap:6px!important;margin-left:auto!important;width:auto!important}.last-saved{display:none!important}.header-actions .btn-toggle{display:flex!important;font-size:11px!important;height:28px!important;padding:4px 8px!important}.view-mode-selector{display:flex!important;width:auto!important}.view-mode-selector .btn-mode{font-size:11px!important;height:28px!important;padding:4px 8px!important}.view-mode-selector .btn-mode-both{display:inline-flex!important}.btn-save{font-size:11px!important;height:28px!important;padding:4px 10px!important}.editor-toolbar{gap:4px!important;padding:4px 8px!important}.toolbar-btn{font-size:11px!important;padding:3px 6px!important}}@keyframes slideUpOutline{0%{transform:translateY(100%)}to{transform:translateY(0)}}.markdown-editor::-webkit-scrollbar,.markdown-preview::-webkit-scrollbar,.outline-content::-webkit-scrollbar{width:8px}.markdown-editor::-webkit-scrollbar-track,.markdown-preview::-webkit-scrollbar-track,.outline-content::-webkit-scrollbar-track{background:var(--dnse-bg-secondary)}.markdown-editor::-webkit-scrollbar-thumb,.markdown-preview::-webkit-scrollbar-thumb,.outline-content::-webkit-scrollbar-thumb{background:var(--dnse-border-medium);border-radius:4px}.markdown-editor::-webkit-scrollbar-thumb:hover,.markdown-preview::-webkit-scrollbar-thumb:hover,.outline-content::-webkit-scrollbar-thumb:hover{background:var(--dnse-text-tertiary)}.create-note-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1050}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.create-note-modal{animation:slideUp .4s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:20px;box-shadow:0 24px 64px #0066cc4d;display:flex;flex-direction:column;max-height:90vh;max-width:580px;overflow:hidden;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.create-modal-header{align-items:center;background:linear-gradient(135deg,#06c,#004c99);background:linear-gradient(135deg,var(--dnse-primary,#06c) 0,var(--dnse-primary-dark,#004c99) 100%);border-bottom:none;color:#fff;display:flex;justify-content:space-between;padding:24px 28px}.create-modal-title{align-items:center;display:flex;font-size:22px;font-weight:700;gap:12px;letter-spacing:-.3px;margin:0}.create-modal-close-btn{align-items:center;background:#ffffff26;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.create-modal-close-btn:hover:not(:disabled){background:#ffffff40;transform:rotate(90deg)}.create-modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.create-modal-body{flex:1 1;overflow-y:auto;padding:28px}.note-type-badge{align-items:center;background:linear-gradient(135deg,var(--dnse-primary-lighter) 0,var(--dnse-primary-lighter) 100%);border:1px solid #06c;border:1px solid var(--dnse-primary,#06c);border-radius:12px;display:inline-flex;font-size:14px;gap:8px;padding:8px 16px}.note-type-label{color:#666;font-weight:500}.note-type-value{color:#06c;color:var(--dnse-primary,#06c);font-weight:700}.form-group{margin-bottom:24px}.form-label{color:#2c3e50;display:block;font-size:15px;font-weight:600;margin-bottom:8px}.required-asterisk{color:#e74c3c;font-weight:700;margin-left:2px}.optional-text{color:#95a5a6;font-size:13px;font-weight:400;margin-left:4px}.form-input{background:var(--dnse-bg-secondary);border:2px solid #e0e6ed;border-radius:10px;font-family:inherit;font-size:15px;padding:12px 16px;transition:all .3s ease;width:100%}.form-input:hover:not(:disabled){background:#fff;border-color:#c8d3df}.form-input:focus{background:#fff;border-color:#06c;border-color:var(--dnse-primary,#06c);box-shadow:0 0 0 4px #0066cc1a;outline:none}.form-input:disabled{background:#f0f2f5;cursor:not-allowed;opacity:.7}.form-textarea{background:var(--dnse-bg-secondary);border:2px solid #e0e6ed;border-radius:10px;font-family:inherit;font-size:14px;line-height:1.6;min-height:100px;padding:12px 16px;resize:vertical;transition:all .3s ease;width:100%}.form-textarea:hover:not(:disabled){background:#fff;border-color:#c8d3df}.form-textarea:focus{background:#fff;border-color:#06c;border-color:var(--dnse-primary,#06c);box-shadow:0 0 0 4px #0066cc1a;outline:none}.form-textarea:disabled{background:#f0f2f5;cursor:not-allowed;opacity:.7}.input-hint{color:#95a5a6;font-size:12px;margin-top:6px;text-align:right}.template-selection{margin-bottom:24px}.template-select-wrapper{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px}.template-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23666' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;cursor:pointer;flex:1 1;padding-right:40px}.template-select option{font-size:14px;padding:12px}.btn-preview-template{background:linear-gradient(135deg,var(--dnse-primary) 0,var(--dnse-primary-dark) 100%);border:none;border-radius:10px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 20px;transition:all .3s ease;white-space:nowrap}.btn-preview-template:hover:not(:disabled){box-shadow:0 4px 16px #667eea80;transform:translateY(-2px)}.btn-preview-template:active:not(:disabled){transform:translateY(0)}.btn-preview-template:disabled{cursor:not-allowed;opacity:.5}.template-preview-tooltip{animation:slideDown .3s cubic-bezier(.4,0,.2,1);background:#fff;border:2px solid #06c;border:2px solid var(--dnse-primary,#06c);border-radius:12px;box-shadow:0 8px 32px #0066cc4d;display:flex;flex-direction:column;margin-top:16px;max-height:400px;overflow:hidden;position:relative}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preview-header{background:linear-gradient(135deg,#06c,#004c99);background:linear-gradient(135deg,var(--dnse-primary,#06c) 0,var(--dnse-primary-dark,#004c99) 100%);border-bottom:1px solid #0000001a;color:#fff;font-size:14px;font-weight:600;padding:12px 16px}.preview-content{background:var(--dnse-bg-secondary);flex:1 1;overflow-y:auto;padding:16px}.preview-text{word-wrap:break-word;background:#fff;border:1px solid #e0e6ed;border-radius:8px;color:#2c3e50;font-family:Monaco,Menlo,Courier New,monospace;font-size:12px;line-height:1.6;margin:0;padding:16px;white-space:pre-wrap}.error-message{align-items:center;animation:shake .4s ease;background:var(--dnse-danger-bg);border:1px solid var(--dnse-danger-light);border-radius:10px;color:var(--dnse-danger-dark);display:flex;font-size:14px;gap:8px;margin-bottom:16px;padding:12px 16px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}.helper-text{background:linear-gradient(135deg,#fff8e1,#fff3cd);border-left:4px solid #ffc107;border-radius:8px;margin-top:16px;padding:14px 16px}.helper-text p{color:#856404;font-size:13px;line-height:1.5;margin:0}.helper-text strong{font-weight:600}.create-modal-footer{background:var(--dnse-bg-secondary);border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end;padding:20px 28px}.btn-cancel{align-items:center;background:#fff;border:2px solid #e0e6ed;border-radius:10px;color:#495057;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.btn-cancel:hover:not(:disabled){background:var(--dnse-bg-secondary);border-color:#ced4da;box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.btn-cancel:disabled{cursor:not-allowed;opacity:.5}.btn-create{align-items:center;background:linear-gradient(135deg,#06c,#004c99);background:linear-gradient(135deg,var(--dnse-primary,#06c) 0,var(--dnse-primary-dark,#004c99) 100%);border:none;border-radius:10px;box-shadow:0 4px 12px #0066cc4d;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease}.btn-create:hover:not(:disabled){box-shadow:0 6px 16px #06c6;transform:translateY(-2px)}.btn-create:active:not(:disabled){box-shadow:0 2px 8px #0066cc4d;transform:translateY(0)}.btn-create:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.create-note-modal{border-radius:16px;max-width:100%}.create-modal-header{padding:20px 24px}.create-modal-title{font-size:20px}.create-modal-body{padding:24px}.create-modal-footer{padding:16px 24px}}@media (max-width:480px){.create-note-overlay{padding:10px}.create-note-modal{border-radius:12px;max-height:95vh}.create-modal-header{padding:18px 20px}.create-modal-title{font-size:18px;gap:10px}.create-modal-body{padding:20px}.note-type-badge{font-size:13px;padding:6px 12px}.form-label{font-size:14px}.form-input,.form-textarea{font-size:14px;padding:10px 14px}.create-modal-footer{flex-direction:column-reverse;gap:10px;padding:16px 20px}.btn-cancel,.btn-create{justify-content:center;padding:12px 20px;width:100%}.helper-text{padding:12px 14px}.helper-text p{font-size:12px}}@media (prefers-reduced-motion:reduce){.create-note-modal,.create-note-overlay,.error-message{animation:none}.btn-cancel:hover,.btn-create:hover{transform:none}}.book-card{background-color:#fff;background-color:var(--dnse-card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--dnse-border-color,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .25s ease-in-out}.book-card:hover{border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 12px 24px #00000014;transform:translateY(-4px)}.book-card-header{align-items:center;background:linear-gradient(135deg,#003b7a,#002952);background:linear-gradient(135deg,var(--dnse-primary,#003b7a) 0,var(--dnse-primary-dark,#002952) 100%);display:flex;height:180px;justify-content:center;overflow:hidden;position:relative}.book-cover-img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.book-card:hover .book-cover-img{transform:scale(1.05)}.book-cover-overlay{align-items:flex-end;background:linear-gradient(180deg,#00000026,#000000bf);display:flex;inset:0;padding:12px 14px;position:absolute}.book-cover-title-overlay{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#fff;display:-webkit-box;font-size:13px;font-weight:700;line-height:1.35;overflow:hidden;text-shadow:0 2px 4px #000000b3}.book-cover-placeholder{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;padding:16px;text-align:center}.book-cover-placeholder-icon{margin-bottom:8px;opacity:.85}.book-cover-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#fff;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden}.book-badge-format{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000a6;border-radius:6px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 8px;position:absolute;right:12px;text-transform:uppercase;top:12px}.book-badge-status{left:12px;position:absolute;top:12px}.book-card-body{display:flex;flex-direction:column;flex-grow:1;padding:16px}.book-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#1f2937;color:var(--dnse-text-primary,#1f2937);display:-webkit-box;font-size:16px;font-weight:700;line-height:1.35;margin:0 0 6px;overflow:hidden}.book-author{align-items:center;color:#6b7280;color:var(--dnse-text-secondary,#6b7280);display:flex;font-size:13px;gap:6px;margin-bottom:10px}.book-description{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#4b5563;color:var(--dnse-text-muted,#4b5563);display:-webkit-box;flex-grow:1;font-size:13px;line-height:1.45;margin-bottom:14px;overflow:hidden}.book-progress-section{border-top:1px solid #f3f4f6;border-top:1px solid var(--dnse-border-color,#f3f4f6);margin-top:auto;padding-top:12px}.book-progress-header{align-items:center;color:#4b5563;color:var(--dnse-text-secondary,#4b5563);display:flex;font-size:12px;font-weight:600;justify-content:space-between;margin-bottom:6px}.book-progress-bar-bg{background-color:#e5e7eb;background-color:var(--dnse-gray-200,#e5e7eb);border-radius:3px;height:6px;margin-bottom:12px;overflow:hidden;width:100%}.book-progress-bar-fill{background:linear-gradient(90deg,#003b7a,#06c);background:linear-gradient(90deg,var(--dnse-primary,#003b7a),var(--dnse-accent,#06c));border-radius:3px;height:100%;transition:width .4s ease}.book-progress-bar-fill.completed{background:#00c853;background:var(--dnse-success,#00c853)}.book-card-actions{display:flex;gap:8px}.book-card-actions .dnse-btn{align-items:center;display:flex;flex:1 1;font-size:13px;gap:6px;justify-content:center;padding:8px 12px}.book-management-page{box-sizing:border-box;padding:24px;width:100%}.book-page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.book-page-title-section h1{align-items:center;color:#1f2937;color:var(--dnse-text-primary,#1f2937);display:flex;font-size:26px;font-weight:800;gap:10px;margin:0 0 6px}.book-page-subtitle{color:#6b7280;color:var(--dnse-text-secondary,#6b7280);font-size:14px;margin:0}.book-header-actions,.book-toolbar{align-items:center;display:flex;gap:12px}.book-toolbar{background-color:#fff;background-color:var(--dnse-card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--dnse-border-color,#e5e7eb);border-radius:12px;flex-wrap:wrap;justify-content:space-between;margin-bottom:24px;padding:16px}.book-search-box{flex:1 1;position:relative;width:100%}.book-search-input{background-color:#f9fafb;background-color:var(--dnse-bg-secondary,#f9fafb);border:1px solid #d1d5db;border:1px solid var(--dnse-border-color,#d1d5db);border-radius:8px;font-size:14px;outline:none;padding:10px 14px 10px 40px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.book-search-input:focus{background-color:#fff;border-color:#06c;border-color:var(--dnse-accent,#06c);box-shadow:0 0 0 3px #0066cc1f}.book-search-icon{color:#9ca3af;color:var(--dnse-text-secondary,#9ca3af);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.book-filter-group{align-items:center;display:flex;gap:8px}.book-filter-select{background-color:#f9fafb;background-color:var(--dnse-bg-secondary,#f9fafb);border:1px solid #d1d5db;border:1px solid var(--dnse-border-color,#d1d5db);border-radius:8px;color:#374151;color:var(--dnse-text-primary,#374151);cursor:pointer;font-size:14px;outline:none;padding:10px 14px}.book-filter-select:focus{border-color:#06c;border-color:var(--dnse-accent,#06c)}.book-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));width:100%}.book-state-container{background-color:#fff;background-color:var(--dnse-card-bg,#fff);border:1px dashed #d1d5db;border:1px dashed var(--dnse-border-color,#d1d5db);border-radius:12px;color:#6b7280;color:var(--dnse-text-secondary,#6b7280);padding:48px 24px;text-align:center}.book-state-icon{margin-bottom:12px;opacity:.6}.book-state-title{color:#111827;color:var(--dnse-text-primary,#111827);font-size:18px;font-weight:700;margin-bottom:6px}.book-state-description{font-size:14px;margin:0 auto 16px;max-width:420px}@media (max-width:768px){.book-management-page{padding:16px}.book-page-header{align-items:flex-start;flex-direction:column}.book-header-actions,.book-header-actions .dnse-btn{width:100%}.book-toolbar{align-items:stretch;flex-direction:column}.book-search-box{width:100%}.book-filter-group{flex-direction:column;width:100%}.book-filter-select{width:100%}}.book-read-container{display:flex;flex:1 1;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:100vh;max-height:100vh;overflow:hidden;position:relative;transition:background-color .3s ease,color .3s ease;width:100%}.book-read-container.theme-light{background-color:#fff;color:#1e293b}.book-read-container.theme-dark{background-color:#0f172a;color:#f1f5f9}.book-read-container.theme-sepia{background-color:#fbf0d9;color:#5f4b32}.book-read-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #94a3b833;box-sizing:border-box;display:flex;height:60px;justify-content:space-between;padding:.75rem 1.5rem;position:sticky;top:0;z-index:100}.theme-light .book-read-header{background-color:#fffffff2}.theme-dark .book-read-header{background-color:#0f172af2}.theme-sepia .book-read-header{background-color:#fbf0d9f2}.header-left,.header-right{align-items:center;display:flex;gap:.75rem}.top-chapter-nav{align-items:center;border-left:1px solid #94a3b840;display:flex;gap:.35rem;margin-left:.25rem;padding-left:.75rem}.top-chapter-badge{background-color:#94a3b826;border-radius:4px;font-size:.8rem;font-weight:600;padding:.25rem .5rem;white-space:nowrap}.header-center{align-items:center;display:flex;flex-direction:column;max-width:40%;text-align:center}.book-read-title{font-size:.95rem;font-weight:700;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-read-subtitle{font-size:.8rem;margin:2px 0 0;opacity:.8}.header-progress-wrap{align-items:center;display:flex;gap:.5rem;width:120px}.header-progress-bar{background-color:#94a3b840;border-radius:3px;flex:1 1;height:6px;overflow:hidden}.header-progress-fill{background:#06c;background:var(--dnse-accent,#06c);border-radius:3px;height:100%;transition:width .3s ease}.header-progress-text{font-size:.75rem;font-weight:600;min-width:32px}.reader-btn{align-items:center;background:#0000;border:1px solid #94a3b84d;border-radius:6px;color:inherit;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;justify-content:center;padding:.4rem .75rem;transition:all .2s ease}.reader-btn:hover{background-color:#94a3b826}.reader-btn.icon-only{height:36px;padding:.4rem;width:36px}.reader-btn-active{background-color:#0066cc1a;border-color:#06c;border-color:var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c)}.book-read-body{display:flex;flex:1 1;overflow:hidden;position:relative}.book-toc-drawer{border-right:1px solid #94a3b833;display:flex;flex-direction:column;height:calc(100vh - 60px);position:fixed;top:60px;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:320px;z-index:110}.theme-light .book-toc-drawer{background-color:#f8fafc}.theme-dark .book-toc-drawer{background-color:#1e293b}.theme-sepia .book-toc-drawer{background-color:#f4e8ce}.book-toc-drawer.open{transform:translateX(0)}.toc-header{align-items:center;border-bottom:1px solid #94a3b833;display:flex;font-size:1rem;font-weight:700;justify-content:space-between;padding:1rem 1.25rem}.toc-list{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:.5rem 0}.toc-item{align-items:center;cursor:pointer;display:flex;font-size:.875rem;justify-content:space-between;padding:.75rem 1.25rem;transition:background-color .15s ease}.toc-item:hover{background-color:#94a3b826}.toc-item.active{background-color:#0066cc1a;border-left:4px solid #06c;border-left:4px solid var(--dnse-accent,#06c);color:#06c;color:var(--dnse-accent,#06c);font-weight:700}.book-read-content-wrapper{display:flex;flex:1 1;justify-content:center;overflow-y:auto;padding:2rem 1.5rem 4rem;scroll-behavior:smooth;transition:padding-top .2s ease}.book-read-content-wrapper.tts-active{padding-top:calc(2rem + 50px)}.book-read-paper{word-wrap:break-word;line-height:1.8;max-width:780px;width:100%}.book-read-paper img{border-radius:8px;display:block;height:auto;margin:1.5rem auto;max-width:100%}.book-read-paper table{border-collapse:collapse;margin:1.5rem 0;width:100%}.book-read-paper td,.book-read-paper th{border:1px solid #94a3b84d;padding:.5rem .75rem}.book-read-footer{align-items:center;border-top:1px solid #94a3b833;box-sizing:border-box;display:flex;height:56px;justify-content:space-between;padding:.75rem 1.5rem}.theme-light .book-read-footer{background-color:#fff}.theme-dark .book-read-footer{background-color:#0f172a}.theme-sepia .book-read-footer{background-color:#fbf0d9}@media (max-width:768px){.header-center{display:none}.header-progress-wrap{width:80px}.book-read-content-wrapper{padding:1rem 1rem 3rem}.book-notes-drawer,.book-toc-drawer{width:85vw}}mark.book-highlight-yellow{background-color:#fef08a;border-radius:2px;color:#854d0e;padding:0 2px}mark.book-highlight-green{background-color:#bbf7d0;border-radius:2px;color:#166534;padding:0 2px}mark.book-highlight-blue{background-color:#bfdbfe;border-radius:2px;color:#1e40af;padding:0 2px}mark.book-highlight-pink{background-color:#fbcfe8;border-radius:2px;color:#9d174d;padding:0 2px}.top-notes-count-badge{background-color:#06c;background-color:var(--dnse-accent,#06c);border-radius:50%;font-size:.65rem;font-weight:700;height:16px;justify-content:center;position:absolute;right:-4px;top:-4px;width:16px}.selection-popover,.top-notes-count-badge{align-items:center;color:#fff;display:flex}.selection-popover{animation:fadeInPopover .15s ease-out;background-color:#1e293b;border-radius:24px;box-shadow:0 10px 25px -5px #0000004d;gap:8px;padding:6px 12px;position:fixed;transform:translateX(-50%);z-index:1000}@keyframes fadeInPopover{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.color-dot{border:2px solid #0000;border-radius:50%;cursor:pointer;height:20px;transition:transform .15s ease;width:20px}.color-dot:hover{transform:scale(1.2)}.color-dot.selected{border-color:#fff;transform:scale(1.15)}.color-dot.yellow{background-color:#fef08a}.color-dot.green{background-color:#bbf7d0}.color-dot.blue{background-color:#bfdbfe}.color-dot.pink{background-color:#fbcfe8}.popover-divider{background-color:#fff3;height:16px;margin:0 4px;width:1px}.popover-btn{align-items:center;background:none;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:.8rem;padding:4px 8px;transition:background-color .15s ease}.popover-btn:hover{background-color:#ffffff26}.popover-btn.close-btn{opacity:.7;padding:4px}.copied-toast{background-color:#0f172ae6;border-radius:20px;bottom:80px;box-shadow:0 4px 12px #0003;color:#fff;font-size:.85rem;left:50%;padding:8px 16px;position:fixed;transform:translateX(-50%);z-index:1000}.note-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1200}.note-modal-card{background-color:#fff;background-color:var(--dnse-bg-primary,#fff);border-radius:12px;box-shadow:0 20px 25px -5px #0003;color:#1e293b;color:var(--dnse-text-primary,#1e293b);display:flex;flex-direction:column;max-width:480px;overflow:hidden;width:90%}.note-modal-header{align-items:center;border-bottom:1px solid #94a3b833;display:flex;justify-content:space-between;padding:1rem 1.25rem}.note-modal-header h3{font-size:1.1rem;font-weight:700;margin:0}.note-modal-body{display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.quote-box{background-color:#94a3b81a;border-left:4px solid #06c;border-left:4px solid var(--dnse-accent,#06c);border-radius:0 6px 6px 0;font-size:.9rem;font-style:italic;max-height:120px;overflow-y:auto;padding:.75rem 1rem}.color-selector{align-items:center;display:flex;gap:12px}.color-selector label{font-size:.85rem;font-weight:600}.color-options{align-items:center;display:flex;gap:8px}.note-input-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.note-input-group textarea{background-color:initial;border:1px solid #94a3b84d;border-radius:8px;box-sizing:border-box;color:inherit;font-family:inherit;font-size:.9rem;padding:.75rem;resize:vertical;width:100%}.note-input-group textarea:focus{border-color:#06c;border-color:var(--dnse-accent,#06c);outline:none}.note-modal-footer{align-items:center;border-top:1px solid #94a3b833;display:flex;gap:8px;justify-content:flex-end;padding:1rem 1.25rem}.book-notes-drawer{border-left:1px solid #94a3b833;display:flex;flex-direction:column;height:calc(100vh - 60px);position:fixed;right:0;top:60px;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:340px;z-index:110}.theme-light .book-notes-drawer{background-color:#f8fafc;color:#1e293b}.theme-dark .book-notes-drawer{background-color:#1e293b;color:#f1f5f9}.theme-sepia .book-notes-drawer{background-color:#f4e8ce;color:#5f4b32}.book-notes-drawer.open{transform:translateX(0)}.notes-drawer-header{align-items:center;border-bottom:1px solid #94a3b833;display:flex;font-size:.95rem;font-weight:700;justify-content:space-between;padding:1rem 1.25rem}.notes-drawer-list{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:1rem}.empty-notes-state{align-items:center;display:flex;flex-direction:column;height:200px;justify-content:center;opacity:.7;text-align:center}.empty-notes-state p{font-weight:600;margin:0 0 4px}.note-card{background-color:#fff9;border-left:4px solid #fef08a;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;gap:6px;padding:.85rem}.theme-dark .note-card{background-color:#1e293bb3}.note-card.color-yellow{border-left-color:#facc15}.note-card.color-green{border-left-color:#4ade80}.note-card.color-blue{border-left-color:#60a5fa}.note-card.color-pink{border-left-color:#f472b6}.note-card-header{align-items:center;display:flex;justify-content:space-between}.note-chapter-tag{font-size:.75rem;font-weight:700;opacity:.8}.delete-note-btn{background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;opacity:.5;padding:2px}.delete-note-btn:hover{color:#ff3d00;color:var(--dnse-danger,#ff3d00);opacity:1}.note-quote{cursor:pointer;font-size:.85rem;font-style:italic;line-height:1.4}.note-quote:hover{text-decoration:underline}.note-comment{align-items:flex-start;border-top:1px dashed #94a3b84d;display:flex;font-size:.825rem;gap:4px;margin-top:4px;padding-top:4px}.note-card-date{font-size:.7rem;margin-top:2px;opacity:.5;text-align:right}.read-aloud-player{align-items:center;animation:slideDownPlayer .2s ease-out;background-color:#0f172a;border-bottom:1px solid #ffffff1a;box-shadow:0 4px 12px #00000040;color:#fff;display:flex;justify-content:space-between;left:0;padding:8px 16px;position:fixed;right:0;top:60px;z-index:105}@keyframes slideDownPlayer{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.read-aloud-player--inactive{background-color:#1e293b;border-bottom-color:#ffffff0f;opacity:.65}.read-aloud-player--inactive .player-title{color:#94a3b8}.read-aloud-player--inactive .speaking-icon-wrap{background-color:#94a3b826;color:#94a3b8}.player-left{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0;overflow:hidden}.speaking-icon-wrap{align-items:center;background-color:#00c85333;border-radius:50%;color:#00c853;color:var(--dnse-success,#00c853);display:flex;height:32px;justify-content:center;width:32px}.speaking-pulse{animation:pulseGlow 1.2s ease-in-out infinite}@keyframes pulseGlow{0%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}to{opacity:.8;transform:scale(1)}}.player-info{display:flex;flex-direction:column}.player-title{color:#38bdf8;font-size:.8rem;font-weight:700}.player-subtitle{font-size:.75rem;max-width:300px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:480px){.player-subtitle{max-width:100px}}.player-controls{align-items:center;display:flex;gap:8px}.tts-select-input{background-color:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;outline:none;padding:4px 8px}.tts-select-input option{background-color:#1e293b;color:#fff}.tts-select-input.voice-select{max-width:140px}.tts-active-paragraph{animation:pulseActiveParagraph 2s ease-in-out infinite;background-color:#38bdf826;border-left:4px solid #38bdf8!important;border-radius:4px;padding-left:10px;transition:all .3s ease-in-out}.theme-dark .tts-active-paragraph{background-color:#38bdf840;box-shadow:0 0 15px #38bdf833}.theme-sepia .tts-active-paragraph{background-color:#b8860b33;border-left-color:#b8860b!important}@keyframes pulseActiveParagraph{0%{background-color:#38bdf81f}50%{background-color:#38bdf840}to{background-color:#38bdf81f}}.backtest-management-page{box-sizing:border-box;max-width:100%;padding:16px 24px;width:100%}.backtest-page-header{align-items:center;border-bottom:1px solid var(--dnse-gray-200);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.backtest-page-header .page-title{color:var(--dnse-primary);font-size:22px;font-weight:700;margin:0 0 6px}.backtest-page-header .page-subtitle{color:var(--dnse-gray-600);font-size:13px;margin:0}.backtest-page-header .header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.kpi-metric-card{background:var(--dnse-surface);border:1px solid var(--dnse-gray-200);border-radius:8px;box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;padding:12px 14px;transition:all .2s ease-in-out}.kpi-metric-card:hover{box-shadow:0 4px 10px #00000014;transform:translateY(-2px)}.kpi-metric-card.metric-positive{border-left:4px solid var(--dnse-success)}.kpi-metric-card.metric-negative{border-left:4px solid var(--dnse-danger)}.kpi-metric-card.metric-warning{border-left:4px solid var(--dnse-warning)}.kpi-metric-card.metric-neutral{border-left:4px solid var(--dnse-primary)}.kpi-metric-label{align-items:center;color:var(--dnse-gray-600);display:flex;font-size:12px;font-weight:500;gap:6px;margin-bottom:6px}.kpi-metric-value{color:var(--dnse-gray-900);font-size:20px;font-weight:700;line-height:1.2}.kpi-metric-card.metric-positive .kpi-metric-value{color:#00a344;color:var(--dnse-success-dark,#00a344)}.kpi-metric-card.metric-negative .kpi-metric-value{color:var(--dnse-danger)}.kpi-metric-sub{color:var(--dnse-gray-500);font-size:11px;margin-top:4px}.kpi-unit{color:var(--dnse-gray-600);font-size:12px;font-weight:400}.backtest-tabs-nav{border-bottom:2px solid var(--dnse-gray-200);display:flex;gap:8px;margin-bottom:20px;overflow-x:auto}.backtest-tabs-nav .tab-btn{align-items:center;background:#0000;border:none;border-bottom:3px solid #0000;color:var(--dnse-gray-600);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:-2px;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.backtest-tabs-nav .tab-btn:hover{background-color:var(--dnse-primary-lighter);border-radius:6px 6px 0 0;color:var(--dnse-primary)}.backtest-tabs-nav .tab-btn.active{border-bottom-color:var(--dnse-primary);color:var(--dnse-primary);font-weight:700}.optimal-params-table-container{margin-bottom:24px;overflow:hidden}.params-table-header{align-items:center;border-bottom:1px solid var(--dnse-gray-200);display:flex;justify-content:space-between;padding:14px 18px}.params-table-title{color:var(--dnse-primary-dark);font-size:15px;font-weight:600;margin:0}.params-table-toolbar{background-color:var(--dnse-gray-50);border-bottom:1px solid var(--dnse-gray-200);padding:12px 18px}.search-input-wrapper{position:relative;width:100%}.search-input-wrapper .search-icon{color:var(--dnse-gray-500);left:10px;position:absolute;top:50%;transform:translateY(-50%)}.search-input-wrapper .search-input{box-sizing:border-box;padding-left:32px;padding-right:32px;width:100%}.search-input-wrapper .search-clear-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--dnse-gray-500);cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all .15s ease}.search-input-wrapper .search-clear-btn:hover{background-color:var(--dnse-gray-200);color:var(--dnse-gray-800)}.filter-slider-wrapper,.sort-selector-wrapper{display:flex;flex-direction:column;gap:4px}.filter-label{color:var(--dnse-gray-700);font-size:11px;font-weight:600}.dnse-range-slider{accent-color:var(--dnse-primary);cursor:pointer;width:100%}.symbol-badge{font-size:13px;letter-spacing:.5px}.fitness-badge{background-color:#e8f5e9;border:1px solid #c8e6c9;color:#00a344;font-size:12px;font-weight:700}.btn-action-sm{border-radius:4px;font-size:12px;padding:4px 8px}.btn-action-xs{border-radius:3px;font-size:11px;padding:3px 6px}.table-actions{align-items:center;display:flex;gap:6px;justify-content:center}.table-pagination-footer{align-items:center;background:var(--dnse-gray-50);border-top:1px solid var(--dnse-gray-200);color:var(--dnse-gray-600);display:flex;font-size:12px;justify-content:space-between;padding:12px 18px}.pagination-buttons{display:flex;gap:8px}.pagination-btn{font-size:12px;padding:4px 10px}.strategies-list-card{display:flex;flex-direction:column;height:100%}.strategies-list-scroll{max-height:580px;overflow-y:auto}.strategy-item{border-bottom:1px solid var(--dnse-gray-200);cursor:pointer;padding:12px 16px;transition:all .15s ease-in-out}.strategy-item:hover{background-color:var(--dnse-gray-50)}.strategy-item.selected{background-color:var(--dnse-primary-lighter);border-left:4px solid var(--dnse-primary)}.strategy-name{color:var(--dnse-primary-dark)}.trade-ledger-container{margin-top:16px;overflow:hidden}.trade-ledger-header{align-items:center;display:flex;justify-content:space-between;padding:14px 18px}.ledger-title{color:var(--dnse-primary);font-size:15px;font-weight:600;margin:0}.trade-row-win:hover{background-color:#00c8530a}.trade-row-loss:hover{background-color:#ff3d000a}.trade-pnl-cell{font-size:13px;font-weight:600}.equity-chart-container{margin-top:16px;overflow:hidden}.empty-chart-state{color:var(--dnse-gray-500);flex-direction:column;padding:48px 16px;text-align:center}.empty-chart-state,.modal-backdrop{align-items:center;display:flex;justify-content:center}.modal-backdrop{background-color:#00000080;bottom:0;left:0;padding:16px;position:fixed;right:0;top:0;z-index:9999}.dnse-modal-dialog{background:#fff;border:1px solid #003b7a1f;border-radius:12px;box-shadow:0 25px 60px #00295259;display:flex;flex-direction:column;max-height:92vh;overflow:hidden;width:100%}.dnse-modal-dialog .modal-header{align-items:center;background:linear-gradient(135deg,#024,#003b7a 60%,#0052a3)!important;border-bottom:1px solid #ffffff1f;color:#fff!important;display:flex;justify-content:space-between;padding:16px 24px;position:relative}.dnse-modal-dialog .modal-header:after{background:linear-gradient(90deg,#00c853,#00b8d4 50%,#ffb300);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.dnse-modal-dialog .modal-header .modal-title,.dnse-modal-dialog .modal-header h2,.dnse-modal-dialog .modal-header h3{color:#fff!important;font-weight:700;letter-spacing:.2px;margin:0;text-shadow:0 1px 3px #0000004d}.dnse-modal-dialog .modal-header .modal-subtitle{color:#fffc;font-size:12px;margin-top:2px}.dnse-modal-dialog .modal-header .close-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;color:#fff!important;cursor:pointer;display:flex;height:32px;justify-content:center;opacity:.9;transition:all .2s ease;width:32px}.dnse-modal-dialog .modal-header .close-btn:hover{background-color:#ffffff40;opacity:1;transform:rotate(90deg)}.dnse-modal-dialog .modal-body{flex:1 1;max-height:calc(92vh - 140px);overflow-x:hidden;overflow-y:auto;padding:20px 24px}.dnse-modal-dialog .modal-body::-webkit-scrollbar{width:6px}.dnse-modal-dialog .modal-body::-webkit-scrollbar-track{background:#f1f5f9}.dnse-modal-dialog .modal-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.dnse-modal-dialog .modal-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.batch-tech-banner{align-items:flex-start;background:linear-gradient(135deg,#f0f7ff,#e6f2fe);border:1px solid #bae0ff;border-left:4px solid var(--dnse-primary);border-radius:10px;display:flex;gap:12px;padding:12px 16px}.batch-tech-badge-icon{align-items:center;background:var(--dnse-primary);border-radius:8px;box-shadow:0 2px 8px #003b7a40;color:#fff;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.batch-tech-title{align-items:center;color:#002952;display:flex;font-size:13px;font-weight:700;gap:8px}.batch-tech-pill{background:#e8f5e9;border:1px solid #c8e6c9;border-radius:12px;color:#008736;font-size:11px;font-weight:700;padding:1px 7px}.batch-tech-desc{color:#334155;font-size:12px;line-height:1.5;margin-top:2px}.batch-controls-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #00000008;padding:16px}.batch-control-subcard{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #00000005;box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:space-between;padding:14px 16px;transition:all .2s ease}.batch-control-subcard:hover{border-color:#93c5fd;box-shadow:0 3px 10px #003b7a0f}.batch-control-title{align-items:center;color:#1e293b;display:flex;font-size:12px;font-weight:700;gap:6px;margin:0}.batch-liquidity-tag{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;color:#166534;font-size:11px;font-weight:700;padding:2px 8px}.batch-control-hint{color:#64748b;font-size:11px;line-height:1.4}.batch-date-control-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #00000005;box-sizing:border-box;margin-top:4px;padding:12px 18px;transition:all .2s ease;width:100%}.batch-date-control-card:hover{border-color:#93c5fd;box-shadow:0 3px 10px #003b7a0f}.batch-control-icon-wrap{align-items:center;background:#eff6ff;border-radius:6px;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.date-input-group{align-items:center;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;display:flex;overflow:hidden;transition:all .2s ease}.date-input-group:focus-within{background:#fff;border-color:var(--dnse-primary);box-shadow:0 0 0 2px #003b7a26}.date-input-tag{background:#eef2f6;border-right:1px solid #cbd5e1;color:#64748b;font-size:11px;font-weight:700;padding:6px 9px;text-transform:uppercase;-webkit-user-select:none;user-select:none}.date-picker-field{background:#0000!important;border:none!important;box-sizing:border-box!important;color:#0f172a!important;cursor:pointer;font-size:13px!important;font-weight:600!important;min-width:0!important;outline:none!important;padding:6px 12px!important;width:100%!important}.badge-tf-daily{background-color:#e3f2fd!important;border:1px solid #bbdefb!important;color:#1565c0!important}.badge-tf-daily,.badge-tf-weekly{font-size:11px!important;font-weight:700!important;padding:2px 7px!important}.badge-tf-weekly{background-color:#ede7f6!important;border:1px solid #d1c4e9!important;color:#512da8!important}.badge-tf-monthly{background-color:#fff3e0!important;border:1px solid #ffe0b2!important;color:#e65100!important;font-size:11px!important;font-weight:700!important;padding:2px 7px!important}.param-step-group{background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000000a;padding:12px 14px;transition:all .2s ease}.param-step-group:hover{border-color:#93c5fd;box-shadow:0 4px 12px #003b7a14}.param-step-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.param-step-title{color:#002952;font-size:12px;font-weight:700}.param-step-subtitle{color:#64748b;font-size:11px;font-weight:400;margin-left:4px}.param-step-preview{background-color:#f0f7ff;border:1px solid #bae0ff;border-radius:6px;color:#0052a3;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:600;padding:2px 8px}.step-input-col{display:flex;flex-direction:column;gap:3px}.step-input-col label{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.step-input-col input{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-sizing:border-box;font-size:12px;font-weight:600;padding:6px 8px;text-align:center;transition:all .2s ease;width:100%}.step-input-col input:focus{border-color:var(--dnse-primary);box-shadow:0 0 0 2px #003b7a26;outline:none}.tf-pill-group{background:#eef2f6;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:6px;padding:4px}.tf-pill-btn{background-color:initial;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:12px;font-weight:700;padding:6px 12px;text-align:center;transition:all .2s ease}.tf-pill-btn:hover{background-color:#fff9;color:#0f172a}.tf-pill-btn.active{background-color:#003b7a;box-shadow:0 2px 6px #003b7a40;color:#fff}.preset-btn-group{display:flex;gap:4px;margin-top:4px}.preset-pill-btn{background:#fff;border:1px solid #cbd5e1;border-radius:4px;color:#475569;cursor:pointer;font-size:10px;font-weight:600;padding:2px 7px;transition:all .15s ease}.preset-pill-btn:hover{background:#f0f7ff;border-color:var(--dnse-primary);color:var(--dnse-primary)}.preset-pill-btn.active{background:var(--dnse-primary);border-color:var(--dnse-primary);color:#fff}.trailing-sl-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s ease}.trailing-sl-card:hover{background:#fafcfe;border-color:#93c5fd}.trailing-sl-card.active{background:#f0f7ff;border-color:#60a5fa}.batch-modal-footer{align-items:center;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px 24px}.batch-modal-footer .time-est-badge{align-items:center;color:#64748b;display:flex;font-size:12px;font-weight:500;gap:6px}.batch-run-btn{align-items:center;background:linear-gradient(135deg,#003b7a,#0052a3)!important;border:none!important;border-radius:7px!important;box-shadow:0 3px 10px #003b7a47;color:#fff!important;cursor:pointer;display:flex;font-size:13px!important;font-weight:700!important;gap:8px;padding:8px 18px!important;transition:all .2s ease}.batch-run-btn:hover:not(:disabled){box-shadow:0 5px 16px #003b7a66;transform:translateY(-1px)}.batch-run-btn:disabled{cursor:not-allowed;opacity:.6}.input-group{align-items:center;display:flex;position:relative}.input-suffix{color:var(--dnse-gray-500);font-size:13px;font-weight:600;pointer-events:none;position:absolute;right:12px}.text-success{color:var(--dnse-success)!important}.text-danger{color:var(--dnse-danger)!important}.text-warning{color:var(--dnse-warning-dark)!important}.text-primary{color:var(--dnse-primary)!important}.text-accent{color:var(--dnse-accent)!important}.text-secondary{color:var(--dnse-gray-600)!important}.text-right{text-align:right}.text-center{text-align:center}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-mono{font-family:monospace}.cursor-pointer{cursor:pointer}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1\.5{gap:6px}.gap-2{gap:8px}.gap-3{gap:12px}.p-0{padding:0!important}.p-3{padding:12px!important}.p-4{padding:16px!important}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mr-1{margin-right:4px}.ml-1{margin-left:4px}.space-y-4>*+*{margin-top:16px}.space-y-3>*+*{margin-top:12px}@media (max-width:768px){.backtest-management-page{padding:12px}.backtest-page-header{align-items:flex-start;flex-direction:column}.backtest-page-header .header-actions{justify-content:flex-start;width:100%}.table-pagination-footer{align-items:flex-start;flex-direction:column;gap:8px}}.news-detail-page{background-color:#f8f9fa;background-color:var(--dnse-bg-secondary,#f8f9fa);box-sizing:border-box;color:#212121;color:var(--dnse-gray-900,#212121);display:flex;flex-direction:column;min-height:100vh;width:100%}.news-detail-topbar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-border-light,#eee);box-shadow:0 2px 10px #003b7a0a;box-sizing:border-box;position:sticky;top:0;width:100%;z-index:100}.news-topbar-inner{box-sizing:border-box;justify-content:space-between;margin:0 auto;max-width:1400px;padding:12px 24px}.news-topbar-inner,.news-topbar-left{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.news-nav-back-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light,#e0e0e0);border-radius:8px;box-shadow:0 1px 3px #0000000d;color:#003b7a;color:var(--dnse-primary,#003b7a);cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:8px;padding:8px 16px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.news-nav-back-btn:hover{background:#003b7a0f;border-color:#003b7a;border-color:var(--dnse-primary,#003b7a);color:#002952;color:var(--dnse-primary-dark,#002952);transform:translateX(-2px)}.news-topbar-breadcrumb{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;font-size:13px;gap:8px}.news-topbar-breadcrumb .crumb-segment.highlight{background:#003b7a14;border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);font-weight:700;padding:2px 8px}.news-topbar-breadcrumb .crumb-divider{color:#bdbdbd;color:var(--dnse-gray-400,#bdbdbd)}.news-topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.news-reading-time-badge{background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5);border-radius:6px;color:#757575;color:var(--dnse-gray-600,#757575);padding:6px 12px}.news-action-btn,.news-reading-time-badge{align-items:center;display:inline-flex;font-size:12px;font-weight:600;gap:6px}.news-action-btn{background:#fff;border:1px solid #e0e0e0;border:1px solid var(--dnse-border-light,#e0e0e0);border-radius:6px;color:#616161;color:var(--dnse-gray-700,#616161);cursor:pointer;padding:6px 14px;text-decoration:none;transition:all .2s ease}.news-action-btn:hover{background:#fafafa;background:var(--dnse-gray-50,#fafafa);border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3)}.news-action-btn.active,.news-action-btn:hover{color:#003b7a;color:var(--dnse-primary,#003b7a)}.news-action-btn.active{background:#003b7a1a;font-weight:700}.news-action-btn.active,.news-action-btn.external-btn{border-color:#003b7a;border-color:var(--dnse-primary,#003b7a)}.news-action-btn.external-btn{background:#003b7a;background:var(--dnse-primary,#003b7a);color:#fff}.news-action-btn.external-btn:hover{background:#002952;background:var(--dnse-primary-dark,#002952);border-color:#002952;border-color:var(--dnse-primary-dark,#002952);color:#fff}.news-detail-container{grid-gap:24px;align-items:start;box-sizing:border-box;display:grid;gap:24px;grid-template-columns:repeat(12,minmax(0,1fr));margin:24px auto 48px;max-width:1400px;padding:0 24px;width:100%}.news-article-card{background:#fff;border:1px solid #eee;border:1px solid var(--dnse-border-light,#eee);border-radius:12px;box-shadow:0 4px 20px #003b7a0a;box-sizing:border-box;grid-column:span 8;padding:36px 40px;width:100%}.news-meta-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.news-group-badge{background:#003b7a1a;color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}.news-group-badge,.news-meta-pill{border-radius:6px;padding:4px 10px}.news-meta-pill{align-items:center;background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5);color:#757575;color:var(--dnse-gray-600,#757575);display:inline-flex;font-size:12px;font-weight:600;gap:5px}.news-meta-pill.source-pill{background:#f0f4f8;color:#212121;color:var(--dnse-gray-900,#212121)}.source-pill-link{color:#06c;color:var(--dnse-accent,#06c);font-weight:700;text-decoration:none}.source-pill-link:hover{text-decoration:underline}.news-meta-pill.author-pill{background:#f5f5f5;color:#424242;color:var(--dnse-gray-800,#424242)}.news-meta-pill.sentiment-pill{font-weight:700}.news-article-title{color:#0f172a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:27px;font-weight:800;letter-spacing:-.02em;line-height:1.38;margin:0 0 24px}.news-article-sapo{background:#f8fafc;border-left:4px solid #003b7a;border-left:4px solid var(--dnse-primary,#003b7a);border-radius:0 8px 8px 0;box-shadow:inset 0 1px 3px #00000005;margin-bottom:28px;padding:16px 20px}.news-article-sapo p{color:#334155;font-size:16px;font-style:normal;font-weight:600;line-height:1.7;margin:0}.news-article-body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin-bottom:32px}.news-paragraphs-content{display:flex;flex-direction:column;gap:18px}.news-body-paragraph{letter-spacing:-.005em;margin:0;text-align:justify}.news-body-paragraph,.news-html-content{color:#1e293b;font-size:15.5px;line-height:1.85}.news-html-content{word-break:break-word}.news-html-content p{margin-bottom:18px;text-align:justify}.news-html-content img{border-radius:8px;box-shadow:0 4px 14px #0000000f;height:auto;margin:20px 0;max-width:100%}.news-html-content h2,.news-html-content h3{color:#0f172a;font-weight:800;line-height:1.35;margin:28px 0 14px}.news-html-content blockquote{border-left:3px solid #06c;border-left:3px solid var(--dnse-accent,#06c);color:#616161;color:var(--dnse-gray-700,#616161);margin:20px 0;padding:12px 18px}.news-empty-notice,.news-html-content blockquote{background:#fafafa;background:var(--dnse-gray-50,#fafafa);font-style:italic}.news-empty-notice{border-radius:8px;color:#757575;color:var(--dnse-gray-600,#757575);padding:24px;text-align:center}.font-size-large .news-article-title{font-size:30px}.font-size-large .news-article-sapo p{font-size:17.5px}.font-size-large .news-body-paragraph,.font-size-large .news-html-content{font-size:17.5px;line-height:1.9}.news-image-gallery-section{border-top:1px solid #eee;border-top:1px solid var(--dnse-border-light,#eee);margin:32px 0;padding-top:24px}.news-gallery-title{align-items:center;color:#212121;color:var(--dnse-gray-900,#212121);display:flex;font-size:15px;font-weight:700;gap:8px;margin:0 0 16px}.news-image-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.news-image-item img{border:1px solid #eee;border:1px solid var(--dnse-border-light,#eee);border-radius:8px;max-height:400px;object-fit:cover;transition:transform .2s ease;width:100%}.news-image-item img:hover{transform:scale(1.02)}.news-attachments-section{background:#fafafa;background:var(--dnse-gray-50,#fafafa);border:1px solid #eee;border:1px solid var(--dnse-border-light,#eee);border-radius:8px;margin:28px 0;padding:20px}.news-attachments-heading{align-items:center;color:#212121;color:var(--dnse-gray-900,#212121);display:flex;font-size:14px;font-weight:700;gap:8px;margin:0 0 14px}.news-attachments-list{display:flex;flex-direction:column;gap:10px}.news-attachment-item{align-items:center;background:#fff;border:1px solid #eee;border:1px solid var(--dnse-border-light,#eee);border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:13px;font-weight:600;gap:10px;padding:10px 14px;text-decoration:none;transition:all .2s ease}.news-attachment-item:hover{background:#003b7a;background:var(--dnse-primary,#003b7a);color:#fff}.news-attachment-item .ext-icon{margin-left:auto}.news-source-attribution-card{align-items:center;background:linear-gradient(135deg,#f8fafc,#edf2f7);border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0);border-radius:10px;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-top:36px;padding:24px}.source-attribution-content{flex:1 1;min-width:250px}.source-attribution-badge{align-items:center;color:#003b7a;color:var(--dnse-primary,#003b7a);display:inline-flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.source-attribution-title{color:#212121;color:var(--dnse-gray-900,#212121);font-size:16px;font-weight:800;margin:0 0 6px}.source-attribution-desc{color:#757575;color:var(--dnse-gray-600,#757575);font-size:12.5px;line-height:1.5;margin:0}.source-attribution-btn{align-items:center;border-radius:8px;display:inline-flex;font-size:13px;font-weight:700;gap:8px;padding:10px 18px;text-decoration:none;white-space:nowrap}.news-sidebar{box-sizing:border-box;display:flex;flex-direction:column;gap:20px;grid-column:span 4;width:100%}.news-sidebar-card{background:#fff;border:1px solid #eee;border:1px solid var(--dnse-border-light,#eee);border-radius:12px;box-shadow:0 2px 12px #003b7a0a;box-sizing:border-box;padding:22px;width:100%}.news-sidebar-card-header{align-items:center;border-bottom:1px solid #eee;border-bottom:1px solid var(--dnse-border-light,#eee);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.sidebar-header-title{align-items:center;display:flex;gap:8px}.sidebar-header-title h3{color:#002952;color:var(--dnse-primary-dark,#002952);font-size:15px;font-weight:800;letter-spacing:-.01em;margin:0}.tagged-stocks-stack{display:flex;flex-direction:column;gap:10px}.tagged-stock-tile{align-items:center;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0);border-radius:8px;box-shadow:0 1px 3px #00000005;color:inherit;display:flex;justify-content:space-between;padding:12px 14px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.tagged-stock-tile:hover{background:#f0f7ff;border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3);box-shadow:0 4px 12px #003b7a14;transform:translateY(-2px)}.tile-main-info{display:flex;flex-direction:column;gap:4px}.stock-sym-badge{color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:15px;font-weight:800;letter-spacing:.5px}.stock-action-cue{align-items:center;color:#06c;color:var(--dnse-accent,#06c);display:flex;font-size:11.5px;font-weight:600;gap:4px}.tile-price-info{align-items:flex-end;display:flex;flex-direction:column;gap:3px;text-align:right}.stock-live-price{font-size:14px;font-weight:800}.stock-live-price.price-up{color:#00c853;color:var(--dnse-success,#00c853)}.stock-live-price.price-down{color:#ff3d00;color:var(--dnse-danger,#ff3d00)}.stock-live-price.price-ref{color:#ffb300;color:var(--dnse-warning,#ffb300)}.stock-change-pill{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:700;gap:3px;padding:2px 6px}.stock-change-pill.change-up{background:#e8f5e9;background:var(--dnse-success-bg,#e8f5e9);color:#00a344;color:var(--dnse-success-dark,#00a344)}.stock-change-pill.change-down{background:#ffebee;background:var(--dnse-danger-bg,#ffebee);color:#dd2c00;color:var(--dnse-danger-dark,#dd2c00)}.stock-change-pill.change-ref{background:#fff8e1;background:var(--dnse-warning-bg,#fff8e1);color:#ff8f00;color:var(--dnse-warning-dark,#ff8f00)}.news-meta-details-table{display:flex;flex-direction:column;gap:12px}.meta-detail-row{align-items:flex-start;border-bottom:1px dashed #eee;border-bottom:1px dashed var(--dnse-border-light,#eee);display:flex;font-size:13px;gap:12px;justify-content:space-between;padding-bottom:10px}.meta-detail-row:last-child{border-bottom:none;padding-bottom:0}.meta-detail-key{color:#757575;color:var(--dnse-gray-600,#757575);font-weight:500;white-space:nowrap}.meta-detail-val{color:#212121;color:var(--dnse-gray-900,#212121);font-weight:600;text-align:right;word-break:break-word}.meta-detail-val.code-badge{background:#f5f5f5;background:var(--dnse-gray-100,#f5f5f5);font-family:monospace;padding:2px 6px}.meta-detail-val.category-tag,.meta-detail-val.code-badge{border-radius:4px;color:#003b7a;color:var(--dnse-primary,#003b7a);font-size:12px}.meta-detail-val.category-tag{background:#003b7a14;padding:2px 8px}.meta-source-link{align-items:center;color:#06c;color:var(--dnse-accent,#06c);display:inline-flex;font-weight:700;gap:4px;text-decoration:none}.meta-source-link:hover{text-decoration:underline}.meta-detail-val.author-tag,.meta-detail-val.interaction-tag,.meta-detail-val.time-tag{align-items:center;display:inline-flex;gap:5px}.meta-detail-val.sentiment-tag{border-radius:4px;font-size:11.5px;font-weight:700;padding:2px 8px}.quick-nav-card{background:#f8fafc;border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0)}.quick-nav-title{color:#424242;color:var(--dnse-gray-800,#424242);font-size:13.5px;font-weight:800;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.quick-nav-buttons{display:flex;flex-direction:column;gap:8px}.quick-nav-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--dnse-border-light,#e2e8f0);border-radius:6px;color:#003b7a;color:var(--dnse-primary,#003b7a);display:flex;font-size:12.5px;font-weight:600;justify-content:space-between;padding:9px 12px;text-decoration:none;transition:all .2s ease}.quick-nav-btn:hover{background:#003b7a0f;border-color:#0052a3;border-color:var(--dnse-primary-light,#0052a3);transform:translateX(3px)}.news-detail-loading-state{align-items:center;color:#757575;color:var(--dnse-gray-600,#757575);display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:50vh;text-align:center}.news-detail-loading-state h3{color:#212121;color:var(--dnse-gray-900,#212121);font-size:18px;margin:8px 0 0}.news-detail-loading-state p{font-size:13.5px;margin:0}@media (max-width:1200px){.news-article-card{padding:28px 30px}}@media (max-width:1024px){.news-detail-container{display:flex;flex-direction:column;gap:20px;margin:16px auto 36px;padding:0 16px}.news-article-card{padding:24px 20px}.news-article-card,.news-sidebar{grid-column:span 12}.news-article-title{font-size:22px}.news-topbar-inner{padding:10px 16px}}@media (max-width:768px){.news-topbar-inner{align-items:flex-start;flex-direction:column}.news-topbar-actions{justify-content:flex-start;overflow-x:auto;padding-bottom:4px;width:100%}.news-article-title{font-size:20px}.news-article-card{padding:20px 16px}.news-article-sapo{padding:12px 14px}.news-article-sapo p{font-size:14.5px}.news-body-paragraph,.news-html-content{font-size:14.5px;line-height:1.75}}