body:not(.is-drive){height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body:not(.is-drive) .shell{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:88px}
body:not(.is-drive) .tabs{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:min(700px,calc(100% - 16px));margin:0 auto calc(10px + env(safe-area-inset-bottom));flex:none}
.trial-note{margin:-12px 0 16px;color:var(--sub);font-size:13px;line-height:1.4}
.brand{display:flex;align-items:center;gap:8px}
.brand-mark{width:40px;height:40px;flex:none;display:block}
.brand .brand-name{display:block;font-size:18px;font-weight:800;color:var(--ink);line-height:1.15}
.brand .brand-name small{display:block;font-size:13px;color:var(--sub);font-weight:650}
.tabs{align-items:stretch;overflow:visible;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.tabs a{min-height:68px;height:auto;overflow:visible;line-height:1.15;padding:6px 2px 8px;font-size:12px}
.tabs a span{display:block;line-height:1.2;white-space:normal}
.tabs a.coach{margin:0;min-height:68px;border:0;box-shadow:none;background:transparent;color:var(--sub)}
.tabs a.coach.active{color:var(--blue)}
h1,h2,.notice,.card,.progress-list a{scroll-margin-bottom:188px}
.field-ico{display:inline-flex;width:22px;height:22px;vertical-align:-5px;margin-right:4px}
.field-ico svg{width:22px;height:22px;display:block}
.hpt-scene{display:block;min-height:0;padding:0;background:#e7eef8;color:var(--ink);font-weight:500}
.hpt-scene svg{display:block;width:100%;height:auto;border-radius:14px}
.hpt-cap{margin:0;padding:10px 12px 12px;color:var(--sub);font-size:15px;font-weight:650}
.steps{list-style:none}
.steps li{grid-template-columns:48px 1fr}
.num{width:44px;height:44px}
.num svg{width:28px;height:28px;display:block}
.progress-list a{display:flex;gap:10px;align-items:center}
.progress-list a svg{width:36px;height:36px;flex:none}
.exam-art svg{width:72px;height:72px;display:block;margin:0 0 8px}
.coach-art svg{width:min(100%,240px);height:auto;display:block;margin:0 0 8px}
.ask{font-weight:800;margin:0 0 8px}
.student-row{display:flex;gap:12px;align-items:flex-start}
.avatar{width:48px;height:48px;border-radius:50%;flex:none;display:block}
.empty-art svg{width:min(100%,200px);height:auto;display:block;margin:0 0 8px}
[hidden]{display:none!important}
.assist-btn{position:fixed;z-index:26;right:14px;bottom:var(--assist-bottom,calc(108px + env(safe-area-inset-bottom)));width:56px;height:56px;border-radius:50%;border:0;background:#155eef;color:#fff;font-weight:800;box-shadow:0 6px 16px #155eef55}
.assist-panel{position:fixed;z-index:26;right:14px;bottom:calc(var(--assist-bottom,calc(108px + env(safe-area-inset-bottom))) + 64px);width:min(380px,calc(100vw - 28px));max-height:calc(100vh - var(--assist-bottom,108px) - 88px);overflow:auto;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 10px 28px #14213d22}
.assist-panel h2{font-size:18px;margin:0}
.assist-panel .sub{margin:0 0 8px}
.assist-q{display:block;width:100%;text-align:left;margin:6px 0;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:8px 10px}
.assist-form{display:flex;gap:8px;margin:8px 0}
.assist-form input{flex:1;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px}
.assist-form button,.assist-close{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 12px}
.assist-a{margin-top:8px;padding:10px;border-radius:12px;background:var(--blue-soft)}
.assist-a a{display:block;margin-top:6px}
@media(min-width:720px){
  body:not(.is-drive) .shell{padding-bottom:28px}
  .tabs a{font-size:12px}
  :root{--assist-bottom:112px}
  #intake-card .filters{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
  #intake-card p:last-child{margin:8px 0 0}
  #app > p{margin-block:8px}
}
@media(min-width:1100px){
  .assist-btn{bottom:18px}
  .assist-panel{bottom:128px;width:min(280px,calc((100vw - 720px) / 2 - 16px));max-height:calc(100vh - 148px)}
}
body.is-drive .assist-btn{top:calc(166px + env(safe-area-inset-top));right:calc(108px + env(safe-area-inset-right));bottom:auto;left:auto}
body.is-drive .assist-panel{top:calc(214px + env(safe-area-inset-top));right:calc(78px + env(safe-area-inset-right));bottom:auto;left:auto;width:min(240px,calc(100vw - 180px));max-height:min(180px,calc(100vh - 540px))}
