.genesis-core{--core-bg:#0d0d0f;--core-surface:#171719;--core-line:#333337;--core-text:#f3f3f3;--core-muted:#aaaab0;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;color:var(--core-text);font:inherit;min-width:0}
.genesis-core.with-aid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);align-items:start}
.genesis-core button{cursor:pointer}
.genesis-core button:focus-visible,.genesis-core textarea:focus-visible{outline:2px solid #f4f4f4;outline-offset:3px}
.core-chat{height:calc(100dvh - 145px);min-height:580px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--core-line);border-radius:18px;background:var(--core-bg);min-width:0}
.core-header{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:17px clamp(18px,3vw,38px);border-bottom:1px solid var(--core-line);background:var(--core-bg)}
.core-header span,.core-header p{color:var(--core-muted);font-size:.79rem}.core-header h1{margin:3px 0;font-size:clamp(1.1rem,1.5vw,1.4rem);letter-spacing:-.02em}.core-header p{margin:0}
.core-header-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.core-header-actions button,.core-tools button,.core-quick button,.core-step-actions button,.core-reconnect,.core-retry-aid{min-height:40px;padding:8px 12px;border:1px solid #45454a;border-radius:9px;background:#242428;color:#e9e9ea;font:inherit;font-size:.83rem}
.core-header-actions button:hover,.core-tools button:hover,.core-quick button:hover,.core-step-actions button:hover,.core-reconnect:hover,.core-retry-aid:hover{background:#343438;border-color:#8d8d94}
.core-header-actions button:disabled,.core-tools button:disabled,.core-step-actions button:disabled{opacity:.48;cursor:default}
.core-thread{overflow-y:auto;overscroll-behavior:contain;padding:26px clamp(18px,3vw,44px);scroll-behavior:smooth}
.core-intro{max-width:720px;margin:10px auto 26px;color:#d8d8dc}
.core-intro h2{margin:0 0 10px;color:#fff;font-size:clamp(1.45rem,3vw,2.2rem);letter-spacing:-.035em}.core-intro p{color:var(--core-muted);line-height:1.65;margin:0}
.genesis-core .tutor-chat-history{border-top:0;max-width:760px;padding-top:0}
.genesis-core .chat-message{margin-bottom:25px}
.genesis-core .chat-avatar{background:#e8e8eb;color:#111}
.genesis-core .chat-copy{color:#e4e4e6;min-width:0;overflow-wrap:anywhere}
.genesis-core .chat-copy label{color:#a6a6ad}
.genesis-core .chat-message.user .chat-copy{background:#2b2b30}
.genesis-core .chat-copy a{color:#f4f4f4;text-decoration:underline}
.genesis-core .chat-copy pre{background:#151518;border-color:#39393e;max-width:100%;overflow-x:auto}
.genesis-core .stream-caret:after{background:#dedee2}
.core-sources{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.core-sources a{border:1px solid #45454a;border-radius:8px;padding:4px 7px;font-size:.74rem;color:#dadade}
.core-compose-zone{border-top:1px solid var(--core-line);padding:13px clamp(14px,3vw,38px) 17px;background:#111113}
.core-tools,.core-quick{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.core-compose{display:flex;align-items:end;gap:10px;padding:9px;border:1px solid #5c5c63;border-radius:14px;background:#202024}
.core-compose textarea{flex:1;min-width:0;min-height:38px;max-height:160px;resize:vertical;border:0;outline:none;background:transparent;color:white;font:inherit;padding:8px}
.core-compose button{width:42px;height:42px;flex:none;border:0;border-radius:10px;background:#ececef;color:#101013;font-size:1.2rem;font-weight:700}
.core-compose button:hover{background:#d1d1d6}.core-compose button:disabled{opacity:.55}
.core-compose-note{display:flex;justify-content:space-between;gap:10px;color:var(--core-muted);font-size:.72rem;margin:8px 3px 0}
.core-compose-note label{display:flex;gap:5px;align-items:center}
.core-status{min-height:1.3em;color:#bbb;font-size:.82rem;margin:10px 0 0}
.core-reconnect,.core-retry-aid{margin:8px 8px 0 0}
.core-recent-aids{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 9px;font-size:.75rem;color:var(--core-muted)}
.core-recent-aids button{border:1px solid #444;border-radius:7px;background:#1d1d20;color:#e8e8eb;padding:5px 8px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.core-aid{min-width:0;border:1px solid #505056;border-radius:18px;background:#171719;padding:clamp(18px,2.4vw,34px);color:#eee;box-shadow:0 18px 50px #0004;overflow-wrap:anywhere}
.core-aid-head{display:flex;align-items:start;justify-content:space-between;gap:16px}
.core-aid-head span,.core-step-explanation span{color:#aaa;font-size:.78rem;letter-spacing:.09em}
.core-aid-head h3{margin:8px 0 14px;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.2}.core-aid-head-actions{display:flex;gap:6px;flex:none}
.core-aid-head button{border:1px solid #555;border-radius:8px;background:#29292e;color:white;min-width:42px;min-height:42px;font-size:1.2rem}
.core-aid-intro,.core-step-explanation p{color:#d1d1d6;line-height:1.65;font-size:clamp(.98rem,1.12vw,1.1rem)}
.core-step-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr));gap:10px;margin:23px 0;min-width:0}
.core-step{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:76px;padding:12px;border:1px solid #49494f;border-radius:11px;background:#202024;color:#d2d2d6;text-align:left;font:inherit;font-size:.88rem;line-height:1.35;overflow-wrap:anywhere;transition:background .18s,border-color .18s,transform .18s}
.core-step:hover,.core-step:focus-visible{transform:translateY(-2px);border-color:#aaa}
.core-step-number{display:grid;place-items:center;width:31px;height:31px;border:1px solid #777;border-radius:50%;font-size:.72rem;flex:none}
.core-step-arrow{color:#aaa;font-size:1.1rem}
.core-step.active{background:#38383e;border-color:#e1e1e5;color:#fff;box-shadow:inset 0 0 0 1px #8885}
.core-step.active .core-step-arrow{color:white}
.core-step-explanation{min-height:140px;padding:clamp(17px,2vw,26px);border:1px solid #66666d;border-radius:13px;background:#242428}
.core-step-explanation h4{margin:10px 0;font-size:clamp(1.15rem,1.7vw,1.5rem)}
.core-step-actions{display:flex;justify-content:space-between;gap:8px;margin:15px 0}
.core-exercise{display:grid;gap:10px;margin-top:24px;padding-top:22px;border-top:1px solid #3e3e43}
.core-exercise label{font-weight:700}.core-exercise textarea{width:100%;min-height:110px;box-sizing:border-box;padding:12px;border:1px solid #666;border-radius:9px;background:#101012;color:#fff;font:inherit}
.core-exercise button{justify-self:start;padding:10px 14px;border:1px solid #ddd;border-radius:9px;background:#e8e8ec;color:#111}
.core-exercise p{margin:0;color:#aaa;font-size:.8rem}
.core-feedback{margin-top:16px;padding:16px;border:1px solid #777;border-radius:10px;background:#242429}.core-feedback h4{margin:0 0 8px}
.core-aid.expanded{position:fixed;inset:12px;z-index:100;overflow-y:auto;max-width:none;padding:clamp(20px,4vw,56px);box-shadow:0 0 0 100vmax #000c,0 30px 100px #000d}
.core-aid.expanded .core-step-track{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
.core-aid.expanded .core-step-explanation{max-width:980px}
.core-error{color:#e6b5b5}
@media(max-width:1100px){.genesis-core.with-aid{grid-template-columns:minmax(0,1fr)}.core-aid:not(.expanded){position:fixed;inset:12px;z-index:60;overflow-y:auto;box-shadow:0 0 0 100vmax #0009,0 30px 100px #000c}}
@media(max-width:620px){.core-chat{height:calc(100dvh - 112px);min-height:440px;border-radius:0}.core-header{align-items:flex-start;flex-direction:column;padding:12px 14px}.core-header-actions{justify-content:flex-start}.core-thread{padding:17px 14px}.core-compose-zone{padding:9px}.core-tools{overflow-x:auto;flex-wrap:nowrap}.core-tools button{white-space:nowrap}.core-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.core-quick button{font-size:.76rem}.core-compose-note{font-size:.65rem}.core-aid:not(.expanded),.core-aid.expanded{inset:0;border-radius:0;padding:18px}.core-step-track,.core-aid.expanded .core-step-track{grid-template-columns:minmax(0,1fr)}.core-step{min-height:62px}.core-step-arrow{transform:rotate(90deg)}.core-aid-head h3{font-size:1.35rem}}
@media(prefers-reduced-motion:reduce){.genesis-core *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.core-step:hover{transform:none}}
.core-message-actions{display:flex;gap:8px;margin-top:10px}
.core-message-actions button{padding:4px 7px;border:0;background:transparent;color:#bdbdc3;font-size:.75rem}
.core-message-actions button:hover{text-decoration:underline;color:#fff}
.genesis-core .chat-copy.streaming .message-content{white-space:pre-wrap;overflow-wrap:anywhere}

.core-quota-notice{margin:0 0 8px;color:#aaaab0;font-size:.8rem;line-height:1.4}
.core-quota-notice.near{padding:8px 12px;border:1px solid #6b6049;border-radius:8px;background:#28241d;color:#f4dfb5}

/* Standalone tutor: the Academy shell never wraps this route. */
body.core-standalone-route{background:#0b0b0c;color:#f2f2f0;overflow:hidden}
body.core-standalone-route #app{height:100dvh;min-height:0}
.genesis-core.core-standalone{
  --core-bg:#0b0b0c;--core-surface:#171719;--core-line:#303033;
  --core-text:#f2f2f0;--core-muted:#aaa9ad;
  display:grid;grid-template-columns:236px minmax(0,1fr);gap:0;
  width:100%;height:100dvh;min-height:0;overflow:hidden;
  background:var(--core-bg);color:var(--core-text);
  font-family:Inter,"Segoe UI",ui-sans-serif,system-ui,sans-serif;
  color-scheme:dark;
}
.genesis-core.core-standalone.with-aid{grid-template-columns:236px minmax(0,1fr)}
.core-rail-backdrop{display:none}
.core-rail{
  display:flex;flex-direction:column;gap:0;min-width:0;min-height:0;
  padding:23px 15px 18px;border-right:1px solid #272729;
  background:#111112;overflow-y:auto;overscroll-behavior:contain;
}
.core-rail-brand{display:flex;align-items:center;gap:10px;margin:0 7px 28px;color:#eaeae8;font-size:.92rem;letter-spacing:-.02em}
.core-rail-brand strong{display:block;font-size:1.08rem;font-weight:680}
.core-rail-mark{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid #89898c;border-radius:10px;color:#fafafa;font-weight:750}
.core-rail-new,.core-rail-nav button,.core-rail-section button,.core-rail-foot button{
  width:100%;border:0;background:transparent;color:#b6b6b8;text-align:left;
  font:inherit;cursor:pointer;
}
.core-rail-new{display:flex;align-items:center;gap:10px;min-height:41px;padding:8px 10px;border:1px solid #37373a;border-radius:11px;color:#eee;font-size:.82rem}
.core-rail-new span{font-size:1.35rem;line-height:1}
.core-rail-new:hover{background:#222224;border-color:#66666a}
.core-rail-nav{display:grid;gap:3px;margin:24px 0 15px}
.core-rail-nav button{min-height:38px;padding:8px 10px;border-radius:9px;font-size:.84rem}
.core-rail-nav button:hover,.core-rail-nav button.active{background:#262629;color:#fff}
.core-rail-section{padding:13px 2px 11px;border-top:1px solid #29292b}
.core-rail-section h2{margin:0 8px 9px;color:#99999d;font-size:.7rem;font-weight:600;letter-spacing:.02em}
.core-rail-section p{margin:0 8px 5px;color:#77777b;font-size:.73rem;line-height:1.45}
.core-rail-section button{
  display:block;min-height:34px;padding:8px;border-radius:8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76rem;
}
.core-rail-section button:hover{background:#252527;color:#fff}
.core-rail-foot{margin-top:auto;padding-top:20px}
.core-rail-foot button{min-height:40px;padding:8px 10px;border-top:1px solid #29292b;font-size:.8rem}
.core-rail-foot button:hover{color:#fff}
.core-workspace{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0}
.core-standalone .core-chat{
  height:100dvh;min-height:0;border:0;border-radius:0;
  background:#0b0b0c;grid-template-rows:auto minmax(0,1fr) auto;
}
.core-standalone .core-header{
  position:relative;min-height:72px;padding:13px clamp(20px,3vw,38px);
  background:#0b0b0c;border-bottom:1px solid #28282a;
}
.core-header-title{min-width:0}
.core-standalone .core-header h1{margin:0;color:#f4f4f2;font-size:1.01rem;font-weight:680;letter-spacing:-.02em}
.core-standalone .core-header p{
  margin:4px 0 0;max-width:min(62vw,620px);color:#96969a;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;
}
.core-standalone .core-header-actions{align-items:center;gap:9px;flex-wrap:nowrap}
.core-standalone .core-header-actions>button{
  min-height:34px;padding:6px 11px;border:1px solid #414145;border-radius:8px;
  background:transparent;color:#d4d4d6;font-size:.76rem;
}
.core-standalone .core-header-actions>button:hover{background:#242426;border-color:#808084}
.core-more{position:relative}
.core-more summary{
  display:grid;place-items:center;list-style:none;width:34px;height:34px;
  border:1px solid #3b3b3e;border-radius:9px;color:#ccc;cursor:pointer;font-size:1.1rem;
}
.core-more summary::-webkit-details-marker{display:none}
.core-more summary:hover,.core-more[open] summary{background:#252527;color:#fff}
.core-more-menu{
  position:absolute;top:42px;right:0;z-index:20;display:grid;gap:4px;
  min-width:190px;padding:6px;border:1px solid #424246;border-radius:12px;
  background:#1c1c1e;box-shadow:0 18px 46px #0009;
}
.core-more-menu button{
  min-height:36px;padding:8px 10px;border:0;border-radius:7px;
  background:transparent;color:#dedee0;text-align:left;font-size:.77rem;
}
.core-more-menu button:hover{background:#303033}
.core-mobile-menu{display:none}
.core-standalone .core-thread{
  min-height:0;padding:36px max(24px,calc((100% - 760px)/2)) 28px;
  scroll-behavior:smooth;
}
.core-standalone .tutor-chat-history{max-width:none;margin:0;padding:0;border:0}
.core-standalone .core-intro{max-width:690px;margin:clamp(35px,9vh,105px) auto 45px;text-align:center}
.core-standalone .core-intro h2{font-size:clamp(1.55rem,2.5vw,2.2rem);font-weight:640;letter-spacing:-.045em}
.core-standalone .core-intro p{font-size:.94rem;line-height:1.65}
.core-standalone .chat-message{max-width:100%;margin:0 0 31px;grid-template-columns:30px minmax(0,1fr);gap:13px}
.core-standalone .chat-message.user{display:flex;justify-content:flex-end;padding-left:10%}
.core-standalone .chat-message.user .chat-copy{
  max-width:min(82%,620px);padding:11px 16px;border:1px solid #38383b;
  border-radius:17px;background:#242426;color:#f0f0f1;
}
.core-standalone .chat-message.assistant .chat-copy{padding-top:2px}
.core-standalone .chat-avatar{
  width:28px;height:28px;border:1px solid #77777a;border-radius:9px;
  background:#dadadd;color:#171719;font-size:.78rem;box-shadow:none;
}
.core-standalone .chat-copy{color:#e5e5e6;font-size:.95rem;line-height:1.72}
.core-standalone .chat-copy label{
  margin:0 0 7px;color:#aaa9ad;font-size:.7rem;letter-spacing:0;text-transform:none;
}
.core-standalone .chat-copy p{margin:0 0 13px}
.core-standalone .chat-copy p:last-child{margin-bottom:0}
.core-standalone .chat-copy code{background:#232325;border-color:#3e3e42;color:#ededee}
.core-standalone .chat-copy pre{background:#171719;border-color:#3e3e42}
.core-standalone .chat-copy a,.core-standalone .core-sources a{color:#e9e9eb}
.core-standalone .stream-caret:after{background:#e2e2e3}
.core-standalone .core-compose-zone{
  padding:16px clamp(20px,3vw,36px) max(18px,env(safe-area-inset-bottom));
  border:0;background:linear-gradient(0deg,#0b0b0c 80%,#0b0b0ce8);
}
.core-bottom-inner{width:min(100%,850px);margin:0 auto}
.core-standalone .core-tools,.core-standalone .core-quick{gap:7px;margin:0 0 9px}
.core-standalone .core-tools[hidden]{display:none}
.core-standalone .core-tools button,.core-standalone .core-quick button{
  min-height:30px;padding:5px 10px;border:1px solid #38383b;border-radius:999px;
  background:#1b1b1d;color:#c8c8ca;font-size:.72rem;line-height:1.2;white-space:nowrap;
}
.core-standalone .core-quick button{background:#131315;color:#aaa9ad}
.core-standalone .core-tools button:hover,.core-standalone .core-quick button:hover{
  background:#303033;border-color:#727276;color:#fff;
}
.core-standalone .core-tools button:disabled{opacity:.4;cursor:not-allowed}
.core-standalone .core-compose{
  align-items:center;gap:11px;min-height:60px;padding:8px 9px 8px 11px;
  border:1px solid #444448;border-radius:25px;background:#202022;
  box-shadow:0 12px 38px #0004;
}
.core-standalone .core-compose:focus-within{border-color:#a9a9ac;box-shadow:0 0 0 2px #ffffff20,0 12px 38px #0004}
.core-standalone .core-compose textarea{
  min-height:34px;max-height:152px;resize:none;padding:6px 0;
  color:#f4f4f4;line-height:1.5;font-size:.9rem;
}
.core-standalone .core-compose textarea::placeholder{color:#9b9b9f}
.core-standalone .core-compose textarea:focus-visible{outline:none}
.core-standalone .core-add{
  display:grid;place-items:center;width:34px;height:34px;flex:none;padding:0;
  border:1px solid #4b4b4e;border-radius:50%;background:#2a2a2c;
  color:#ececee;font-size:1.27rem;font-weight:400;line-height:1;
}
.core-standalone .core-add:hover{background:#414144;border-color:#88888b}
.core-standalone .core-send{
  display:grid;place-items:center;width:39px;height:39px;flex:none;padding:0;
  border:0;border-radius:50%;background:#efefef;color:#171719;
  font-size:1.23rem;font-weight:670;transition:background .18s,transform .18s;
}
.core-standalone .core-send:hover{background:#cfcfd1;transform:translateY(-1px)}
.core-standalone .core-send:active{transform:scale(.95)}
.core-standalone .core-compose-note{
  margin:8px 10px 0;color:#77777b;font-size:.68rem;line-height:1.35;
}
.core-standalone .core-compose-note label{white-space:nowrap}
.core-standalone .core-compose-note input{accent-color:#dadada}
.core-standalone .core-quota-notice{margin:0 3px 8px;color:#8f8f93;font-size:.72rem}
.core-standalone .core-quota-notice.near{
  padding:7px 10px;border:1px solid #66666a;border-radius:9px;
  background:#222224;color:#e0e0e2;
}
.core-standalone .core-status{color:#bcbcc0}
.core-standalone .core-reconnect,.core-standalone .core-retry-aid{
  border-color:#5f5f62;border-radius:9px;background:#28282b;color:#eee;
}
.core-standalone .core-aid{
  min-height:0;margin:16px 16px 16px 0;height:calc(100dvh - 32px);
  overflow-y:auto;border:1px solid #3c3c40;border-radius:14px;
  background:#171719;box-shadow:-12px 0 35px #0005;
}
.core-standalone .core-aid.expanded{
  position:fixed;inset:10px;z-index:120;width:auto;height:auto;margin:0;
  overflow-y:auto;border-radius:14px;background:#171719;
}
.core-standalone .core-step.active{border-color:#dddde0;background:#333336}
.core-standalone .core-step-explanation{border-color:#626267;background:#242426}
.core-standalone .core-aid button:focus-visible,
.core-standalone button:focus-visible,.core-standalone textarea:focus-visible,
.core-standalone summary:focus-visible{outline:2px solid #f1f1f1;outline-offset:3px}
@media(min-width:1101px){
  .core-standalone.with-aid .core-workspace{grid-template-columns:minmax(0,1fr) minmax(350px,41%)}
}
@media(max-width:1100px){
  .core-standalone .core-aid:not(.expanded){position:fixed;inset:16px;z-index:100;width:auto;height:auto;margin:0;overflow-y:auto}
}
@media(max-width:800px){
  .genesis-core.core-standalone,.genesis-core.core-standalone.with-aid{grid-template-columns:minmax(0,1fr)}
  .core-rail{
    position:fixed;inset:0 auto 0 0;z-index:90;width:min(82vw,290px);
    transform:translateX(-101%);transition:transform .2s ease;
    box-shadow:20px 0 50px #0007;
  }
  .core-standalone.rail-open .core-rail{transform:none}
  .core-standalone.rail-open .core-rail-backdrop{
    display:block;position:fixed;inset:0;z-index:85;
    width:100%;height:100%;border:0;background:#0009;
  }
  .core-mobile-menu{
    display:grid;place-items:center;width:36px;height:36px;flex:none;
    border:1px solid #37373a;border-radius:9px;background:#1b1b1d;color:#eee;
    font-size:1.05rem;
  }
  .core-standalone .core-header{gap:12px;min-height:66px;padding:10px 16px}
  .core-header-title{flex:1}
  .core-standalone .core-header p{max-width:calc(100vw - 170px)}
  .core-standalone .core-thread{padding:27px max(17px,calc((100% - 700px)/2)) 22px}
  .core-standalone .core-compose-zone{padding:9px 12px max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:620px){
  .core-standalone .core-header{flex-direction:row;align-items:center}
  .core-standalone .core-header h1{font-size:.93rem}
  .core-standalone .core-header p{font-size:.65rem}
  .core-standalone .core-header-actions>button{display:none}
  .core-standalone .core-intro{margin:42px auto 30px;text-align:left}
  .core-standalone .core-intro h2{font-size:1.5rem}
  .core-standalone .chat-message{gap:9px;margin-bottom:23px}
  .core-standalone .chat-message.user{padding-left:8%}
  .core-standalone .chat-message.user .chat-copy{max-width:100%;padding:9px 12px}
  .core-standalone .chat-copy{font-size:.87rem;line-height:1.6}
  .core-standalone .core-tools,.core-standalone .core-quick{
    display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;
    scrollbar-width:none;padding-bottom:2px;
  }
  .core-standalone .core-tools::-webkit-scrollbar,.core-standalone .core-quick::-webkit-scrollbar{display:none}
  .core-standalone .core-tools button,.core-standalone .core-quick button{flex:none;min-height:31px;font-size:.7rem}
  .core-standalone .core-compose{min-height:56px;border-radius:24px}
  .core-standalone .core-compose-note{font-size:.61rem}
  .core-standalone .core-compose-note>span{display:none}
  .core-standalone .core-aid:not(.expanded),.core-standalone .core-aid.expanded{inset:0;width:auto;height:auto;margin:0;border-radius:0}
}
@media(prefers-reduced-motion:reduce){
  .core-standalone .core-rail,.core-standalone .core-send{transition:none}
  .core-standalone .core-send:hover,.core-standalone .core-send:active{transform:none}
}
/* Grid children must shrink below their chip row's intrinsic width on phones. */
.core-standalone .core-header,.core-standalone .core-thread,
.core-standalone .core-compose-zone,.core-standalone .core-bottom-inner,
.core-standalone .core-tools,.core-standalone .core-quick,
.core-standalone .core-compose{min-width:0;max-width:100%}
.core-standalone .core-header,.core-standalone .core-thread,
.core-standalone .core-compose-zone{width:100%}
.core-standalone .core-thread{overflow-x:hidden}
.core-standalone .chat-message.user .chat-copy{min-width:0;overflow-wrap:anywhere}
.core-standalone .core-error{color:#e0e0e2}
@media(max-width:800px){
  .core-standalone .core-rail{
    visibility:hidden;
    transition:transform .2s ease,visibility 0s linear .2s;
  }
  .core-standalone.rail-open .core-rail{
    visibility:visible;
    transition:transform .2s ease;
  }
}
@media(max-width:800px) and (prefers-reduced-motion:reduce){
  .core-standalone .core-rail,.core-standalone.rail-open .core-rail{transition:none}
}
.genesis-core.core-standalone,.genesis-core.core-standalone.with-aid{align-items:stretch}
/* Tutor identity and conversation flow. The photograph is used unchanged and
   cropped by CSS, so the avatar is the actual mark from the supplied logo. */
.core-rail-brand{height:58px;margin:0 0 23px}
.core-rail-logo{display:block;position:relative;width:205px;height:57px;flex:none;overflow:hidden;
  background-image:url('/assets/genesis-core-monochrome.png');background-repeat:no-repeat;
  background-size:245px 104px;background-position:-23px -27px}
.core-standalone .chat-avatar.core-symbol{display:block;flex:none;width:30px;height:30px;border:0;
  border-radius:8px;background-color:#0b0b0c;background-image:url('/assets/genesis-core-monochrome.png');
  background-repeat:no-repeat;background-size:144px 61px;background-position:-14px -16px}
.core-standalone .core-thread{padding-inline:max(18px,calc((100% - 980px)/2));scroll-behavior:auto;overflow-anchor:none}
.core-standalone .tutor-chat-history{max-width:980px}
.core-standalone .core-workspace{display:grid;grid-template-columns:minmax(0,1fr)}
.core-standalone.with-aid .core-workspace{grid-template-columns:minmax(0,1fr)}
.core-standalone .core-chat{position:relative}
.core-jump-latest{position:absolute;bottom:calc(var(--core-compose-height,180px) + 12px);right:clamp(18px,4vw,48px);
  z-index:15;border:1px solid #77777b;border-radius:999px;background:#28282b;color:#fff;
  padding:9px 14px;box-shadow:0 12px 35px #0009;font-size:.78rem}
.core-jump-latest[hidden]{display:none}
.core-thinking{display:inline-flex;align-items:center;gap:6px;min-height:23px}
.core-thinking i{width:6px;height:6px;border-radius:50%;background:#d5d5d8;opacity:.35;
  animation:core-thinking 1.15s ease-in-out infinite}
.core-thinking i:nth-child(2){animation-delay:.18s}.core-thinking i:nth-child(3){animation-delay:.36s}
@keyframes core-thinking{0%,65%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
.core-standalone .chat-copy.streaming:has(.core-thinking):after{display:none}
.core-standalone .core-aid:not(.expanded){position:relative;inset:auto;width:100%;height:auto;
  max-width:100%;margin:13px 0 30px;overflow:visible;border:1px solid #414147;
  border-radius:16px;background:#151517;box-shadow:0 12px 32px #0005}
.core-standalone .core-aid.expanded{inset:12px;margin:0;overflow:auto;max-width:none}
.core-standalone .core-aid-head h3{font-size:clamp(1.15rem,2vw,1.65rem)}
.core-standalone .core-step-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;max-width:100%}
.core-standalone .core-step{min-width:0;min-height:90px;align-content:start;padding:13px;transition:background .2s,border-color .2s,transform .2s}
.core-standalone .core-step:hover{transform:translateY(-2px)}
.core-standalone .core-step strong{white-space:normal;overflow-wrap:anywhere}
.core-aid [data-role=input]{--aid-accent:#4fa8ee}
.core-aid [data-role=process]{--aid-accent:#a98bf2}
.core-aid [data-role=decision]{--aid-accent:#efa95d}
.core-aid [data-role=output]{--aid-accent:#4ac5a8}
.core-aid [data-role=warning]{--aid-accent:#e77676}
.core-aid [data-role=neutral]{--aid-accent:#bcbcc3}

/* The Tutor owns its visual surface even when Genesis Core is unavailable.
   The historical /api/chat contract remains unchanged in .legacy-tutor. */
.core-standalone .core-tools{display:grid;gap:10px;max-height:min(28vh,220px);overflow-y:auto;padding:9px 2px}
.core-standalone .core-tools[hidden],.legacy-tutor-tools[hidden]{display:none}
.core-tool-group{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:start;gap:8px}
.core-tool-group>span,.legacy-tutor-tools>span{padding-top:7px;color:#a5a5a8;font-size:.7rem;font-weight:650}
.core-tool-group>div{display:flex;flex-wrap:wrap;gap:7px}
.core-standalone .core-quick{display:flex;flex-wrap:wrap}
.legacy-tutor .core-header-actions{flex:none}
.legacy-tutor .core-thread{display:block}
.legacy-tutor-context{display:flex;justify-content:space-between;align-items:center;gap:12px;
  max-width:980px;margin:0 0 22px;padding:9px 0;border-bottom:1px solid #303033;
  color:#aaa9ad;font-size:.76rem;line-height:1.4}
.legacy-tutor-context strong{color:#e7e7e8;font-weight:600}
.legacy-tutor-context button,.legacy-tutor-focus button{flex:none;padding:6px 9px;border:1px solid #49494c;
  border-radius:8px;background:#202022;color:#ececed;font:inherit;cursor:pointer}
.legacy-tutor-context button:hover,.legacy-tutor-focus button:hover{background:#303033}
.legacy-tutor-focus{max-width:980px;margin:0 0 23px;padding:11px 14px;border:1px solid #424246;
  border-radius:11px;background:#19191b;color:#ddd;line-height:1.55}
.legacy-tutor-focus summary,.legacy-tutor-paths summary{cursor:pointer;color:#eee;font-size:.83rem;font-weight:650}
.legacy-tutor-focus p{margin:12px 0 7px}
.legacy-tutor-focus h2{margin:11px 0 7px;color:#e8e8e9;font-size:.86rem;font-weight:570;line-height:1.5}
.legacy-tutor-focus small{display:block;margin-top:7px;color:#aaa9ad;font-size:.73rem}
.legacy-tutor-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.legacy-tutor-empty{color:#aaa9ad;font-size:.85rem;line-height:1.6}
.legacy-tutor-advice{max-width:760px;margin:0 0 20px 43px;padding:10px 14px;border-left:2px solid #77777b;
  color:#d6d6d7;font-size:.8rem}
.legacy-tutor-advice p{margin:5px 0 0;color:#aaa9ad}
.legacy-tutor-paths{max-width:980px;margin:24px 0 12px;padding:0;border-top:1px solid #2c2c30}
.legacy-tutor-paths>summary{padding:13px 0;list-style:none}
.legacy-tutor-paths>summary::before{content:'＋';display:inline-block;width:22px;color:#aaa9ad}
.legacy-tutor-paths[open]>summary::before{content:'−'}
.legacy-tutor-paths .tutor-hub{max-width:none;margin:0 0 16px;color:#ececed}
.legacy-tutor-paths .tutor-hub-intro{text-align:left;padding:2px 0 14px}
.legacy-tutor-paths .tutor-hub-intro h2{margin:5px 0;font-size:1rem;letter-spacing:0}
.legacy-tutor-paths .tutor-hub-intro p,.legacy-tutor-paths .tutor-hub-help,
.legacy-tutor-paths .tutor-hub-choices>p{color:#aaa9ad}
.legacy-tutor-paths .tutor-hub-intro .eyebrow,.legacy-tutor-paths .tutor-path-arrow,
.legacy-tutor-paths .tutor-topic span{color:#c7c7ca}
.legacy-tutor-paths .tutor-path-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.legacy-tutor-paths .tutor-path{min-height:0;padding:11px;border:1px solid #3d3d41;border-radius:10px;
  background:#1b1b1e;color:#e9e9eb;box-shadow:none}
.legacy-tutor-paths .tutor-path:hover,.legacy-tutor-paths .tutor-path.selected{border-color:#a1a1a5;
  background:#29292c;transform:none}
.legacy-tutor-paths .tutor-path-icon{width:27px;height:27px;border-color:#57575a;border-radius:8px;
  background:#252528;color:#e9e9eb;font-size:1rem}
.legacy-tutor-paths .tutor-path-copy{gap:4px;margin-top:9px}
.legacy-tutor-paths .tutor-path-copy strong{font-size:.81rem}
.legacy-tutor-paths .tutor-path-copy small,.legacy-tutor-paths .tutor-topic small{color:#aaa9ad;font-size:.72rem}
.legacy-tutor-paths .tutor-hub-choices{margin-top:12px;padding:12px;border-color:#3d3d41;
  background:#171719}
.legacy-tutor-paths .tutor-topic,.legacy-tutor-paths .tutor-choices-head button,
.legacy-tutor-paths .tutor-hub-help button{border-color:#434347;background:#222225;color:#ededee}
.legacy-tutor-paths .tutor-topic:hover:not(:disabled){border-color:#aaa9ad;background:#303033}
.legacy-tutor .jump-latest{bottom:calc(var(--core-compose-height,105px) + 12px);right:clamp(18px,4vw,48px);
  z-index:15;border-color:#77777b;background:#28282b;color:#fff}
.legacy-tutor .jump-latest[hidden]{display:none}
.legacy-tutor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 9px}
.legacy-tutor-tools>span{width:100%;padding-top:0}
.legacy-tutor-tools button{min-height:31px;padding:5px 10px;border:1px solid #454549;border-radius:999px;
  background:#1b1b1d;color:#ddd;font:inherit;font-size:.73rem;cursor:pointer}
.legacy-tutor-tools button:hover{background:#303033;border-color:#aaa9ad}
.legacy-tutor .tutor-retry{margin-top:9px;padding:5px 9px;border:1px solid #55555a;border-radius:8px;
  background:#222225;color:#eee;cursor:pointer}
.legacy-tutor :is(.legacy-tutor-focus,.legacy-tutor-paths) summary:focus-visible{outline:2px solid #fff;outline-offset:3px}
.core-standalone .core-compose textarea:focus-visible{outline:2px solid #f1f1f1;outline-offset:2px;border-radius:5px}
@media(max-width:800px){
  .legacy-tutor-paths .tutor-path-grid{grid-template-columns:minmax(0,1fr)}
  .legacy-tutor-paths .tutor-path{display:grid;grid-template-columns:27px minmax(0,1fr) 20px;align-items:center;gap:10px}
  .legacy-tutor-paths .tutor-path-copy{margin:0}
}
@media(max-width:620px){
  .core-tool-group{grid-template-columns:minmax(0,1fr);gap:3px}
  .core-standalone .core-tools{max-height:min(34vh,220px)}
  .legacy-tutor-context{align-items:flex-start;flex-direction:column;gap:7px;font-size:.71rem}
  .legacy-tutor .core-header-actions{display:none}
  .legacy-tutor .core-thread{padding-top:16px}
  .legacy-tutor-tools{max-height:32vh;overflow-y:auto}
  .legacy-tutor-paths .tutor-topic-grid{grid-template-columns:minmax(0,1fr)}
}
.core-standalone .core-step.active{border-color:var(--aid-accent,#dddde0);box-shadow:inset 3px 0 var(--aid-accent,#dddde0)}
.core-standalone .core-step-number{color:var(--aid-accent,#dddde0)}
.core-standalone .core-step-explanation{border-left:3px solid var(--aid-accent,#bcbcc3)}
.core-standalone .core-step-explanation h4{font-size:clamp(1.05rem,1.6vw,1.35rem)}
.core-standalone .core-aid .core-aid-intro,.core-standalone .core-aid .core-step-explanation p{max-width:80ch}
@media(max-width:620px){
  .core-standalone .core-step-track,.core-standalone .core-aid.expanded .core-step-track{grid-template-columns:minmax(0,1fr)}
  .core-standalone .core-step{min-height:60px}
  .core-jump-latest{bottom:calc(var(--core-compose-height,200px) + 9px);right:12px}
  .core-standalone .core-aid:not(.expanded){padding:17px}
}
@media(prefers-reduced-motion:reduce){
  .core-thinking i{animation:none;opacity:.7}
  .core-standalone .core-step{transition:none}
  .core-standalone .core-step:hover{transform:none}
}

.core-step-copy{display:grid;gap:3px;min-width:0}
.core-step-role{display:block;color:var(--aid-accent,#aaaab0);font-size:.66rem;
  font-weight:680;text-transform:uppercase;letter-spacing:.05em}
.core-scene-shell{margin:18px 0 24px;border:1px solid #424248;border-radius:14px;
  background:#101013;overflow:hidden}
.core-scene-view{position:relative;width:100%;height:clamp(260px,30vw,360px);background:
  radial-gradient(ellipse at center,#24242a 0,#101013 70%);overflow:hidden;
  touch-action:pan-y}
.core-scene-view canvas{display:block;width:100%;height:100%}
.core-scene-loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;
  color:#d2d2d5;font-size:.9rem;text-align:center;padding:20px}
.core-scene-controls{display:flex;flex-wrap:wrap;gap:8px;padding:12px;
  border-top:1px solid #35353a}
.core-scene-controls button{min-height:40px;padding:8px 13px;border:1px solid #63636a;
  border-radius:8px;background:#29292e;color:#f2f2f3;font:inherit;font-size:.8rem}
.core-scene-controls button:hover{background:#3b3b42}
.core-scene-controls button:focus-visible{outline:2px solid white;outline-offset:2px}
.core-scene-caption{padding:0 14px 14px;margin:0;color:#bdbdc2;font-size:.78rem;line-height:1.5}
@media(max-width:620px){.core-scene-view{height:280px}.core-scene-controls{display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr))}.core-scene-controls button{padding:7px}}

.core-scene-selected{position:absolute;left:14px;bottom:13px;padding:8px 11px;max-width:calc(100% - 28px);
  border:1px solid #777783;border-radius:9px;background:#101014df;color:#f2f2f4;
  font-size:.8rem;font-weight:650;pointer-events:none}

.core-standalone.with-aid .core-quick{display:none}

@media(min-width:621px){
  .core-aid[data-kind="diagram"][data-count="2"] .core-step-track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .core-aid[data-kind="diagram"][data-count="3"] .core-step-track{grid-template-columns:repeat(3,minmax(0,1fr))}
  .core-aid[data-kind="diagram"][data-count="4"] .core-step-track{grid-template-columns:repeat(4,minmax(0,1fr))}
  .core-aid[data-kind="diagram"]:is([data-count="2"],[data-count="3"],[data-count="4"]) .core-step:not(:last-child) .core-step-arrow{
    position:absolute;right:-13px;top:50%;transform:translateY(-50%);
    display:grid;place-items:center;width:24px;height:24px;border:1px solid #64646b;
    border-radius:50%;background:#18181b;color:#e5e5e8;z-index:3}
}
@media(max-width:620px){
  .core-aid[data-kind="diagram"] .core-step:not(:last-child) .core-step-arrow{
    position:absolute;left:50%;bottom:-18px;right:auto;top:auto;transform:translateX(-50%) rotate(90deg);
    display:grid;place-items:center;width:24px;height:24px;border:1px solid #64646b;
    border-radius:50%;background:#18181b;color:#e5e5e8;z-index:3}
}

.core-learning-track{display:flex;flex-wrap:wrap;gap:.35rem .65rem;color:#e5e5e5;font-size:.78rem}.core-learning-track span{color:#999;font-size:.72rem}@media(max-width:600px){.core-learning-track span{display:none}}

.core-formative-assistance{font-size:.76rem;color:#a8a8a8}
