/* Math And Reading Studying Portal: shared visual language for the launcher and connection screens. */
:root{--bg:#101114;--surface:#191b20;--surface-high:#22252b;--ink:#f4f3ef;--muted:#a2a4ad;--line:#303239;--accent:#ff713d;--lime:#ff713d;--cyan:#ff946d;color-scheme:dark}
/* Generated study portal brand emblem. */
.wordmark .brand-icon{display:block;flex-shrink:0;width:39px;height:39px;object-fit:contain;background:none;clip-path:none;font-size:0}
@media(max-width:900px){.wordmark .brand-icon{width:35px;height:35px}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.portal{margin:0;padding:0 0 0 220px;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;min-height:100dvh}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{cursor:pointer}.skip-link{position:fixed;left:240px;top:-70px;z-index:100;padding:12px;background:var(--accent);color:#111}.skip-link:focus{top:12px}
.rail{position:fixed;inset:0 auto 0 0;width:220px;background:#15161a;border-right:1px solid var(--line);padding:29px 17px 20px;display:flex;flex-direction:column;z-index:60}.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:17px;font-weight:850;letter-spacing:.025em;margin:0 5px 46px}.wordmark small{display:block;color:#8e909a;font-size:8px;letter-spacing:.16em;font-weight:600;margin-top:4px}.brand-icon{position:relative;display:grid;place-content:center;flex-shrink:0;width:35px;height:37px;background:var(--accent);color:#101114;font-size:29px;font-weight:950;font-style:italic;clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,0 100%)}.brand-icon span{position:absolute;right:2px;top:0;font-size:13px}.nav-caption{font-size:9px;letter-spacing:.15em;color:#8e909a;font-weight:700;margin:0 12px 12px}.rail nav>.nav-caption{margin-top:27px}.rail nav>a{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:13px;font-weight:600;color:#b4b6bf;padding:12px 13px;margin:4px 0;border:1px solid transparent;border-radius:5px;transition:background .15s,color .15s}.rail nav>a>span{width:20px;text-align:center;font:22px/1 "Segoe UI Symbol",sans-serif}.rail nav>a:hover{background:#25262c;color:#fff}.rail nav>a[aria-current]{color:#ff986e;background:#ff713d12;border-color:#ff713d30;box-shadow:inset 3px 0 var(--accent)}.rail-bottom{margin-top:auto;padding-top:28px}.rail-tip{background:#202126;border:1px solid var(--line);padding:17px 14px}.mini-label{font:700 9px/1.4 Consolas,monospace;letter-spacing:.1em;color:#b4b6bf}.rail-tip p{font-size:18px;font-weight:750;line-height:1.3;margin:13px 0}.rail-tip a{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:#ffa47e;text-decoration:none}.dev-link{display:flex;justify-content:space-between;gap:10px;font-size:12px;text-decoration:none;color:#a9abb4;padding:23px 10px 20px}.rail-credit{font:8px Consolas,monospace;color:#83858e;text-align:center;letter-spacing:.08em}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-title{color:#a2a4ad;font:10px Consolas,monospace;letter-spacing:.13em}.topbar-action{font-size:12px;font-weight:700;text-decoration:none;border:1px solid #494b52;background:#1b1d22;padding:10px 14px;border-radius:4px}.topbar-action:hover{border-color:var(--accent)}
.dashboard{max-width:1440px;margin:auto;padding:34px 38px 24px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{font-size:32px;line-height:1.15;font-weight:800;letter-spacing:-.04em;margin:0 0 8px}.page-heading p{font-size:13px;color:var(--muted);margin:0}.edition{font:10px Consolas,monospace;color:#aaaeb6;border:1px solid var(--line);padding:8px 10px;white-space:nowrap}.hero{position:relative;min-height:300px;display:grid;grid-template-columns:1.05fr 1fr;background:#22252a;border:1px solid #3c3e45;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(125deg,transparent 0 88px,#ffffff03 88px 89px);pointer-events:none}.hero-copy{padding:35px 0 34px 34px;position:relative;z-index:1}.hero-kicker{font:700 10px Consolas,monospace;letter-spacing:.15em;color:#ffac87;display:flex;gap:9px;align-items:center}.hero-kicker:before{content:"";width:16px;height:3px;background:var(--accent)}.hero h2{font-family:"Arial Black","Segoe UI",sans-serif;font-size:clamp(36px,4.1vw,63px);font-weight:900;letter-spacing:-.065em;line-height:.99;margin:21px 0 17px;text-transform:uppercase}.hero h2 span{color:var(--accent)}.hero p{font-size:13px;color:#c0c2ca;line-height:1.7;max-width:310px;margin:0 0 24px}.primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--accent);color:#151515;font-weight:800;font-size:12px;text-decoration:none;padding:13px 18px;border:1px solid var(--accent);border-radius:3px}.primary-action:hover{background:#ff956b}.hero-art{width:100%;height:100%;min-height:285px;align-self:center;position:relative}.hero-footer{grid-column:1/-1;display:flex;gap:25px;padding:13px 34px;background:#17191dc9;border-top:1px solid #ffffff0d;font:9px Consolas,monospace;letter-spacing:.06em;color:#c3c5cd}.hero-footer span:before{content:"+";color:var(--accent);margin-right:8px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 16px}.section-heading h2{font-size:17px;margin:0;font-weight:750;letter-spacing:-.02em}.section-heading>span{font:10px Consolas,monospace;color:var(--muted)}.launch-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.launch-card{--card-accent:#ff966b;display:flex;flex-direction:column;position:relative;border:1px solid var(--line);background:var(--surface);text-decoration:none;min-width:0;transition:transform .18s,border-color .18s}.launch-card:hover{transform:translateY(-4px);border-color:var(--card-accent)}.launch-card:nth-child(2){--card-accent:#a6b6ff}.launch-card:nth-child(3){--card-accent:#8ed7bc}.launch-card:nth-child(4){--card-accent:#7fd8ff}.launch-card:nth-child(5){--card-accent:#dac187}.card-art{height:116px;display:grid;place-items:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(0deg,transparent 0 23px,#ffffff03 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,#ffffff03 23px 24px),#1c1e24;color:var(--card-accent);position:relative}.card-art svg{width:120px;height:82px;stroke:currentColor;fill:none;stroke-width:1.6}.card-number{position:absolute;top:12px;left:13px;color:#8c8e98;font:9px Consolas,monospace}.card-arrow{position:absolute;top:12px;right:13px;color:#989ba5;font-size:15px}.card-info{padding:18px 17px;flex:1;display:flex;flex-direction:column}.card-info h3{font-size:17px;margin:0 0 8px;font-weight:750;letter-spacing:-.03em}.card-info p{font-size:12px;line-height:1.65;color:#a8abb5;margin:0 0 19px}.card-label{font:9px Consolas,monospace;letter-spacing:.08em;color:var(--card-accent);margin-top:auto}.session-area{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-top:26px}.session-panel,.setup-panel{border:1px solid var(--line);background:#17191d;padding:22px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title h2,.setup-panel h2{font-size:15px;margin:0}.panel-title button{color:#aeb1bb;background:transparent;border:1px solid #3d3f48;border-radius:3px;padding:6px 9px;font-size:10px;cursor:pointer}.session-state{font-size:12px;color:#b0b3bc;line-height:1.65;margin:20px 0 0}.session-state strong{display:block;color:#e3e4e8;font-size:13px;margin-bottom:4px}.setup-panel p{font-size:12px;line-height:1.7;color:#a8abb5;margin:12px 0 16px}.setup-panel a{font-size:11px;font-weight:700;color:#ffad87;text-decoration:none}.device-row{display:flex;align-items:center;gap:12px;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.device-row:last-child{border:0}.device-row:before{content:"";width:6px;height:6px;background:#8ed7bc;border-radius:50%}.device-row span:last-child{margin-left:auto;font:10px Consolas,monospace;color:var(--muted)}.dashboard-footer{display:flex;justify-content:space-between;gap:20px;color:#898c97;font:9px Consolas,monospace;letter-spacing:.07em;margin-top:25px;padding-top:19px;border-top:1px solid var(--line)}
/* Mode pages retain their existing connection behavior. */
.portal .wrap{width:min(1040px,calc(100% - 76px));padding:30px 0 60px;margin:auto}.portal .back{font-size:12px;color:#b4b6bf;text-decoration:none}.portal .tag{margin-top:40px;color:#ff996f;font:700 10px Consolas,monospace;letter-spacing:.15em}.portal .wrap h1{font-family:"Arial Black","Segoe UI",sans-serif;font-size:clamp(34px,4.5vw,60px);letter-spacing:-.055em;line-height:1.05;margin:17px 0}.portal .lead{font-size:15px;color:#aeb1bd;line-height:1.7;max-width:650px;margin-bottom:28px}.portal .surface{border:1px solid #393c44;border-radius:5px;background:#1a1c21;box-shadow:none}.portal .tabs{background:#15171b;border-color:var(--line);padding:8px}.portal .tab{font:700 13px "Segoe UI",sans-serif;border-radius:3px;padding:14px 12px;color:#b2b5bf}.portal .tab.active{background:#ff713d17;color:#ffa079;box-shadow:inset 0 -2px var(--accent)}.portal .panel{padding:27px}.portal .download,.portal .join button{background:var(--accent);color:#171515;border-radius:3px;font:800 13px "Segoe UI",sans-serif;padding:15px 20px}.portal .download.secondary{background:#26282f;color:#e3e4e8;border-color:#474952}.portal .host-grid ol,.portal .install ol{color:#b9bcc5;font-size:14px;line-height:1.9}.portal .note,.portal .hint{color:#a2a5af;line-height:1.6}.portal .computer,.portal .phone{background:#212329;border:1px solid #3b3e47;border-radius:4px;box-shadow:none}.portal .computer:hover,.portal .phone:hover{border-color:var(--accent)}.portal .online{color:#9edfc3}.portal .online:before{background:#9edfc3;box-shadow:none}.portal .refresh,.portal .top,.portal .empty{color:#b4b7c1}.portal .refresh button,.portal .top button{background:#292b32;border:1px solid #444650;border-radius:3px;color:#ededf0}.portal .join input{border-radius:3px;background:#121318;border-color:#454853}.portal .join input:focus{border-color:var(--accent);box-shadow:none}.portal .install{border-color:var(--line)}
/* Math Helper uses the same shell, with a bounded, scrollable chat. */
.portal.chat-page .shell{width:min(1000px,calc(100% - 76px));height:calc(100dvh - 136px);min-height:570px;margin:30px auto;background:#191b20;border:1px solid #373941;display:flex;flex-direction:column}.portal.chat-page .bar{background:#202228;border-bottom-color:#373941;padding:20px 24px}.portal.chat-page .brand{font:800 18px "Segoe UI",sans-serif}.portal.chat-page .brand b{color:#ff946b}.portal.chat-page .auth{width:min(390px,calc(100% - 36px));background:#202228;border:1px solid #42444e;border-top:3px solid var(--accent);border-radius:4px;box-shadow:0 16px 32px #0003;padding:28px}.portal.chat-page .auth h1{font:800 29px "Segoe UI",sans-serif;letter-spacing:-.04em}.portal.chat-page .auth p{color:#b0b3bf;font-size:13px;line-height:1.65;margin:12px 0 20px}.portal.chat-page .auth label{font-size:11px;display:block;margin-bottom:9px;color:#c6c8d0}.portal.chat-page .auth input,.portal.chat-page .composer textarea{background:#13151a;border-color:#454750;border-radius:3px}.portal.chat-page .auth button,.portal.chat-page .send{background:var(--accent);border-radius:3px;color:#151515}.portal.chat-page .model{color:#c2c4cd;font:10px Consolas,monospace;padding:15px 24px;border-bottom-color:var(--line)}.portal.chat-page .message{border-radius:4px;font-size:14px;border-color:#3c3f48}.portal.chat-page .message.user{background:#3a2823;border-color:#87513c}.portal.chat-page .message.assistant{background:#24262d}.portal.chat-page .composer{background:#202228;border-top-color:#393c45}.portal.chat-page .messages{min-height:0}.portal.chat-page .status{color:#ffc291}
/* Preserve the full remote screen while styling its login and toolbar. */
body.control-page{background:#111317;color:#f4f3ef;font-family:"Segoe UI",sans-serif}.control-page #auth{background:repeating-linear-gradient(135deg,transparent 0 90px,#ffffff02 90px 91px),#15171c}.control-page #auth:before{content:"STUDY PORTAL / REMOTE ACCESS";color:#ff986e;letter-spacing:.16em;font:10px Consolas,monospace;margin-bottom:20px}.control-page #auth h2{font-size:30px;letter-spacing:-.04em;max-width:100%;overflow-wrap:anywhere;text-align:center}.control-page #auth input{background:#1f2128;border:1px solid #454751;border-radius:3px}.control-page #auth button{background:var(--accent);color:#141414;font-weight:800;border-color:var(--accent);border-radius:3px}.control-page .toolbar,.control-page .bar{background:#1a1c22;border-color:#3a3d46}.control-page .toolbar button,.control-page .bar button{border-radius:3px;background:#272931;border-color:#444651}.control-page .toolbar button:hover,.control-page .toolbar button.active{background:var(--accent);border-color:var(--accent);color:#141414}.control-page .auth-home{color:#aeb2bd;font-size:12px;text-decoration:none;margin-top:14px}
@media(min-width:1600px){.hero h2{font-size:68px}.hero-art{max-height:365px}}
@media(max-height:760px) and (min-width:901px){.rail-tip{display:none}.rail{padding-top:22px}.wordmark{margin-bottom:30px}}
@media(max-width:1150px){.launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{padding-left:25px}.hero h2{font-size:44px}.hero-art{min-height:250px}.dashboard{padding:28px}.topbar{padding-inline:28px}.portal .wrap{width:calc(100% - 56px)}.session-area{grid-template-columns:1fr 1fr}}
@media(max-width:900px){body.portal{padding-left:0}.rail{position:relative;width:100%;padding:17px 20px;display:block;border-right:0;border-bottom:1px solid var(--line)}.wordmark{margin:0 0 17px;font-size:16px}.brand-icon{width:31px;height:32px;font-size:25px}.rail>.nav-caption,.rail nav>.nav-caption,.rail-bottom{display:none}.rail nav{display:flex;gap:7px;overflow:auto}.rail nav>a{white-space:nowrap;padding:9px 10px;font-size:11px;margin:0}.rail nav>a>span{font-size:16px;width:15px}.topbar{height:54px;padding-inline:24px}.topbar-title{font-size:8px}.topbar-action{font-size:10px;padding:8px 10px}.skip-link{left:15px}.hero h2{font-size:48px}.hero-art{min-height:270px}.portal .wrap{padding-top:25px}.portal.chat-page .shell{height:calc(100dvh - 211px);width:calc(100% - 40px);margin:20px auto;min-height:510px}}
@media(max-width:600px){.dashboard{padding:25px 18px 20px}.page-heading h1{font-size:27px}.page-heading p{font-size:12px}.edition{display:none}.page-heading{margin-bottom:22px}.topbar{padding-inline:18px}.topbar-title{font-size:7px;letter-spacing:.06em}.hero{grid-template-columns:1fr}.hero-copy{padding:27px 25px 0}.hero h2{font-size:48px;max-width:340px}.hero p{max-width:290px}.hero-art{height:220px;min-height:0;width:100%;margin-top:-15px}.hero-footer{padding:12px 20px;gap:12px;flex-wrap:wrap;font-size:8px}.launch-grid{gap:10px}.card-art{height:99px}.card-info{padding:15px 13px}.card-info h3{font-size:16px}.card-info p{font-size:11px;line-height:1.65}.card-label{font-size:8px}.section-heading{margin-top:25px}.section-heading h2{font-size:16px}.section-heading>span{font-size:9px}.session-area{grid-template-columns:1fr;gap:12px;margin-top:20px}.dashboard-footer{font-size:8px;line-height:1.7}.dashboard-footer span:last-child{display:none}.portal .wrap{width:calc(100% - 36px)}.portal .wrap h1{font-size:37px}.portal .lead{font-size:14px}.portal .tag{margin-top:30px}.portal .panel{padding:20px}.portal .host-grid{grid-template-columns:1fr}.portal .install{padding:20px}.portal .download{white-space:normal}.portal.chat-page .shell{width:calc(100% - 24px);margin:12px auto;min-height:500px}.portal.chat-page .bar{padding:16px}.portal.chat-page .brand{font-size:15px}.portal.chat-page .back{font-size:11px}.portal.chat-page .auth{padding:23px}.rail{padding:17px 13px}.rail nav{gap:3px}.rail nav>a{padding:8px}.rail nav>a>span{display:none}}
@media(max-width:600px){.rail nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;gap:3px}.rail nav>a{justify-content:center;text-align:center;white-space:normal;font-size:10px;line-height:1.4;min-height:44px;padding:6px 3px}.hero-copy{min-width:0}.hero h2{font-size:clamp(25px,8.3vw,42px);letter-spacing:-.055em}.hero-art{margin-top:4px;height:210px;min-width:0}.hero-footer{font-size:8px}.panel-title button{min-height:36px}.portal .refresh button,.portal .top button{min-height:40px}}
@media(max-width:600px){.rail nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
