.persona-app{--p-bg:#121b27;--p-panel:#1c2735;--p-soft:#263342;--p-border:#344251;--p-text:#edf2f4;--p-muted:#a9b8c5;--p-accent:#8ecfc7;--p-user:#305057;--office-brightness:.68;color:var(--p-text);background:var(--p-bg);max-width:1512px;margin:12px auto 10px;padding:16px 24px 12px;border-radius:20px;font-family:system-ui,-apple-system,'Microsoft JhengHei',sans-serif;box-shadow:0 16px 50px #06101a20;line-height:1.6}
.persona-app[data-theme=light]{--p-bg:#edf0ed;--p-panel:#fff;--p-soft:#f0f4f2;--p-border:#d8e0db;--p-text:#283932;--p-muted:#64766d;--p-accent:#347c6f;--p-user:#e1efea}
.persona-app *{box-sizing:border-box}.persona-app button,.persona-app textarea,.persona-app input{font:inherit}.persona-app button{cursor:pointer}.persona-app button:disabled{cursor:not-allowed;opacity:.46}.persona-app button:focus-visible,.persona-app a:focus-visible,.persona-app textarea:focus-visible{outline:3px solid var(--p-accent);outline-offset:3px}.persona-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.persona-eyebrow{font-size:10px;letter-spacing:2px;color:var(--p-muted);font-weight:650}.persona-header h1{font-size:24px;letter-spacing:1.5px;margin:2px 0 0;font-weight:650}.persona-header h1 span{display:inline-block;margin-left:12px;color:var(--p-muted);font-size:13px;letter-spacing:.5px;font-weight:400}.persona-header-actions{display:flex;align-items:center;gap:16px}.persona-connection{font-size:12px;color:var(--p-muted)}.persona-connection::before{content:'';display:inline-block;width:6px;height:6px;background:var(--p-accent);border-radius:100%;margin-right:7px}.persona-icon-button{display:flex;align-items:center;gap:7px;background:var(--p-soft);border:1px solid var(--p-border);color:var(--p-text);border-radius:9px;padding:6px 11px;font-size:12px}.persona-workspace{display:grid;grid-template-columns:58fr 42fr;min-height:500px;border:1px solid var(--p-border);border-radius:16px;overflow:hidden}.persona-stage{position:relative;min-width:0;isolation:isolate;background:#a9b6b1;overflow:hidden;min-height:500px}.persona-office,.persona-stage-shade{position:absolute;inset:0;z-index:-2}.persona-office{background:linear-gradient(140deg,#c6c6b7,#647e78),url('office-bg.png') 58% center/cover;filter:brightness(var(--office-brightness))}.persona-office{background-image:url('office-bg.png');background-position:58% center;background-size:cover;background-color:#7c8e89}.persona-stage-shade{z-index:-1;background:linear-gradient(180deg,#12272a28 0%,transparent 30%,#0a192722 65%,#0c1a29c9 100%)}.persona-stage-top{position:absolute;left:23px;right:23px;top:20px;display:flex;justify-content:space-between;align-items:center;z-index:2;color:#f4f7f3;font-size:10px;letter-spacing:1.3px}.persona-live{background:#14312c73;border:1px solid #ffffff2c;border-radius:20px;padding:7px 10px;backdrop-filter:blur(6px)}.persona-live i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b7eee0;margin-right:7px}.persona-motion{display:flex;align-items:center;gap:7px;letter-spacing:.5px;white-space:nowrap}.persona-motion select{font:inherit;font-size:11px;color:#f4f7f3;background:#14312cbb;border:1px solid #ffffff4c;border-radius:8px;padding:5px 7px;cursor:pointer}.persona-motion select:focus-visible{outline:3px solid #b0e4d2;outline-offset:3px}.persona-motion option{background:#18332e;color:#f4f7f3}#mio-canvas{width:100%;height:100%;position:absolute;inset:0;display:block}.persona-avatar-loading{position:absolute;top:42%;left:0;right:0;text-align:center;color:#f1f5f0;text-shadow:0 2px 8px #24332f}.persona-caption{position:absolute;bottom:69px;left:25px;right:25px;text-align:center;pointer-events:none}.persona-state{font-size:11px;letter-spacing:1px;color:#d2ede2;background:#18332e85;border:1px solid #c5eed92a;border-radius:20px;padding:5px 12px}.persona-caption p{font-size:18px;color:#fff;text-shadow:0 2px 8px #132325;margin:13px auto 0;max-width:540px;line-height:1.65}.persona-stage-controls{position:absolute;left:20px;right:20px;bottom:17px;display:flex;gap:16px;align-items:center;justify-content:center;padding:10px 13px;background:#0f203176;border:1px solid #ffffff25;border-radius:11px;color:#e0e9e9;backdrop-filter:blur(12px)}.persona-stage-controls label{font-size:10px;display:flex;gap:7px;align-items:center;white-space:nowrap}.persona-stage-controls input{width:76px;accent-color:#b0e4d2;height:12px}.persona-stop{border:0;background:transparent;color:#e2ecec;font-size:11px;white-space:nowrap;padding:0}.persona-conversation{min-width:0;background:var(--p-panel);display:flex;flex-direction:column;padding:22px 22px 16px}.persona-chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.persona-chat-header h2{font-size:21px;line-height:1.5;letter-spacing:.4px;margin:4px 0 0;font-weight:600}.persona-session{font-size:10px;padding:4px 8px;background:var(--p-soft);border:1px solid var(--p-border);border-radius:7px;white-space:nowrap;color:var(--p-muted);max-width:100px;overflow:hidden;text-overflow:ellipsis}.persona-modes{display:flex;gap:7px;margin-top:16px;flex-wrap:wrap}.persona-modes button{background:transparent;border:1px solid var(--p-border);color:var(--p-muted);font-size:12px;border-radius:8px;padding:7px 11px}.persona-modes button.is-selected{border-color:var(--p-accent);background:var(--p-soft);color:var(--p-accent)}.persona-modes small{display:block;font-size:9px;line-height:1.2;letter-spacing:.4px}.persona-mode-hint{font-size:11px;color:var(--p-muted);margin:10px 0 14px;line-height:1.6}.persona-messages{flex:1;min-height:165px;max-height:295px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--p-border) transparent;padding:4px 2px 12px}.persona-empty{display:flex;min-height:155px;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--p-muted)}.persona-empty>span{font-size:26px;color:var(--p-accent);margin-bottom:12px}.persona-empty p{font-size:15px;margin:0 0 5px}.persona-empty small{font-size:11px}.persona-message{margin:0 0 16px;display:flex;flex-direction:column;align-items:flex-start}.persona-message-label{font-size:10px;letter-spacing:.4px;color:var(--p-muted);margin-bottom:5px}.persona-message-text{font-size:13px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;padding:11px 14px;border-radius:0 12px 12px 12px;max-width:94%;background:var(--p-soft)}.persona-message[data-role=user]{align-items:flex-end}.persona-message[data-role=user] .persona-message-text{background:var(--p-user);border-radius:12px 0 12px 12px}.persona-message[data-kind=idle_nudge] .persona-message-label::after{content:' · 輕輕提醒';color:var(--p-accent)}.persona-notice{background:var(--p-soft);border:1px solid var(--p-border);padding:9px 11px;font-size:11px;border-radius:8px;color:var(--p-muted);margin-bottom:10px}.persona-start-panel{margin:4px 0 13px;text-align:center}.persona-start-panel button{width:100%;padding:11px;background:var(--p-accent);border:0;border-radius:10px;color:var(--p-bg);font-weight:650;font-size:14px}.persona-start-panel button span{font-weight:400;font-size:10px;margin-left:10px}.persona-start-panel small{font-size:10px;color:var(--p-muted);display:block;margin-top:7px}.persona-composer{margin-top:auto;border:1px solid var(--p-border);border-radius:12px;padding:10px;background:var(--p-bg)}.persona-composer textarea{display:block;resize:vertical;min-height:50px;max-height:160px;width:100%;border:0;border-radius:5px;background:transparent;outline:none;color:var(--p-text);font-size:12px;line-height:1.75;padding:0 2px 6px}.persona-composer textarea::placeholder{color:var(--p-muted);opacity:.75}.persona-input-actions{display:flex;align-items:center;gap:8px}.persona-hold{background:var(--p-soft);color:var(--p-accent);border:1px solid var(--p-border);border-radius:7px;padding:8px 10px;font-size:11px;touch-action:none;user-select:none;-webkit-user-select:none;white-space:nowrap}.persona-hold.is-recording{background:#a64b58;color:white;border-color:#c86474;box-shadow:0 0 0 3px #c8647422}.persona-record-hint{font-size:9px;color:var(--p-muted);flex:1;line-height:1.5}.persona-send{margin-left:auto;background:var(--p-accent);border:0;color:var(--p-bg);border-radius:7px;padding:8px 12px;white-space:nowrap;font-size:11px;font-weight:650}.persona-chat-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;color:var(--p-muted);margin-top:10px;flex-wrap:wrap}.persona-chat-footer label{white-space:nowrap;display:flex;gap:5px;align-items:center}.persona-chat-footer input{accent-color:var(--p-accent)}.persona-bottom-note{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--p-muted);font-size:10px}.persona-bottom-note a{color:var(--p-muted);text-decoration:none;margin-left:auto}
@media(min-width:1500px){.persona-app{margin-top:14px}}
@media(max-width:1000px){.persona-app{margin:22px 14px;padding:21px 18px}.persona-conversation{padding:22px 18px 17px}.persona-workspace{grid-template-columns:54fr 46fr}.persona-stage-controls{gap:9px;left:12px;right:12px}.persona-stage-controls input{width:55px}.persona-voice{display:none}.persona-header h1 span{font-size:11px;margin-left:10px}}
@media(max-width:760px){.persona-app{margin:15px 8px;padding:16px 12px;border-radius:15px}.persona-header{margin-bottom:15px}.persona-header h1{font-size:22px}.persona-header h1 span{display:block;margin:2px 0 0;font-size:10px}.persona-eyebrow{font-size:8px;letter-spacing:1.2px}.persona-header-actions{gap:8px}.persona-connection{font-size:10px}.persona-icon-button{padding:6px 8px;font-size:10px}.persona-workspace{display:flex;flex-direction:column}.persona-stage{height:480px;min-height:0;flex:none}.persona-stage-top{left:16px;right:16px;top:15px}.persona-caption{bottom:70px;left:20px;right:20px}.persona-caption p{font-size:16px}.persona-conversation{padding:22px 17px 17px}.persona-chat-header h2{font-size:20px}.persona-messages{min-height:180px;max-height:320px}.persona-modes{margin-top:15px}.persona-mode-hint{margin-bottom:10px}.persona-chat-footer{font-size:9px}.persona-record-hint{font-size:9px}.persona-bottom-note{font-size:9px;gap:6px}.persona-bottom-note span{width:100%}}
@media(max-width:380px){.persona-stage{height:420px}.persona-stage-controls{gap:8px;padding:9px}.persona-stage-controls label{font-size:9px}.persona-stage-controls input{width:45px}.persona-record-hint{display:none}}
@media(max-width:760px){.persona-header-actions{flex:none}.persona-connection{display:none}.persona-icon-button{white-space:nowrap;min-width:58px}}
.persona-quiz{background:var(--p-bg);border:1px solid var(--p-border);border-radius:12px;padding:14px;margin-bottom:10px;max-height:380px;overflow:auto}.persona-quiz[hidden]{display:none}.persona-quiz h3{font-size:18px;color:var(--p-accent);margin:0 0 4px}.persona-quiz p{margin:5px 0;white-space:pre-wrap;overflow-wrap:anywhere}.persona-quiz-help{font-size:11px;color:var(--p-muted)}.persona-quiz-question{font-size:13px;line-height:1.7}.persona-quiz-options{display:grid;gap:6px;margin:10px 0}.persona-quiz button{border:1px solid var(--p-border);border-radius:8px;background:var(--p-soft);color:var(--p-text);padding:8px 11px;font-size:12px;text-align:left;line-height:1.5}.persona-quiz-options button:hover{border-color:var(--p-accent);background:var(--p-user)}.persona-quiz-source{color:var(--p-muted);font-size:10px}.persona-quiz-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.persona-quiz-actions button:last-child{background:var(--p-accent);color:var(--p-bg)}.persona-quiz-review{border-top:1px solid var(--p-border);padding-top:10px;margin-top:10px;font-size:11px}.persona-quiz-review h4{font-size:12px;margin:0 0 5px}.persona-quiz-correct{color:var(--p-accent)}.persona-quiz-explain{display:block;margin-top:6px}.is-quiz .persona-messages{min-height:80px;max-height:145px;flex:0 1 145px}.is-quiz .persona-quiz{flex:0 1 auto}
.persona-quiz-category{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--p-muted);margin-bottom:8px}.persona-quiz-category[hidden]{display:none}.persona-quiz-category select{background:var(--p-bg);color:var(--p-text);border:1px solid var(--p-border);border-radius:8px;padding:5px 10px;font:inherit}
/* 題目、對話及輸入區配合單屏高度滾動 */
.is-quiz .persona-conversation{min-height:0}.is-quiz .persona-quiz{min-height:0}.is-quiz .persona-messages{flex-shrink:1}@media(max-width:760px){.is-quiz .persona-workspace{min-height:0}.is-quiz .persona-quiz{max-height:360px}.is-quiz .persona-messages{min-height:200px;max-height:300px;flex:0 0 240px}}
/* 桌面優先保留閱讀與作答空間，手機沿用上下排列。 */
@media(min-width:761px){
  main.persona-app:not(.persona-admin){max-width:1560px;padding:14px 22px 10px;margin:10px auto 8px;font-size:15px}
  main.persona-app:not(.persona-admin) .persona-header{margin-bottom:10px}
  main.persona-app:not(.persona-admin) .persona-workspace{grid-template-columns:38fr 62fr;height:calc(100vh - 210px);min-height:480px;max-height:720px;overflow:hidden}
  main.persona-app:not(.persona-admin) .persona-stage{height:100%;min-height:0}
  main.persona-app:not(.persona-admin) .persona-conversation{padding:18px 20px 12px;height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}
  main.persona-app:not(.persona-admin) .persona-chat-header h2{font-size:21px}
  main.persona-app:not(.persona-admin) .persona-session{font-size:12px;max-width:130px}
  main.persona-app:not(.persona-admin) .persona-eyebrow{font-size:11px}
  main.persona-app:not(.persona-admin) .persona-connection,
  main.persona-app:not(.persona-admin) .persona-icon-button{font-size:12px}
  main.persona-app:not(.persona-admin) .persona-modes{margin-top:12px}
  main.persona-app:not(.persona-admin) .persona-modes button{font-size:13px;padding:7px 12px}
  main.persona-app:not(.persona-admin) .persona-modes small{font-size:10px}
  main.persona-app:not(.persona-admin) .persona-mode-hint{font-size:11px;margin:8px 0 10px}
  main.persona-app:not(.persona-admin) .persona-notice,
  main.persona-app:not(.persona-admin) .persona-empty small,
  main.persona-app:not(.persona-admin) .persona-start-panel small,
  main.persona-app:not(.persona-admin) .persona-start-panel button span,
  main.persona-app:not(.persona-admin) .persona-quiz-help,
  main.persona-app:not(.persona-admin) .persona-quiz-source,
  main.persona-app:not(.persona-admin) .persona-record-hint,
  main.persona-app:not(.persona-admin) .persona-chat-footer,
  main.persona-app:not(.persona-admin) .persona-bottom-note{font-size:12px}
  main.persona-app:not(.persona-admin) .persona-message-label{font-size:11px}
  main.persona-app:not(.persona-admin) .persona-message-text{font-size:14px;line-height:1.7}
  main.persona-app:not(.persona-admin) .persona-empty p{font-size:15px}
  main.persona-app:not(.persona-admin) .persona-messages{flex:1;min-height:0;max-height:none;overflow-y:auto;padding:4px 2px 8px}
  main.persona-app:not(.persona-admin) .persona-composer{flex-shrink:0;margin-top:auto;padding:8px 10px}
  main.persona-app:not(.persona-admin) .persona-composer textarea{min-height:46px;max-height:75px;font-size:13px}
  main.persona-app:not(.persona-admin) .persona-hold,
  main.persona-app:not(.persona-admin) .persona-send{font-size:13px;padding:7px 11px}
  main.persona-app:not(.persona-admin) .persona-chat-footer{flex-shrink:0;margin-top:8px}
  main.persona-app:not(.persona-admin) .persona-bottom-note{margin-top:8px}
  main.persona-app:not(.persona-admin) .persona-stage-controls{flex-wrap:wrap;padding:7px 12px;gap:12px}
  main.persona-app:not(.persona-admin) .persona-stage-controls label,
  main.persona-app:not(.persona-admin) .persona-stop{font-size:11px}
  main.persona-app:not(.persona-admin) .persona-stage-controls input{width:60px}
  main.persona-app:not(.persona-admin) .persona-caption p{font-size:16px}
}
@media(min-width:860px){
  /* 作題時：Mio 縮小成左側約 26% 伴讀，題目與選項置中，對話紀錄置右 */
  main.persona-app:not(.persona-admin).is-quiz .persona-workspace{grid-template-columns:26fr 74fr}
  main.persona-app:not(.persona-admin).is-quiz .persona-stage-controls{gap:8px;padding:6px 10px;left:10px;right:10px}
  main.persona-app:not(.persona-admin).is-quiz .persona-stage-controls input{width:45px}
  main.persona-app:not(.persona-admin).is-quiz .persona-stage-controls label{font-size:9px}
  main.persona-app:not(.persona-admin).is-quiz .persona-conversation{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto auto 1fr auto;column-gap:16px;row-gap:6px;padding:14px 18px 10px}
  main.persona-app:not(.persona-admin).is-quiz .persona-chat-header{grid-column:1 / -1}
  main.persona-app:not(.persona-admin).is-quiz .persona-modes{grid-column:1 / -1;margin-top:4px}
  main.persona-app:not(.persona-admin).is-quiz .persona-mode-hint{display:none}
  main.persona-app:not(.persona-admin).is-quiz .persona-quiz-category{grid-column:1;grid-row:3;margin-bottom:4px;font-size:12px}
  main.persona-app:not(.persona-admin).is-quiz .persona-quiz{grid-column:1;grid-row:4;height:100%;min-height:0;max-height:none;overflow-y:auto;margin-bottom:0;padding:12px 14px}
  main.persona-app:not(.persona-admin).is-quiz .persona-quiz h3{font-size:17px}
  main.persona-app:not(.persona-admin).is-quiz .persona-quiz-question{font-size:14px;line-height:1.6}
  main.persona-app:not(.persona-admin).is-quiz .persona-quiz-options button{font-size:13px;padding:8px 11px}
  main.persona-app:not(.persona-admin).is-quiz .persona-messages{grid-column:2;grid-row:3 / span 2;height:100%;min-height:0;max-height:none;overflow-y:auto;padding-bottom:6px}
  main.persona-app:not(.persona-admin).is-quiz .persona-notice,
  main.persona-app:not(.persona-admin).is-quiz .persona-start-panel{grid-column:2}
  main.persona-app:not(.persona-admin).is-quiz .persona-composer{grid-column:2;grid-row:5;margin-top:auto}
  main.persona-app:not(.persona-admin).is-quiz .persona-chat-footer{grid-column:1 / -1;grid-row:6;margin-top:6px}
}
@media(min-width:761px) and (max-width:1000px){
  main.persona-app:not(.persona-admin){padding:12px 16px 10px}
  main.persona-app:not(.persona-admin):not(.is-quiz) .persona-workspace{grid-template-columns:42fr 58fr}
  main.persona-app:not(.persona-admin) .persona-stage-top{left:14px;right:14px;gap:8px;flex-wrap:wrap}
  main.persona-app:not(.persona-admin) .persona-caption{bottom:80px}
}
/* 固定留出氣泡區，換字幕時不讓角色縮放或遮到臉。 */
main.persona-app:not(.persona-admin) .persona-stage{--mio-bubble-top:62px;--mio-avatar-top:196px}
.persona-avatar-viewport{position:absolute;inset:var(--mio-avatar-top) 0 0}
main.persona-app:not(.persona-admin) .persona-caption{top:var(--mio-bubble-top);bottom:auto;left:16px;right:16px;z-index:3;max-width:540px;margin:0 auto;padding:10px 15px 12px;display:flex;flex-direction:column;gap:4px;text-align:left;color:#293b35;background:#fffdf5;border:2px solid #39564b;border-radius:25px 29px 24px 30px;box-shadow:0 4px 0 #18332e26,0 10px 24px #0c192b2b}
main.persona-app:not(.persona-admin) .persona-caption::after{content:'';position:absolute;left:calc(50% - 10px);bottom:-11px;width:19px;height:19px;background:#fffdf5;border-right:2px solid #39564b;border-bottom:2px solid #39564b;transform:rotate(45deg);border-radius:0 0 4px 0}
main.persona-app:not(.persona-admin) .persona-caption .persona-state{align-self:flex-start;padding:2px 8px;font-size:10px;line-height:1.4;letter-spacing:.5px;color:#466658;background:#e8f0e8;border:1px solid #c8d9cb;border-radius:12px}
main.persona-app:not(.persona-admin) .persona-caption p{margin:0;max-width:none;max-height:4.5em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:16px;line-height:1.5;font-weight:500;color:#293b35;text-shadow:none;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:760px){
  main.persona-app:not(.persona-admin) .persona-stage{--mio-bubble-top:60px;--mio-avatar-top:180px}
  main.persona-app:not(.persona-admin) .persona-caption{left:12px;right:12px;padding:9px 13px 10px;border-radius:22px 26px 22px 27px}
  main.persona-app:not(.persona-admin) .persona-caption p{font-size:14px}
}
@media(min-width:860px) and (max-width:1199px){
  main.persona-app:not(.persona-admin).is-quiz .persona-stage{--mio-bubble-top:92px;--mio-avatar-top:214px}
  main.persona-app:not(.persona-admin).is-quiz .persona-stage-top{left:12px;right:12px;top:12px;gap:6px;flex-wrap:wrap}
  main.persona-app:not(.persona-admin).is-quiz .persona-caption{left:10px;right:10px;padding:8px 11px 10px}
  main.persona-app:not(.persona-admin).is-quiz .persona-caption p{font-size:13px}
}
@media(max-width:380px){
  main.persona-app:not(.persona-admin) .persona-stage{--mio-bubble-top:76px;--mio-avatar-top:196px}
}
