/* Olympia Study Companion · source-first reading and private in-tab reflection */
.companion-page{background:#0a0e14;color:#f2ede4;min-height:100vh}
.companion-hero{padding:85px 0 75px}
.companion-hero h1{font:clamp(56px,8.4vw,112px)/.94 Georgia,serif;letter-spacing:-.065em;margin:20px 0 25px;color:#f2ede6}
.companion-page h1 em,.companion-page h2 em{color:var(--ol-gold);font-style:normal}
.companion-hero>p:not(.overline){max-width:780px;color:#c1c4bf;font-size:clamp(16px,2vw,20px);line-height:1.78;margin:0}
.companion-hero-meta{display:flex;flex-wrap:wrap;gap:12px 25px;color:#abb0ac;font-size:11px;margin-top:27px}
.companion-hero-meta span{display:inline-flex;align-items:center;gap:9px}
.companion-hero-meta i{height:6px;width:6px;border-radius:50%;background:var(--ol-gold)}
.companion-border{background:linear-gradient(90deg,#1b2129,#111820);border-block:1px solid var(--ol-line)}
.companion-border-content{padding:25px 0;display:grid;grid-template-columns:48px 1fr;gap:22px;align-items:center}
.companion-border-content>span{font:43px Georgia,serif;color:var(--ol-gold)}
.companion-border-content p{font:italic clamp(16px,1.8vw,21px)/1.55 Georgia,serif;color:#d9d4c8;max-width:960px;margin:0}
.companion-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:26px;align-items:start;padding-top:70px!important;padding-bottom:110px!important}
.companion-sidebar{border:1px solid rgba(227,198,140,.21);background:#121821;position:sticky;top:95px;padding:21px}
.companion-sidebar .overline{margin-bottom:10px;font-size:9px}
.companion-sidebar h2{font:27px/1.15 Georgia,serif;margin:0 0 10px}
.companion-sidebar-head>p:not(.overline){color:#b0b7b3;font-size:11px;line-height:1.65;margin:0 0 14px}
.companion-progress{display:grid;gap:8px;margin:21px 0;color:#c6b9a0;font-size:11px}
.companion-progress-track{width:100%;height:5px;border-radius:20px;background:#32383d;overflow:hidden}
.companion-progress-track>span{height:100%;width:0;display:block;background:var(--ol-gold);transition:width .2s}
.companion-filter-label{display:block;font-size:11px;font-weight:800;color:#d7c9b0;margin-bottom:8px}
#companionFilter{width:100%;background:#0b1119;color:#eee7dc;padding:11px 12px;border:1px solid #e3c68c47;border-radius:4px;font-size:13px;min-height:44px}
.companion-passages{display:grid;gap:8px;margin-top:19px;max-height:720px;overflow-y:auto;scrollbar-width:thin}
.companion-passage-choice{text-align:left;border:1px solid rgba(227,198,140,.16);background:#101720;color:#e9e2d5;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:7px;min-height:68px}
.companion-passage-choice:hover,.companion-passage-choice[aria-pressed=true]{border-color:rgba(227,198,140,.8);background:#22242a}
.companion-passage-choice>span:first-child{font-size:9px;color:var(--ol-gold);letter-spacing:.13em}
.companion-passage-choice strong{font:19px/1.2 Georgia,serif}
.companion-passage-choice small{font-size:10px;color:#acb4b2;line-height:1.3}
.companion-passage-choice[aria-pressed=true] strong{color:#fff2d9}
.companion-content{min-width:0}
.companion-empty{padding:38px;border:1px solid var(--ol-line);color:#c3c8c4;background:#141a22}
.companion-original{padding:33px 36px 34px;border:1px solid #e3c68c56;background:radial-gradient(circle at 90% 12%,rgba(224,180,106,.12),transparent 65%),linear-gradient(148deg,#1b2028,#10161e);scroll-margin-top:100px}
.companion-source-label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;color:var(--ol-gold);font-size:10px;font-weight:850;letter-spacing:.15em}
.companion-original h2{font:clamp(24px,2.6vw,36px) Georgia,serif;margin:27px 0 24px;letter-spacing:-.025em}
.companion-original blockquote{font:clamp(25px,3.1vw,42px)/1.42 Georgia,serif;letter-spacing:-.02em;color:#f1e9dc;margin:0 0 26px;white-space:pre-line;overflow-wrap:anywhere}
.companion-source-footer{display:flex;justify-content:space-between;align-items:center;gap:13px;flex-wrap:wrap;border-top:1px solid var(--ol-line);padding-top:18px}
.companion-source-footer a{font-size:12px;color:var(--ol-gold);text-decoration:underline;text-underline-offset:4px;font-weight:750}
.companion-source-footer span{font-size:10px;color:#a9aea8}
.companion-guidance,.companion-ask,.companion-notebook{border:1px solid rgba(227,198,140,.18);background:#121821;padding:32px 35px;margin-top:17px}
.companion-section-head{display:flex;justify-content:space-between;gap:25px;align-items:end}
.companion-section-head .overline{font-size:9px;margin-bottom:8px}
.companion-section-head h2,.companion-ask h2,.companion-notebook h2{font:clamp(30px,3.4vw,44px)/1.15 Georgia,serif;letter-spacing:-.035em;margin:0}
.companion-independent-label{font-size:9px;color:#bfb19a;max-width:135px;text-align:right;letter-spacing:.11em;line-height:1.5}
.companion-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:27px 0 20px}
.companion-phases button{background:#11151b;color:#bcbfb8;border:1px solid #ffffff22;padding:13px 7px;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.02em;min-height:45px}
.companion-phases button[aria-pressed=true],.companion-phases button:hover{background:#3a3225;color:#f3e1bd;border-color:#e3c68c80}
.companion-prompt{font:clamp(20px,2.4vw,28px)/1.52 Georgia,serif;margin:0 0 25px;color:#e3d7c3;min-height:85px}
.companion-writing{display:grid;gap:10px}
.companion-writing>label{font-size:12px;color:#e8ddc8;font-weight:800}
.companion-writing label span{font-weight:400;color:#acb3ad}
.companion-writing textarea{width:100%;padding:14px;color:#f0e9e0;background:#090f17;border:1px solid #e3c68c51;border-radius:4px;resize:vertical;min-height:125px;font:14px/1.7 system-ui,sans-serif}
.companion-writing small{color:#9da9a8;font-size:11px;line-height:1.65}
.companion-navigation{display:flex;justify-content:space-between;gap:13px;flex-wrap:wrap;margin-top:27px}
.companion-neutral,.companion-forward{border:1px solid #e3c68c65;padding:12px 17px;cursor:pointer;min-height:45px;font-size:12px;font-weight:750}
.companion-neutral{background:#111822;color:#decfab}
.companion-forward{background:var(--ol-gold);color:#1a1815}
.companion-neutral:disabled,.companion-forward:disabled{opacity:.35;cursor:not-allowed}
.companion-ask>.overline,.companion-notebook>.overline{margin-bottom:11px}
.companion-ask>p:not(.overline),.companion-notebook>p:not(.overline){color:#b9c0bd;font-size:13px;line-height:1.75;margin:19px 0}
.companion-ask form{display:grid;gap:11px}
.companion-ask form>label:first-child{font-weight:750;font-size:12px;color:#ddceb2}
.companion-ask-controls{display:flex;gap:9px}
.companion-ask-controls input{min-height:46px;min-width:0;flex:1;border:1px solid #e3c68c65;padding:12px 14px;color:#f2eee7;background:#09121b;font:14px system-ui,sans-serif}
.companion-ask-controls button{border:1px solid var(--ol-gold);background:var(--ol-gold);color:#15130f;font-size:12px;font-weight:800;padding:11px 17px;cursor:pointer;min-height:46px;white-space:nowrap}
.companion-ask-controls button:disabled{opacity:.5;cursor:wait}
.companion-ai-control{display:flex;align-items:flex-start;gap:11px;font-size:11px;color:#d4c8ad;line-height:1.7;cursor:pointer}
.companion-ai-control input{width:18px;height:18px;min-width:18px;accent-color:#e3c68c}
.companion-ai-control small{color:#aab0ae}
.companion-ai-status{font-size:11px;color:#b9bdba;line-height:1.6;margin:15px 0}
.companion-conversation{display:grid;gap:12px;margin-top:21px}
.companion-turn{display:grid;gap:13px;border-top:1px solid rgba(227,198,140,.22);padding-top:22px}
.companion-question{background:#202229;border:1px solid #e3c68c36;padding:16px 18px;color:#f0eadf}
.companion-question>span,.companion-answer>span{display:block;font-size:10px;letter-spacing:.12em;color:var(--ol-gold);margin-bottom:7px}
.companion-question p,.companion-answer p{line-height:1.65;font-size:14px;margin:0;overflow-wrap:anywhere}
.companion-answer{padding:17px 20px;background:#111b23;border:1px solid #ffffff1d;display:grid;gap:12px}
.companion-answer p{color:#c5d0cc}
.companion-source-note{border-left:2px solid #e3c68c77;padding-left:12px;color:#e9ddcb}
.companion-source-note p{font:19px/1.55 Georgia,serif;margin:6px 0 9px}
.companion-source-note a{font-size:11px;color:var(--ol-gold)}
.companion-approved-note{background:#2a2c2a;border:1px solid #e3c68c52;padding:15px}
.companion-approved-note strong{font-size:11px;letter-spacing:.08em;color:var(--ol-gold);display:block;margin-bottom:8px}
.companion-approved-note p{font:19px/1.5 Georgia,serif}
.companion-text-button{margin-top:18px;color:#c8c1b0;background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;font-size:11px;cursor:pointer;padding:9px 0}
.companion-notebook-actions{display:flex;gap:12px;flex-wrap:wrap}
.companion-notebook-actions button{background:#1c242b;border:1px solid #e3c68c67;color:var(--ol-gold);cursor:pointer;padding:11px 17px;min-height:46px;font-size:12px;font-weight:800}
.companion-notebook-actions button:first-child{background:#e3c68c;color:#15130f}
.companion-notebook-status{font-size:11px}
.companion-closing{background:radial-gradient(ellipse 60% 65% at 50% 100%,rgba(227,198,140,.12),transparent),#141b23;border-block:1px solid var(--ol-line);padding:83px 0 100px!important;text-align:center}
.companion-closing h2{font:clamp(45px,7vw,86px)/1.05 Georgia,serif;letter-spacing:-.05em;margin:0}
.companion-closing p:not(.overline){color:#b8c0bd;font-size:15px;max-width:690px;line-height:1.75;margin:23px auto}
.companion-closing .hero-actions{justify-content:center}
.companion-page :focus-visible{outline:2px solid #d6e9f3;outline-offset:3px}
[hidden]{display:none!important}
@media(max-width:1060px){.companion-layout{grid-template-columns:250px minmax(0,1fr);gap:15px}.companion-sidebar{padding:16px}.companion-content section:not(.companion-empty){padding:24px}.companion-independent-label{display:none}}
@media(max-width:800px){.companion-layout{grid-template-columns:1fr}.companion-sidebar{position:static}.companion-passages{grid-template-columns:repeat(3,minmax(0,1fr));max-height:unset}.companion-passage-choice{min-height:98px}.companion-content{width:100%}.companion-hero{padding:65px 0 57px}}
@media(max-width:570px){.companion-hero h1{font-size:clamp(47px,12vw,69px)}.companion-hero-meta{display:grid;gap:9px}.companion-border-content{grid-template-columns:36px 1fr;gap:14px}.companion-passages{grid-template-columns:repeat(2,minmax(0,1fr))}.companion-original blockquote{font-size:29px}.companion-layout{padding-top:43px!important;padding-bottom:70px!important}.companion-phases button{font-size:10px;padding:12px 4px}.companion-navigation{display:grid;grid-template-columns:1fr 1fr}.companion-ask-controls{flex-direction:column}.companion-ask-controls button{width:100%}.companion-notebook-actions{display:grid}.companion-closing h2{font-size:clamp(39px,10vw,60px)}}
@media(prefers-reduced-motion:reduce){.companion-progress-track>span{transition:none}}

.companion-start-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin:24px 0 0}
.companion-start-links a{border:1px solid #e3c68c8a;background:#e3c68c;color:#161816;padding:12px 18px;font-size:12px;font-weight:850;text-decoration:none;min-height:45px;display:inline-flex;align-items:center}
.companion-start-links a:hover{background:#f0dba8}
.companion-start-links span{font-size:11px;color:#b5bbb8;line-height:1.6;max-width:290px}
.companion-step-progress{font-size:11px;text-transform:uppercase;color:#e3c68c;letter-spacing:.11em;margin:23px 0 10px}
.companion-guided-advance{margin-top:22px;display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.companion-guided-advance p{font-size:11px;line-height:1.7;color:#acb5b0;max-width:360px;margin:0}
.companion-guided-advance button{max-width:100%}
@media(max-width:570px){.companion-guided-advance{align-items:stretch;flex-direction:column}.companion-guided-advance button{width:100%}}
