/* TCAS research visual language: native CSS, light theme, indigo accent.
   Risk colors remain semantic. 8px controls, 12px panels, no decorative motion. */
:root {
 --primary:#4338ca; --primary-hover:#3730a3; --primary-dark:#3730a3;
 --primary-light:#eeedfc; --bg-main:#f3f4f8; --text-dark:#202338;
 --text-muted:#555e73; --border:#dce0ea; --radius:12px;
 --shadow:none; --shadow-lg:none;
 color-scheme:light;
}
body { padding:32px; font-family:'Sarabun','Prompt',Tahoma,sans-serif; line-height:1.75; }
h1,h2,h3,h4,button,.kpi-value,.kpi-number { font-family:'Prompt','Sarabun',Tahoma,sans-serif; }
.app-container,.report-container { max-width:1360px; }
.app-header { background:#fff !important; color:var(--text-dark); border:1px solid var(--border); border-top:4px solid var(--primary); padding:24px 28px; gap:24px; box-shadow:none; }
.app-header h1 { font-size:clamp(1.35rem,2.2vw,2rem) !important; letter-spacing:-.035em; line-height:1.4; }
.app-header h2 { color:var(--text-dark) !important; }
.app-header p { color:var(--text-muted); opacity:1 !important; }
.header-brand > div,.app-header > div > div:first-child:not(.header-actions) { color:var(--primary) !important; letter-spacing:1px !important; font-size:.68rem !important; }
.header-actions { flex-wrap:wrap; justify-content:flex-end; }
.header-actions .btn-preset { background:#fff !important; color:var(--text-dark) !important; border:1px solid var(--border) !important; white-space:nowrap; font-size:.8rem; }
.workspace-grid { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:start; gap:24px; }
.input-card { padding:28px; min-width:0; box-shadow:none; }
.card-title { line-height:1.55; font-size:1.1rem; gap:12px; }
.card-title span,.section-title span { width:4px; flex-shrink:0; height:20px; border-radius:2px; }
.overview-card { background:transparent; border:0; padding:8px 0 0 8px; gap:30px; }
.feature-item { background:transparent; border:0; border-bottom:1px solid var(--border); border-radius:0; padding:16px 0; }
.feature-item h4 { color:var(--text-dark); font-size:.94rem; }
.feature-item p { font-size:.9rem; line-height:1.7; margin-top:6px; }
.sample-report-links { grid-template-columns:1fr; }
.sample-report-link { background:#fff; border-color:var(--border); padding:18px; color:var(--text-dark); }
.sample-report-link:hover { border-color:var(--primary); box-shadow:none; transform:none; }
.sample-report-link strong { font-size:.95rem; }
.sample-report-link small { color:var(--primary); font-size:.8rem; }
.report-link-icon { display:none; }
.prompt-textarea { font-family:'Sarabun',Tahoma,sans-serif; font-size:.95rem; background:#f8f9fc; height:320px; line-height:1.8; }
.prompt-textarea:focus { box-shadow:0 0 0 3px #eeedfc; }
.prompt-textarea::placeholder { color:#626b7d; opacity:1; }
.btn-primary,.btn-success,.btn { background:var(--primary); border-radius:8px; box-shadow:none; }
.btn-primary:hover,.btn-success:hover,.btn:hover { background:var(--primary-hover); }
.btn-highlight-ready { background:var(--primary) !important; border:2px solid var(--primary) !important; box-shadow:none !important; animation:none !important; font-size:1rem !important; transform:none !important; }
button { min-height:40px; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
.planner-source-link { color:var(--primary); }
.verified-data-note { max-width:1360px !important; background:#fff; border-color:var(--border) !important; padding:16px 20px !important; color:var(--text-muted); font-size:.8rem !important; }
.context-note { background:#eeedfc; border:0 !important; border-left:3px solid var(--primary) !important; padding:16px 20px !important; color:var(--text-muted); }
.kpi-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; background:#fff; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.kpi-card { border:0; border-right:1px solid var(--border); border-radius:0; padding:24px; box-shadow:none; min-width:0; }
.kpi-card:last-child { border-right:0; }
.kpi-card::before { display:none; }
.kpi-title,.kpi-label { text-transform:none; letter-spacing:0; font-size:.85rem; line-height:1.6; min-height:2.7em; }
.kpi-number,.kpi-value { font-variant-numeric:tabular-nums; letter-spacing:-.04em; font-size:2.3rem; line-height:1.4; }
.kpi-sub,.kpi-desc { font-size:.83rem; line-height:1.7; }
.grid-2,.grid-3 { align-items:start; }
.grid-2 > .card-box { height:100%; margin-bottom:0; }
.card-box { box-shadow:none; border:1px solid var(--border); padding:28px; margin-bottom:28px; }
.section-header { border-bottom:1px solid var(--border); margin-bottom:24px; padding-bottom:16px; }
.section-title { font-size:1.15rem; line-height:1.6; align-items:flex-start; }
.section-title span { margin-top:5px; }
.chart-annotation-box,.annotation-box { background:#f8f9fc; border:0; padding:18px; font-size:.9rem; line-height:1.8; }
.chart-box,.chart-container { min-width:0; }
.table-responsive { border-radius:8px; }
th { background:#f3f4f8; font-size:.82rem; border-bottom:1px solid var(--border); }
td { font-variant-numeric:tabular-nums; line-height:1.7; }
.rank-item { background:#fff; border-radius:8px; padding:22px; }
.rank-item:hover { transform:none; background:#f8f9fc; }
.rank-num { border-radius:8px; background:var(--primary-light); color:var(--primary); }
.rank-explanation { background:#f8f9fc; border-color:var(--primary); }
.report-container { background:#fff; padding:48px; box-shadow:none; border:1px solid var(--border); }
.header-banner { background:#fff; color:var(--text-dark); padding:0 0 28px; border-radius:0; border-bottom:2px solid var(--primary); box-shadow:none; margin-bottom:28px; }
.header-banner::after { display:none; }
.header-title { font-size:clamp(1.55rem,2.5vw,2.3rem); line-height:1.5; letter-spacing:-.035em; }
.header-subtitle { color:var(--text-muted); font-size:1rem; line-height:1.8; font-weight:400; max-width:85ch; }
.badge-item { color:var(--primary-dark); background:var(--primary-light); backdrop-filter:none; border-radius:8px; padding:8px 12px; font-size:.83rem; }
.action-bar { padding-bottom:16px; border-bottom:1px solid var(--border); }
footer { text-align:left; padding:24px 0; font-size:.8rem; }
@media(max-width:1100px) {
 .app-header { flex-direction:column; align-items:stretch; }
 .header-actions { justify-content:flex-start; }
 .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .kpi-card:nth-child(2) { border-right:0; }
 .kpi-card:nth-child(-n+2) { border-bottom:1px solid var(--border); }
}
@media(max-width:1024px) { .workspace-grid { grid-template-columns:1fr; } .overview-card { padding:8px 0; } }
@media(max-width:760px) {
 body { padding:12px; }
 .app-header,.input-card,.card-box { padding:20px; }
 .report-container { padding:20px; }
 .header-actions { gap:8px; }
 .header-actions button { flex:1 1 auto; white-space:normal !important; }
 .grid-2,.grid-3 { grid-template-columns:minmax(0,1fr); }
 .kpi-card { padding:16px; }
 .kpi-number,.kpi-value { font-size:1.8rem; }
 .rank-header-row { flex-wrap:wrap; gap:12px; }
 .rank-info { flex:1; min-width:160px; }
 .rank-meta { width:100%; text-align:left; padding-left:56px; }
 .badge-item { width:100%; }
 .prompt-textarea { height:280px; }
 .btn-primary { padding:14px 16px; font-size:.9rem; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print {
 @page { size:A4; margin:14mm; }
 body { background:#fff; padding:0; font-size:10pt; }
 .report-container { padding:0; border:0; max-width:none; }
 .action-bar,.header-actions,.workspace-grid,.verified-data-note,.context-note,footer { display:none !important; }
 .app-header { border:0; border-bottom:2px solid var(--primary); padding:0 0 16px; }
 .card-box,.input-card { padding:14px 0; border:0; box-shadow:none; }
 .kpi-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .kpi-card { padding:12px; }
 .kpi-number,.kpi-value { font-size:20pt; }
 .grid-2,.grid-3 { display:block; }
 .header-banner,.kpi-grid,.rank-item,.chart-box,.chart-container { break-inside:avoid; }
 h2,h3,.section-header { break-after:avoid; }
 thead { display:table-header-group; }
 tr { break-inside:avoid; }
 .table-responsive { overflow:visible; }
 .candidate-pool-table,.candidate-pool-table tbody { display:table; width:100%; }
 .candidate-pool-table tbody { display:table-row-group; }
 .candidate-pool-table thead { display:table-header-group; }
 .candidate-pool-table colgroup { display:table-column-group; }
 .candidate-pool-table tr { display:table-row; }
 .candidate-pool-table td { display:table-cell; }
 .candidate-details { display:none; }
}
/* Wide mathematical notation scrolls independently of the report page. */
mjx-container[display="true"] { display:block; max-width:100%; overflow-x:auto; overflow-y:hidden; padding:8px 0; }
@media(max-width:760px) {
 .card-box [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
 .card-box { overflow-wrap:anywhere; }
}
