:root {
  --ink: #13231d;
  --muted: #667870;
  --line: #dfe8e3;
  --canvas: #f2f6f4;
  --card: #ffffff;
  --green: #0f6b45;
  --green-dark: #081c15;
  --green-soft: #e4f2eb;
  --amber: #9a6412;
  --amber-soft: #fff4dc;
  --blue: #285b88;
  --blue-soft: #e8f2fa;
  --violet: #644e99;
  --violet-soft: #f0ebfa;
  --shadow: 0 18px 48px rgba(8, 28, 21, .08);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--canvas); color: var(--ink); font: 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.topbar { position: sticky; z-index: 30; top: 0; min-height: 76px; padding: 10px max(28px, calc((100vw - 1440px) / 2)); display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.brand { color: inherit; display: flex; gap: 11px; align-items: center; text-decoration: none; }
.brand-mark { width: 40px; height: 40px; border-radius: 12px; background: var(--green-dark); color: #b5e4cb; display: grid; place-items: center; font-weight: 800; font-size: 12px; letter-spacing: .5px; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; line-height: 1.2; }.brand small { color: var(--muted); font-size: 11px; }
.top-actions, .filters, .toolbar, .dialog-actions, .form-row { display: flex; gap: 10px; align-items: center; }
.search { width: 320px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: var(--canvas); border-radius: 10px; padding: 0 12px; position: relative; }
.search input { width: 100%; border: 0; outline: 0; background: transparent; padding: 9px 0; }
.search-results { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; max-height: 420px; overflow: auto; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); }.search-result { width: 100%; padding: 10px; border: 0; border-radius: 8px; display: flex; justify-content: space-between; gap: 8px; text-align: left; background: #fff; }.search-result:hover { background: var(--green-soft); }.search-result strong, .search-result small { display: block; }.search-result small { color: var(--muted); }
.button, .icon-button, .text-button, .tab { border: 0; background: transparent; color: var(--ink); }
.button { border-radius: 9px; padding: 9px 15px; font-weight: 650; }
.button.primary { background: var(--green-dark); color: #fff; }.button.ghost { border: 1px solid var(--line); background: #fff; }
.icon-button { min-width: 38px; height: 38px; border: 1px solid var(--line); background: #fff; border-radius: 9px; }
main { max-width: 1440px; margin: auto; padding: 28px 28px 70px; }
.hero { min-height: 190px; border-radius: 18px; padding: 34px 38px; display: flex; align-items: center; justify-content: space-between; color: #fff; background: radial-gradient(circle at 80% -20%, #2e805e 0, transparent 40%), linear-gradient(135deg, #071b14, #123a2a); overflow: hidden; position: relative; }
.hero:after { content: ""; position: absolute; width: 220px; height: 220px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; right: 70px; top: -50px; box-shadow: 0 0 0 40px rgba(255,255,255,.025), 0 0 0 80px rgba(255,255,255,.02); }
.eyebrow { margin: 0 0 8px; color: #76c79e; font-size: 10px; font-weight: 800; letter-spacing: 1.6px; }
h1 { font-size: clamp(27px, 4vw, 43px); letter-spacing: -1.5px; margin: 0 0 10px; line-height: 1.12; }.hero-copy { margin: 0; max-width: 570px; color: #b8ccc2; }
.hero-date { z-index: 1; min-width: 128px; padding: 18px; text-align: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: 14px; backdrop-filter: blur(5px); }
.hero-date span, .hero-date small { display: block; color: #b8d8c8; text-transform: uppercase; font-size: 10px; letter-spacing: 1px; }.hero-date strong { display: block; font-size: 46px; line-height: 1.1; }
.metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 18px 0 26px; }
.metrics article { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 17px; display: flex; align-items: center; gap: 13px; box-shadow: 0 5px 15px rgba(8,28,21,.025); }
.metrics small, .metrics strong { display: block; }.metrics small { color: var(--muted); font-size: 11px; }.metrics strong { font-size: 23px; line-height: 1.2; }
.metric-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; font-weight: bold; }.green { color: var(--green); background: var(--green-soft); }.amber { color: var(--amber); background: var(--amber-soft); }.blue { color: var(--blue); background: var(--blue-soft); }.violet { color: var(--violet); background: var(--violet-soft); }
.toolbar { justify-content: space-between; margin-bottom: 14px; }.tabs { display: flex; gap: 3px; padding: 4px; background: #e9eeeb; border-radius: 10px; }.tab { padding: 7px 16px; border-radius: 7px; color: var(--muted); font-weight: 650; }.tab.active { background: #fff; color: var(--ink); box-shadow: 0 2px 6px rgba(8,28,21,.08); }
select, dialog input { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: #fff; color: var(--ink); outline-color: var(--green); }
.panel { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }.panel-heading { padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }.panel-heading h2 { margin: 0; font-size: 17px; letter-spacing: -.2px; }.panel-heading p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }.text-button { color: var(--green); font-weight: 700; font-size: 12px; }
table { width: 100%; border-collapse: collapse; }th { padding: 11px 22px; color: var(--muted); text-align: left; text-transform: uppercase; letter-spacing: .6px; font-size: 9px; background: #fafbfa; }td { padding: 14px 22px; border-top: 1px solid var(--line); }tbody tr:hover { background: #fafcfb; }tbody tr[data-company-symbol] { cursor: pointer; }
.company-cell { display: flex; align-items: center; gap: 11px; }.company-logo { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; color: var(--green-dark); background: var(--green-soft); font-size: 11px; font-weight: 800; }.company-cell strong, .company-cell small { display: block; }.company-cell small, .date-cell small { color: var(--muted); font-size: 10px; }.date-cell strong { display: block; }
.badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 20px; font-size: 10px; font-weight: 750; text-transform: capitalize; }.badge.confirmed { color: var(--green); background: var(--green-soft); }.badge.estimated { color: var(--amber); background: var(--amber-soft); }.star { color: #a9b6af; font-size: 18px; }.star.active { color: #d49624; }
.empty-state { padding: 60px 20px; text-align: center; }.empty-state span, .empty-state strong { display: block; }.empty-state span { color: var(--muted); margin-top: 4px; }
.news-list { display: grid; }.news-item { padding: 18px 22px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 150px 1fr auto; gap: 18px; align-items: start; }.news-item:first-child { border-top: 0; }.news-company strong, .news-company small { display: block; }.news-company small, .news-time, .news-copy p { color: var(--muted); font-size: 11px; }.news-copy h3 { margin: 4px 0; font-size: 14px; }.news-copy p { margin: 0; }.news-type { color: var(--blue); background: var(--blue-soft); border-radius: 20px; padding: 3px 7px; font-size: 9px; font-weight: 750; text-transform: uppercase; }.news-link { color: var(--green); font-weight: 700; text-decoration: none; white-space: nowrap; }
.job-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; padding: 22px; }.job-card { border: 1px solid var(--line); border-radius: 12px; padding: 18px; }.job-card-heading, .job-meta { display: flex; align-items: center; gap: 12px; }.job-card-heading h3, .job-card-heading p { margin: 0; }.job-card-heading p, .job-meta small { color: var(--muted); font-size: 11px; }.job-meta { justify-content: space-between; margin: 18px 0 12px; }.job-badge { padding: 4px 9px; border-radius: 20px; font-size: 10px; font-weight: 800; text-transform: uppercase; }.job-badge.idle { background: #edf1ef; color: var(--muted); }.job-badge.running { background: var(--amber-soft); color: var(--amber); }.job-badge.success { background: var(--green-soft); color: var(--green); }.job-badge.failed { background: #fde9e7; color: #a53b32; }.job-run-button { width: 100%; }.job-run-button:disabled, #runAllJobsButton:disabled { cursor: wait; opacity: .55; }.job-output { min-height: 100px; max-height: 230px; margin: 14px 0 0; padding: 12px; overflow: auto; white-space: pre-wrap; border-radius: 8px; color: #c8ded2; background: var(--green-dark); font: 10px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }.job-notice { margin: 0 22px 22px; padding: 12px; color: var(--amber); background: var(--amber-soft); border-radius: 8px; }
.calendar-panel .panel-heading { justify-content: center; gap: 18px; }.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }.calendar-weekdays span { padding: 12px; text-align: center; color: var(--muted); font-size: 10px; text-transform: uppercase; }.calendar-day { min-height: 115px; padding: 8px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); }.calendar-day:nth-child(7n) { border-right: 0; }.calendar-day.muted { background: #fafbfa; color: #aab3ae; }.calendar-day.today .day-number { background: var(--green-dark); color: #fff; }.day-number { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; }.calendar-event { margin-top: 5px; padding: 4px 6px; border-radius: 5px; background: var(--green-soft); color: var(--green); font-size: 9px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
dialog { width: min(520px, calc(100vw - 30px)); border: 0; border-radius: 15px; padding: 0; color: var(--ink); box-shadow: 0 25px 70px rgba(0,0,0,.25); }dialog::backdrop { background: rgba(8,28,21,.55); backdrop-filter: blur(2px); }dialog form { padding: 24px; }.dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; }.dialog-heading h2 { margin: 0; }.dialog-copy { color: var(--muted); }dialog label { display: grid; gap: 5px; margin-bottom: 13px; color: var(--muted); font-size: 11px; font-weight: 650; }dialog input, dialog select { width: 100%; }.form-row > * { flex: 1; }.dialog-actions { justify-content: flex-end; margin-top: 20px; }
.company-dialog { width: min(900px, calc(100vw - 30px)); max-height: calc(100vh - 30px); }.company-detail { padding: 24px; }.company-detail section { margin-top: 22px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }.detail-section-heading { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }.detail-section-heading h3, .detail-section-heading p { margin: 0; }.detail-section-heading p { color: var(--muted); font-size: 11px; }.financial-cards { padding: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }.financial-card { padding: 14px; background: var(--canvas); border-radius: 9px; }.financial-card small, .financial-card strong, .financial-card span { display: block; }.financial-card small, .financial-card span { color: var(--muted); font-size: 10px; }.financial-card strong { margin: 3px 0; font-size: 20px; }.financial-card .positive { color: var(--green); }.financial-card .negative { color: #a53b32; }.company-detail #financialNotice { padding: 0 16px 16px; }.related-news-item { padding: 13px 16px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 10px; }.related-news-item:first-child { border-top: 0; }.related-news-item h4, .related-news-item p { margin: 0; }.related-news-item p { color: var(--muted); font-size: 10px; }.related-news-item a { color: var(--green); font-size: 11px; font-weight: 700; text-decoration: none; }
.company-back { margin-bottom: 14px; }.company-hero { padding: 28px; border-radius: 16px; display: flex; align-items: center; justify-content: space-between; color: #fff; background: linear-gradient(135deg, #071b14, #174d37); }.company-title { display: flex; align-items: center; gap: 16px; }.company-title h1 { font-size: 28px; margin: 0; }.company-title p { margin: 2px 0; color: #b8ccc2; }.company-logo.large { width: 58px; height: 58px; font-size: 16px; }.company-actions { display: flex; gap: 8px; }.company-actions .ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }.company-actions a { text-decoration: none; }.company-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 16px 0; }.company-stat { padding: 15px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }.company-stat small, .company-stat strong { display: block; }.company-stat small { color: var(--muted); }.company-stat strong { margin-top: 3px; font-size: 18px; }.research-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; }.research-panel { min-height: 250px; }.signal-summary { padding: 16px; display: grid; gap: 9px; }.signal-row { display: flex; justify-content: space-between; padding: 10px; border-radius: 8px; background: var(--canvas); }.signal-tag { padding: 3px 7px; border-radius: 20px; font-size: 9px; font-weight: 800; text-transform: uppercase; }.signal-tag.contract, .signal-tag.positive { background: var(--green-soft); color: var(--green); }.signal-tag.risk { background: #fde9e7; color: #a53b32; }.signal-tag.result { background: var(--violet-soft); color: var(--violet); }.signal-tag.event, .signal-tag.neutral { background: var(--blue-soft); color: var(--blue); }.company-timeline-panel { margin-top: 16px; }.timeline-item { padding: 16px 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 120px 1fr auto; gap: 14px; }.timeline-item:first-child { border-top: 0; }.timeline-item h3, .timeline-item p { margin: 0; }.timeline-item p, .timeline-date { color: var(--muted); font-size: 11px; }.timeline-item a { color: var(--green); text-decoration: none; font-weight: 700; font-size: 11px; }
.company-data-status { margin: 14px 0 0; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #c8dfd2; border-radius: 11px; background: #f3faf6; }.company-data-status strong, .company-data-status span { display: block; }.company-data-status span { color: var(--muted); font-size: 10px; }.company-stat span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }.company-price-history-panel { margin-bottom: 16px; }.company-chart-heading { border-bottom: 0; }.company-chart-toolbar { padding: 0 22px 12px; display: flex; gap: 7px; justify-content: flex-end; overflow-x: auto; }.company-chart-toolbar button { flex: 0 0 auto; min-width: 44px; padding: 8px 12px; border: 1px solid transparent; border-radius: 9px; color: #342a75; background: #efedff; font-weight: 800; }.company-chart-toolbar button.active { color: #fff; background: #352984; }.company-native-chart { margin: 0 16px 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }.company-history-chart { width: 100%; height: 460px; display: block; background: linear-gradient(#fff, #f7fcfa); }.company-history-chart .chart-line { stroke: #078c36; stroke-width: 2; }.company-history-chart .chart-area { fill: url("#companyChartGradient"); }.chart-last-point { fill: #078c36; stroke: #fff; stroke-width: 3; }.company-chart-meta { padding: 10px 12px; display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--line); }.company-chart-meta span, .company-chart-meta strong { padding: 4px 7px; border-radius: 6px; background: var(--canvas); font-size: 9px; }.company-chart-meta .positive { color: var(--green); }.company-chart-meta .negative { color: #a53b32; }.company-chart-note { margin: 0; padding: 0 12px 12px; color: var(--muted); font-size: 9px; }
.company-stat .positive { color: var(--green); }.company-stat .negative { color: #a53b32; }
.company-fundamentals-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 16px; }.fundamental-cards { padding: 16px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }.fundamental-card { padding: 13px; border-radius: 9px; background: var(--canvas); }.fundamental-card small, .fundamental-card strong, .fundamental-card span { display: block; }.fundamental-card small, .fundamental-card span { color: var(--muted); font-size: 10px; }.fundamental-card strong { margin: 3px 0; font-size: 19px; }.ownership-list { padding: 16px; }.ownership-period { margin-bottom: 12px; padding: 12px; border-radius: 9px; background: var(--canvas); }.ownership-period:last-child { margin-bottom: 0; }.ownership-period-heading, .ownership-bar-label { display: flex; justify-content: space-between; gap: 8px; }.ownership-period-heading { margin-bottom: 8px; }.ownership-period-heading small, .ownership-bar-label { color: var(--muted); font-size: 9px; }.ownership-period-heading a { color: var(--green); font-size: 10px; text-decoration: none; font-weight: 700; }.ownership-bar { height: 8px; margin: 4px 0 7px; overflow: hidden; border-radius: 10px; background: #e5ebe8; }.ownership-bar span { display: block; height: 100%; background: var(--green); }.ownership-bar.public span { background: var(--blue); }.major-investors { margin-bottom: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }.major-investors h3 { margin: 0 0 7px; font-size: 12px; }.major-investor { padding: 5px 0; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--line); font-size: 10px; }.major-investor:first-of-type { border-top: 0; }.major-investor span { color: var(--muted); }.profit-history-panel { margin-bottom: 16px; }.profit-history-chart { width: 100%; height: 300px; display: block; }.profit-bar.positive { fill: var(--green); }.profit-bar.negative { fill: #a53b32; }.profit-zero { stroke: #9daba4; stroke-width: 1; }.profit-grid { stroke: var(--line); stroke-width: 1; }.profit-label { fill: var(--muted); font-size: 10px; }.profit-value { fill: var(--ink); font-size: 9px; font-weight: 700; }
.dashboard-news { margin-bottom: 18px; }.dashboard-news-heading { padding: 24px 4px 14px; display: flex; justify-content: space-between; align-items: end; }.dashboard-news-heading h2, .dashboard-news-heading p { margin: 0; }.dashboard-news-heading h2 { font-size: 24px; }.dashboard-news-heading > div > p:last-child { color: var(--muted); }.trending-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }.trending-card { min-height: 210px; padding: 20px; border-radius: 14px; color: #fff; background: linear-gradient(145deg, #092218, #176344); display: flex; flex-direction: column; justify-content: space-between; }.trending-card:nth-child(2) { background: linear-gradient(145deg, #142338, #285b88); }.trending-card:nth-child(3) { background: linear-gradient(145deg, #352758, #7053a1); }.trending-card h3 { margin: 10px 0; font-size: 17px; }.trending-card p { color: rgba(255,255,255,.7); font-size: 11px; }.trending-card a { color: #fff; text-decoration: none; font-weight: 700; }.trend-score { align-self: flex-start; padding: 4px 8px; border-radius: 20px; background: rgba(255,255,255,.14); font-size: 9px; font-weight: 800; }.market-news-item { padding: 16px 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 130px 1fr auto; gap: 14px; }.market-news-item:first-child { border-top: 0; }.market-news-item h3, .market-news-item p { margin: 0; }.market-news-item p, .market-news-meta { color: var(--muted); font-size: 11px; }.market-news-item a { color: var(--green); text-decoration: none; font-size: 11px; font-weight: 700; }
.story-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.story-company-link { border: 1px solid rgba(255,255,255,.25); border-radius: 7px; padding: 5px 8px; color: #fff; background: transparent; font-weight: 700; }.market-news-item > div:last-child { display: grid; gap: 8px; align-content: start; }
.stock-analysis-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }.analysis-card { padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 6px 18px rgba(8,28,21,.04); cursor: pointer; }.analysis-card-heading, .analysis-signal { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.analysis-card-heading h3, .analysis-card-heading p { margin: 0; }.analysis-card-heading p, .analysis-metric small { color: var(--muted); font-size: 10px; }.analysis-signal { margin: 16px 0; padding: 12px; border-radius: 9px; background: var(--canvas); }.analysis-signal strong { font-size: 18px; }.analysis-signal .Bullish { color: var(--green); }.analysis-signal .Bearish { color: #a53b32; }.analysis-signal .Neutral { color: var(--amber); }.analysis-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }.analysis-metric { padding: 8px; border-radius: 7px; background: var(--canvas); }.analysis-metric strong, .analysis-metric small { display: block; }.analysis-disclaimer { margin: 0; padding: 18px 22px; color: var(--muted); }
.stock-chart-dialog { width: min(980px, calc(100vw - 30px)); max-height: calc(100vh - 30px); }.stock-chart-detail { padding: 24px; }.chart-panel, .paper-trade-panel { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin-top: 16px; }.stock-price-chart { width: 100%; height: 300px; display: block; background: linear-gradient(#fbfdfc, #f4f8f6); }.chart-grid { stroke: #e3eae6; stroke-width: 1; }.chart-line { fill: none; stroke: var(--green); stroke-width: 3; vector-effect: non-scaling-stroke; }.chart-area { fill: rgba(15,107,69,.12); }.chart-label { fill: var(--muted); font-size: 10px; }.chart-links { padding: 12px; display: flex; gap: 8px; justify-content: flex-end; border-top: 1px solid var(--line); }.chart-links a { text-decoration: none; }.paper-trade-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 16px; }.paper-trade-form label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 650; }.paper-trade-form input { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 9px; }.paper-results { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; padding: 0 16px 16px; }.paper-result { padding: 10px; border-radius: 8px; background: var(--canvas); }.paper-result small, .paper-result strong { display: block; }.paper-result small { color: var(--muted); font-size: 9px; }.paper-result strong { margin-top: 3px; }.paper-result .profit { color: var(--green); }.paper-result .loss { color: #a53b32; }
.practice-portfolio-panel, .practice-history-panel { margin-bottom: 16px; }.practice-row { padding: 14px 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1.5fr repeat(5, 1fr) auto; gap: 12px; align-items: center; }.practice-row:first-child { border-top: 0; }.practice-row strong, .practice-row small { display: block; }.practice-row small { color: var(--muted); font-size: 9px; }.practice-row .profit { color: var(--green); }.practice-row .loss { color: #a53b32; }
.company-analyzer-panel { margin-top: 16px; }.company-analyzer-stats { padding: 14px 20px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; border-bottom: 1px solid var(--line); }.analyzer-stat { padding: 10px; border-radius: 8px; background: var(--canvas); }.analyzer-stat small, .analyzer-stat strong { display: block; }.analyzer-stat small { color: var(--muted); font-size: 9px; }.analyzer-stat strong { margin-top: 2px; font-size: 18px; }.analyzer-story { padding: 15px 20px; display: grid; grid-template-columns: 120px 1fr auto; gap: 12px; border-top: 1px solid var(--line); }.analyzer-story:first-child { border-top: 0; }.analyzer-story h3, .analyzer-story p { margin: 0; }.analyzer-story p, .analyzer-story small { color: var(--muted); font-size: 10px; }.analyzer-story a { color: var(--green); text-decoration: none; font-size: 11px; font-weight: 700; }.coverage-warning { margin: 12px 20px; padding: 10px; border-radius: 8px; color: var(--amber); background: var(--amber-soft); }
.event-suggestion-panel { margin-top: 16px; }.event-suggestion-score { padding: 18px 20px; display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 10px; border-bottom: 1px solid var(--line); }.suggestion-card { padding: 14px; border-radius: 10px; background: var(--canvas); }.suggestion-card small, .suggestion-card strong, .suggestion-card span { display: block; }.suggestion-card small, .suggestion-card span { color: var(--muted); font-size: 10px; }.suggestion-card strong { margin: 4px 0; font-size: 20px; }.suggestion-card.buy { background: var(--green-soft); color: var(--green); }.suggestion-card.sell { background: #fde9e7; color: #a53b32; }.suggestion-card.hold { background: var(--amber-soft); color: var(--amber); }.event-suggestion-evidence { padding: 16px 20px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.evidence-column { padding: 13px; border: 1px solid var(--line); border-radius: 9px; }.evidence-column h3 { margin: 0 0 8px; font-size: 13px; }.evidence-item { padding: 8px 0; border-top: 1px solid var(--line); }.evidence-item:first-of-type { border-top: 0; }.evidence-item strong, .evidence-item small { display: block; }.evidence-item small { color: var(--muted); font-size: 9px; }
.watch-prediction-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.watch-prediction-list { display: grid; }.watch-prediction-card { padding: 17px 20px; border-top: 1px solid var(--line); cursor: pointer; }.watch-prediction-card:first-child { border-top: 0; }.watch-prediction-card:hover { background: #fafcfb; }.watch-card-heading, .watch-score-row, .watch-facts { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.watch-card-heading h3, .watch-card-heading p, .watch-reason { margin: 0; }.watch-card-heading p, .watch-reason, .watch-evidence span { color: var(--muted); font-size: 10px; }.watch-direction { padding: 4px 8px; border-radius: 20px; font-size: 9px; font-weight: 800; }.watch-direction.positive { color: var(--green); background: var(--green-soft); }.watch-direction.negative { color: #a53b32; background: #fde9e7; }.watch-direction.neutral { color: var(--amber); background: var(--amber-soft); }.watch-score-row { justify-content: flex-start; margin: 13px 0 8px; }.watch-score-row strong { font-size: 22px; }.watch-score-row span, .watch-facts span { padding: 4px 7px; border-radius: 6px; background: var(--canvas); font-size: 9px; }.watch-facts { justify-content: flex-start; margin-top: 10px; }.watch-facts .unverified { color: var(--amber); background: var(--amber-soft); }.watch-evidence { display: grid; gap: 3px; margin-top: 10px; }.watch-method-panel { margin-top: 16px; }
.market-instrument-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }.market-instrument-card { padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 6px 18px rgba(8,28,21,.04); }.market-instrument-heading { display: flex; justify-content: space-between; gap: 10px; }.market-instrument-heading h3, .market-instrument-heading p { margin: 5px 0 0; }.market-instrument-heading p, .market-range { color: var(--muted); font-size: 9px; }.market-instrument-heading > strong { font-size: 18px; }.market-sparkline { width: 100%; height: 75px; margin: 11px 0; }.market-sparkline polyline { fill: none; stroke-width: 3; vector-effect: non-scaling-stroke; }.market-sparkline .up { stroke: var(--green); }.market-sparkline .down { stroke: #a53b32; }.market-change-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }.market-change-grid div { padding: 8px; border-radius: 7px; background: var(--canvas); }.market-change-grid small, .market-change-grid span { display: block; }.market-change-grid small { color: var(--muted); font-size: 9px; }.market-change-grid .positive, #marketComponentsBody .positive { color: var(--green); }.market-change-grid .negative, #marketComponentsBody .negative { color: #a53b32; }.market-range { display: flex; justify-content: space-between; margin: 10px 0; }.market-instrument-card a { color: var(--green); text-decoration: none; font-size: 10px; font-weight: 700; }.market-components-panel tbody tr { cursor: pointer; }.market-method-panel { margin-top: 16px; }
.login-shell { min-height: 100vh; padding: 24px; display: grid; place-items: center; background: radial-gradient(circle at 10% 10%, rgba(49,159,111,.22), transparent 34%), radial-gradient(circle at 90% 90%, rgba(57,101,160,.22), transparent 35%), #071712; }.login-card { width: min(980px, 100%); display: grid; grid-template-columns: 1.25fr .9fr; gap: 42px; padding: 48px; color: #fff; background: rgba(13,39,29,.86); border: 1px solid rgba(255,255,255,.14); border-radius: 26px; box-shadow: 0 35px 100px rgba(0,0,0,.35); backdrop-filter: blur(20px); }.login-brand { display: flex; gap: 18px; align-items: flex-start; }.large-mark { width: 58px; height: 58px; flex: 0 0 58px; background: #b8e9cf; color: #082017; }.login-brand h1 { font-size: 42px; letter-spacing: -2px; }.login-brand p:last-child { max-width: 430px; color: #a9c4b6; }.login-form { padding: 24px; display: grid; gap: 16px; border-radius: 18px; background: rgba(255,255,255,.07); }.login-form label { display: grid; gap: 7px; color: #b9cec4; font-size: 11px; font-weight: 700; }.login-form input { width: 100%; padding: 12px 13px; color: #fff; background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.16); border-radius: 10px; outline-color: #77d3a3; }.login-form .primary { padding: 12px; color: #092016; background: #b8e9cf; }.login-error { margin: 0; padding: 10px; color: #ffd1cc; background: rgba(165,59,50,.24); border-radius: 8px; }.login-security { grid-column: 1 / -1; display: flex; gap: 10px; flex-wrap: wrap; }.login-security span { padding: 6px 10px; color: #b8d8c8; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; font-size: 10px; }
.live-indicator { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; color: var(--green); background: var(--green-soft); border-radius: 20px; font-size: 10px; font-weight: 800; text-transform: uppercase; }.live-indicator i, .status-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #20a36a; box-shadow: 0 0 0 4px rgba(32,163,106,.12); }.user-chip { display: flex; align-items: center; gap: 7px; padding: 4px 9px 4px 4px; border: 1px solid var(--line); border-radius: 22px; color: var(--ink); background: #fff; }.user-chip span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green-dark); font-size: 10px; }.user-chip strong { font-size: 11px; }.system-strip { padding: 7px max(28px, calc((100vw - 1440px) / 2)); display: flex; gap: 24px; align-items: center; color: #bcd1c6; background: #0b241a; font-size: 10px; font-weight: 650; }.system-strip span { display: inline-flex; align-items: center; gap: 7px; }
.verification-ribbon { padding: 14px 20px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; background: linear-gradient(180deg, #fbfdfc, #f5f8f6); border-bottom: 1px solid var(--line); }.verification-ribbon > div { padding: 11px; display: grid; grid-template-columns: auto 1fr; column-gap: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }.verification-ribbon strong, .verification-ribbon small { display: block; }.verification-ribbon strong { font-size: 17px; }.verification-ribbon small { grid-column: 2; color: var(--muted); font-size: 9px; }.quality-icon { grid-row: 1 / 3; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; font-weight: 800; }.quality-icon.verified { color: var(--green); background: var(--green-soft); }.quality-icon.external { color: var(--blue); background: var(--blue-soft); }.quality-icon.legacy { color: #a53b32; background: #fde9e7; }.quality-icon.policy { color: var(--violet); background: var(--violet-soft); }.verification-badge { margin: 5px 0 0 6px; display: inline-flex; padding: 2px 6px; border-radius: 20px; font-size: 8px; font-weight: 800; text-transform: uppercase; }.verification-badge.official-exchange { color: var(--green); background: var(--green-soft); }.verification-badge.external-feed { color: var(--blue); background: var(--blue-soft); }.verification-badge.legacy-unverified { color: #a53b32; background: #fde9e7; }
.job-health-grid { padding: 18px 22px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }.job-health-grid article { padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: linear-gradient(145deg, #fff, #f7faf8); }.job-health-grid small, .job-health-grid strong, .job-health-grid span { display: block; }.job-health-grid small, .job-health-grid span { color: var(--muted); font-size: 9px; }.job-health-grid strong { margin: 4px 0; font-size: 14px; }
.learn-page { display: grid; gap: 18px; }.learn-hero { min-height: 230px; padding: 34px; display: grid; grid-template-columns: 1.5fr .7fr; gap: 28px; align-items: center; border-radius: 18px; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(118,199,158,.25), transparent 28%), linear-gradient(135deg, #081c15, #174d37); }.learn-hero h2 { margin: 0 0 10px; font-size: clamp(30px, 5vw, 52px); line-height: 1; letter-spacing: -2px; }.learn-hero p { max-width: 720px; margin: 0; color: #bed4c9; }.learn-rule { padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.08); }.learn-rule strong, .learn-rule span { display: block; }.learn-rule strong { margin-bottom: 7px; color: #91ddb5; text-transform: uppercase; font-size: 10px; letter-spacing: 1px; }.learn-rule span { font-size: 16px; font-weight: 700; }.learn-jump-links { position: sticky; z-index: 19; top: 76px; padding: 8px; display: flex; gap: 5px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: 0 8px 24px rgba(8,28,21,.06); backdrop-filter: blur(14px); }.learn-jump-links a { flex: 0 0 auto; padding: 8px 12px; border-radius: 8px; color: var(--ink); text-decoration: none; font-size: 11px; font-weight: 750; }.learn-jump-links a:hover { color: var(--green); background: var(--green-soft); }.learn-section { scroll-margin-top: 150px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }.learn-section-heading { margin-bottom: 18px; display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }.learn-section-heading h2, .learn-section-heading p { margin: 0; }.learn-section-heading h2 { font-size: 25px; letter-spacing: -.7px; }.learn-section-heading p:last-child { margin-top: 4px; color: var(--muted); }.learn-level { flex: 0 0 auto; padding: 5px 9px; border-radius: 20px; color: var(--green); background: var(--green-soft); font-size: 9px; font-weight: 800; text-transform: uppercase; }.learn-level.caution { color: var(--amber); background: var(--amber-soft); }.learn-level.danger { color: #a53b32; background: #fde9e7; }.learn-step-grid, .pattern-grid, .app-comparison-grid, .fno-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.learn-step-grid article, .pattern-card, .app-comparison-grid article, .fno-grid article { padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(145deg, #fff, #f7faf8); }.learn-step-grid article > span { color: #8db5a1; font-size: 23px; font-weight: 850; }.learn-step-grid h3, .pattern-card h3, .app-comparison-grid h3, .fno-grid h3 { margin: 7px 0 4px; }.learn-step-grid p, .pattern-card p, .app-comparison-grid p, .fno-grid p { margin: 0; color: var(--muted); font-size: 11px; }.pattern-card svg { width: 100%; height: 90px; border-radius: 8px; background: var(--canvas); }.pattern-card polyline, .pattern-card path { fill: none; stroke: var(--blue); stroke-width: 3; vector-effect: non-scaling-stroke; }.pattern-card line { stroke: #9caaa3; stroke-width: 1; stroke-dasharray: 5 4; }.pattern-card.positive-pattern polyline { stroke: var(--green); }.pattern-card.negative-pattern polyline { stroke: #a53b32; }.pattern-card strong { display: block; margin-top: 10px; color: var(--ink); font-size: 10px; }.tax-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 14px; }.tax-estimator { padding: 18px; display: grid; gap: 12px; border-radius: 12px; background: var(--canvas); }.tax-estimator label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 750; }.tax-estimator input, .tax-estimator select { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.tax-result { padding: 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; border-radius: 12px; color: #fff; background: linear-gradient(145deg, #092218, #176344); }.tax-result > span, .tax-result > strong, .tax-result > p { grid-column: 1 / -1; }.tax-result > span { color: #a9cbb9; font-size: 10px; font-weight: 800; text-transform: uppercase; }.tax-result > strong { font-size: 40px; letter-spacing: -1.5px; }.tax-result div { padding: 10px; border-radius: 8px; background: rgba(255,255,255,.09); }.tax-result small, .tax-result b { display: block; }.tax-result small { color: #b6d1c3; font-size: 9px; }.tax-result p { margin: 0; color: #b6d1c3; font-size: 10px; }.tax-facts { margin-top: 14px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }.tax-facts article { padding: 13px; border: 1px solid var(--line); border-radius: 10px; }.tax-facts strong, .tax-facts span { display: block; }.tax-facts span { margin-top: 4px; color: var(--muted); font-size: 10px; }.learn-disclaimer { margin: 14px 0 0; padding: 12px; color: var(--muted); background: var(--canvas); border-radius: 8px; font-size: 10px; }.app-type { color: var(--violet); font-size: 9px; font-weight: 850; text-transform: uppercase; }.app-comparison-grid article > div { margin-top: 14px; display: flex; gap: 7px; flex-wrap: wrap; }.app-comparison-grid a, .learn-source-links a { padding: 6px 9px; border-radius: 7px; color: var(--green); background: var(--green-soft); text-decoration: none; font-size: 10px; font-weight: 750; }.broker-checklist { margin-top: 14px; padding: 14px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; border-radius: 10px; background: var(--canvas); }.broker-checklist strong { margin-right: 5px; }.broker-checklist span { padding: 5px 8px; border-radius: 20px; background: #fff; color: var(--muted); font-size: 9px; }.fno-warning { margin-bottom: 14px; padding: 20px; border: 1px solid #f1c9c5; border-radius: 12px; color: #7c2d27; background: #fff3f2; }.fno-warning strong { font-size: 20px; }.fno-warning p { margin: 5px 0 0; }.learn-source-links { margin-top: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
.toast { position: fixed; left: 50%; bottom: 25px; transform: translate(-50%, 100px); opacity: 0; color: #fff; background: var(--green-dark); padding: 10px 16px; border-radius: 8px; box-shadow: var(--shadow); transition: .25s; }.toast.show { transform: translate(-50%, 0); opacity: 1; }
.mobile-menu-button, .mobile-action-menu { display: none; }
.register-form { background: rgba(255,255,255,.045); }.register-form h2, .register-form p { margin: 0; }.register-form p:not(.eyebrow) { color: #a9c4b6; font-size: 11px; }.register-form .ghost { color: #b8e9cf; border-color: rgba(184,233,207,.35); background: rgba(184,233,207,.08); }
.users-list { display: grid; }.user-row { padding: 16px 20px; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; border-top: 1px solid var(--line); }.user-row:first-child { border-top: 0; }.user-row h3, .user-row p { margin: 0; }.user-row p { color: var(--muted); font-size: 10px; }.user-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }.user-status { display: inline-flex; margin-bottom: 5px; padding: 3px 8px; border-radius: 20px; font-size: 9px; font-weight: 800; text-transform: uppercase; }.user-status.pending { color: var(--amber); background: var(--amber-soft); }.user-status.active { color: var(--green); background: var(--green-soft); }.user-status.disabled, .user-status.rejected { color: #a53b32; background: #fde9e7; }
@media (max-width: 900px) { .metrics, .job-grid, .job-health-grid, .verification-ribbon, .company-stats, .trending-grid, .stock-analysis-grid, .market-instrument-grid, .company-analyzer-stats, .event-suggestion-score, .learn-step-grid, .pattern-grid, .app-comparison-grid, .fno-grid, .tax-facts { grid-template-columns: repeat(2, 1fr); }.research-grid, .company-fundamentals-grid, .watch-prediction-columns, .login-card, .learn-hero, .tax-layout { grid-template-columns: 1fr; }.login-security { grid-column: auto; }.practice-row { grid-template-columns: repeat(3, 1fr); }.search { width: 240px; }.hero-date { display: none; }.toolbar { align-items: flex-start; }.filters { flex-wrap: wrap; justify-content: flex-end; }.table-wrap { overflow-x: auto; }table { min-width: 760px; } }
@media (max-width: 650px) { .topbar { height: auto; padding: 14px; align-items: flex-start; }.top-actions { flex-wrap: wrap; justify-content: flex-end; }.system-strip { overflow-x: auto; white-space: nowrap; }.search { order: 3; width: 100%; }.top-actions .button { font-size: 11px; padding: 8px; }main { padding: 16px 12px 40px; }.login-shell { padding: 10px; }.login-card { padding: 24px; gap: 22px; }.login-brand { display: block; }.login-brand h1 { font-size: 32px; }.hero { padding: 25px; min-height: 180px; }.metrics, .company-stats { grid-template-columns: 1fr 1fr; gap: 8px; }.job-grid, .job-health-grid, .verification-ribbon, .financial-cards, .trending-grid, .stock-analysis-grid, .market-instrument-grid, .paper-trade-form, .paper-results, .event-suggestion-score, .event-suggestion-evidence { grid-template-columns: 1fr; padding: 12px; }.metrics article { padding: 12px; }.metric-icon { display: none; }.toolbar { display: block; }.filters { margin-top: 10px; justify-content: flex-start; }.calendar-day { min-height: 75px; padding: 3px; }.calendar-event { padding: 2px; }.form-row { display: block; }.news-item, .timeline-item, .market-news-item, .analyzer-story { grid-template-columns: 1fr; gap: 8px; }.company-hero, .dashboard-news-heading { display: block; }.company-actions { margin-top: 16px; } }

@media (max-width: 650px) {
  .topbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px 12px; }
  .brand small { display: none; }
  .top-actions { display: contents; }
  .top-actions > .button, .top-actions > .live-indicator, .top-actions > .user-chip { display: none; }
  .top-actions > .global-search { grid-column: 1 / -1; grid-row: 2; width: 100%; order: initial; }
  .mobile-menu-button { grid-column: 2; grid-row: 1; display: block; min-height: 42px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; font-weight: 750; }
  .mobile-action-menu { position: fixed; z-index: 60; top: 64px; right: 10px; width: min(280px, calc(100vw - 20px)); padding: 8px; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 20px 60px rgba(8,28,21,.22); }
  .mobile-action-menu button { min-height: 44px; padding: 10px 12px; border: 0; border-radius: 9px; color: var(--ink); background: transparent; text-align: left; font-weight: 650; }
  .mobile-action-menu button:active { background: var(--green-soft); }
  .search-results { width: 100%; max-height: 55vh; }

  .system-strip { padding: 7px 12px; gap: 18px; }
  .system-strip span:nth-child(n+3) { display: none; }
  main { padding-bottom: calc(40px + env(safe-area-inset-bottom)); }
  .hero { min-height: 135px; padding: 20px; border-radius: 14px; }
  .hero h1 { font-size: 26px; letter-spacing: -.8px; }
  .hero-copy { font-size: 11px; }

  .toolbar { position: sticky; z-index: 20; top: 127px; margin: 0 -12px 12px; padding: 8px 12px; background: rgba(242,246,244,.96); backdrop-filter: blur(14px); }
  .tabs { width: 100%; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { flex: 0 0 auto; min-height: 40px; scroll-snap-align: center; }
  .toolbar > .filters { width: 100%; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .toolbar > .filters::-webkit-scrollbar { display: none; }
  .toolbar > .filters select, .toolbar > .filters button { flex: 0 0 auto; min-height: 40px; }

  button, select, input, a.button { min-height: 44px; }
  .text-button { min-height: 36px; }
  .panel { border-radius: 14px; }
  .panel-heading { padding: 15px; gap: 10px; align-items: flex-start; }
  .dashboard-news-heading .filters { display: grid; grid-template-columns: 1fr; width: 100%; }
  .dashboard-news-heading .filters > * { width: 100%; }

  .table-wrap { overflow: visible; }
  .table-wrap table { min-width: 0; display: block; }
  .table-wrap thead { display: none; }
  .table-wrap tbody { display: grid; gap: 10px; padding: 10px; }
  .table-wrap tr { display: grid; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
  .table-wrap td { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px solid var(--line); text-align: right; }
  .table-wrap td:first-child { border-top: 0; }
  .table-wrap td::before { content: attr(data-label); color: var(--muted); font-size: 9px; font-weight: 800; text-align: left; text-transform: uppercase; }
  .table-wrap td[data-label="Company"] { display: block; text-align: left; }
  .table-wrap td[data-label="Company"]::before, .table-wrap td[colspan]::before { display: none; }
  .table-wrap td[colspan] { display: block; text-align: center; }
  .verification-badge { margin-left: 5px; }

  dialog, .company-dialog, .stock-chart-dialog { width: 100%; max-width: none; max-height: 92dvh; margin: auto 0 0; border-radius: 18px 18px 0 0; overflow: auto; }
  dialog form, .company-detail, .stock-chart-detail { padding: 18px 14px calc(18px + env(safe-area-inset-bottom)); }
  .dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dialog-actions .button { width: 100%; }
  .stock-price-chart, .profit-history-chart { height: 220px; }
  .chart-links { overflow-x: auto; justify-content: flex-start; }

  .practice-row { grid-template-columns: 1fr 1fr; padding: 12px; border: 1px solid var(--line); border-radius: 10px; margin: 10px; }
  .company-title { align-items: flex-start; }
  .company-logo.large { width: 44px; height: 44px; flex: 0 0 44px; }
  .company-title h1 { font-size: 22px; }
  .company-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .company-actions > * { width: 100%; text-align: center; }
  .company-actions > *:first-child { grid-column: 1 / -1; }
  .company-data-status { display: block; }
  .company-data-status .button { width: 100%; margin-top: 10px; }
  .company-chart-toolbar { padding: 0 12px 10px; justify-content: flex-start; }
  .company-native-chart { margin: 0 10px 10px; }
  .company-history-chart { height: 320px; }
  .related-news-item { grid-template-columns: 1fr; }

  .calendar-panel { overflow-x: auto; }
  .calendar-weekdays, .calendar-grid { min-width: 560px; }
  .learn-hero { min-height: 0; padding: 22px; grid-template-columns: 1fr; }
  .learn-hero h2 { font-size: 32px; }
  .learn-jump-links { top: 127px; margin: 0 -12px; border-radius: 0; }
  .learn-section { padding: 16px; border-radius: 14px; scroll-margin-top: 200px; }
  .learn-section-heading { display: block; }
  .learn-level { display: inline-block; margin-top: 9px; }
  .learn-step-grid, .pattern-grid, .app-comparison-grid, .fno-grid, .tax-layout, .tax-facts { grid-template-columns: 1fr; }
  .tax-result { grid-template-columns: 1fr; }
  .tax-result > span, .tax-result > strong, .tax-result > p { grid-column: auto; }
  .tax-result > strong { font-size: 34px; }
  .toast { width: calc(100vw - 24px); bottom: calc(16px + env(safe-area-inset-bottom)); text-align: center; }
}
