:root{
  --tutor-blue:#0066cc;
  --tutor-blue-hover:#0071e3;
  --tutor-ink:#1d1d1f;
  --tutor-muted:#6e6e73;
  --tutor-faint:#8e8e93;
  --tutor-line:#e0e0e5;
  --tutor-canvas:#fff;
  --tutor-pearl:#f5f5f7;
  --tutor-soft:#fafafc;
  --tutor-green:#16825d;
  --tutor-amber:#a15c00;
  --tutor-red:#c9342f;
  --tutor-radius:18px;
  --tutor-radius-sm:11px;
  --tutor-shadow:0 18px 50px -34px rgba(26,38,56,.34);
  --tutor-top:64px;
}

*{box-sizing:border-box}
.tutor-body{margin:0;min-height:100vh;background:var(--tutor-pearl);color:var(--tutor-ink);font-family:"SF Pro Text","PingFang SC",system-ui,-apple-system,sans-serif}
.tutor-body button,.tutor-body input,.tutor-body textarea,.tutor-body select{font:inherit}
.tutor-body button{color:inherit}
.tutor-body svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tutor-body [hidden]{display:none!important}

.tutor-topbar{position:fixed;inset:0 0 auto 0;z-index:1200;height:var(--tutor-top);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(224,224,229,.86);-webkit-backdrop-filter:blur(20px) saturate(1.15);backdrop-filter:blur(20px) saturate(1.15)}
.tutor-topbar__left{display:flex;align-items:center;gap:12px;min-width:220px}
.tutor-brand{display:flex;align-items:center;gap:10px;color:var(--tutor-ink);text-decoration:none}
.tutor-brand img{width:34px;height:34px}
.tutor-brand span{display:flex;align-items:baseline;gap:9px;white-space:nowrap}
.tutor-brand strong{font-size:15px;font-weight:650;letter-spacing:-.2px}
.tutor-brand small{font-size:12px;color:var(--tutor-muted)}
.tutor-topbar__center{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--tutor-muted);font-size:12px;white-space:nowrap}
.tutor-live-dot{width:7px;height:7px;border-radius:50%;background:var(--tutor-green);box-shadow:0 0 0 4px rgba(22,130,93,.1)}
.tutor-divider{width:1px;height:14px;background:var(--tutor-line)}
.tutor-topbar .user-nav{min-width:220px;justify-content:flex-end}

.tutor-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;padding-top:var(--tutor-top)}
.tutor-sidebar{position:fixed;z-index:20;top:var(--tutor-top);bottom:0;left:0;width:252px;display:flex;flex-direction:column;padding:30px 18px 20px;background:var(--tutor-canvas);border-right:1px solid var(--tutor-line);overflow-y:auto}
.tutor-sidebar__intro{padding:0 10px 24px}
.tutor-eyebrow{display:block;color:var(--tutor-blue);font-size:11px;font-weight:650;letter-spacing:.12em;text-transform:uppercase}
.tutor-sidebar__intro h1{margin:8px 0 7px;font-size:24px;line-height:1.1;letter-spacing:-.5px}
.tutor-sidebar__intro p{margin:0;color:var(--tutor-muted);font-size:13px;line-height:1.6}
.tutor-nav{display:grid;gap:5px}
.tutor-nav__item{width:100%;min-height:44px;border:0;border-radius:10px;padding:0 12px;display:flex;align-items:center;gap:11px;background:transparent;color:var(--tutor-muted);cursor:pointer;text-align:left;transition:background .18s,color .18s}
.tutor-nav__item:hover{background:var(--tutor-pearl);color:var(--tutor-ink)}
.tutor-nav__item.is-active{background:#eef6ff;color:var(--tutor-blue);font-weight:600}
.tutor-nav__item svg{width:19px;height:19px;flex:0 0 19px}
.tutor-sidebar__section{margin-top:30px;min-height:0}
.tutor-sidebar__label{padding:0 12px 9px;color:var(--tutor-faint);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.tutor-recent{display:grid;gap:3px}
.tutor-recent button{border:0;border-radius:9px;padding:9px 12px;background:transparent;text-align:left;cursor:pointer}
.tutor-recent button:hover{background:var(--tutor-pearl)}
.tutor-recent strong,.tutor-recent small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tutor-recent strong{font-size:13px;font-weight:550}.tutor-recent small{margin-top:3px;color:var(--tutor-faint);font-size:11px}
.tutor-sidebar__privacy{margin-top:auto;padding:14px;border-radius:12px;background:var(--tutor-pearl);display:flex;gap:9px;color:var(--tutor-muted);font-size:11px;line-height:1.55}
.tutor-sidebar__privacy svg{width:17px;height:17px;flex:0 0 17px;color:var(--tutor-blue)}

.tutor-content{grid-column:2;min-width:0;padding:44px clamp(24px,4.2vw,68px) 96px}
.tutor-view{width:min(1320px,100%);margin:0 auto}
.tutor-login-gate{width:min(620px,100%);margin:12vh auto 0;padding:56px;border-radius:24px;background:var(--tutor-canvas);box-shadow:var(--tutor-shadow);text-align:center}
.tutor-login-gate h2{margin:12px 0 10px;font-size:34px;letter-spacing:-1px}.tutor-login-gate p{margin:0 auto 28px;color:var(--tutor-muted);line-height:1.7;max-width:480px}
.tutor-row{display:flex;gap:10px;justify-content:center}

.tutor-hero{min-height:322px;padding:48px clamp(30px,5vw,70px);border:1px solid rgba(0,102,204,.14);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(234,244,255,.94));color:var(--tutor-ink);box-shadow:0 20px 50px -38px rgba(0,102,204,.42);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:center;gap:36px;overflow:hidden;position:relative}
.tutor-hero::after{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(0,102,204,.12);border-radius:50%;right:-120px;top:-170px;box-shadow:0 0 0 55px rgba(0,102,204,.035),0 0 0 110px rgba(0,102,204,.02)}
.tutor-hero>div{position:relative;z-index:1}
.tutor-hero h2{margin:12px 0 14px;font-size:clamp(38px,5vw,62px);line-height:1.03;letter-spacing:-2.1px;font-weight:620}
.tutor-hero h2 span{color:var(--tutor-blue)}
.tutor-hero p{max-width:640px;margin:0 0 26px;color:var(--tutor-muted);font-size:17px;line-height:1.65}
.tutor-hero__flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--tutor-ink);font-size:12px}
.tutor-hero__flow span{padding:8px 11px;border-radius:999px;border:1px solid rgba(0,102,204,.16);background:rgba(255,255,255,.72)}
.tutor-hero__flow i{width:16px;height:1px;background:rgba(0,102,204,.22)}
.tutor-metrics{margin-top:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tutor-metrics article{min-height:132px;padding:22px;border:1px solid var(--tutor-line);border-radius:var(--tutor-radius);background:var(--tutor-canvas);box-shadow:0 8px 28px -28px rgba(0,0,0,.5)}
.tutor-metrics span,.tutor-metrics small{display:block;color:var(--tutor-muted);font-size:12px}.tutor-metrics strong{display:block;margin:9px 0 7px;font-size:31px;font-weight:620;letter-spacing:-1px}.tutor-metrics .is-alert strong{color:var(--tutor-amber)}
.tutor-section{margin-top:42px}.tutor-section__head,.tutor-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.tutor-section__head h3,.tutor-page-head h2{margin:7px 0 0;font-size:28px;letter-spacing:-.7px}.tutor-page-head p{margin:8px 0 0;color:var(--tutor-muted)}
.tutor-cards,.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.lesson-card,.student-card{position:relative;padding:22px;border:1px solid var(--tutor-line);border-radius:var(--tutor-radius);background:var(--tutor-canvas);transition:transform .18s,box-shadow .18s,border-color .18s}
.lesson-card:hover,.student-card:hover{transform:translateY(-2px);border-color:#b8cce1;box-shadow:var(--tutor-shadow)}
.lesson-card button.lesson-card__open{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;border-radius:inherit}
.lesson-card__top,.student-card__top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.lesson-card h4,.student-card h3{margin:9px 0 6px;font-size:18px;letter-spacing:-.2px}.lesson-card p,.student-card p{margin:0;color:var(--tutor-muted);font-size:13px;line-height:1.55}
.lesson-card__meta,.student-card__meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.lesson-card__meta span,.student-card__meta span,.status-pill{padding:5px 8px;border-radius:999px;background:var(--tutor-pearl);color:var(--tutor-muted);font-size:11px}
.status-pill{white-space:nowrap}.status-pill[data-status="confirmed"],.status-pill[data-status="reflected"]{background:#ecf8f2;color:var(--tutor-green)}
.student-card__actions{position:relative;z-index:2;display:flex;gap:7px;margin-top:18px;flex-wrap:wrap}.student-card__actions button{border:0;background:transparent;color:var(--tutor-blue);font-size:12px;cursor:pointer;padding:4px 0}.student-card__actions button+button{margin-left:10px}.student-card__actions .is-danger{color:var(--tutor-red)}
.empty-card{grid-column:1/-1;padding:54px;border:1px dashed #c9c9cf;border-radius:var(--tutor-radius);text-align:center;color:var(--tutor-muted)}

.tutor-button{min-height:42px;padding:0 18px;border:1px solid var(--tutor-line);border-radius:999px;background:var(--tutor-canvas);color:var(--tutor-ink);display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;cursor:pointer;transition:background .18s,border-color .18s,transform .15s}
.tutor-button:hover{background:#fff;border-color:#b8b8be}.tutor-button:active{transform:scale(.98)}.tutor-button:disabled{opacity:.42;cursor:not-allowed;transform:none}
.tutor-button.is-primary{border-color:var(--tutor-blue);background:var(--tutor-blue);color:#fff}.tutor-button.is-primary:hover{background:var(--tutor-blue-hover)}
.tutor-button.is-large{min-height:48px;padding:0 24px}.tutor-button.is-full{width:100%}
.tutor-text-button{border:0;background:transparent;color:var(--tutor-blue);font-size:13px;cursor:pointer;padding:7px}.tutor-text-button:hover{text-decoration:underline}
.tutor-icon-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--tutor-line);border-radius:50%;background:var(--tutor-canvas);cursor:pointer}.tutor-icon-button svg{width:19px;height:19px}.tutor-icon-button.is-send{border-color:var(--tutor-blue);background:var(--tutor-blue);color:#fff;flex:0 0 40px}

.prep-view{max-width:1480px}.prep-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:20px}.prep-head h2{margin:5px 0 0;font-size:26px;letter-spacing:-.6px}.prep-head__status{text-align:right}.prep-head__status span,.prep-head__status small{display:block}.prep-head__status span{font-weight:600}.prep-head__status small{margin-top:4px;color:var(--tutor-muted);font-size:11px}
.prep-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(480px,1fr) minmax(220px,260px);gap:14px;align-items:start}
.tutor-panel{border:1px solid var(--tutor-line);border-radius:var(--tutor-radius);background:var(--tutor-canvas);box-shadow:0 10px 36px -34px rgba(0,0,0,.7)}
.tutor-panel__head{min-height:68px;padding:15px 18px;border-bottom:1px solid var(--tutor-line);display:flex;align-items:center;gap:11px}
.tutor-panel__head>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#edf5ff;color:var(--tutor-blue);font-size:11px;font-weight:650;flex:0 0 26px}
.tutor-panel__head>div{min-width:0;flex:1}.tutor-panel__head h3{margin:0;font-size:15px}.tutor-panel__head p{margin:3px 0 0;color:var(--tutor-muted);font-size:11px}.tutor-panel__head select{max-width:180px}
.prep-intake{overflow:hidden}.prep-intake form{display:grid;gap:13px;padding:18px}.prep-intake label,.tutor-dialog label{display:grid;gap:6px;color:var(--tutor-muted);font-size:12px}
.tutor-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tutor-body input,.tutor-body textarea,.tutor-body select{width:100%;border:1px solid var(--tutor-line);border-radius:var(--tutor-radius-sm);background:var(--tutor-soft);color:var(--tutor-ink);padding:10px 11px;outline:none;resize:vertical;transition:border-color .18s,box-shadow .18s}
.tutor-body input:focus,.tutor-body textarea:focus,.tutor-body select:focus{border-color:var(--tutor-blue);box-shadow:0 0 0 3px rgba(0,102,204,.1)}
.material-zone{border-top:1px solid var(--tutor-line);padding:18px}.material-zone__head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:11px}.material-zone__head strong{font-size:13px}.material-zone__head span{color:var(--tutor-faint);font-size:10px}
.material-drop{min-height:104px;border:1px dashed #b9c5d2;border-radius:13px;display:flex!important;align-items:center;justify-content:center;gap:4px!important;text-align:center;cursor:pointer;background:#fbfdff}.material-drop:hover{border-color:var(--tutor-blue);background:#f5f9ff}.material-drop svg{width:23px;height:23px;color:var(--tutor-blue)}.material-drop span{color:var(--tutor-ink);font-size:12px}.material-drop small{color:var(--tutor-faint);font-size:10px}
.material-list{display:grid;gap:7px;margin-top:10px}.material-item{padding:9px 10px;border-radius:10px;background:var(--tutor-pearl);display:flex;gap:8px;align-items:flex-start}.material-item i{width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--tutor-green);flex:0 0 7px}.material-item.is-failed i{background:var(--tutor-red)}.material-item div{min-width:0}.material-item strong,.material-item small{display:block;overflow:hidden;text-overflow:ellipsis}.material-item strong{font-size:11px;white-space:nowrap}.material-item small{margin-top:3px;color:var(--tutor-muted);font-size:9px;line-height:1.4}
.prep-main{display:grid;gap:14px}.context-panel,.artifact-panel{overflow:hidden}.context-state{margin:16px 18px 0;padding:12px;border-radius:12px;background:#f5f9ff;color:#34516c;font-size:12px;line-height:1.55}.context-state ul{margin:7px 0 0;padding-left:18px}.context-state.is-locked{background:#ecf8f2;color:#285b49}
.context-summary{display:grid;gap:0;margin:0}.context-summary>div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid rgba(52,81,108,.12)}.context-summary>div:first-child{padding-top:0}.context-summary dt{color:var(--tutor-muted)}.context-summary dd{margin:0;color:var(--tutor-ink);font-weight:550;overflow-wrap:anywhere}.context-notice{padding-top:11px}.context-notice strong{color:inherit}.context-notice p{margin:4px 0 0}
.context-editor{margin:12px 18px 0;width:calc(100% - 36px)!important;min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:11px!important;line-height:1.55}
.prep-chat{display:grid;gap:8px;max-height:190px;overflow:auto;padding:12px 18px 0}.prep-message{max-width:84%;padding:10px 12px;border-radius:12px;background:var(--tutor-pearl);font-size:12px;line-height:1.55}.prep-message.is-user{justify-self:end;background:#eaf4ff}.prep-message small{display:block;margin-top:4px;color:var(--tutor-faint);font-size:9px}
.prep-chatbox{display:flex;gap:9px;align-items:flex-end;padding:12px 18px}.prep-chatbox textarea{min-height:54px;max-height:140px}.tutor-check{display:flex!important;grid-template-columns:none!important;flex-direction:row;align-items:flex-start;gap:8px!important;color:var(--tutor-muted);font-size:11px!important;line-height:1.5}.tutor-check input{width:15px!important;height:15px;flex:0 0 15px;margin:2px 0 0}.context-panel>.tutor-check{margin:0 18px 18px}
.artifact-empty{min-height:250px;padding:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--tutor-muted)}.artifact-empty svg{width:42px;height:42px;color:#9aafc3}.artifact-empty strong{margin-top:15px;color:var(--tutor-ink)}.artifact-empty span{margin-top:6px;font-size:12px}
.artifact-tabs{display:flex;gap:5px;padding:12px 14px;border-bottom:1px solid var(--tutor-line);overflow-x:auto}.artifact-tabs button{border:0;border-radius:999px;background:transparent;padding:7px 11px;white-space:nowrap;color:var(--tutor-muted);font-size:11px;cursor:pointer}.artifact-tabs button.is-active{background:var(--tutor-ink);color:#fff}
.artifact-content{padding:22px;max-height:620px;overflow:auto}.artifact-content h4{margin:22px 0 8px;font-size:15px}.artifact-content h4:first-child{margin-top:0}.artifact-content p,.artifact-content li{font-size:13px;line-height:1.65}.artifact-content .katex-display{margin:.7em 0;overflow-x:auto;overflow-y:hidden;padding:2px 0}.artifact-content .katex{font-size:1.04em}.artifact-content pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-family:inherit;font-size:13px;line-height:1.7}
.illustration-panel{margin:0 22px 22px;padding:18px;border:1px solid var(--tutor-line);border-radius:15px;background:var(--tutor-soft)}
.illustration-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.illustration-panel__head>div{min-width:0}.illustration-panel__head h4{margin:6px 0 4px;font-size:15px}.illustration-panel__head p{margin:0;color:var(--tutor-muted);font-size:11px;line-height:1.55}.illustration-panel__head select{width:min(290px,42%);flex:0 0 auto;background:var(--tutor-canvas);font-size:11px}
.illustration-prompt{display:grid;gap:6px;margin-top:15px;color:var(--tutor-muted);font-size:11px}.illustration-prompt textarea{background:var(--tutor-canvas);min-height:76px}
.illustration-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.illustration-actions>span{color:var(--tutor-muted);font-size:10px}.illustration-actions .tutor-button{min-height:38px;font-size:12px}
.illustration-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.illustration-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--tutor-line);border-radius:11px;color:var(--tutor-muted);font-size:11px;text-align:center;background:var(--tutor-canvas)}
.illustration-card{overflow:hidden;border:1px solid var(--tutor-line);border-radius:12px;background:var(--tutor-canvas)}.illustration-card.is-selected{border-color:var(--tutor-blue)}.illustration-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--tutor-pearl)}.illustration-card>div{padding:9px 10px;display:grid;gap:5px}.illustration-card>div>span{color:var(--tutor-muted);font-size:9px}.illustration-card>div>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.illustration-card .tutor-text-button{min-height:34px;padding:5px;font-size:10px}.illustration-card .is-danger{color:var(--tutor-red)}
.prep-rail{display:grid;gap:14px}.stage-panel{padding:18px}.stage-list{list-style:none;margin:14px 0 0;padding:0;display:grid}.stage-list li{display:flex;gap:11px;position:relative;padding:0 0 21px;color:var(--tutor-faint)}.stage-list li:not(:last-child)::after{content:"";position:absolute;left:12px;top:27px;bottom:1px;width:1px;background:var(--tutor-line)}.stage-list i{width:25px;height:25px;border-radius:50%;border:1px solid var(--tutor-line);display:grid;place-items:center;font-style:normal;font-size:10px;flex:0 0 25px;background:#fff;position:relative;z-index:1}.stage-list strong,.stage-list small{display:block}.stage-list strong{font-size:12px}.stage-list small{margin-top:3px;font-size:9px}.stage-list li.is-current,.stage-list li.is-done{color:var(--tutor-ink)}.stage-list li.is-current i{border-color:var(--tutor-blue);background:var(--tutor-blue);color:#fff}.stage-list li.is-done i{border-color:var(--tutor-green);background:#ecf8f2;color:var(--tutor-green)}
.expiry-panel{padding:15px;display:flex;gap:10px;align-items:center}.expiry-panel svg{width:22px;height:22px;color:var(--tutor-amber)}.expiry-panel strong,.expiry-panel span{display:block}.expiry-panel strong{font-size:11px}.expiry-panel span{margin-top:3px;color:var(--tutor-muted);font-size:10px;font-variant-numeric:tabular-nums}.rail-actions{padding:14px;display:grid;gap:8px;text-align:center}
.prep-actionbar{position:sticky;z-index:50;bottom:14px;margin:16px 0 0;padding:11px 12px 11px 18px;min-height:66px;border:1px solid rgba(224,224,229,.92);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 20px 50px -28px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:space-between;gap:16px}.prep-actionbar>span{color:var(--tutor-muted);font-size:12px}.prep-actionbar>div{display:flex;gap:8px}

.tutor-dialog{width:min(720px,calc(100vw - 28px));max-height:min(88vh,900px);padding:0;border:0;border-radius:22px;background:var(--tutor-canvas);box-shadow:0 28px 90px -36px rgba(0,0,0,.55);overflow:hidden}.tutor-dialog::backdrop{background:rgba(0,0,0,.36);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tutor-dialog__shell{display:flex;flex-direction:column;max-height:min(88vh,900px)}.tutor-dialog__shell.is-wide{width:min(900px,calc(100vw - 28px))}.tutor-dialog__head{padding:20px 22px;border-bottom:1px solid var(--tutor-line);display:flex;align-items:center;justify-content:space-between;gap:18px}.tutor-dialog__head h2{margin:6px 0 0;font-size:22px}.tutor-dialog__head .tutor-icon-button{border:0;font-size:24px}.tutor-dialog__body{padding:22px;overflow:auto;display:grid;gap:18px}.tutor-dialog__foot{padding:14px 22px;border-top:1px solid var(--tutor-line);display:flex;align-items:center;justify-content:flex-end;gap:10px}.tutor-dialog__foot>span{margin-right:auto;color:var(--tutor-muted);font-size:10px}.student-form-grid{grid-template-columns:1fr 1fr}.student-form-grid .is-wide{grid-column:1/-1}
.review-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-mode label{display:block!important;position:relative}.review-mode input{position:absolute;opacity:0;pointer-events:none}.review-mode span{display:block;padding:15px;border:1px solid var(--tutor-line);border-radius:13px;cursor:pointer}.review-mode strong,.review-mode small{display:block}.review-mode small{margin-top:4px;color:var(--tutor-muted)}.review-mode input:checked+span{border-color:var(--tutor-blue);background:#f3f8ff}.tutor-field-label{display:block;margin-bottom:8px;color:var(--tutor-muted);font-size:12px}.review-models{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.review-models label{display:flex!important;flex-direction:row;align-items:center;gap:8px;padding:11px;border:1px solid var(--tutor-line);border-radius:11px}.review-models input{width:14px}.review-results{padding:16px;border-radius:13px;background:var(--tutor-pearl)}.review-results h3{margin:0 0 8px;font-size:15px}.review-results h4{margin:15px 0 6px;font-size:12px}.review-results ul{margin:0;padding-left:18px}.review-results li,.review-results p{font-size:11px;line-height:1.6}.review-member{margin-top:8px;padding:10px;border-radius:9px;background:#fff}.review-member[data-status="failed"]{border-left:3px solid var(--tutor-red)}
.tutor-dialog fieldset{border:1px solid var(--tutor-line);border-radius:13px;padding:14px;display:grid;gap:9px}.tutor-dialog legend{padding:0 6px;font-size:12px;font-weight:600}.export-results{display:grid;gap:7px}.export-result{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px;border-radius:10px;background:var(--tutor-pearl);font-size:11px}.export-result a{color:var(--tutor-blue)}.reflection-summary{padding:14px;border-radius:12px;background:#fff8ed;color:#6e4a16;font-size:12px;line-height:1.6}.tutor-toast{position:fixed;z-index:2000;left:50%;bottom:30px;transform:translateX(-50%);max-width:min(520px,calc(100vw - 30px));padding:12px 18px;border-radius:999px;background:rgba(29,29,31,.94);color:#fff;font-size:12px;box-shadow:0 14px 40px -20px #000}

@media(max-width:1180px){
  .tutor-topbar__center{display:none}.tutor-topbar .user-nav{min-width:auto}.prep-layout{grid-template-columns:minmax(250px,300px) minmax(460px,1fr)}.prep-rail{grid-column:1/-1;grid-template-columns:1fr 1fr 1fr}.stage-list{grid-template-columns:repeat(6,1fr);gap:6px}.stage-list li{display:block;padding:0;text-align:center}.stage-list li:not(:last-child)::after{left:calc(50% + 13px);right:calc(-50% + 13px);top:12px;bottom:auto;width:auto;height:1px}.stage-list i{margin:0 auto 7px}.stage-list small{display:none}.tutor-cards,.student-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  :root{--tutor-top:58px}.tutor-topbar{padding:0 12px}.tutor-brand span small{display:none}.tutor-topbar .user-nav .user-name{display:none}.tutor-shell{display:block}.tutor-sidebar{position:fixed;top:auto;bottom:0;z-index:1000;width:100%;height:64px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--tutor-line);overflow:visible}.tutor-sidebar__intro,.tutor-sidebar__section,.tutor-sidebar__privacy{display:none}.tutor-nav{grid-template-columns:repeat(3,1fr);gap:5px}.tutor-nav__item{min-height:48px;justify-content:center;flex-direction:column;gap:2px;padding:4px;font-size:10px}.tutor-nav__item svg{width:18px;height:18px}.tutor-content{padding:24px 16px 100px}.tutor-hero{grid-template-columns:1fr;min-height:400px;padding:38px 28px}.tutor-hero__flow{display:none}.tutor-metrics{grid-template-columns:1fr 1fr}.prep-layout{grid-template-columns:1fr}.prep-rail{grid-column:auto;grid-template-columns:1fr}.stage-list{grid-template-columns:repeat(6,1fr)}.prep-actionbar{bottom:75px}.prep-actionbar>span{display:none}.prep-actionbar>div{width:100%}.prep-actionbar .tutor-button{flex:1;padding:0 11px}.tutor-dialog{max-height:calc(100dvh - 24px)}.tutor-dialog__shell{max-height:calc(100dvh - 24px)}
}
@media(max-width:620px){
  .tutor-brand strong{font-size:13px}.tutor-topbar .user-nav{flex-wrap:nowrap}.tutor-topbar .user-nav .promo{display:none}.tutor-topbar .user-nav .nav-link{padding:8px 10px;font-size:12px}.tutor-content{padding-left:12px;padding-right:12px}.tutor-hero{border-radius:20px;padding:32px 22px}.tutor-hero h2{font-size:39px;letter-spacing:-1.4px}.tutor-hero p{font-size:15px}.tutor-metrics{gap:9px}.tutor-metrics article{min-height:112px;padding:17px}.tutor-metrics strong{font-size:26px}.tutor-cards,.student-grid{grid-template-columns:1fr}.tutor-page-head{align-items:flex-start}.prep-head{grid-template-columns:auto minmax(0,1fr)}.prep-head__status{grid-column:2;text-align:left}.prep-layout{gap:10px}.tutor-panel{border-radius:15px}.tutor-form-grid{grid-template-columns:1fr}.context-editor{min-height:220px}.artifact-content{padding:16px}.illustration-panel{margin:0 14px 16px;padding:14px}.illustration-panel__head{display:grid}.illustration-panel__head select{width:100%}.illustration-gallery{grid-template-columns:1fr}.illustration-actions{align-items:flex-start;flex-direction:column}.illustration-actions .tutor-button{width:100%}.prep-rail{gap:10px}.stage-panel{overflow-x:auto}.stage-list{min-width:520px}.prep-actionbar{padding:9px}.prep-actionbar>div{gap:5px}.prep-actionbar .tutor-button{font-size:11px;min-height:40px}.student-form-grid,.review-mode,.review-models{grid-template-columns:1fr}.tutor-dialog__head,.tutor-dialog__body,.tutor-dialog__foot{padding-left:16px;padding-right:16px}.tutor-dialog__foot{flex-wrap:wrap}.tutor-dialog__foot>span{width:100%;margin:0}.tutor-row{flex-direction:column}.tutor-login-gate{padding:36px 24px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.lesson-card,.student-card,.tutor-button,.tutor-nav__item{transition:none!important}}

/* Codex-style workspace: collapsible navigation, drawer tools, focused center canvas. */
.tutor-shell{transition:grid-template-columns .22s ease}
.tutor-sidebar{transition:width .22s ease,padding .22s ease}
.tutor-content{padding:32px clamp(18px,2.4vw,38px) 96px;transition:padding .22s ease}
.tutor-view{width:min(1500px,100%)}
.tutor-sidebar-collapse{position:absolute;z-index:3;right:-16px;top:18px;width:32px;height:32px;border:1px solid var(--tutor-line);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);box-shadow:0 9px 24px -16px rgba(0,0,0,.6);cursor:pointer;color:var(--tutor-muted)}
.tutor-sidebar-collapse:hover{color:var(--tutor-blue);border-color:#b9d4ef}
.tutor-sidebar-collapse svg{width:16px;height:16px;transition:transform .22s ease}
.tutor-body.is-sidebar-collapsed .tutor-shell{grid-template-columns:72px minmax(0,1fr)}
.tutor-body.is-sidebar-collapsed .tutor-sidebar{width:72px;padding:22px 10px 18px}
.tutor-body.is-sidebar-collapsed .tutor-sidebar__intro,.tutor-body.is-sidebar-collapsed .tutor-sidebar__section,.tutor-body.is-sidebar-collapsed .tutor-sidebar__privacy{display:none}
.tutor-body.is-sidebar-collapsed .tutor-nav__item{justify-content:center;padding:0}
.tutor-body.is-sidebar-collapsed .tutor-nav__item span{display:none}
.tutor-body.is-sidebar-collapsed .tutor-sidebar-collapse svg{transform:rotate(180deg)}

.prep-view{max-width:1500px}
.prep-head{grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center}
.prep-head__tools{display:flex;align-items:center;gap:7px}
.tutor-tool-button{min-height:38px;padding:0 11px;border:1px solid var(--tutor-line);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--tutor-canvas);color:var(--tutor-muted);font-size:11px;cursor:pointer;white-space:nowrap}
.tutor-tool-button:hover,.tutor-tool-button[aria-expanded="false"]{color:var(--tutor-blue);border-color:#bfd6ed;background:#f6faff}
.tutor-tool-button svg{width:16px;height:16px}
.prep-layout{grid-template-columns:minmax(0,1fr) minmax(220px,250px);gap:14px}
.prep-main{grid-column:1;min-width:0}
.prep-rail{grid-column:2;min-width:0}
.prep-view.is-prep-rail-collapsed .prep-layout{grid-template-columns:minmax(0,1fr)}
.prep-view.is-prep-rail-collapsed .prep-rail{display:none}
.artifact-panel{min-height:390px}

.prep-intake{position:fixed;z-index:1102;top:calc(var(--tutor-top) + 16px);bottom:16px;left:270px;width:min(370px,calc(100vw - 292px));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 70px -30px rgba(22,39,62,.55);transform:translateX(calc(-100% - 300px));transition:transform .24s ease,left .22s ease}
.tutor-body.is-sidebar-collapsed .prep-intake{left:90px;width:min(370px,calc(100vw - 112px))}
.tutor-body.is-prep-intake-open .prep-intake{transform:translateX(0)}
.prep-intake .tutor-panel__head{position:sticky;z-index:2;top:0;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.prep-intake-close{margin-left:auto;width:32px;height:32px;border:0;font-size:21px;color:var(--tutor-muted)}
.prep-drawer-backdrop{position:fixed;z-index:1101;inset:var(--tutor-top) 0 0 0;border:0;background:rgba(20,31,45,.18);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:default}

.generation-trace{position:relative;margin:0;overflow:hidden;border:0;border-bottom:1px solid rgba(0,102,204,.1);border-radius:0;background:linear-gradient(180deg,rgba(246,250,255,.72),rgba(255,255,255,.98))}
.generation-trace::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(180deg,rgba(0,102,204,.08),rgba(0,102,204,.48),rgba(0,102,204,.04));opacity:.8}
.generation-trace__head{position:relative;width:100%;min-height:64px;padding:14px 20px;border:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;background:transparent;text-align:left;cursor:pointer}
.generation-trace__head>span:nth-child(2){display:grid;gap:3px}.generation-trace__head strong{font-size:13px}.generation-trace__head small{color:var(--tutor-muted);font-size:10px}.generation-trace__head>svg{width:17px;height:17px;color:var(--tutor-muted);transition:transform .18s ease}
.generation-trace.is-collapsed .generation-trace__head>svg{transform:rotate(-90deg)}
.generation-trace__pulse{width:8px;height:8px;border-radius:50%;background:var(--tutor-blue);box-shadow:0 0 0 5px rgba(0,102,204,.08);animation:tutorPulse 1.6s ease-in-out infinite}
.generation-trace.is-complete .generation-trace__pulse{background:var(--tutor-green);animation:none;box-shadow:0 0 0 5px rgba(22,130,93,.1)}
.generation-trace.is-error .generation-trace__pulse{background:var(--tutor-red);animation:none;box-shadow:0 0 0 5px rgba(201,52,47,.1)}
.generation-trace__body{position:relative;padding:0 20px 18px 40px}
.generation-trace.is-collapsed .generation-trace__body{display:none}
.generation-trace__body ol{position:relative;list-style:none;margin:0;padding:2px 0 8px;display:grid;gap:0}
.generation-trace__body ol::before{content:"";position:absolute;left:3px;top:10px;bottom:12px;width:1px;background:linear-gradient(180deg,rgba(0,102,204,.2),rgba(0,102,204,.04))}
.generation-trace__body li{position:relative;padding:6px 0 6px 22px;color:var(--tutor-ink);font-size:12px;line-height:1.55;transition:opacity .24s ease,color .24s ease}
.generation-trace__body li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;border-radius:50%;background:#9ec8ee;box-shadow:0 0 0 3px rgba(229,242,253,.96)}
.generation-trace__body li.is-done{color:var(--tutor-muted);opacity:.56}
.generation-trace__body li.is-done::before{background:#7abf9f;box-shadow:0 0 0 3px rgba(229,245,239,.92)}
.generation-trace__body li strong,.generation-trace__body li small{display:block}.generation-trace__body li strong{font-size:12px;font-weight:580}.generation-trace__body li small{margin-top:2px;color:var(--tutor-faint);font-size:10px}
.generation-live-draft{position:relative;margin-top:3px;padding-top:13px;overflow:hidden;animation:tutorStreamReveal .26s ease-out both}
.generation-live-draft::before{content:"";position:absolute;top:0;left:0;width:min(150px,34%);height:1px;background:linear-gradient(90deg,rgba(0,102,204,.28),rgba(0,102,204,0))}
.generation-live-draft>div:first-child{padding:0;display:flex;align-items:center;justify-content:flex-start;gap:9px;color:var(--tutor-muted);font-size:10px}
.generation-live-draft>div:first-child strong{color:var(--tutor-ink);font-size:11px;font-weight:600}.generation-live-draft>div:first-child span{color:var(--tutor-blue)}
.generation-live-draft__text{max-height:310px;margin:0;padding:10px 8px 2px 0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#293d52;font-family:"SF Pro Text","PingFang SC",system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.82;letter-spacing:.005em;scrollbar-width:thin}
.generation-trace.is-streaming .generation-live-draft__text::after{content:"";display:inline-block;width:2px;height:1.08em;margin-left:3px;vertical-align:-.14em;border-radius:2px;background:var(--tutor-blue);animation:tutorCaret 1s steps(1,end) infinite}
.generation-trace__body>p{margin:10px 0 0;color:var(--tutor-faint);font-size:10px;font-variant-numeric:tabular-nums}
@keyframes tutorPulse{50%{opacity:.48;transform:scale(.84)}}
@keyframes tutorCaret{50%{opacity:0}}
@keyframes tutorStreamReveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:1180px){
  .prep-layout{grid-template-columns:minmax(0,1fr)}
  .prep-rail{grid-column:auto;grid-template-columns:1fr 1fr 1fr}
  .prep-view.is-prep-rail-collapsed .prep-rail{display:none}
}
@media(max-width:860px){
  .tutor-sidebar-collapse{display:none}
  .tutor-body.is-sidebar-collapsed .tutor-shell{display:block}
  .tutor-body.is-sidebar-collapsed .tutor-sidebar{position:fixed;top:auto;bottom:0;width:100%;height:64px;padding:6px 10px calc(6px + env(safe-area-inset-bottom))}
  .tutor-body.is-sidebar-collapsed .tutor-nav{grid-template-columns:repeat(3,1fr)}
  .tutor-body.is-sidebar-collapsed .tutor-nav__item{min-height:48px;flex-direction:column;gap:2px;padding:4px}
  .tutor-body.is-sidebar-collapsed .tutor-nav__item span{display:inline}
  .prep-head{grid-template-columns:auto minmax(0,1fr) auto}
  .prep-head__tools{grid-column:2/-1;grid-row:2;justify-content:flex-start}
  .prep-head__status{grid-column:3;grid-row:1;text-align:right}
  .prep-intake,.tutor-body.is-sidebar-collapsed .prep-intake{left:12px;right:12px;top:calc(var(--tutor-top) + 10px);bottom:78px;width:auto;transform:translateY(calc(100% + 90px))}
  .tutor-body.is-prep-intake-open .prep-intake{transform:translateY(0)}
  .prep-rail{grid-template-columns:1fr}
}
@media(max-width:620px){
  .prep-head{gap:9px}.prep-head__status{display:none}.prep-head__tools{grid-column:1/-1}.tutor-tool-button{flex:1}
  .generation-trace__head{padding-left:16px;padding-right:14px}.generation-trace__body{padding-left:34px;padding-right:14px}.generation-live-draft__text{max-height:360px;font-size:12px;line-height:1.78}
}
@media(prefers-reduced-motion:reduce){.tutor-shell,.tutor-sidebar,.prep-intake,.generation-trace__pulse,.generation-live-draft,.generation-live-draft__text::after{transition:none!important;animation:none!important}}
