/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.flex-1{flex:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--bg-base:#faf8f8;--bg-gradient:radial-gradient(ellipse at top, #fdf0f0 0%, #faf8f8 55%);--bg-surface:#fff;--bg-surface-hover:#f7f4f4;--bg-elevated:#f2eeed;--bg-input:#f6f3f3;--border-subtle:#ece7e6;--border-default:#dcd5d4;--border-strong:#c4b9b8;--border-glow:#dc262633;--text-primary:#1c1614;--text-secondary:#5a504e;--text-tertiary:#8c807e;--text-muted:#b0a6a4;--accent-primary:#dc2626;--accent-primary-hover:#b91c1c;--accent-secondary:#475569;--accent-gradient:linear-gradient(135deg, #dc2626 0%, #991b1b 100%);--accent-gradient-text:linear-gradient(135deg, #dc2626 0%, #7f1d1d 100%);--color-bull:#dc2626;--color-bull-glow:#dc26261a;--color-bull-border:#dc262640;--color-bear:#059669;--color-bear-glow:#05966914;--color-bear-border:#05966933;--color-warn:#d97706;--color-warn-glow:#d977061a;--color-warn-border:#d9770640;--color-info:#2563eb;--status-pass:#16a34a;--status-pass-glow:#16a34a1a;--status-pass-border:#16a34a40;--status-fail:#dc2626;--status-fail-glow:#dc26261a;--status-fail-border:#dc262640;--health-good:#dc2626;--health-watch:#d97706;--health-warn:#ea580c;--health-danger:#059669;--health-broken:#9ca3af;--shadow-sm:0 1px 2px #3c14140d;--shadow-md:0 4px 12px #3c141412;--shadow-lg:0 8px 24px #3c14141a;--shadow-glow:0 4px 16px #dc26261a;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--font-sans:"Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-serif:"Noto Serif SC", Georgia, serif;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-gradient);color:var(--text-primary);background-attachment:fixed;min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{color:inherit;font-family:inherit}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:100;flex-direction:column;flex-shrink:0;width:220px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{padding:var(--space-lg) var(--space-lg) var(--space-md);align-items:center;gap:var(--space-sm);display:flex}.sidebar-brand-icon{border-radius:var(--radius-md);object-fit:contain;width:32px;height:32px;box-shadow:var(--shadow-glow);flex-shrink:0}.sidebar-brand-name{font-size:var(--text-xl);background:var(--accent-gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.sidebar-nav{padding:var(--space-md) var(--space-sm);flex:1;overflow-y:auto}.sidebar-nav-section{margin-bottom:var(--space-lg)}.sidebar-nav-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);font-weight:600}.sidebar-nav-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-base);transition:all var(--transition-fast);font-weight:500;display:flex;position:relative}.sidebar-nav-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--bg-elevated);color:var(--text-primary)}.sidebar-nav-item.active:before{content:"";background:var(--accent-gradient);border-radius:var(--radius-full);width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-nav-icon{width:20px;height:20px;font-size:var(--text-md);opacity:.8;justify-content:center;align-items:center;display:flex}.sidebar-nav-item.active .sidebar-nav-icon{opacity:1}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border-subtle)}.sidebar-user{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);display:flex}.sidebar-user-btn{align-items:center;gap:var(--space-sm);min-width:0;padding:var(--space-sm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;flex:1;display:flex}.sidebar-user-btn:hover{background:var(--bg-surface-hover)}.sidebar-user-avatar{border-radius:var(--radius-full);background:var(--accent-gradient);width:32px;height:32px;font-size:var(--text-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.sidebar-user-plan{font-size:var(--text-xs);color:var(--text-tertiary)}.main-content{flex:1;min-width:0;margin-left:220px}.main-header{z-index:50;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);padding:var(--space-md) var(--space-xl);justify-content:space-between;align-items:center;gap:var(--space-lg);background:#f8f9fcd9;display:flex;position:sticky;top:0}.main-header-title{font-size:var(--text-2xl);color:var(--text-primary);font-weight:700}.main-header-subtitle{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:2px}.main-header-actions{align-items:center;gap:var(--space-sm);display:flex}.main-body{padding:var(--space-xl);max-width:1400px}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-normal)}.card-hover:hover{border-color:var(--border-default);background:var(--bg-surface-hover);box-shadow:var(--shadow-md)}.card-glow:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow)}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-md);color:var(--text-primary);font-weight:600}.card-subtitle{font-size:var(--text-xs);color:var(--text-tertiary)}.grid{gap:var(--space-lg);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media(max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--text-base);transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 8px #dc262640}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #dc262659}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover{background:var(--bg-surface-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.btn-danger{color:#fff;background:#991b1b;box-shadow:0 2px 8px #991b1b4d}.btn-danger:hover{background:#7f1d1d;transform:translateY(-1px);box-shadow:0 4px 16px #991b1b73}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--text-md)}.badge{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;gap:4px;font-weight:600;line-height:1.5;display:inline-flex}.badge-bull{background:var(--color-bull-glow);color:var(--color-bull);border:1px solid var(--color-bull-border)}.badge-bear{background:var(--color-bear-glow);color:var(--color-bear);border:1px solid var(--color-bear-border)}.badge-warn{background:var(--color-warn-glow);color:var(--color-warn);border:1px solid var(--color-warn-border)}.badge-info{color:var(--accent-secondary);background:#4755691a;border:1px solid #47556933}.badge-neutral{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-default)}.health-ring{flex-shrink:0;width:80px;height:80px;position:relative}.health-ring svg{transform:rotate(-90deg)}.health-ring-bg{fill:none;stroke:var(--bg-elevated);stroke-width:6px}.health-ring-fg{fill:none;stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .6s}.health-ring-value{font-size:var(--text-lg);font-weight:700;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.stock-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-md);transition:all var(--transition-normal);cursor:pointer}.stock-card:hover{border-color:var(--border-default);background:var(--bg-surface-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stock-card-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.stock-card-name{align-items:center;gap:var(--space-sm);display:flex}.stock-card-symbol{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary)}.stock-card-title{font-size:var(--text-md);font-weight:600}.stock-card-price{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700}.stock-card-change{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600}.change-up{color:var(--color-bull)}.change-down{color:var(--color-bear)}.progress-bar{background:var(--bg-elevated);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent-gradient);border-radius:var(--radius-full);height:100%;transition:width .5s}.stars{color:var(--text-muted);vertical-align:middle;align-items:center;gap:2px;display:inline-flex}.stars span{flex-shrink:0;align-items:center;display:inline-flex}.stars svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;width:14px;height:14px}.stars .star-filled svg{fill:#fbbf24;stroke:#fbbf24}.star-filled,.star-empty{vertical-align:middle;flex-shrink:0;align-items:center;display:inline-flex}.star-filled svg,.star-empty svg{stroke-width:2px;stroke-linejoin:round;width:12px;height:12px}.star-filled svg{fill:#fbbf24;stroke:#fbbf24}.star-empty svg{fill:none;stroke:var(--text-muted)}.signal-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px;display:inline-block}.signal-dot.buy{background:var(--color-bull);box-shadow:0 0 8px var(--color-bull-glow)}.signal-dot.watch{background:var(--color-warn);box-shadow:0 0 8px var(--color-warn-glow)}.signal-dot.sell{background:var(--color-bear);box-shadow:0 0 8px var(--color-bear-glow)}.input{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--text-base);color:var(--text-primary);transition:all var(--transition-fast)}.input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #dc26261f}.input::placeholder{color:var(--text-muted)}.input-error{border-color:var(--color-bear);box-shadow:0 0 0 3px #0596691a}.profile-hero{align-items:center;gap:var(--space-lg);display:flex}.profile-hero-avatar{background:var(--accent-gradient);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.profile-hero-info{flex:1;min-width:0}.profile-hero-name{font-size:var(--text-lg);color:var(--text-primary);font-weight:600}.name-display-row{align-items:center;gap:var(--space-sm);margin-bottom:4px;display:flex}.name-edit-btn{transition:color var(--transition-fast);color:var(--text-tertiary)!important;padding:4px!important}.name-edit-btn:hover{color:var(--accent-primary)!important}.name-edit-row{align-items:center;gap:var(--space-xs);margin-bottom:4px;display:flex}.profile-hero-meta{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.section-header{align-items:center;gap:var(--space-sm);padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--border-subtle);display:flex}.section-icon{color:var(--accent-primary);flex-shrink:0}.section-title{font-size:var(--text-md);color:var(--text-primary);font-weight:600}.form-body{gap:var(--space-md);flex-direction:column;display:flex}.form-actions{justify-content:flex-end;display:flex}.inline-icon{vertical-align:-2px;margin-right:4px;display:inline}.pwd-input-wrapper{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:stretch;display:flex;overflow:hidden}.pwd-input-wrapper:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #dc26261f}.pwd-input-wrapper.has-error{border-color:var(--color-bear);box-shadow:0 0 0 3px #0596691a}.pwd-input-wrapper input{min-width:0;padding:var(--space-sm) var(--space-md);font-size:var(--text-base);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.pwd-input-wrapper input::placeholder{color:var(--text-muted)}.pwd-toggle{width:38px;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.pwd-toggle:hover{color:var(--accent-primary)}.field-hint{font-size:var(--text-xs);color:var(--text-tertiary);align-items:center;gap:4px;display:flex}.field-hint-error{color:var(--color-bear)}.modal-overlay{z-index:200;padding:var(--space-xl);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal-card{width:100%;max-width:460px}.modal-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-body{gap:var(--space-lg);flex-direction:column;display:flex}.section-block{flex-direction:column;display:flex}.section-block .section-header{padding-bottom:var(--space-sm);margin-bottom:var(--space-md)}.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);font-weight:600}.table td{padding:var(--space-md);font-size:var(--text-base);border-bottom:1px solid var(--border-subtle)}.table tbody tr:hover{background:var(--bg-surface-hover)}.table .mono{font-family:var(--font-mono)}.table th.text-right,.table td.text-right{text-align:right}.table th.text-center,.table td.text-center{text-align:center}.portfolio-table-card{padding:0;overflow-x:auto}.portfolio-table{min-width:1100px}.portfolio-table th,.portfolio-table td{vertical-align:middle}.portfolio-symbol-col{width:160px}.portfolio-market-col{text-align:center;width:72px}.portfolio-market-tag{min-width:48px;height:26px;padding:0 var(--space-sm);white-space:nowrap;font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:999px;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.portfolio-thesis-col{width:150px}.portfolio-thesis-action{justify-content:flex-start;min-width:128px}.portfolio-return-col{width:120px}.portfolio-return-cell{font-family:var(--font-mono);flex-direction:column;align-items:flex-end;gap:2px;display:inline-flex}.portfolio-return-rate{font-weight:700}.portfolio-return-amount{font-size:var(--text-xs)}.portfolio-actions-col{width:330px}.portfolio-actions{justify-content:flex-start;align-items:center;gap:var(--space-xs);display:inline-flex}.portfolio-action-btn{min-width:64px}.readonly-field{min-height:40px;padding:0 var(--space-md);color:var(--text-primary);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;display:flex}.trade-modal{background:var(--bg-surface);width:100%;max-width:640px;max-height:88vh;overflow-y:auto}.trade-summary{gap:var(--space-md);padding:var(--space-md);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.trade-summary-value{font-size:var(--text-lg);margin-top:2px;font-weight:700}.trade-side-tabs{gap:var(--space-xs);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.trade-side-tab{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:calc(var(--radius-md) - 2px);background:var(--bg-surface);min-height:40px;color:var(--text-secondary);cursor:pointer;border:1px solid #0000;font-weight:700;display:inline-flex}.trade-side-dot{background:currentColor;border-radius:999px;width:8px;height:8px}.trade-side-buy{color:var(--color-bull);border-color:var(--color-bull-border);background:#dc26260d}.trade-side-sell{color:var(--color-bear);border-color:var(--color-bear-border);background:#0596690d}.trade-side-tab:not(.active){opacity:.62}.trade-side-tab.active{opacity:1;box-shadow:var(--shadow-sm)}.trade-side-buy.active{background:var(--color-bull-glow);border-color:var(--color-bull)}.trade-side-sell.active{background:var(--color-bear-glow);border-color:var(--color-bear)}.trade-history{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.trade-history-title{margin-bottom:var(--space-sm);font-weight:700}.trade-history-list{gap:var(--space-xs);flex-direction:column;display:flex}.trade-history-row{justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);display:flex}.portfolio-report-backdrop{z-index:200;padding:var(--space-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1c161475;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.portfolio-report-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:820px;max-height:86vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #3c14142e}.portfolio-report-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-lg) var(--space-xl) var(--space-md);border-bottom:1px solid var(--border-subtle);background:linear-gradient(#fff,#fffbfb);display:flex}.portfolio-report-title{font-size:var(--text-xl);color:var(--text-primary);font-weight:700}.portfolio-report-subtitle{color:var(--text-tertiary);font-size:var(--text-xs);margin-top:4px}.portfolio-report-close{flex-shrink:0}.portfolio-report-loading{justify-content:center;align-items:center;gap:var(--space-md);min-height:320px;padding:var(--space-2xl);text-align:center;flex-direction:column;display:flex}.portfolio-report-body{padding:var(--space-xl);font-size:var(--text-base);flex:1;line-height:1.85;overflow-y:auto}.portfolio-report-body h1{display:none}.portfolio-report-body h2{margin:var(--space-lg) 0 var(--space-md);padding:0 0 0 var(--space-md);border-bottom:none;border-left:3px solid var(--accent-primary);font-size:var(--text-lg);line-height:1.4}.portfolio-report-body h2:first-child,.portfolio-report-body h1+h2{margin-top:0}.portfolio-report-body h3{margin:var(--space-md) 0 var(--space-sm);font-size:var(--text-md)}.portfolio-report-body p{margin:var(--space-sm) 0 var(--space-md);color:var(--text-secondary)}.portfolio-report-body strong{color:var(--text-primary);font-weight:700}.portfolio-report-body ul,.portfolio-report-body ol{margin:var(--space-sm) 0 var(--space-md);padding-left:0;list-style:none}.portfolio-report-body li{margin:var(--space-xs) 0;padding-left:var(--space-lg);color:var(--text-secondary);position:relative}.portfolio-report-body li:before{content:"";border-radius:var(--radius-full);background:var(--accent-primary);opacity:.45;width:6px;height:6px;position:absolute;top:.75em;left:2px}.portfolio-report-body ol{counter-reset:portfolio-report-list}.portfolio-report-body ol>li{counter-increment:portfolio-report-list;padding-left:28px}.portfolio-report-body ol>li:before{content:counter(portfolio-report-list);background:var(--bg-elevated);width:18px;height:18px;color:var(--accent-primary);opacity:1;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;top:.25em;left:0}.portfolio-report-body table{border-collapse:separate;border-spacing:0;width:100%;margin:var(--space-md) 0 var(--space-lg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:block;overflow-x:auto}.portfolio-report-body th,.portfolio-report-body td{border:none;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:10px 12px}.portfolio-report-body tr:last-child td{border-bottom:none}.portfolio-report-body th{background:var(--bg-elevated);color:var(--text-secondary);font-size:var(--text-xs)}.portfolio-report-body blockquote{margin:var(--space-md) 0;border-left-color:var(--accent-primary);background:#fff7f7}.thesis-hero{gap:var(--space-lg);padding:var(--space-xl);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:linear-gradient(135deg,#dc26260f,#4755690a),var(--bg-surface);box-shadow:var(--shadow-sm);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.thesis-health-panel{align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#ffffffb8;flex-direction:column;min-width:150px;display:flex}.thesis-hero-main{min-width:0}.thesis-kicker{margin-bottom:var(--space-sm);font-size:var(--text-md);color:var(--accent-primary);letter-spacing:.08em;font-weight:700}.thesis-quote{padding-left:var(--space-lg);color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-lg);line-height:1.85;position:relative}.thesis-quote:before{content:"“";color:var(--accent-primary);font-family:Georgia,serif;font-size:34px;line-height:1;position:absolute;top:-10px;left:0}.thesis-points{gap:var(--space-sm);padding-left:var(--space-xs);flex-direction:column;display:flex}.thesis-point-preamble{color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-md);padding-bottom:var(--space-xs);border-bottom:1px dashed var(--border-subtle);line-height:1.7}.thesis-point{align-items:flex-start;gap:var(--space-sm);color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-md);line-height:1.7;display:flex}.thesis-point-idx{background:var(--accent-gradient-text);color:#fff;width:22px;height:22px;font-family:var(--font-sans);font-size:var(--text-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-weight:700;display:flex}.thesis-point-text{flex:1}.thesis-meta-row{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.thesis-meta-pill{min-height:28px;padding:0 var(--space-md);border-radius:var(--radius-full);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-xs);background:#ffffffc2;align-items:center;display:inline-flex}.thesis-actions{gap:var(--space-sm);flex-direction:column;min-width:148px;display:flex}.thesis-card-grid{align-items:start}.thesis-section-card{border-color:var(--border-default);height:100%}.thesis-section-header{padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle);align-items:flex-start}.thesis-check-item{align-items:flex-start;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-subtle);display:flex}.thesis-check-item:last-child,.thesis-redline-item:last-child,.valuation-anchor-item:last-child{border-bottom:none}.thesis-check-title{align-items:center;gap:var(--space-sm);color:var(--text-primary);font-size:var(--text-base);font-weight:600;line-height:1.55;display:flex}.thesis-check-detail{margin-top:var(--space-sm);font-size:var(--text-xs);line-height:1.7}.thesis-redline-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);display:flex}.thesis-redline-item.triggered{border-color:var(--color-bear-border);background:#0596690f}.valuation-anchor-list{margin-top:var(--space-md);flex-direction:column;display:flex}.valuation-anchor-item{gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(110px,.9fr) minmax(0,1.2fr);align-items:start;display:grid}.valuation-anchor-label{align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:600;display:flex}.valuation-anchor-content{text-align:right;min-width:0}.valuation-anchor-value{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-base);overflow-wrap:anywhere;font-weight:700}.valuation-anchor-meta{margin-top:var(--space-xs);color:var(--text-tertiary);font-size:var(--text-xs);line-height:1.55}@media(max-width:1024px){.thesis-hero{grid-template-columns:auto minmax(0,1fr)}.thesis-actions{flex-flow:wrap;grid-column:1/-1}}@media(max-width:768px){.thesis-hero{padding:var(--space-lg);grid-template-columns:1fr}.thesis-health-panel{align-items:flex-start;min-width:0}.valuation-anchor-item{grid-template-columns:1fr}.valuation-anchor-content{text-align:left}}.thesis-report-backdrop{z-index:220;padding:var(--space-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#11182773;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.thesis-report-modal{border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface);flex-direction:column;width:min(960px,100%);max-height:min(86vh,900px);display:flex;overflow:hidden;box-shadow:0 24px 80px #0f172a38}.thesis-report-header{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,#dc262612,#f59e0b0a,#fff0);display:flex;position:sticky;top:0}.thesis-report-eyebrow{margin-bottom:var(--space-xs);color:var(--accent-primary);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:800}.thesis-report-title{color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:700;line-height:1.3}.thesis-report-close{width:34px;height:34px;color:var(--text-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);flex-shrink:0}.thesis-report-close:hover{color:var(--text-primary);border-color:var(--border-default);background:var(--bg-surface-hover)}.thesis-report-body{padding:var(--space-xl);color:var(--text-secondary);font-size:var(--text-base);flex:1;line-height:1.85;overflow-y:auto}.thesis-report-body h1,.thesis-report-body h2,.thesis-report-body h3{color:var(--text-primary);line-height:1.35}.thesis-report-body h1{margin:0 0 var(--space-md);font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:700}.thesis-report-body h2{margin:var(--space-xl) 0 var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);background:var(--bg-elevated);font-size:var(--text-lg);font-weight:800}.thesis-report-body h2:first-child,.thesis-report-body h1:first-child{margin-top:0}.thesis-report-body h3{margin:var(--space-lg) 0 var(--space-sm);font-size:var(--text-md);font-weight:800}.thesis-report-body p{margin:0 0 var(--space-md)}.thesis-report-body blockquote{margin:0 0 var(--space-lg);padding:var(--space-sm) var(--space-md);border:1px solid #dc26262e;border-left:4px solid var(--accent-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-primary);background:#dc26260d;font-weight:700}.thesis-report-body blockquote p{margin:0}.thesis-report-body strong{color:var(--text-primary);font-weight:800}.thesis-report-body hr{height:1px;margin:var(--space-xl) 0;background:var(--border-subtle);border:0}.thesis-report-body ul,.thesis-report-body ol{gap:var(--space-sm);margin:var(--space-sm) 0 var(--space-md);flex-direction:column;padding:0;display:flex}.thesis-report-body li{padding:var(--space-sm) var(--space-md) var(--space-sm) 30px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-hover);list-style:none;position:relative}.thesis-report-body li:before{content:"";border-radius:var(--radius-full);background:var(--accent-primary);width:6px;height:6px;position:absolute;top:1.05em;left:13px}.thesis-report-body table{border-collapse:collapse;width:100%;max-width:100%;margin:var(--space-md) 0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:block;overflow-x:auto}.thesis-report-body th,.thesis-report-body td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top}.thesis-report-body th{color:var(--text-primary);background:var(--bg-elevated);font-weight:800}.thesis-report-body tr:last-child td{border-bottom:0}@media(max-width:768px){.thesis-report-backdrop{padding:var(--space-md);align-items:stretch}.thesis-report-modal{max-height:92vh}.thesis-report-header,.thesis-report-body{padding-left:var(--space-lg);padding-right:var(--space-lg)}.thesis-report-title{font-size:var(--text-xl)}}.timeline{padding-left:28px;position:relative}.timeline:before{content:"";background:var(--border-subtle);width:2px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-item{padding-bottom:var(--space-lg);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{border-radius:var(--radius-full);border:2px solid var(--bg-base);z-index:1;width:12px;height:12px;position:absolute;top:4px;left:-28px}.timeline-dot.done{background:var(--color-bull)}.timeline-dot.active{background:var(--accent-primary);box-shadow:0 0 0 4px #dc262626}.timeline-dot.pending{background:var(--bg-elevated);border-color:var(--border-default)}.timeline-dot.failed{background:var(--color-bear)}.timeline-title{font-size:var(--text-base);margin-bottom:var(--space-xs);font-weight:600}.timeline-time{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.master-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);position:relative;overflow:hidden}.master-card:before{content:"";background:var(--master-color,var(--accent-gradient));height:3px;position:absolute;top:0;left:0;right:0}.master-card-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.master-avatar{border-radius:var(--radius-md);width:44px;height:44px;font-size:var(--text-lg);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.master-name{font-size:var(--text-md);font-weight:600}.master-role{font-size:var(--text-xs);color:var(--text-tertiary)}.master-rating{margin-left:auto}.master-quote{font-family:var(--font-serif);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-sm) var(--space-md);border-left:2px solid var(--border-default);margin:var(--space-sm) 0;font-style:italic}.master-viewpoint{font-size:var(--text-base);color:var(--text-secondary);line-height:1.7}.conflict-highlight{border:1px solid var(--color-warn-border);border-radius:var(--radius-md);padding:var(--space-md);background:#f59e0b14}.conflict-tag{font-size:var(--text-xs);color:var(--color-warn);margin-bottom:var(--space-sm);align-items:center;gap:4px;font-weight:600;display:inline-flex}.empty-state{text-align:center;min-height:320px;padding:var(--space-2xl) var(--space-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--space-md);border-radius:var(--radius-full);background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;display:inline-flex}.empty-state-icon svg{stroke-width:2px;width:28px;height:28px}.empty-state-title{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-sm);font-weight:600}.empty-state-desc{font-size:var(--text-base);color:var(--text-tertiary);margin-bottom:var(--space-lg)}.toast{top:var(--space-lg);right:var(--space-lg);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);align-items:center;gap:var(--space-sm);font-size:var(--text-base);box-shadow:var(--shadow-lg);z-index:200;display:flex;position:fixed}.report-row{padding:var(--space-lg) var(--space-xl);cursor:pointer;transition:background var(--transition-fast)}.report-row:hover{background:var(--bg-surface-hover)}.report-row-body{align-items:center;gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 112px 96px 64px;display:grid}.report-row-main{align-items:center;gap:var(--space-md);min-width:0;display:flex}.report-row-title-group{min-width:0}.report-row-title{font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;font-weight:600;line-height:1.4;overflow:hidden}.report-row-symbol{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.report-row-date{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.report-row-action{font-size:var(--text-sm);color:var(--accent-primary);white-space:nowrap;justify-self:end;font-weight:500}@media(max-width:1024px){.report-row-body{grid-template-columns:minmax(0,1fr) auto}.report-row-date,.report-row-body .stars{display:none}}.quick-actions-list{gap:var(--space-sm);flex-direction:column;display:flex}.quick-actions-list .card{width:100%}.search-provider-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color .15s;overflow:hidden}.search-provider-card.active{border-color:var(--accent-primary)}.search-provider-header{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.search-provider-header:hover{background:var(--bg-surface-hover)}.search-provider-card.active>.search-provider-header{background:#dc262605}.search-provider-header+div{padding:0 var(--space-lg) var(--space-md)}.search-test-section{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-subtle)}.search-test-result{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.search-test-result.success{border-color:var(--color-bear-border);background:#0596690a}.search-test-result.error{border-color:var(--color-bull-border);background:#dc26260a}.search-test-providers{margin-top:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.search-provider-test{padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface)}.search-provider-test.ok{border-left:3px solid var(--color-bear)}.search-provider-test.fail{border-left:3px solid var(--color-bull)}.search-test-items{margin-top:var(--space-sm);gap:var(--space-sm);flex-direction:column;display:flex}.search-test-item{padding:var(--space-sm) 0;border-bottom:1px dashed var(--border-subtle)}.search-test-item:last-child{border-bottom:none}.section-title{font-size:var(--text-lg);margin-bottom:var(--space-md);justify-content:space-between;align-items:center;font-weight:600;display:flex}.section-title .link-more{font-size:var(--text-sm);color:var(--accent-secondary);cursor:pointer;font-weight:500}.dashboard-summary-card{min-height:120px}.dashboard-pnl-amount{font-size:var(--text-2xl);font-weight:700}.dashboard-health-dist{gap:var(--space-xs);flex-wrap:wrap;display:flex}.dashboard-dist-item{font-size:var(--text-xs);padding:2px var(--space-sm);background:var(--bg-muted);border-radius:999px;font-weight:600}.dashboard-dist-item.bull{color:var(--color-bull)}.dashboard-dist-item.warn{color:var(--color-warn,#d97706)}.dashboard-dist-item.bear{color:var(--color-bear)}.dashboard-alerts{border-left:3px solid var(--health-danger,#dc2626)}.dashboard-alert-list{gap:var(--space-sm);flex-direction:column;display:flex}.dashboard-alert-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-muted);cursor:pointer;transition:background .15s;display:flex}.dashboard-alert-item:hover{background:var(--bg-surface-hover)}.dashboard-alerts-modal{width:100%;max-width:560px;max-height:80vh;padding:var(--space-lg) var(--space-xl);background:var(--bg-surface);overflow-y:auto}.dashboard-task-row{padding:var(--space-sm) 0;cursor:pointer;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.dashboard-task-row:last-child{border-bottom:none}.dashboard-task-row:hover{background:var(--bg-surface-hover)}.dashboard-stock-card .badge{font-size:var(--text-xs)}.dashboard-pnl-pct{font-size:var(--text-lg);font-weight:700}.mockup-nav{bottom:var(--space-lg);right:var(--space-lg);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-sm);gap:var(--space-xs);z-index:200;box-shadow:var(--shadow-lg);display:flex;position:fixed}.mockup-nav a{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);transition:all var(--transition-fast)}.mockup-nav a:hover,.mockup-nav a.active{background:var(--bg-surface-hover);color:var(--text-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.flex-1{flex:1}.text-right{text-align:right}.text-center{text-align:center}.mono{font-family:var(--font-mono)}.muted{color:var(--text-tertiary)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.hidden{display:none}.icon{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}svg>use{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.icon-sm{width:16px;height:16px}.icon-lg{width:24px;height:24px}.icon-xl{width:32px;height:32px}.btn .icon{width:16px;height:16px}.sidebar-nav-icon{opacity:.7;width:20px;height:20px}.sidebar-nav-item.active .sidebar-nav-icon{opacity:1;color:var(--accent-primary)}.status-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.status-icon.pass{background:var(--color-bull-glow);color:var(--color-bull)}.status-icon.fail{background:var(--color-bear-glow);color:var(--color-bear)}.status-icon.pending{background:var(--color-warn-glow);color:var(--color-warn)}.status-icon.neutral{background:var(--bg-elevated);color:var(--text-tertiary)}.status-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.master-avatar{justify-content:center;align-items:center;display:flex}.assumption-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px;display:inline-block}.assumption-dot.healthy{background:var(--color-bull)}.assumption-dot.weaken{background:var(--color-warn)}.assumption-dot.damaged{background:#fb923c}.assumption-dot.broken{background:var(--color-bear)}.assumption-dot.pending{background:var(--bg-elevated);border:1px solid var(--border-default)}.redline-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px;display:inline-block}.redline-dot.triggered{background:var(--color-bear);box-shadow:0 0 6px var(--color-bear-glow)}.redline-dot.safe{background:var(--color-bull)}.login-page{min-height:100vh;padding:var(--space-xl);justify-content:center;align-items:center;display:flex;position:relative}.login-page:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#dc262614,#0000 60%);width:800px;height:800px;position:fixed;top:-20%;left:50%;transform:translate(-50%)}.login-card{z-index:1;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:400px;padding:var(--space-2xl);box-shadow:var(--shadow-lg);position:relative}.login-logo{align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.login-logo-icon{border-radius:var(--radius-lg);background:var(--accent-gradient);width:56px;height:56px;font-size:var(--text-2xl);color:#fff;justify-content:center;align-items:center;font-weight:700;display:flex;box-shadow:0 8px 24px #dc262659}.login-logo-name{font-size:var(--text-2xl);background:var(--accent-gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.login-tagline{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center}.login-form{gap:var(--space-md);flex-direction:column;display:flex}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.form-error{font-size:var(--text-sm);color:var(--color-bear);background:var(--color-bear-glow);border:1px solid var(--color-bear-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.form-success{font-size:var(--text-sm);color:var(--color-bull);background:var(--color-bull-glow);border:1px solid var(--color-bull-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.login-footer{text-align:center;margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--text-tertiary)}.remember-row{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.remember-row input{accent-color:var(--accent-primary)}.login-footer a{color:var(--accent-primary);font-weight:500}.thesis-snapshot-view{overflow:hidden}.thesis-snapshot-hero{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);padding:var(--space-xl);margin:calc(var(--space-lg) * -1) calc(var(--space-lg) * -1) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,#dc26260f,#f59e0b0a);display:flex}.thesis-snapshot-hero-main{flex:1;min-width:0}.thesis-snapshot-eyebrow{margin-bottom:var(--space-xs);color:var(--accent-primary);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:800}.thesis-snapshot-hero h1{margin:0 0 var(--space-sm);color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-2xl);line-height:1.35}.thesis-snapshot-core{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.thesis-snapshot-core-intro,.thesis-snapshot-core-empty{width:fit-content;max-width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-md);background:#ffffff8f;font-weight:700;line-height:1.7}.thesis-snapshot-core-empty{color:var(--text-tertiary);font-weight:500}.thesis-snapshot-core-points{gap:var(--space-sm);grid-template-columns:1fr;display:grid}.thesis-snapshot-core-point{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);background:#ffffff9e;border:1px solid #dc26261f;grid-template-columns:28px 1fr;line-height:1.75;display:grid}.thesis-snapshot-core-index{border-radius:var(--radius-full);width:24px;height:24px;color:var(--accent-primary);font-size:var(--text-xs);background:#dc26261a;justify-content:center;align-items:center;margin-top:2px;font-weight:900;display:inline-flex}.thesis-snapshot-meta{justify-content:flex-end;gap:var(--space-xs);flex-wrap:wrap;flex-shrink:0;max-width:280px;display:flex}.thesis-snapshot-section{margin-top:var(--space-xl)}.thesis-snapshot-section:first-of-type{margin-top:0}.thesis-snapshot-section-title{margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:800}.thesis-snapshot-list{gap:var(--space-sm);flex-direction:column;display:flex}.thesis-snapshot-row{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface-hover);display:flex}.thesis-snapshot-row-main{flex:1;min-width:0}.thesis-snapshot-row-title{gap:var(--space-sm);color:var(--text-primary);font-size:var(--text-md);font-weight:700;line-height:1.7;display:flex}.thesis-snapshot-row-detail{margin-top:var(--space-xs);color:var(--text-tertiary);font-size:var(--text-sm);line-height:1.7}.thesis-snapshot-status{border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-surface);min-width:84px;font-size:var(--text-xs);white-space:nowrap;justify-content:center;align-items:center;gap:4px;padding:5px 9px;font-weight:800;display:inline-flex}.thesis-snapshot-status.is-bull{color:var(--status-pass);background:#16a34a12;border-color:#16a34a42}.thesis-snapshot-status.is-warn{color:var(--color-warn);background:#f59e0b14;border-color:#f59e0b4d}.thesis-snapshot-status.is-bear{color:var(--status-fail);background:#dc262614;border-color:#dc262647}.thesis-snapshot-status.is-neutral{color:var(--text-secondary);border-color:var(--border-default);background:var(--bg-elevated)}.thesis-snapshot-anchor-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.thesis-snapshot-anchor{padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface-hover)}.thesis-snapshot-anchor-label{margin-bottom:var(--space-xs);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:800}.thesis-snapshot-anchor-value{color:var(--text-primary);font-size:var(--text-md);font-weight:700;line-height:1.7}@media(max-width:768px){.thesis-snapshot-hero{padding:var(--space-lg);flex-direction:column}.thesis-snapshot-meta{justify-content:flex-start;max-width:none}.thesis-snapshot-core-points{grid-template-columns:1fr}.thesis-snapshot-row{gap:var(--space-sm);flex-direction:column}}.spinner{border:2px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}.page-loader{justify-content:center;align-items:center;gap:var(--space-md);min-height:60vh;color:var(--text-tertiary);flex-direction:column;display:flex}.app-body{min-height:calc(100vh - 73px)}.report-body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);line-height:1.8}.report-body h1{font-size:var(--text-3xl);margin:var(--space-xl) 0 var(--space-md);font-weight:700}.report-body h2{font-size:var(--text-2xl);margin:var(--space-lg) 0 var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-subtle);font-weight:700}.report-body h3{font-size:var(--text-xl);margin:var(--space-lg) 0 var(--space-sm);font-weight:600}.report-body p{margin:var(--space-sm) 0}.report-body ul,.report-body ol{margin:var(--space-sm) 0;padding-left:var(--space-lg)}.report-body ul{list-style:outside}.report-body ol{list-style:decimal}.report-body li{margin:var(--space-xs) 0}.report-body blockquote{border-left:3px solid var(--accent-primary);padding:var(--space-sm) var(--space-md);margin:var(--space-md) 0;color:var(--text-secondary);background:var(--bg-elevated);border-radius:0 var(--radius-md) var(--radius-md) 0}.report-body code{font-family:var(--font-mono);background:var(--bg-elevated);border-radius:var(--radius-sm);padding:2px 6px;font-size:.9em}.report-body pre{background:var(--bg-elevated);padding:var(--space-md);border-radius:var(--radius-md);margin:var(--space-md) 0;overflow-x:auto}.report-body pre code{background:0 0;padding:0}.report-body table{border-collapse:collapse;width:100%;margin:var(--space-md) 0}.report-body th,.report-body td{border:1px solid var(--border-subtle);padding:var(--space-sm) var(--space-md);text-align:left}.report-body th{background:var(--bg-elevated);font-weight:600}.report-body a{color:var(--accent-primary)}.report-body hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-lg) 0}.search-box{align-items:center;gap:var(--space-sm);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:all var(--transition-fast);display:flex}.search-box:focus-within{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px #dc26261f}.search-box input{font-size:var(--text-base);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.search-box input::placeholder{color:var(--text-muted)}@media(max-width:768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}}@media(max-width:1024px){.main-body [style*=grid-template-columns]{grid-template-columns:1fr!important}}.ds-layer{margin-bottom:var(--space-md)}.ds-layer-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-subtle);display:flex}.ds-source-list{gap:var(--space-sm);padding-top:var(--space-sm);flex-direction:column;display:flex}.ds-source-card{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface)}.ds-source-card.ok{border-left:3px solid var(--color-bear)}.ds-source-card.fail{border-left:3px solid var(--color-bull)}.ds-preview{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-hover);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);word-break:break-all;max-height:120px;overflow-y:auto}.ds-error{margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-bull);word-break:break-all;background:#dc26260f}.ds-crosscheck-table{overflow-x:auto}.ds-crosscheck-table table{min-width:500px}.ds-crosscheck-table th{font-size:var(--text-sm);color:var(--text-secondary);border-bottom:2px solid var(--border-subtle);font-weight:600}.ds-diff-warn{color:var(--color-bull)}.ds-map-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.ds-map-card{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface)}.ds-key-input-row{align-items:center;gap:var(--space-xs);display:flex}.ds-key-input-row .input{flex:1}.ds-key-toggle{flex-shrink:0;padding:8px}.ds-chain-list{flex-direction:column;gap:0;display:flex}.ds-chain-row{align-items:flex-start;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);display:flex}.ds-chain-row:last-child{border-bottom:none}.ds-chain-label{font-weight:600;font-size:var(--text-sm);min-width:120px;padding-top:5px}.ds-chain-providers{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.ds-chain-badge-group{align-items:center;gap:2px;display:inline-flex}.ds-chain-arrow{font-size:var(--text-lg);color:var(--text-tertiary);margin:0 2px}.ds-chain-badge{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:4px 10px;font-weight:500;transition:all .15s;display:inline-flex}.ds-chain-badge:hover:not(:disabled){border-color:var(--accent-primary)}.ds-chain-badge:disabled{opacity:.5;cursor:default}.ds-chain-badge.has-key{border-color:var(--color-bull);color:var(--color-bull)}.ds-chain-badge.ds-chain-disabled{opacity:.4;cursor:pointer;text-decoration:line-through}.ds-chain-disabled:hover{opacity:.7;text-decoration:none}.ds-chain-main{background:var(--color-bull);color:#fff;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:600}.ds-chain-key{background:var(--color-bull);color:#fff;border-radius:3px;padding:1px 3px;font-size:9px}.ds-chain-move-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:2px;line-height:1}.ds-chain-move-btn:hover:not(:disabled){color:var(--accent-primary)}.ds-chain-move-btn:disabled{opacity:.3;cursor:default}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
