/* Multi-subject shell; Biology's existing component styles remain available. */
[hidden] { display: none !important; }
.desktop-nav { gap: 2px; }
.desktop-nav a { padding: 9px 8px; }
.subject-hero { display:grid; grid-template-columns:1.5fr 1fr; gap:36px; align-items:center; padding:36px 0 30px; }
.subject-hero h1 { font-size:clamp(36px,5vw,58px); letter-spacing:-2px; line-height:1.07; margin:14px 0 20px; max-width:770px; }
.subject-hero p { color:var(--muted); max-width:620px; font-size:17px; }
.subject-hero .hero-aside { background:var(--surface); border:1px solid var(--border); border-radius:24px; padding:28px; }
.hero-aside strong { font-size:44px; letter-spacing:-2px; }
.hero-aside p { font-size:14px; margin:8px 0; }
.subject-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.subject-card { display:flex; flex-direction:column; padding:28px; background:var(--surface); border:1px solid var(--border); border-radius:22px; transition:transform .15s,border-color .15s; }
a.subject-card:hover { transform:translateY(-3px); border-color:var(--primary); }
.subject-card h2 { font-size:27px; margin:20px 0 6px; }
.subject-card p { color:var(--muted); margin:0 0 22px; }
.subject-card .card-bottom { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.subject-card .subject-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:15px; background:var(--surface-3); color:var(--primary); font-size:20px; font-weight:850; }
.subject-card.business .subject-icon { color:#0b805c; background:#d9f5e9; }
[data-theme=dark] .subject-card.business .subject-icon { color:#70e4b7; background:#163f37; }
.subject-pill { display:inline-block; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:750; background:var(--surface-2); color:var(--muted); }
.subject-pill.ready { color:var(--accent); }
.planned-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.planned-card { padding:22px; border:1px solid var(--border); border-radius:18px; background:var(--surface); }
.planned-card h3 { margin:12px 0 6px; font-size:17px; }
.planned-card p { color:var(--muted); font-size:14px; margin:0; }
.business-tools { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
.business-tools a { padding:9px 14px; border-radius:10px; background:var(--surface); border:1px solid var(--border); font-size:14px; font-weight:700; }
.unit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.unit-card { border:1px solid var(--border); border-radius:20px; background:var(--surface); padding:24px; display:flex; flex-direction:column; }
.unit-card h2 { font-size:22px; line-height:1.25; margin:14px 0; }
.unit-card p { color:var(--muted); font-size:14px; }
.unit-card .btn { margin-top:auto; align-self:flex-start; }
.business-progress { height:6px; background:var(--surface-2); border-radius:6px; overflow:hidden; margin:15px 0 8px; }
.business-progress span { height:100%; display:block; background:var(--accent); border-radius:6px; }
.reader-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:28px; align-items:start; }
.reader-toc { position:sticky; top:96px; background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:18px; }
.reader-toc h2 { font-size:15px; margin:0 0 12px; }
.reader-toc a { display:block; padding:10px 8px; font-size:13px; border-radius:8px; color:var(--muted); }
.reader-toc a:hover { color:var(--text); background:var(--surface-2); }
.business-section { border:1px solid var(--border); border-radius:20px; background:var(--surface); padding:28px; margin:0 0 24px; scroll-margin-top:98px; min-width:0; }
.business-section h2 { font-size:25px; margin:0 0 20px; line-height:1.3; }
.business-section h3 { font-size:18px; margin:26px 0 10px; }
.business-section p,.business-section li { line-height:1.75; }
.business-section li+li { margin-top:8px; }
.syllabus-check { border:1px solid var(--border); background:var(--surface-2); border-radius:12px; padding:14px 18px; margin-bottom:22px; }
.syllabus-check summary { font-size:14px; font-weight:750; cursor:pointer; }
.syllabus-check ul { font-size:14px; padding-left:20px; }
.business-section .table-wrap { margin:20px 0; }
.business-section table { font-size:14px; }
.section-status { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--border); margin-top:24px; padding-top:18px; font-size:13px; }
.section-status select { border:1px solid var(--border); border-radius:9px; padding:8px; background:var(--surface); color:var(--text); }
.example-box { padding:24px; background:var(--surface-3); border:1px solid var(--border); border-radius:16px; margin-bottom:24px; }
.example-box h3 { margin:6px 0 12px; }
.business-note { color:var(--muted); font-size:13px; }
.business-note a { text-decoration:underline; }
.definition-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.definition-card { padding:22px; border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.definition-card h2 { margin:10px 0; font-size:20px; }
.definition-card p { margin:14px 0 0; color:var(--muted); }
.definition-card summary { cursor:pointer; color:var(--primary); font-size:14px; font-weight:700; }
.business-filter { display:grid; grid-template-columns:1fr 220px; gap:14px; margin-bottom:24px; }
.business-filter input,.business-filter select { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); }
.business-steps { counter-reset:step; padding:0; list-style:none; }
.business-steps li { padding:16px 0; border-bottom:1px solid var(--border); }
.business-steps strong { display:block; margin-bottom:6px; }
.b-unit-choice { display:grid; grid-template-columns:auto 1fr 100px; gap:10px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border); font-size:14px; }
.b-unit-choice input[type=number] { min-width:0; width:100%; }
.b-days { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 22px; }
.b-days label { display:flex; gap:6px; align-items:center; padding:8px; border:1px solid var(--border); border-radius:8px; font-size:13px; }
.b-plan-day { background:var(--surface); border:1px solid var(--border); padding:22px; border-radius:16px; margin-top:14px; }
.b-plan-day h3 { margin:0 0 12px; }
.b-task { display:flex; align-items:flex-start; gap:10px; padding:10px 0; }
.b-task input { margin-top:6px; }
.b-task:has(input:checked) span { text-decoration:line-through; color:var(--muted); }
.b-task small { color:var(--muted); display:block; }
.b-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:20px 0; }
.business-empty { text-align:center; padding:54px 24px; background:var(--surface); border:1px solid var(--border); border-radius:20px; }
.business-empty h2 { margin-top:0; }
.business-empty p { color:var(--muted); max-width:600px; margin:14px auto; }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
@media(max-width:1200px) { .topbar { gap:12px; padding:10px 20px; } .desktop-nav a { font-size:12px; padding:9px 6px; } }
@media(max-width:1050px) { .desktop-nav { display:none; } .mobile-only { display:grid; } .topbar { grid-template-columns:1fr auto; } }
@media(max-width:800px) { .unit-grid,.planned-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .reader-layout { grid-template-columns:1fr; } .reader-toc { position:static; } .reader-toc a { display:inline-block; } .subject-hero { grid-template-columns:1fr; gap:12px; padding-top:10px; } .subject-hero .hero-aside { display:none; } }
@media(max-width:560px) { .subject-grid,.unit-grid,.planned-grid,.definition-grid,.business-filter { grid-template-columns:1fr; } .business-section { padding:20px 16px; } .subject-card { padding:24px; } .subject-hero h1 { letter-spacing:-1px; } .b-summary { grid-template-columns:1fr; } .b-unit-choice { grid-template-columns:auto 1fr 78px; } .brand-copy strong { font-size:12px; } .topbar { padding:10px 12px; } .account-btn { padding:9px; } }
@media print { .topbar,.footer,.reader-toc,.business-tools,.section-status,.form-actions { display:none!important; } .reader-layout { display:block; } .business-section { break-inside:auto; border:0; padding:0; } }
.bp-filters { display:grid; grid-template-columns:1fr 1fr 1.5fr auto; gap:16px; align-items:end; }
.bp-review { display:flex; align-items:center; gap:8px; font-size:14px; padding:10px 0; }
.bp-toolbar,.bp-answer-meta,.bp-question-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.bp-toolbar { margin:18px 0; }
.bp-nav { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:18px; align-items:end; margin-bottom:22px; }
.bp-layout { display:grid; grid-template-columns: .85fr 1.4fr; gap:24px; align-items:start; }
.bp-case { position:sticky; top:96px; }
.bp-case h2 { margin-top:12px; }
.bp-case-text { font-size:17px; line-height:1.85; }
.bp-answer h2 { font-size:23px; line-height:1.5; margin:18px 0; }
.bp-answer textarea { width:100%; resize:vertical; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); color:var(--text); margin-top:8px; line-height:1.7; }
.bp-answer-meta { color:var(--muted); font-size:12px; margin-top:8px; }
.bp-model { margin-top:24px; border-top:1px solid var(--border); padding-top:12px; }
.bp-model>p { line-height:1.8; }
.bp-model .field { max-width:240px; margin:18px 0; }
.bp-answer label { font-weight:700; }
.bp-nav button:disabled { opacity:.4; cursor:default; }
@media(max-width:900px) { .bp-layout { grid-template-columns:1fr; } .bp-case { position:static; } .bp-filters { grid-template-columns:1fr 1fr; } }
@media(max-width:560px) { .bp-filters { grid-template-columns:1fr; } .bp-nav { gap:8px; grid-template-columns:1fr 1fr; } .bp-nav .field { grid-column:1/-1; grid-row:1; } .bp-answer h2 { font-size:20px; } .bp-question-head { align-items:flex-start; } .bp-toolbar { flex-wrap:wrap; } }
