.kanshan-hub{
  --hub-ink:var(--paper,#f0f0fa);--hub-soft:#aebac8;--hub-line:rgba(199,216,232,.18);--hub-accent:#b9dfeb;
  --kanshan-keyboard:0px;--kanshan-visible-height:100dvh;
  --hub-panel-right:calc(184px + env(safe-area-inset-right));--hub-panel-bottom:32px;--hub-panel-width:372px;
  position:fixed;inset:0;z-index:90;pointer-events:none;color:var(--hub-ink);font:inherit;
}
.kanshan-hub *{box-sizing:border-box}
.kanshan-hub [hidden]{display:none!important}
.kanshan-hub button,.kanshan-hub textarea,.kanshan-hub select{font-family:inherit}
.kanshan-hub button{cursor:pointer;touch-action:manipulation}
.kanshan-hub button:disabled{opacity:.45;cursor:default}
.kanshan-hub button:focus-visible,.kanshan-hub textarea:focus-visible,.kanshan-hub select:focus-visible{outline:2px solid var(--hub-accent);outline-offset:3px}
.kanshan-hub__dock{position:absolute;z-index:1;right:max(24px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));width:min(280px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}
.kanshan-hub__launcher{position:relative;display:block;width:160px;height:190px;padding:0;border:0;background:transparent;pointer-events:auto;isolation:isolate}
.kanshan-hub__launcher{margin-top:0}
.kanshan-hub__astronaut{display:block;width:100%;height:100%;object-fit:contain;transform:scaleX(-1);filter:drop-shadow(0 6px 18px rgba(120,192,233,.2));animation:kanshan-hub-float 10s ease-in-out infinite}
.kanshan-hub__launcher:hover .kanshan-hub__astronaut{filter:drop-shadow(0 8px 22px rgba(120,192,233,.35))}
.kanshan-hub__fallback{display:grid;place-items:center;width:76px;height:76px;margin:auto;border:1px solid var(--hub-line);border-radius:50%;background:#101a28;color:var(--hub-ink);font-size:18px}
.kanshan-hub__hint{max-width:220px;margin:0 2px 12px 0;font-size:12px;line-height:1.6;color:#d4dfeb;text-align:right;text-shadow:0 1px 10px #000;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.kanshan-hub__dock-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;width:100%;margin:0 0 18px;pointer-events:auto}
.kanshan-hub__dock-action{min-height:44px;padding:9px 15px;border:1px solid var(--hub-line);border-radius:20px;background:rgba(11,19,34,.88);box-shadow:0 4px 18px #0004;color:var(--hub-ink);font-size:11px;line-height:1.4;white-space:nowrap}
.kanshan-hub__dock-action:hover{border-color:rgba(190,225,244,.65);background:rgba(185,214,239,.1)}
.kanshan-hub[data-open=true] .kanshan-hub__dock-actions,.kanshan-hub[data-running=true] .kanshan-hub__dock-actions{display:none}
.kanshan-hub__runbar{display:flex;align-items:center;gap:4px;width:100%;padding:5px;border:1px solid var(--hub-line);border-radius:16px;background:rgba(7,14,25,.96);box-shadow:0 5px 28px #0006;pointer-events:auto}
.kanshan-hub__run-info{flex:1;min-width:0;text-align:left;background:none;border:0;padding:6px 8px;color:var(--hub-ink);min-height:44px}
.kanshan-hub__run-label,.kanshan-hub__run-progress{display:inline;white-space:nowrap;line-height:1.7}
.kanshan-hub__run-label{font-size:11px}.kanshan-hub__run-progress{font-size:10px;color:var(--hub-soft);font-variant-numeric:tabular-nums;margin-left:4px}
/* 领航期间这一条是唯一的播放控制，第二行给一句短讲解，不再展开大面板。 */
.kanshan-hub__run-narration{display:block;font-size:11px;color:var(--hub-soft);line-height:1.55;overflow:hidden;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.kanshan-hub__run-narration[hidden]{display:none}
.kanshan-hub__run-button{flex:none;min-height:44px;min-width:44px;padding:7px 8px;border:1px solid var(--hub-line);border-radius:10px;color:var(--hub-ink);background:rgba(212,228,246,.06);font-size:12px}
.kanshan-hub__run-stop{color:#eed9d3}
.kanshan-hub__panel{position:absolute;right:var(--hub-panel-right);bottom:calc(var(--hub-panel-bottom) + env(safe-area-inset-bottom) + var(--kanshan-keyboard));display:flex;flex-direction:column;width:min(var(--hub-panel-width),calc(100vw - var(--hub-panel-right) - 12px));max-height:min(620px,calc(var(--kanshan-visible-height) - var(--hub-panel-bottom) - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));min-height:0;overflow:hidden;border:1px solid rgba(152,198,255,.76);border-radius:28px;background:linear-gradient(145deg,rgba(24,34,57,.84),rgba(7,13,27,.87));box-shadow:0 18px 56px #0008,0 0 22px #589cfa26,inset 0 0 14px #85bbff26,inset 1px 1px 2px #d9edff66;backdrop-filter:blur(14px);pointer-events:auto;text-align:left}
.kanshan-hub__head{display:flex;align-items:center;gap:10px;flex:none;padding:12px 14px 10px 22px;border-bottom:1px solid var(--hub-line)}
.kanshan-hub__avatar{--avatar-size:36px;position:relative;display:block;flex:none;width:var(--avatar-size);height:var(--avatar-size);overflow:hidden;border:1px solid #d2e4fc70;border-radius:50%;background:radial-gradient(circle at 38% 28%,#60728a,#121e2f 72%);box-shadow:inset 0 0 6px #c4ddff26}
.kanshan-hub__avatar img{position:absolute;width:calc(var(--avatar-size) * 2);height:auto;max-width:none;left:calc(var(--avatar-size) * -.5);top:calc(var(--avatar-size) * -.21)}
.kanshan-hub__identity{flex:1;min-width:0}
.kanshan-hub__title{margin:0;font-family:inherit;font-size:16px;line-height:1.7;font-weight:500;letter-spacing:.03em}
/* 标题是 tabIndex=-1 的接焦点落点，面板打开时被程序聚焦。UA 默认 outline 会在
   「刘看山」外面画一个框，看起来像个输入框；键盘焦点提示保留给真正的 Tab 导航。 */
.kanshan-hub__title:focus{outline:none}
.kanshan-hub__title:focus-visible{outline:2px solid var(--hub-accent);outline-offset:4px}
.kanshan-hub__section-title:focus{outline:none}
.kanshan-hub__scene{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hub-soft);font-size:10px;line-height:1.6}
.kanshan-hub__text-button,.kanshan-hub__back{flex:none;min-height:44px;padding:6px 9px;border:0;background:transparent;color:var(--hub-soft);font-size:11px;line-height:1.6}
.kanshan-hub__text-button:hover,.kanshan-hub__back:hover{color:var(--hub-ink)}
.kanshan-hub__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#53616f transparent;padding:20px 22px;scroll-padding:20px}
.kanshan-hub__back{display:block;margin:-10px 0 4px -9px;text-align:left}
.kanshan-hub__section-title{margin:0 0 16px;font-size:19px;font-weight:500;line-height:1.65;letter-spacing:.015em;overflow-wrap:anywhere}
.kanshan-hub__greeting{display:flex;align-items:center;gap:12px;margin:6px 0 22px}
.kanshan-hub__greeting-bubble{position:relative;margin:0;padding:10px 14px;border:1px solid #b4c6e138;border-radius:18px 18px 18px 5px;background:linear-gradient(125deg,#283348b3,#1a2333cc);color:#e8edf7;font-size:14px;line-height:1.7;letter-spacing:.01em}
.kanshan-hub__greeting-bubble::before{content:'';position:absolute;left:-6px;bottom:3px;width:7px;height:9px;background:#283348;clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none}
.kanshan-hub__choices{display:flex;flex-direction:column;align-items:flex-end;gap:9px;padding:0 4px}
.kanshan-hub__choice{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;min-width:154px;max-width:calc(100% - 38px);text-align:left;padding:10px 17px 10px 19px;border:1px solid #8cabf5c9;border-radius:25px;background:linear-gradient(115deg,#273654d9,#233969d9);color:#f0f3ff;box-shadow:inset 0 1px 8px #89b1ff26,0 3px 14px #10245030;transition:background .18s,border-color .18s,box-shadow .18s}
.kanshan-hub__choice::after{content:'';flex:none;width:7px;height:7px;margin-right:2px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);pointer-events:none}
.kanshan-hub__choice-label{display:block;font-size:14px;font-weight:400;line-height:1.7;letter-spacing:.02em;overflow-wrap:anywhere}
.kanshan-hub__choice:hover{background:linear-gradient(115deg,#34466be6,#2c4a83e6);border-color:#c2d7ff;box-shadow:inset 0 1px 10px #9fc2ff33,0 0 16px #75a2fc20}
.kanshan-hub__button:hover,.kanshan-hub__run-button:hover{border-color:rgba(190,225,244,.65);background:rgba(185,214,239,.1)}
.kanshan-hub__button{min-height:44px;padding:9px 12px;border:1px solid var(--hub-line);border-radius:10px;background:rgba(201,221,241,.04);color:var(--hub-ink);font-size:12px;line-height:1.7;text-align:left;overflow-wrap:anywhere}
.kanshan-hub__note{margin:0 0 14px;font-size:12px;line-height:1.9;color:var(--hub-soft);white-space:pre-wrap;overflow-wrap:anywhere}
.kanshan-hub__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.kanshan-hub__menu{display:grid;gap:6px}.kanshan-hub__menu .kanshan-hub__button{border-color:transparent;background:transparent;border-bottom-color:var(--hub-line);border-radius:0;padding-left:0}
.kanshan-hub__next-title{margin:0 0 10px;font-size:15px;font-weight:500;line-height:1.75;overflow-wrap:anywhere}
.kanshan-hub__progress{margin:0;padding:0}.kanshan-hub__progress>div{padding:12px 0;border-bottom:1px solid var(--hub-line)}
.kanshan-hub__progress dt{font-size:11px;color:var(--hub-soft);line-height:1.7}.kanshan-hub__progress dd{margin:4px 0 0;font-size:13px;line-height:1.8;font-variant-numeric:tabular-nums}
.kanshan-hub__route-progress{font-size:12px;line-height:1.7;color:var(--hub-accent);font-variant-numeric:tabular-nums}
.kanshan-hub__speech{padding:13px 14px;margin:0 0 16px;background:rgba(167,207,232,.07);border-left:2px solid #afccdd;border-radius:2px 10px 10px 2px}
.kanshan-hub__speech-title{margin:0 0 6px;color:var(--hub-soft);font-size:10px;line-height:1.7}
.kanshan-hub__speech-text{margin:0;color:#e1e8f1;font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.kanshan-hub__composer{flex:none;padding:4px 16px 16px;background:transparent;border-top:0}
.kanshan-hub__input-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.kanshan-hub__input-row{display:flex;align-items:center;gap:5px;padding:3px 4px 3px 17px;border:1px solid #aabedba1;border-radius:28px;background:linear-gradient(120deg,#121b2dc9,#172136a6);box-shadow:inset 0 1px 6px #ffffff05;transition:border-color .18s,box-shadow .18s}
.kanshan-hub__input-row:focus-within{border-color:#c0ddff;box-shadow:0 0 0 3px #83b1ff19}
.kanshan-hub__input{display:block;flex:1;min-width:0;width:100%;height:44px;min-height:44px;max-height:96px;resize:none;border:0;border-radius:12px;padding:11px 0;outline:none;background:transparent;color:var(--hub-ink);font-size:13px;line-height:22px;scroll-margin:10px}
.kanshan-hub__input:focus-visible{outline:none}
.kanshan-hub__input::placeholder{color:#7f90a3}
.kanshan-hub__disclosure{margin:6px 7px 0;color:#8e9dae;font-size:10px;line-height:1.6}
.kanshan-hub__disclosure-summary{cursor:pointer;color:#a3b1c2;list-style:none}
.kanshan-hub__disclosure-summary::-webkit-details-marker{display:none}
.kanshan-hub__disclosure-summary::before{content:'▸ ';color:#7f90a3}
.kanshan-hub__disclosure[open] .kanshan-hub__disclosure-summary::before{content:'▾ '}
.kanshan-hub__disclosure-summary:focus-visible{outline:2px solid var(--hub-accent);outline-offset:2px}
.kanshan-hub__disclosure-body{margin:5px 0 0}
.kanshan-hub__send-row{display:flex;align-items:center;gap:6px;margin-top:5px}
.kanshan-hub__input-hint{flex:1;margin:0;padding:0 7px;color:#a3b1c2;font-size:10px;line-height:1.6}
.kanshan-hub__send{flex:none;display:grid;place-items:center;height:44px;min-height:44px;width:44px;min-width:44px;padding:0;border:1px solid #91b6ff91;border-radius:50%;background:radial-gradient(circle at 35% 28%,#537ed0,#2a4d8b);color:#fff;box-shadow:inset 0 1px 7px #b6d6ff30,0 0 12px #547fff26}
.kanshan-hub__send::before{content:'';width:20px;height:20px;background:currentColor;clip-path:polygon(12% 10%,94% 48%,12% 90%,28% 50%);transform:rotate(-12deg)}
.kanshan-hub__send:not(:disabled):hover{border-color:#d0e1ff;background:radial-gradient(circle at 35% 28%,#668ee0,#315b9f)}
.kanshan-hub__status{margin:4px 0 0;color:var(--hub-soft);font-size:11px;line-height:1.8;overflow-wrap:anywhere}.kanshan-hub__status[data-error=true]{color:#edc8b9}
.kanshan-hub__transcript{display:grid;gap:17px}
.kanshan-hub__message{min-width:0;max-width:96%;padding:12px 14px;border:1px solid #c3d7e513;border-radius:5px 18px 18px 18px;background:rgba(174,203,223,.045)}.kanshan-hub__message-who{margin:0 0 5px;color:var(--hub-soft);font-size:10px;line-height:1.7}
.kanshan-hub__message-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9}
.kanshan-hub__message[data-role=user]{justify-self:end;max-width:88%;border-radius:18px 5px 18px 18px;background:rgba(174,203,223,.12)}
.kanshan-hub__source,.kanshan-hub__destination{padding:13px 0;margin-top:12px;border-top:1px solid var(--hub-line);min-width:0;overflow-wrap:anywhere}
.kanshan-hub__destination h4{margin:0 0 6px;font-size:14px;line-height:1.7;font-weight:500}
.kanshan-hub__source-path{margin:0 0 7px;font-size:10px;line-height:1.8;color:#98b4ca;overflow-wrap:anywhere}
.kanshan-hub__source-title{margin:0 0 8px;font-size:13px;line-height:1.8}.kanshan-hub__source .kanshan-hub__note{margin-bottom:6px}
.kanshan-hub__followups{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px}
.kanshan-hub__head-action{width:36px;min-width:36px;padding:0;border-radius:12px;font-size:21px;line-height:1}
.kanshan-hub__head-action:hover{background:#b6cdff0d}
.kanshan-hub[data-open=true] .kanshan-hub__hint{display:none}
/* Proposal 03: one pocket chat window, a greeting and three right-aligned replies. */
.kanshan-hub__panel[data-section=home] .kanshan-hub__scene,.kanshan-hub__panel[data-section=home] .kanshan-hub__speech{display:none}
.kanshan-hub__panel[data-section=home] .kanshan-hub__scroll{flex:0 1 auto;padding:18px 22px 20px}
.kanshan-hub__panel[data-section=home] .kanshan-hub__send-row{display:none}
.kanshan-hub[data-open=true] .kanshan-hub__launcher{width:176px;height:230px}
.kanshan-hub[data-reading=true] .kanshan-hub__launcher,.kanshan-hub[data-running=true] .kanshan-hub__launcher{width:96px;height:112px}
.kanshan-hub[data-reading=true]{--hub-panel-right:calc(120px + env(safe-area-inset-right))}
.kanshan-hub[data-running=true]{--hub-panel-right:calc(120px + env(safe-area-inset-right));--hub-panel-bottom:96px}
@keyframes kanshan-hub-float{0%,100%{transform:translateY(0) rotate(-.5deg) scaleX(-1)}50%{transform:translateY(-3px) rotate(.5deg) scaleX(-1)}}
@media(max-width:820px){
  .kanshan-hub,.kanshan-hub[data-reading=true],.kanshan-hub[data-running=true]{--hub-panel-right:max(12px,env(safe-area-inset-right));--hub-panel-bottom:112px}
  .kanshan-hub[data-running=true]{--hub-panel-bottom:172px}
  .kanshan-hub__dock{right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));width:min(276px,calc(100vw - 24px))}
  .kanshan-hub__launcher,.kanshan-hub[data-open=true] .kanshan-hub__launcher,.kanshan-hub[data-reading=true] .kanshan-hub__launcher,.kanshan-hub[data-running=true] .kanshan-hub__launcher{width:76px;height:88px}
  .kanshan-hub__hint{font-size:12px;max-width:210px;margin:0 2px 10px}
  .kanshan-hub__dock-actions{gap:10px;margin-bottom:14px}
  .kanshan-hub__dock-action{min-height:44px;padding:8px 12px;font-size:11px}
  .kanshan-hub__panel{border-radius:24px}
  .kanshan-hub__head{padding:9px 12px 8px 18px;gap:7px}.kanshan-hub__head-action{width:44px;min-width:44px}
  .kanshan-hub__scroll{padding:16px 18px;scroll-padding:16px}.kanshan-hub__panel[data-section=home] .kanshan-hub__scroll{padding:14px 18px 18px}
  .kanshan-hub__section-title{font-size:17px;margin-bottom:12px}
  .kanshan-hub__greeting{gap:10px;margin:4px 0 18px}
  .kanshan-hub__composer{padding:4px 12px 12px}.kanshan-hub__input{font-size:16px}
  .kanshan-hub__speech-text,.kanshan-hub__message-text{font-size:14px}
}
@media(max-height:640px) and (orientation:landscape){
  .kanshan-hub,.kanshan-hub[data-reading=true],.kanshan-hub[data-running=true]{--hub-panel-right:max(12px,env(safe-area-inset-right));--hub-panel-bottom:12px}
  .kanshan-hub[data-running=true]{--hub-panel-bottom:76px}
  .kanshan-hub__dock{bottom:calc(12px + env(safe-area-inset-bottom))}
  .kanshan-hub[data-open=true] .kanshan-hub__launcher,.kanshan-hub[data-open=true] .kanshan-hub__hint{display:none}
  .kanshan-hub__head{padding:4px 12px}.kanshan-hub__composer{padding:4px 12px 8px}
}
.kanshan-hub[data-keyboard=true],.kanshan-hub[data-keyboard=true][data-reading=true]{--hub-panel-right:max(12px,env(safe-area-inset-right));--hub-panel-bottom:12px}
.kanshan-hub[data-keyboard=true][data-running=true]{--hub-panel-bottom:76px}
.kanshan-hub[data-keyboard=true] .kanshan-hub__dock{bottom:calc(12px + env(safe-area-inset-bottom) + var(--kanshan-keyboard))}
.kanshan-hub[data-keyboard=true][data-open=true] .kanshan-hub__launcher,.kanshan-hub[data-keyboard=true][data-open=true] .kanshan-hub__hint{display:none}
.kanshan-hub[data-keyboard=true] .kanshan-hub__head{padding:4px 12px}
.kanshan-hub[data-keyboard=true] .kanshan-hub__composer{padding:4px 12px 8px}
@media(prefers-reduced-motion:reduce){.kanshan-hub__astronaut,.kanshan-hub__choice{animation:none;transition:none}}
.kanshan-hub[data-motion=false] .kanshan-hub__astronaut,.kanshan-hub[data-motion=false] .kanshan-hub__choice{animation:none;transition:none}

/* Keep the sky primary. Expanded details are optional, never a second player. */
.kanshan-hub{--hub-panel-width:320px;--hub-panel-right:calc(118px + env(safe-area-inset-right))}
.kanshan-hub__panel{max-height:min(440px,55dvh,calc(var(--kanshan-visible-height) - var(--hub-panel-bottom) - 72px));border:1px solid #bdd8ef33;border-radius:18px;background:rgba(9,18,31,.94);box-shadow:0 12px 32px #0005}
.kanshan-hub__head{padding:6px 10px 6px 14px;gap:8px}
.kanshan-hub__scroll,.kanshan-hub__panel[data-section=home] .kanshan-hub__scroll{padding:10px 14px;scroll-padding:10px}
.kanshan-hub__section-title{font-size:16px;margin-bottom:10px}
.kanshan-hub__greeting{margin:0 0 10px}.kanshan-hub__greeting .kanshan-hub__avatar{display:none}
.kanshan-hub__greeting-bubble{padding:0;background:none;border:0;font-size:13px}.kanshan-hub__greeting-bubble::before{display:none}
.kanshan-hub__choices{flex-direction:row;gap:6px;padding:0;align-items:stretch}
.kanshan-hub__choice{flex:1;min-width:0;max-width:none;gap:8px;padding:8px 10px;border-radius:12px}
.kanshan-hub__choice-label{font-size:12px;line-height:1.5}
.kanshan-hub__composer{padding:4px 12px 10px}
.kanshan-hub__panel[data-section=guide]{max-height:min(280px,42dvh)}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__composer,
.kanshan-hub__panel[data-section=guide] .kanshan-hub__back,
.kanshan-hub__panel[data-section=guide] .kanshan-hub__section-title,
.kanshan-hub__panel[data-section=guide] .kanshan-hub__speech-title{display:none}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__speech{padding:0;margin:0 0 8px;border:0;background:none}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__speech-text{font-size:13px;line-height:1.65}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__next-title{font-size:13px;margin:0}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__route-progress{margin:4px 0}
.kanshan-hub__panel[data-section=guide] .kanshan-hub__actions{margin-top:8px;gap:6px}
.kanshan-hub[data-open=true] .kanshan-hub__launcher{width:88px;height:104px}
.kanshan-hub[data-running=true] .kanshan-hub__launcher{width:64px;height:76px}
.kanshan-hub[data-running=true] .kanshan-hub__dock{width:min(350px,calc(100vw - 24px))}
.kanshan-hub__runbar{gap:3px;border-radius:12px}
.kanshan-hub__run-label{font-size:12px}.kanshan-hub__run-narration{font-size:12px}
.kanshan-hub__run-label{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
@media(max-width:820px){
 .kanshan-hub,.kanshan-hub[data-reading=true],.kanshan-hub[data-running=true]{--hub-panel-right:12px;--hub-panel-bottom:90px}
 .kanshan-hub[data-running=true]{--hub-panel-bottom:110px}
 .kanshan-hub__panel{width:min(320px,calc(100vw - 24px));max-height:min(380px,48dvh,calc(var(--kanshan-visible-height) - var(--hub-panel-bottom) - 64px))}
 .kanshan-hub[data-open=true] .kanshan-hub__launcher{width:60px;height:72px}
 .kanshan-hub[data-running=true][data-open=true] .kanshan-hub__launcher{visibility:hidden}
 .kanshan-hub__panel[data-section=guide]{max-height:min(250px,38dvh)}
}
@media(max-height:640px) and (orientation:landscape){
 .kanshan-hub,.kanshan-hub[data-reading=true],.kanshan-hub[data-running=true]{--hub-panel-right:12px;--hub-panel-bottom:12px}
 .kanshan-hub__panel{width:min(300px,calc(100vw - 24px));max-height:calc(var(--kanshan-visible-height) - 80px)}
 .kanshan-hub[data-running=true] .kanshan-hub__panel{right:min(374px,46vw);max-height:min(260px,calc(100dvh - 100px))}
 .kanshan-hub__panel[data-section=guide]{max-height:min(240px,calc(100dvh - 100px))}
 .kanshan-hub[data-running=true] .kanshan-hub__launcher{width:48px;height:56px}
}
.kanshan-hub[data-keyboard=true] .kanshan-hub__panel{bottom:calc(12px + env(safe-area-inset-bottom) + var(--kanshan-keyboard));max-height:calc(var(--kanshan-visible-height) - 72px)}

/* Details already show progress; the separate runbar remains the only control surface. */
.kanshan-hub[data-running=true] .kanshan-hub__panel[data-section=guide] .kanshan-hub__route-progress{display:none}
@media(max-width:820px) and (orientation:portrait){.kanshan-hub__panel:not([data-section=guide]){max-height:min(360px,46dvh)}}
@media(max-height:640px) and (orientation:landscape){.kanshan-hub__panel:not([data-section=guide]){max-height:min(246px,calc(var(--kanshan-visible-height) - 80px))}.kanshan-hub__input-hint{display:none}}
