@font-face{font-family:pretendard;src:url(../media/PretendardVariable-s.p.0ztvx5mb7lxp4.woff2)format("woff2");font-display:swap;font-weight:45 920}@font-face{font-family:pretendard Fallback;src:local(Arial);ascent-override:93.76%;descent-override:23.75%;line-gap-override:0.0%;size-adjust:101.55%}.pretendard_4b3a688a-module___0DuNG__className{font-family:pretendard,pretendard Fallback,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif}.pretendard_4b3a688a-module___0DuNG__variable{--font-pretendard:"pretendard", "pretendard Fallback", -apple-system, BlinkMacSystemFont, Apple SD Gothic Neo, Noto Sans KR, sans-serif}
:root{--fs-xs:12.5px;--fs-sm:14px;--fs-base:15.5px;--fs-md:17px;--ground:#f6f6f5;--surface:#fcfcfb;--surface-2:#efefee;--ink:#20242a;--ink-2:#4a4f56;--ink-3:#71767d;--line:#e3e3e1;--line-strong:#cbcbc8;--accent:#a4522b;--accent-soft:#f7ebe4;--accent-brand:#ff772d;--danger:#a8482e;--danger-soft:#f4e2dc;--warn:#8a6a2e;--shadow:0 1px 2px #14161a0f, 0 4px 14px #14161a0d;--radius:12px;--read:740px}:root[data-theme=dark]{--ground:#131417;--surface:#1a1c20;--surface-2:#232529;--ink:#e9eaec;--ink-2:#adafb4;--ink-3:#82858b;--line:#2c2e33;--line-strong:#3a3d43;--accent:#d98b63;--accent-soft:#2a1f19;--accent-brand:#ff772d;--danger:#d98a6e;--danger-soft:#331d15;--warn:#cbb765;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000047}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#131417;--surface:#1a1c20;--surface-2:#232529;--ink:#e9eaec;--ink-2:#adafb4;--ink-3:#82858b;--line:#2c2e33;--line-strong:#3a3d43;--accent:#d98b63;--accent-soft:#2a1f19;--accent-brand:#ff772d;--danger:#d98a6e;--danger-soft:#331d15;--warn:#cbb765;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000047}}:root{--c-grey-25:#fafbfc;--c-grey-50:#f3f4f6;--c-grey-100:#e9ebee;--c-grey-200:#e0e2e6;--c-grey-300:#c7cad0;--c-grey-400:#848a93;--c-grey-600:#636a73;--c-grey-700:#464c54;--c-grey-900:#1b1f24;--c-greyd-25:#181b20;--c-greyd-50:#111418;--c-greyd-100:#212530;--c-greyd-200:#2a2e35;--c-greyd-300:#3a3f47;--c-greyd-400:#6a717b;--c-greyd-600:#8b919a;--c-greyd-700:#a8adb5;--c-greyd-900:#e8eaee;--c-brand:#ff772d;--c-orange-700:#a4522b;--c-orange-800:#8a4322;--c-orange-100:#f7ebe4;--c-oranged-400:#d98b63;--c-oranged-300:#b86a44;--c-oranged-900:#2a1f19;--c-red-700:#b03428;--c-red-100:#f4e2dc;--c-redd-400:#e07a72;--c-redd-900:#351c1d;--c-amber-700:#7d601f;--c-amber-100:#f5ecd8;--c-amberd-400:#cbb765;--c-amberd-900:#2b2517;--c-green-700:#2f6a4a;--c-green-100:#e2efe8;--c-greend-400:#6fbc93;--c-greend-900:#16261e;--ds-ground:var(--c-grey-50);--ds-surface:var(--c-grey-25);--ds-surface-2:var(--c-grey-100);--ds-line:var(--c-grey-200);--ds-line-strong:var(--c-grey-300);--ds-border-control:var(--c-grey-400);--ds-ink:var(--c-grey-900);--ds-ink-2:var(--c-grey-700);--ds-ink-3:var(--c-grey-600);--ds-accent:var(--c-orange-700);--ds-accent-deep:var(--c-orange-800);--ds-accent-soft:var(--c-orange-100);--ds-accent-brand:var(--c-brand);--ds-ground-serve:#f5f4f1;--ds-surface-serve:#fbfaf8;--ds-on-accent:#fff;--ds-danger:var(--c-red-700);--ds-danger-soft:var(--c-red-100);--ds-warn:var(--c-amber-700);--ds-warn-soft:var(--c-amber-100);--ds-ok:var(--c-green-700);--ds-ok-soft:var(--c-green-100);--ds-sp-0:0;--ds-sp-1:4px;--ds-sp-2:8px;--ds-sp-3:12px;--ds-sp-4:16px;--ds-sp-5:20px;--ds-sp-6:24px;--ds-sp-8:32px;--ds-sp-10:40px;--ds-sp-12:48px;--ds-sp-16:64px;--ds-r-sm:6px;--ds-r-md:10px;--ds-r-lg:14px;--ds-r-full:999px;--ds-shadow-1:0 1px 2px #14161a0f;--ds-shadow-2:0 1px 2px #14161a0f, 0 4px 14px #14161a0d;--ds-shadow-3:0 2px 6px #14161a14, 0 12px 32px #14161a1a;--ds-dur-fast:.12s;--ds-dur-base:.16s;--ds-dur-slow:.2s;--ds-ease:cubic-bezier(.2, 0, .2, 1);--ds-ease-out:cubic-bezier(.16, 1, .3, 1);--ds-focus-ring:0 0 0 2px var(--ds-surface), 0 0 0 4px var(--ds-accent);--ds-touch:44px;--ds-ctl-sm:28px;--ds-ctl-md:34px;--ds-ctl-lg:40px;--ds-bp-sm:640px;--ds-bp-md:900px;--ds-bp-lg:1280px}:root[data-theme=dark]{--ds-ground:var(--c-greyd-50);--ds-surface:var(--c-greyd-25);--ds-surface-2:var(--c-greyd-100);--ds-line:var(--c-greyd-200);--ds-line-strong:var(--c-greyd-300);--ds-border-control:var(--c-greyd-400);--ds-ink:var(--c-greyd-900);--ds-ink-2:var(--c-greyd-700);--ds-ink-3:var(--c-greyd-600);--ds-accent:var(--c-oranged-400);--ds-accent-deep:var(--c-oranged-300);--ds-accent-soft:var(--c-oranged-900);--ds-on-accent:#1b1108;--ds-ground-serve:var(--c-greyd-50);--ds-surface-serve:var(--c-greyd-25);--ds-danger:var(--c-redd-400);--ds-danger-soft:var(--c-redd-900);--ds-warn:var(--c-amberd-400);--ds-warn-soft:var(--c-amberd-900);--ds-ok:var(--c-greend-400);--ds-ok-soft:var(--c-greend-900);--ds-shadow-1:0 1px 2px #0000004d;--ds-shadow-2:0 1px 2px #0000004d, 0 6px 18px #00000047;--ds-shadow-3:0 2px 8px #00000061, 0 16px 40px #00000057}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ds-ground:var(--c-greyd-50);--ds-surface:var(--c-greyd-25);--ds-surface-2:var(--c-greyd-100);--ds-line:var(--c-greyd-200);--ds-line-strong:var(--c-greyd-300);--ds-border-control:var(--c-greyd-400);--ds-ink:var(--c-greyd-900);--ds-ink-2:var(--c-greyd-700);--ds-ink-3:var(--c-greyd-600);--ds-accent:var(--c-oranged-400);--ds-accent-deep:var(--c-oranged-300);--ds-accent-soft:var(--c-oranged-900);--ds-on-accent:#1b1108;--ds-ground-serve:var(--c-greyd-50);--ds-surface-serve:var(--c-greyd-25);--ds-danger:var(--c-redd-400);--ds-danger-soft:var(--c-redd-900);--ds-warn:var(--c-amberd-400);--ds-warn-soft:var(--c-amberd-900);--ds-ok:var(--c-greend-400);--ds-ok-soft:var(--c-greend-900);--ds-shadow-1:0 1px 2px #0000004d;--ds-shadow-2:0 1px 2px #0000004d, 0 6px 18px #00000047;--ds-shadow-3:0 2px 8px #00000061, 0 16px 40px #00000057}}:root{--ds-fs-legal:12.5px;--ds-fs-meta:14px;--ds-fs-body:16px;--ds-fs-xs:12.5px;--ds-fs-sm:14px;--ds-fs-base:15.5px;--ds-fs-md:17px;--ds-fs-lg:21px;--ds-fs-xl:28px;--ds-fs-display:clamp(30px, 6vw, 40px);--ds-lh-tight:1.3;--ds-lh-base:1.65;--ds-tracking-display:-.02em}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);font-family:var(--font-pretendard), -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.65}html{overscroll-behavior:none;height:100%}body{overscroll-behavior:none;min-height:100dvh}:is(body:has(>.member-shell),body:has(>.tchat-shell)){height:100%;overflow:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--ds-r-md);height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);transition:border-color .12s,background .12s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){filter:brightness(1.06)}button.danger{color:var(--danger);border-color:var(--danger)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;width:100%;padding:9px 12px;font-size:16px}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}textarea{resize:vertical;line-height:1.6}.admin-page{box-sizing:border-box;flex:1;width:100%;min-width:0;max-width:1100px;min-height:0;margin:0 auto;padding:28px 32px;overflow:hidden auto}.page-title{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.page-desc{color:var(--ink-3);font-size:var(--ds-fs-meta);margin:0 0 24px}.admin-tab-desc{color:var(--ink-2);font-size:var(--ds-fs-meta);border-left:2px solid var(--accent);background:var(--surface-2);border-radius:0 8px 8px 0;margin:-12px 0 20px;padding:8px 12px;line-height:1.6}.status-badge{font-size:var(--ds-fs-meta);letter-spacing:.03em;background:var(--surface-2);color:var(--ink-3);border-radius:99px;padding:2px 9px;font-weight:700;display:inline-block}.status-badge.is-accent{background:var(--accent-soft);color:var(--accent)}.status-badge.is-danger{background:var(--danger-soft);color:var(--danger)}.empty{color:var(--ink-3);text-align:center;padding:40px 0;font-size:14px}.error-banner{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger);border-radius:8px;margin:12px 0;padding:10px 14px;font-size:13.5px}.fallback-notice{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:10px 14px;font-size:13.5px}.session-list{flex-direction:column;gap:6px;min-height:0;display:flex;overflow-y:auto}.session-list .new-btn{margin-bottom:4px}.session-item{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--ds-r-md);width:100%;height:auto;padding:10px 12px;display:block}.session-item.active{border-color:var(--accent);background:var(--accent-soft)}.session-item .s-note{color:var(--ink);font-size:13.5px;font-weight:600}.session-item .s-meta{font-size:var(--ds-fs-meta);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:2px}.tsl-scope{cursor:pointer;color:var(--ink-2);box-sizing:border-box;flex:none;align-items:flex-start;gap:6px;width:100%;padding:2px 2px 6px;font-size:12.5px;line-height:1.4;display:flex}.tsl-scope input{cursor:pointer;flex:none;width:15px;min-width:15px;height:15px;margin:1px 0 0}.tsl-scope span{flex:auto;min-width:0}.tsl-ro{border:1px solid var(--line-strong);color:var(--ink-3);background:var(--surface-2);white-space:nowrap;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:12.5px;font-weight:600}.tsl-ro-note{color:var(--ink-3);font-size:12.5px}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 2px 10px;display:flex}.learn-note{background:var(--surface-2);border-radius:8px;margin:8px 0 0;padding:8px 12px;font-size:.9rem}.chat-scroll{flex-direction:column;flex:1;gap:14px;padding-right:6px;display:flex;overflow-y:auto}.turn{flex-direction:column;gap:4px;max-width:82%;display:flex}.turn.teacher{align-self:flex-end;align-items:flex-end}.turn.ai{align-self:flex-start;align-items:flex-start}.turn .who{font-size:var(--ds-fs-meta);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:11px 15px;font-size:14.5px;line-height:1.7}.turn.teacher .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.turn.ai .bubble{background:var(--surface-2);color:var(--ink);border-bottom-left-radius:4px}.turn.ai .bubble.streaming:after{content:"▍";color:var(--accent);animation:1s step-end infinite blink}.turn.ai .bubble.err{background:var(--danger-soft);color:var(--danger)}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.turn.ai .bubble.streaming:after{animation:none}}.composer{align-items:flex-end;gap:8px;margin-top:14px;display:flex}.composer textarea{min-height:46px;max-height:180px}.composer button{flex-shrink:0;height:46px}@media (max-width:760px){.session-list{flex-direction:row;overflow-x:auto}.session-item{min-width:160px}}.admin-tabs,.perm-bundles,.rel-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.diff-box{border:1px solid var(--line);background:var(--surface);border-radius:8px;max-height:420px;padding:12px;overflow:auto}.diff-box h4{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px;font-size:12px}.diff-line{font-family:inherit;font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-word;border-radius:3px;padding:0 4px;line-height:1.6}.diff-line.add{background:var(--accent-soft);color:var(--accent)}.diff-line.del{background:var(--danger-soft);color:var(--danger)}.login-wrap{min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));box-sizing:border-box;justify-content:center;align-items:center;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--shadow);padding:32px 30px}.login-card .brand{color:var(--accent);margin:0 0 4px;font-size:18px;font-weight:700}.login-card .sub{color:var(--ink-3);margin:0 0 24px;font-size:13px}.login-card label{color:var(--ink-2);margin:14px 0 5px;font-size:13px;font-weight:500;display:block}.login-card button[type=submit]{width:100%;margin-top:22px}.member-shell{left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100dvh);background:var(--ground);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box;flex-direction:column;display:flex;position:fixed;overflow:hidden}.mchat-layout{flex:1;grid-template-columns:280px minmax(0,1fr);min-height:0;display:grid}.mchat-layout .session-list{border-right:1px solid var(--line);background:var(--surface);padding:16px 12px;overflow-y:auto}.mchat-layout .member-chat{height:100%}.mc-menu{width:var(--ds-ctl-md);height:var(--ds-ctl-md);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-2);cursor:pointer;padding:0;font-size:16px;display:none}.mc-title-row{align-items:center;gap:10px;display:flex}.mchat-scrim{display:none}.turn-tools{opacity:0;align-self:flex-start;gap:6px;margin-top:2px;transition:opacity .12s;display:flex}.turn:hover .turn-tools{opacity:1}.ctx-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.ctx-badge.pending,.ctx-badge.done{background:var(--accent-soft);color:var(--accent)}.ctx-badge.warn{background:var(--danger-soft);color:var(--danger)}.ctx-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:8px 0;padding:14px 16px}.ctx-head{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.ctx-close{color:var(--ink-3);cursor:pointer;background:0 0;border:none;font-size:13px}.ctx-grid{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}.ctx-grid dt{color:var(--ink-3)}.ctx-grid dd{color:var(--ink);margin:0}.ctx-toggle,.ctx-summary{font-size:12px}.ctx-toggle{border:1px solid var(--line);color:var(--ink-3);cursor:pointer;background:0 0;border-radius:6px;padding:1px 7px}.ctx-summary{background:var(--surface-2);color:var(--ink-2);white-space:pre-wrap;border-radius:8px;margin-top:10px;padding:10px}.sl-actions{align-items:stretch;gap:6px;margin-bottom:8px;display:flex}.sl-actions .new-btn{height:var(--ds-ctl-md);flex:1;justify-content:center;align-items:center;margin-bottom:0;display:inline-flex}.grp-add{height:var(--ds-ctl-md);font-size:var(--ds-fs-meta);padding:0 var(--ds-sp-3);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-3);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;line-height:1;display:inline-flex}.grp-add:hover{border-color:var(--accent);color:var(--accent)}.grp-section{margin-top:10px}.grp-head{color:var(--ink-3);justify-content:space-between;align-items:center;padding:4px;font-size:11.5px;font-weight:600;display:flex}.grp-tools{opacity:0;gap:4px;transition:opacity .12s;display:flex}.grp-head:hover .grp-tools{opacity:1}.grp-tools button{color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:12px}.grp-empty{color:var(--ink-3);padding:4px 8px;font-size:12px}.session-item-wrap{align-items:stretch;gap:2px;display:flex;position:relative}.session-item-wrap .session-item{flex:1}.s-menu-btn{color:var(--ink-3);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 6px;transition:opacity .12s}.session-item-wrap:hover .s-menu-btn{opacity:1}.s-menu{z-index:20;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;min-width:130px;padding:4px;display:flex;position:absolute;top:100%;right:6px}.s-menu-label{color:var(--ink-3);padding:3px 8px;font-size:10.5px}.s-menu button{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 8px;font-size:12.5px}.s-menu button:hover{background:var(--surface-2)}.member-chat{flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;padding:0;display:flex;overflow:hidden}.mc-head{z-index:5;background:var(--ground);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.mc-head h1{color:var(--ink);margin:0;font-size:15px;font-weight:600}.mc-head p{display:none}.mc-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.theme-toggle{width:var(--ds-ctl-md);height:var(--ds-ctl-md);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-2);cursor:pointer;padding:0;font-size:15px}.theme-toggle:hover{border-color:var(--accent)}.mc-signout{font-size:var(--ds-fs-meta);height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-3);cursor:pointer;align-items:center;display:inline-flex}.mc-signout:hover{border-color:var(--danger);color:var(--danger)}.member-chat .chat-scroll{flex-direction:column;flex:1;align-items:center;gap:22px;min-height:0;padding:24px 20px 16px;display:flex;overflow-y:auto}.member-chat .chat-scroll>*{width:100%;max-width:var(--read)}.member-chat .turn{min-width:0;max-width:100%}.member-chat .chat-scroll>*{min-width:0}.member-chat .composer{width:100%;max-width:min(var(--read), calc(100% - 32px));border:1px solid var(--line);background:var(--surface);border-radius:18px;margin:0 auto 16px;padding:8px 12px;transition:border-color .12s;display:block}.member-chat .composer:focus-within{border-color:var(--line-strong)}.member-chat .composer textarea{resize:none;width:100%;min-height:40px;max-height:200px;color:var(--ink);background:0 0;border:none;padding:6px;font-size:16px}.member-chat .composer textarea:focus{outline:none}.composer-foot{align-items:center;gap:6px;padding:4px 2px 0;display:flex}.composer-spacer{flex:1}.composer-send{height:var(--ds-ctl-md);padding:0 var(--ds-sp-4);border-radius:var(--ds-r-md);font-size:var(--ds-fs-meta);flex-shrink:0}.model-picker{position:relative}.model-trigger{font-size:var(--ds-fs-meta);height:var(--ds-ctl-md);box-shadow:none;border-radius:var(--ds-r-md);color:var(--ink-2);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:4px;padding:0 8px 0 10px;font-weight:500;transition:background-color .12s,color .12s;display:inline-flex}.model-trigger:hover:not(:disabled),.model-trigger[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}.model-trigger:focus-visible{box-shadow:none;outline:none}.model-trigger:disabled{opacity:.5;cursor:default}.model-caret{opacity:.7;flex-shrink:0}.model-menu{z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;flex-direction:column;gap:1px;min-width:268px;max-height:70vh;margin:0;padding:6px;list-style:none;display:flex;position:absolute;bottom:calc(100% + 10px);left:0;overflow-y:auto;box-shadow:0 4px 10px #0000001a,0 12px 32px #00000029}.model-menu-list{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.model-menu li{margin:0;display:block}.model-menu-sec{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:6px 12px 3px;font-size:10.5px}.model-menu-div{background:var(--line);height:1px;margin:5px 4px}.model-menu-hint{color:var(--ink-3);margin:0;padding:0 12px 5px;font-size:11px;line-height:1.45}.effort-option{box-sizing:border-box;text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.effort-option:hover{background:var(--surface-2)}.effort-option.selected{color:var(--accent);font-weight:600}.effort-default{background:var(--surface-2);color:var(--ink-3);border-radius:5px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500}.think-btn{height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);border:1px solid var(--line-strong);border-radius:var(--ds-r-full);color:var(--ink-2);font-size:var(--ds-fs-meta);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:5px;font-weight:500;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.think-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.think-btn.on{background:var(--accent-soft);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.think-btn.on:hover:not(:disabled){background:var(--accent-soft);background:color-mix(in srgb, var(--accent) 20%, transparent)}.think-btn:disabled{opacity:.5;cursor:default}.model-trigger-effort{color:var(--ink-3);font-weight:400}.think-block{min-width:0;max-width:100%;margin-bottom:6px;overflow:hidden}.think-label{font-size:var(--ds-fs-meta);color:var(--ink-3);height:var(--ds-ctl-sm);border-radius:var(--ds-r-md);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:5px;max-width:100%;padding:0 8px 0 6px;display:inline-flex}.think-label:hover{background:var(--surface-2);color:var(--ink-2)}.think-icon{opacity:.8;flex-shrink:0}.think-label-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.think-label.streaming .think-label-text{color:var(--accent)}.think-label.streaming{animation:1.4s ease-in-out infinite think-pulse}.think-caret{opacity:.6;flex-shrink:0;transition:transform .15s}.think-caret.open{transform:rotate(180deg)}.think-wrap{position:relative}.think-body{border-left:2px solid var(--line-strong);color:var(--ink-3);white-space:pre-wrap;word-break:break-word;margin:4px 0 2px;padding:10px 14px;font-size:13px;line-height:1.7}.think-body.clamped{overflow:hidden;-webkit-mask-image:linear-gradient(#000 62%,#0000);mask-image:linear-gradient(#000 62%,#0000)}.think-more{cursor:pointer;color:var(--accent);background:0 0;border:none;margin:2px 0 2px 16px;padding:2px 4px;font-size:12.5px;font-weight:500;display:inline-block}.think-more:hover{text-decoration:underline}@keyframes think-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.think-label.streaming{animation:none}}.model-option{box-sizing:border-box;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;width:100%;margin:0;padding:8px 12px;display:block}.model-option:hover{background:var(--surface-2)}.model-option.selected{background:var(--accent-soft)}.model-option-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.model-option-name{color:var(--ink);font-size:13px;font-weight:600;line-height:1.3}.model-check{color:var(--accent);flex-shrink:0}.model-option-desc{color:var(--ink-3);margin-top:2px;font-size:11.5px;line-height:1.3;display:block}.member-chat .turn.ai .bubble{color:var(--ink);background:0 0;border-radius:0;padding:0;font-size:15.5px;line-height:1.75}.member-chat .turn.ai .bubble.err{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:11px 15px}.member-chat .turn.user{align-self:flex-end;align-items:flex-end;max-width:82%}.member-chat .turn.user .bubble{background:var(--surface-2);color:var(--ink);border-radius:16px 16px 6px;padding:9px 14px;font-size:15px}.member-chat .turn .who-name,.member-chat .turn.user .who{display:none}.turn-model{background:var(--surface-2);color:var(--ink-3);letter-spacing:0;text-transform:none;border-radius:5px;margin-left:6px;padding:1px 5px;font-size:9.5px}.turn-copy{font-size:var(--ds-fs-meta);height:var(--ds-ctl-sm);border:1px solid var(--line);border-radius:var(--ds-r-md);color:var(--ink-3);cursor:pointer;opacity:0;background:0 0;align-self:flex-start;align-items:center;margin-top:2px;padding:0 8px;transition:opacity .12s;display:inline-flex}.turn:hover .turn-copy{opacity:1}@media (hover:none){.turn-tools,.turn-copy,.grp-tools,.s-menu-btn{opacity:1}}.date-divider{font-size:var(--ds-fs-meta);color:var(--ink-3);background:var(--surface-2);border-radius:10px;align-self:center;margin:6px 0;padding:2px 10px}.ver-badge{background:var(--warn);color:#fff;vertical-align:middle;border-radius:5px;margin-left:6px;padding:1px 5px;font-size:9.5px}.turn-copy:hover{border-color:var(--accent);color:var(--accent)}.admin-list{flex-direction:column;gap:8px;display:flex}.admin-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--ds-r-md);cursor:pointer;height:auto;padding:13px 18px;transition:border-color .12s}.admin-row:hover{border-color:var(--accent)}.admin-row>div:first-child{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-meta{font-size:var(--ds-fs-meta);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:4px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:760px;max-height:85vh;box-shadow:var(--shadow);flex-direction:column;display:flex}.modal.modal-sm{max-width:400px}.prompt-input{border:1px solid var(--line-strong);background:var(--ground);width:100%;color:var(--ink);border-radius:8px;padding:9px 12px;font-size:16px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.modal-head h2{margin:0;font-size:16px}.modal-body{padding:18px 22px;overflow-y:auto}.prompt-full{white-space:pre-wrap;word-break:break-word;font-size:var(--fs-sm);color:var(--ink-2);margin:0;font-family:inherit;line-height:1.7}.job-detail .kv{grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:7px 14px;margin:0 0 4px;display:grid}.job-detail .kv dt{color:var(--ink-3);font-size:12.5px}.job-detail .kv dd{font-size:var(--fs-sm);color:var(--ink);word-break:break-word;min-width:0;margin:0}.job-detail .job-sub{color:var(--ink-2);margin:18px 0 8px;font-size:13.5px}.job-detail .job-lessons{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.job-detail .job-lessons li{font-size:var(--fs-sm);align-items:baseline;gap:7px;line-height:1.5;display:flex}.job-detail .linkish{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}@media (max-width:480px){.job-detail .kv{grid-template-columns:minmax(0,1fr);gap:2px 0}.job-detail .kv dd{margin-bottom:8px}}.msg-list{flex-direction:column;gap:12px;display:flex}.msg{flex-direction:column;gap:3px;display:flex}.msg-role{color:var(--ink-3);font-size:12px;font-weight:600}.msg-body{font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:8px;padding:8px 12px;line-height:1.6}.msg.user .msg-body,.msg.teacher .msg-body{background:var(--accent-soft)}@media (max-width:900px){.mchat-layout{grid-template-columns:1fr}.mchat-layout .session-list{z-index:40;background:var(--surface);border-right:1px solid var(--line);width:82%;max-width:320px;padding:14px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.mchat-layout.drawer-open .session-list{transform:translate(0)}.mchat-scrim{z-index:30;background:#00000059;display:block;position:fixed;inset:0}.mc-menu{justify-content:center;align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){.mchat-layout .session-list{transition:none}}@media (max-width:640px){.admin-page{padding:20px 16px}.member-chat .chat-scroll{padding-bottom:20px;padding-left:14px;padding-right:14px}.mc-head{padding:var(--ds-sp-3) var(--ds-sp-4)}.mc-signout{padding:var(--ds-sp-1) var(--ds-sp-2)}.mc-actions{gap:var(--ds-sp-2)}}.sl-footer{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:auto;padding:8px 4px;display:flex}.sl-foot-btn{text-align:left;font-size:var(--ds-fs-meta);height:var(--ds-ctl-md);color:var(--ink-2);border-radius:var(--ds-r-md);cursor:pointer;background:0 0;border:none;align-items:center;padding:0 10px;display:flex}.sl-foot-btn:hover{background:var(--surface-2);color:var(--ink)}.session-list{flex-direction:column;display:flex}.s-menu-danger{color:var(--danger)!important}.mchat-layout .session-item-wrap{border-radius:var(--ds-r-md);gap:0;padding:2px 4px 2px 6px}.mchat-layout .session-item{border-radius:var(--ds-r-md);border:none;padding:7px 4px;background:0 0!important}.mchat-layout .s-note{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:500;display:block;overflow:hidden}.mchat-layout .s-menu-btn{border-radius:var(--ds-r-md);flex-shrink:0;justify-content:center;align-items:center;width:26px;display:flex}.mchat-layout .s-menu-btn:hover{background:var(--line);color:var(--ink)}.mchat-layout .s-menu{min-width:140px;top:calc(100% + 2px)}.mchat-layout .grp-head{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:11px}.mchat-layout .session-list{border-right:1px solid var(--line);background:var(--surface)}.modal-x{color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:2px 6px;font-size:15px}.modal-x:hover{background:var(--surface-2);color:var(--ink)}.settings-modal{max-width:560px}.settings-loading{color:var(--ink-3);padding:24px 22px;font-size:14px}.settings-toggles{flex-direction:column;gap:18px;margin:0;padding:18px 22px;list-style:none;display:flex}.settings-row{flex-direction:column;gap:5px;display:flex}.settings-toggle{cursor:pointer;align-items:center;gap:10px;font-weight:500;display:flex}.settings-toggle input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}.settings-label{color:var(--ink);font-size:14.5px}.settings-desc{color:var(--ink-3);margin:0 0 0 27px;font-size:12.5px;line-height:1.5}.settings-memories{border-top:1px solid var(--line);padding:16px 22px}.sm-head{color:var(--ink-2);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.sm-clear{color:var(--danger);border-color:var(--danger);padding:3px 9px;font-size:12px}.sm-empty{color:var(--ink-3);margin:4px 0;font-size:12.5px}.sm-list{flex-direction:column;gap:6px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.sm-item{background:var(--surface-2);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.sm-content{color:var(--ink);flex:1;font-size:13px;line-height:1.5}.sm-del{color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px}.sm-del:hover{color:var(--danger)}.trash-modal{max-width:480px}.trash-empty{color:var(--ink-3);text-align:center;padding:20px 0;font-size:13.5px}.trash-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.trash-item{background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.trash-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.trash-actions{flex-shrink:0;gap:6px;display:flex}.trash-restore{padding:4px 10px;font-size:12px}.trash-purge{color:var(--danger);border-color:var(--danger);padding:4px 10px;font-size:12px}.modal-msg{color:var(--ink-2);margin:0 0 4px;font-size:13.5px;line-height:1.6}@media (max-width:640px){.settings-modal,.trash-modal{max-width:100%}}.tchat-shell{left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100dvh);background:var(--ground);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box;flex-direction:column;display:flex;position:fixed;overflow:hidden}.tmain{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ttabs{border-bottom:1px solid var(--line);background:var(--surface);flex-shrink:0;align-items:center;gap:4px;padding:0 16px;display:flex}.ttabs .ttab-brand{font-size:var(--ds-fs-meta);color:var(--ink);margin-right:6px;padding:12px 12px 12px 4px;font-weight:600}.ttabs a{height:var(--ds-ctl-lg);font-size:var(--fs-sm);color:var(--ink-2);border-bottom:2px solid #0000;align-items:center;padding:0 14px;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.ttabs a:hover{color:var(--ink);text-decoration:none}.ttabs a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.ttabs .ttab-tablist{align-items:center;gap:4px;min-width:0;display:flex}.ttabs .ttab-btn{height:var(--ds-ctl-lg);font-size:var(--fs-sm);color:var(--ink-2);border-radius:var(--ds-r-md);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;padding:0 14px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.ttabs .ttab-btn:hover{color:var(--ink);background:var(--surface-2);border-color:#0000}.ttabs .ttab-btn.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.ttabs .ttab-spacer{flex:1}.ttabs .ttab-space{background:var(--accent-soft);color:var(--accent);font-size:var(--ds-fs-meta);border-radius:999px;margin-left:7px;padding:2px 8px;font-weight:600}.ttabs .ttab-switch{align-items:center;gap:6px;margin-right:10px;display:flex}.ttabs .ttab-switch-item{font-size:var(--ds-fs-meta);height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);border:1px solid var(--line);border-radius:var(--ds-r-md);border-bottom-color:var(--line);color:var(--ink-2);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.ttabs .ttab-switch-item:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);text-decoration:none}.ttabs .ttab-spacechip{display:none;position:relative}.ttab-spacechip-btn{height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);font-size:var(--ds-fs-meta);color:var(--ds-accent);background:var(--ds-accent-soft);border-radius:var(--ds-r-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;font-weight:600;display:inline-flex}.ttab-spacechip-btn:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.ttab-spacechip-caret{font-size:var(--ds-fs-legal);opacity:.7}.portal-menu{z-index:60;padding:var(--ds-sp-1);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-md);box-shadow:var(--ds-shadow-2);height:auto;max-height:calc(100dvh - 64px - env(safe-area-inset-bottom));max-width:calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));flex-direction:column;gap:2px;display:flex;position:fixed;overflow-y:auto}.ttab-spacechip-menu{min-width:180px}.ttab-spacechip-menu a,.ttab-spacechip-cur{justify-content:space-between;align-items:center;gap:var(--ds-sp-2);font-size:var(--ds-fs-meta);color:var(--ds-ink);border-radius:var(--ds-r-sm);padding:9px 10px;text-decoration:none;display:flex}.ttab-spacechip-menu a:hover{background:var(--ds-surface-2);text-decoration:none}.ttab-spacechip-cur{color:var(--ds-accent);font-weight:600}.ttab-spacechip-here{font-size:var(--ds-fs-legal);color:var(--ds-ink-3);font-weight:400}.ttabs .ttab-signout{height:var(--ds-ctl-md);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-3);cursor:pointer;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.ttabs .ttab-signout:hover{border-color:var(--danger);color:var(--danger)}.ttabs .ttab-util{margin-left:4px;display:inline-flex;position:relative}.ttabs .ttab-util-btn{width:var(--ds-ctl-md);height:var(--ds-ctl-md);border-radius:var(--ds-r-md);color:var(--ds-ink-2);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.ttabs .ttab-util-btn:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.ttabs .ttab-util-btn:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.ttab-util-menu{min-width:190px}.ttab-util-row{justify-content:space-between;align-items:center;gap:var(--ds-sp-3);font-size:var(--ds-fs-meta);color:var(--ds-ink-2);padding:6px 10px;display:flex}.ttab-util-signout{text-align:left;font-size:var(--ds-fs-meta);color:var(--ds-ink);border-radius:var(--ds-r-sm);cursor:pointer;background:0 0;border:none;padding:8px 10px}.ttab-util-signout:hover{background:var(--ds-danger-soft);color:var(--ds-danger)}.ttabs .ttab-chat{height:var(--ds-ctl-md);border:1px solid var(--line);border-radius:var(--ds-r-md);color:var(--ink-2);border-bottom-color:var(--line);align-items:center;margin-right:8px;padding:0 10px;font-size:12px;text-decoration:none;display:inline-flex}.ttabs .ttab-chat:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.mc-toteacher{font-size:var(--ds-fs-meta);height:var(--ds-ctl-md);padding:0 var(--ds-sp-3);border:1px solid var(--line);border-radius:var(--ds-r-md);color:var(--ink-2);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.mc-toteacher:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.tpage{box-sizing:border-box;flex:1;width:100%;max-width:880px;min-height:0;margin:0 auto;padding:28px 32px;overflow-y:auto}.tchat-layout{flex:1;grid-template-columns:280px minmax(0,1fr);min-height:0;display:grid}.tchat-layout .session-list{--sl-pad-x:12px;--sl-pad-y:16px;padding:var(--sl-pad-y) var(--sl-pad-x);border-right:1px solid var(--line);background:var(--surface);flex-direction:column;display:flex;overflow-y:auto}.tchat-panel{flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.tchat-panel .chat-scroll{flex-direction:column;flex:1;align-items:center;gap:22px;min-height:0;padding:24px 20px 16px;display:flex;overflow-y:auto}.tchat-panel .chat-scroll>*{width:100%;max-width:var(--read);min-width:0}.tchat-panel .turn{min-width:0;max-width:100%}.tchat-panel .turn.ai .bubble{font-size:var(--fs-base);color:var(--ink);background:0 0;border-radius:0;padding:0;line-height:1.75}.tchat-panel .turn.teacher{align-self:flex-end;align-items:flex-end;max-width:82%}.tchat-panel .turn.teacher .bubble{background:var(--surface-2);color:var(--ink);border-radius:16px 16px 6px;padding:9px 14px;font-size:15px}.tchat-panel .turn .who-name,.tchat-panel .turn.teacher .who{display:none}.tchat-panel .composer{width:100%;max-width:min(var(--read), calc(100% - 32px));border:1px solid var(--line);background:var(--surface);border-radius:18px;margin:0 auto 16px;padding:8px 12px;transition:border-color .12s;display:block}.tchat-panel .composer:focus-within{border-color:var(--line-strong)}.tchat-panel .composer textarea{resize:none;width:100%;min-height:40px;max-height:200px;color:var(--ink);background:0 0;border:none;padding:6px;font-size:16px}.tchat-panel .composer textarea:focus{outline:none}.tchat-panel .panel-head{width:100%;max-width:var(--read);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin:0 auto;padding:6px 2px 10px;display:flex}.tchat-panel .panel-head>button{margin-left:auto}.tchat-layout{background:var(--ds-ground-serve)}.tchat-layout .session-list{background:var(--ds-surface);border-right-color:var(--ds-line)}.tchat-panel .turn.ai .bubble{font-size:var(--ds-fs-body);color:var(--ds-ink);line-height:1.8}.tchat-panel .turn.ai .bubble.err{background:var(--ds-danger-soft);color:var(--ds-danger);border-radius:var(--ds-r-md);padding:11px 15px}.tchat-panel .turn.teacher .bubble{background:var(--ds-surface-serve);color:var(--ds-ink);border:1px solid var(--ds-line);border-radius:var(--ds-r-lg);border-bottom-right-radius:var(--ds-r-sm);font-size:var(--ds-fs-body);padding:10px 15px;line-height:1.65}.tchat-panel .composer{background:var(--ds-surface-serve);border-color:var(--ds-line);border-radius:var(--ds-r-lg);padding:var(--ds-sp-2) var(--ds-sp-3);margin-bottom:var(--ds-sp-4);transition:border-color var(--ds-dur-base) var(--ds-ease), box-shadow var(--ds-dur-base) var(--ds-ease)}.tchat-panel .composer:focus-within{border-color:var(--ds-accent);box-shadow:var(--ds-shadow-1)}.tchat-panel .composer textarea{font-size:var(--ds-fs-body);color:var(--ds-ink);min-height:52px;line-height:1.6}.tchat-panel .composer textarea::placeholder{color:var(--ds-ink-3)}.tchat-panel .empty{color:var(--ds-ink-2);font-size:var(--ds-fs-md);align-items:center;gap:var(--ds-sp-2);text-align:center;flex-direction:column;padding-top:12vh;display:flex}.tchat-panel .empty .empty-hint{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.tchat-panel .turn-tools{gap:var(--ds-sp-2);opacity:.45;transition:opacity var(--ds-dur-base) var(--ds-ease);display:flex}.tchat-panel .turn:hover .turn-tools,.tchat-panel .turn-tools:focus-within{opacity:1}@media (hover:none){.tchat-panel .turn-tools{opacity:1}}.tchat-panel .turn-copy{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);border-radius:var(--ds-r-md);height:var(--ds-ctl-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;padding:0 8px;display:inline-flex}.tchat-panel .turn-copy:hover{color:var(--ds-accent);border-color:var(--ds-line)}.tchat-panel .turn-copy:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.tchat-layout .s-note{font-size:var(--ds-fs-meta);color:var(--ds-ink);text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.tchat-layout .s-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-top:2px}.tchat-layout .session-item-wrap{border-radius:var(--ds-r-md)}.tchat-layout .session-item{border:none;padding:8px 6px;background:0 0!important}@media (prefers-reduced-motion:reduce){.tchat-panel .composer,.tchat-panel .turn-tools,.tchat-panel .turn-copy{transition:none}}.tchat-panel .learn-note{width:100%;max-width:var(--read);background:var(--surface-2);border-radius:8px;margin:8px auto 0;padding:8px 12px;font-size:13px}.tchat-layout .session-item-wrap{border-radius:var(--ds-r-md);align-items:stretch;padding:2px 4px 2px 6px;display:flex;position:relative}.tchat-layout .session-item-wrap:hover{background:var(--surface-2)}.tchat-layout .session-item-wrap.active{background:var(--accent-soft)}.tchat-layout .session-item{border-radius:var(--ds-r-md);border:none;flex:1;min-width:0;padding:7px 4px;background:0 0!important}.tchat-layout .tsl-extract{border-radius:var(--ds-r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);flex:none;align-self:center;margin-left:4px;padding:4px 7px;font-size:11.5px}.tchat-layout .tsl-extract:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tchat-layout .tsl-extract:disabled{opacity:.55}.tchat-layout .new-btn{height:var(--ds-ctl-md);justify-content:center;align-items:center;margin-bottom:8px;display:inline-flex}.tchat-status{font-size:var(--fs-xs);color:var(--ink-3);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px;display:inline-flex}.tchat-status-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.exp-notice{width:100%;max-width:min(var(--read), calc(100% - 28px));border:1px solid var(--line);background:var(--surface-2);font-size:var(--fs-sm);color:var(--ink-2);border-radius:10px;margin:16px auto 0;padding:10px 14px;line-height:1.6}.exp-back{color:var(--accent);white-space:nowrap;text-decoration:underline}.tsl-legacy{margin-top:auto;margin-bottom:calc(-1 * var(--sl-pad-y,16px));box-sizing:border-box;box-shadow:0 0 0 var(--sl-pad-x,12px) var(--ds-surface);padding:16px calc(var(--sl-pad-x,12px) + 10px) calc(var(--sl-pad-y,16px) + env(safe-area-inset-bottom));border-top:1px solid var(--ds-line);bottom:calc(-1 * var(--sl-pad-y,16px));z-index:3;background:var(--ds-surface);border-radius:0;flex-direction:column;flex:none;align-self:stretch;gap:2px;text-decoration:none;display:flex;position:sticky}.tsl-legacy:hover{background:var(--ds-surface-2);text-decoration:none}.tsl-legacy-name{font-size:var(--ds-fs-meta);color:var(--ds-ink);font-weight:600}.tsl-legacy-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.tchat-menu{--ttabs-h:46px;top:calc(env(safe-area-inset-top) + (var(--ttabs-h) - 34px) / 2);left:calc(8px + env(safe-area-inset-left));z-index:20;width:var(--ds-ctl-md);height:var(--ds-ctl-md);border:1px solid var(--line);border-radius:var(--ds-r-md);background:var(--surface);color:var(--ink-2);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:none;position:fixed}.tchat-menu-glyph{line-height:1;display:block;transform:translateY(-1.5px)}.tchat-scrim{display:none}@media (max-width:900px){.tchat-layout{grid-template-columns:1fr}.tchat-layout .session-list{z-index:40;background:var(--surface);border-right:1px solid var(--line);--sl-pad-x:14px;--sl-pad-y:14px;width:82%;max-width:320px;padding:var(--sl-pad-y) var(--sl-pad-x);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.tchat-layout.drawer-open .session-list{transform:translate(0)}.tchat-scrim{z-index:30;background:#00000059;display:block;position:fixed;inset:0}.tchat-menu{display:inline-flex}}@media (max-width:640px){.page-title,.page-desc{padding-left:2px;padding-right:2px}.rel-toolbar{flex-wrap:wrap;gap:8px}.tchat-panel .chat-scroll{padding-left:14px;padding-right:14px}.tchat-panel .panel-head{gap:10px;padding-left:14px;padding-right:14px}.tchat-panel .panel-head button{flex-shrink:0;padding:6px 10px;font-size:13px}.tchat-panel .panel-head .s-meta{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.ttabs{padding-left:calc(52px + env(safe-area-inset-left));padding-right:calc(8px + env(safe-area-inset-right));flex-wrap:nowrap}.ttabs .ttab-tablist{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;min-width:0;overflow-x:auto}.ttabs .ttab-tablist::-webkit-scrollbar{display:none}.admin-shell .ttabs{padding-left:calc(8px + env(safe-area-inset-left))}.tchat-shell:not(:has(.tchat-menu)) .ttabs{padding-left:calc(8px + env(safe-area-inset-left))}.ttabs .ttab-spacer{flex:1}.ttabs>*,.ttabs .ttab-tablist>*{white-space:nowrap;flex-shrink:0}.ttabs>.ttab-tablist{flex-shrink:1}.ttabs .ttab-brand{margin-right:2px;padding-left:2px}.ttabs a,.ttabs .ttab-btn{padding:0 12px}.ttabs .ttab-switch{display:none}.ttabs .ttab-spacechip{display:inline-flex}.ttabs .ttab-space{display:none}.tpage{padding:20px 16px}}@media (prefers-reduced-motion:reduce){.tchat-layout .session-list{transition:none}}.error-banner:has(.banner-action){align-items:center;gap:10px;display:flex}.banner-action{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;margin-left:auto;padding:4px 12px;font-size:13px}.banner-action:hover{background:var(--danger);color:var(--surface)}.boundary-wrap{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px;display:flex}.boundary-title{color:var(--ink);margin:0;font-size:21px;font-weight:600}.boundary-msg{color:var(--ink-2);margin:0;font-size:15px;line-height:1.7}.boundary-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.boundary-link{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:8px;padding:9px 18px;font-size:14px;text-decoration:none}.boundary-link:hover{border-color:var(--accent);color:var(--accent)}.boundary-link.primary-link{border-color:var(--accent);background:var(--accent);color:#fff}.boundary-link.primary-link:hover{opacity:.9;color:#fff}.bubble.md{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.bubble.md table{max-width:100%;display:block;overflow-x:auto}.bubble.md p{margin:0 0 .7em}.bubble.md p:last-child{margin-bottom:0}.bubble.md ul,.bubble.md ol{margin:.3em 0 .7em;padding-left:1.4em}.bubble.md li{margin:.2em 0}.bubble.md li>p{margin:0}.bubble.md strong{font-weight:600}.bubble.md blockquote{border-left:3px solid var(--line-strong);color:var(--ink-2);margin:.5em 0;padding:2px 0 2px 12px}.bubble.md code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.bubble.md pre{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;margin:.5em 0;padding:10px 12px;overflow-x:auto}.bubble.md pre code{background:0 0;padding:0;font-size:13px}.bubble.md h1,.bubble.md h2,.bubble.md h3,.bubble.md h4{margin:.9em 0 .4em;font-size:1.05em;font-weight:600}.bubble.md hr{border:none;border-top:1px solid var(--line);margin:.8em 0}.bubble.md a{color:var(--accent);text-decoration:underline}.bubble.md table{border-collapse:collapse;margin:.5em 0;font-size:.95em}.bubble.md th,.bubble.md td{border:1px solid var(--line-strong);padding:4px 10px}.bubble.md th{background:var(--surface-2)}.learn-note.ok{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.learn-note.warn{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.learn-note-link{color:inherit;text-underline-offset:2px;font-weight:600;text-decoration:underline}.learn-note-link:hover{opacity:.8}.scroll-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.scroll-wrap>.chat-scroll{flex:1;min-height:0}.jump-bottom{z-index:5;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer;white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:13px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.jump-bottom:hover{border-color:var(--accent);color:var(--accent)}.sk-list{flex-direction:column;gap:6px;padding:4px 0;display:flex}.sk-item{background:linear-gradient(90deg, var(--surface-2) 25%, var(--line) 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:8px;height:44px;animation:1.4s ease-in-out infinite sk-shimmer}@keyframes sk-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.sk-item{background:var(--surface-2);animation:none}}.landing{min-height:100dvh;padding:56px 24px calc(40px + env(safe-area-inset-bottom));background:var(--ground);flex-direction:column;justify-content:center;align-items:center;gap:56px;display:flex}.landing-hero{text-align:center;max-width:620px}.landing-eyebrow{font-size:var(--fs-sm);letter-spacing:.06em;color:var(--accent);margin:0 0 14px;font-weight:600}.landing-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:34px;font-weight:700;line-height:1.35}.landing-lead{font-size:var(--fs-md);color:var(--ink-2);margin:20px 0 0;line-height:1.75}.landing-cta{flex-direction:column;align-items:center;gap:16px;margin-top:34px;display:flex}.landing-btn{border-radius:var(--radius);background:var(--accent);color:#fff;font-size:var(--fs-md);padding:14px 44px;font-weight:600;text-decoration:none;transition:filter .15s;display:inline-block}.landing-btn:hover{filter:brightness(1.08);text-decoration:none}.landing-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.landing-link{font-size:var(--fs-sm);color:var(--ink-3)}.landing-link:hover{color:var(--accent)}.landing-points{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;width:100%;max-width:940px;display:grid}.landing-point{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:24px}.landing-point h2{font-size:var(--fs-base);color:var(--ink);margin:0 0 10px;font-weight:600}.landing-point p{font-size:var(--fs-sm);color:var(--ink-2);margin:0;line-height:1.7}.landing-foot{font-size:var(--fs-xs);color:var(--ink-3);gap:10px;display:flex}@media (max-width:760px){.landing{padding:40px 20px calc(32px + env(safe-area-inset-bottom));gap:40px}.landing-title{font-size:27px}.landing-points{grid-template-columns:1fr;gap:14px}.landing-point{padding:18px}.landing-btn{text-align:center;width:100%;max-width:320px}}.brand-spin{vertical-align:middle;animation:1.2s linear infinite brand-rot;display:inline-block}@keyframes brand-rot{to{transform:rotate(360deg)}}.turn.ai .bubble.streaming.waiting:after{content:none}@media (prefers-reduced-motion:reduce){.brand-spin{opacity:.55;animation:none}}.searching-label{font-size:var(--fs-xs);color:var(--ink-3);align-items:center;gap:8px;margin:2px 0 8px;display:flex}.searching-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sources{margin:6px 0 2px}.sources-toggle{height:var(--ds-ctl-sm);font-size:var(--ds-fs-meta);border-radius:var(--ds-r-md);color:var(--ink-3);cursor:pointer;background:0 0;border:none;align-items:center;gap:7px;padding:0 10px;display:inline-flex}.sources-toggle:hover{background:var(--surface-2);color:var(--ink-2)}.sources-caret{flex-shrink:0;transition:transform .15s}.sources-toggle[aria-expanded=true] .sources-caret{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.sources-caret{transition:none}}.sources-list{flex-direction:column;gap:10px;margin:6px 0 0;padding-left:20px;display:flex}.sources-list li{font-size:var(--fs-sm);line-height:1.6}.sources-list a{color:var(--accent);text-decoration:none}.sources-list a:hover{text-decoration:underline}.sources-host{font-size:var(--fs-xs);color:var(--ink-3);margin-left:6px}.sources-quote{border-left:2px solid var(--line);font-size:var(--fs-xs);color:var(--ink-3);margin:3px 0 0;padding-left:8px}:root{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:content-box}::-webkit-scrollbar-corner{background:0 0}.tchat-shell,.tmain,.tpage,.admin-page{overflow-x:hidden}.modal,.s-menu{overflow-wrap:anywhere}.ttabs a{border-radius:var(--ds-r-md);transition:background .12s,color .12s}.ttabs a:hover{background:var(--surface-2);text-decoration:none}.ttabs a.active{background:var(--accent-soft);border-bottom-color:#0000}@media (prefers-reduced-motion:reduce){.ttabs a{transition:none}}.admin-alert{background:var(--danger-soft);color:var(--warn);border:1px solid var(--warn);font-size:var(--fs-sm);border-radius:8px;margin:0 0 20px;padding:12px 14px;line-height:1.6}.admin-alert b{color:var(--warn)}.session-list{overflow-x:clip}.session-list>*{max-width:100%}.empty-hint{font-size:var(--fs-sm);color:var(--ink-3);margin-top:8px;display:block}.lineage-help{font-size:var(--fs-xs);color:var(--ink-3);text-align:center;margin:0 0 14px}.lineage-wrap{justify-content:center;margin-bottom:24px;display:flex}.lineage{width:max-content;max-width:100%;margin:0;padding:0;list-style:none}.lineage-caption{font-size:var(--fs-xs);color:var(--ink-3);margin:0 0 6px 56px}.lineage-row{border-radius:8px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;min-height:48px;padding-right:8px;display:grid}@media (hover:hover){.lineage-row:hover{background:var(--surface-2)}}.lineage-rail{align-self:stretch;width:44px;position:relative}.rail-up,.rail-down{border-left:2px solid var(--line-strong);width:0;position:absolute;left:14px;transform:translate(-1px)}.rail-up{height:50%;top:0}.rail-down{top:50%;bottom:0}.lineage-branch .rail-up,.lineage-branch .rail-down{border-left-style:dashed;left:30px}.rail-join{border-right:2px dashed var(--line-strong);border-bottom:2px dashed var(--line-strong);border-bottom-right-radius:0;border-bottom-left-radius:12px;width:16px;height:50%;position:absolute;top:0;left:14px}.rail-dot{border:2px solid var(--line-strong);background:var(--surface);border-radius:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;position:absolute;top:50%;left:14px}.lineage-branch .rail-dot{width:9px;height:9px;margin:-4.5px 0 0 -4.5px;left:30px}.rail-dot.active{border-color:var(--accent-brand);background:var(--accent-brand);width:13px;height:13px;margin:-6.5px 0 0 -6.5px}.lineage-pick{text-align:left;cursor:pointer;min-width:0;font:inherit;background:0 0;border:none;align-items:center;gap:10px;padding:10px 4px;display:flex}.lineage-name{font-size:var(--fs-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lineage-live{font-size:var(--ds-fs-meta);background:var(--accent-brand);color:#fff;white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-weight:600}.lineage-live .live-short{display:none}.lineage-count{font-size:var(--ds-fs-meta);color:var(--ink-3);flex:none}.lineage-delta{color:var(--accent);font-weight:600}.lineage-pin{font-size:var(--fs-xs);border-radius:999px;flex:none;padding:2px 9px;font-weight:600}.lineage-pin-older{border:1px solid var(--ink-3);color:var(--ink-2)}.lineage-pin-newer{background:var(--accent);color:#fff}.lineage-pin-only{border:1px dashed var(--ink-3);color:var(--ink-3)}.lineage-row.pinned-older{background:var(--surface-2)}.lineage-row.pinned-newer{background:var(--accent-soft)}.lineage-row.pinned-older .rail-dot{border-color:var(--ink-2)}.lineage-row.pinned-newer .rail-dot{border-color:var(--accent)}.lineage-read{font-size:var(--ds-fs-meta);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:5px 12px}@media (hover:hover){.lineage-read:hover{border-color:var(--accent);color:var(--accent)}}.cmp-bar{bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:5;border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;width:fit-content;max-width:100%;margin:16px auto 0;padding:12px 18px;display:flex;position:sticky;box-shadow:0 8px 28px #00000029}.cmp-msg{font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cmp-chip{font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;padding:3px 10px;font-weight:600}.cmp-pair{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.cmp-older{border:1px solid var(--ink-3);color:var(--ink-2)}.cmp-newer{background:var(--accent);color:#fff}.cmp-arrow{color:var(--ink-3)}.cmp-acts{align-items:center;gap:8px;display:flex}.cmp-go{font-size:var(--fs-sm)}.cmp-clear{font-size:var(--fs-xs);border:1px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;border-radius:999px;padding:6px 12px}@media (hover:hover){.cmp-clear:hover{border-color:var(--ink-3);color:var(--ink-2)}}.modal .diff-line.add,.modal .diff-line.del{border-left:3px solid #0000;padding-left:8px}.modal .diff-line.add{border-left-color:var(--accent)}.modal .diff-line.del{border-left-color:var(--ink-3);background:var(--surface-2);color:var(--ink-2);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.diff-legend{font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;display:flex}.diff-key{margin-left:8px;font-weight:700}.diff-key:first-child{margin-left:0}.diff-key.add{color:var(--accent)}.diff-key.del{color:var(--ink-3)}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;padding:14px 22px;display:flex}.modal-foot-msg{font-size:var(--fs-xs);color:var(--ink-3)}.modal-foot-live{font-size:var(--fs-sm);color:var(--accent);align-items:center;gap:7px;font-weight:600;display:inline-flex}.modal-foot-live:before{content:"";background:var(--accent-brand);border-radius:50%;width:9px;height:9px}.modal-foot-exp{font-size:var(--fs-xs);color:var(--ink-3);margin-right:auto}@media (max-width:640px){.lineage{width:100%}.lineage-row{grid-template-columns:36px minmax(0,1fr) auto;padding-right:4px}.lineage-rail{width:36px}.rail-up,.rail-down,.rail-dot,.rail-join{left:12px}.lineage-branch .rail-up,.lineage-branch .rail-down,.lineage-branch .rail-dot{left:26px}.lineage-caption{margin-left:44px}.lineage-pick{gap:7px}.lineage-read{padding:5px 9px}.lineage-live{padding:2px 6px}.lineage-live .live-full{display:none}.lineage-live .live-short{display:inline}.lineage-row.active .lineage-count,.lineage-row.pinned .lineage-count{display:none}.lineage-count{font-size:var(--ds-fs-meta)}.cmp-bar{flex-direction:column;align-items:stretch;padding:12px 14px}.cmp-acts{justify-content:flex-end}.lineage-help{text-align:left}.rel-toolbar{flex-direction:column;align-items:flex-start}}.img-preview-strip{flex-wrap:wrap;gap:8px;padding:8px 4px 0;display:flex}.img-preview-item{border:1px solid var(--line);border-radius:10px;width:64px;height:64px;position:relative;overflow:hidden}.img-preview-item img{object-fit:cover;width:100%;height:100%;display:block}.composer .img-preview-remove,.img-preview-remove{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;width:18px;height:18px;min-height:0;padding:0;font-size:11px;line-height:1;position:absolute;top:2px;right:2px}.msg-images{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.msg-image-thumb{border:1px solid var(--line);cursor:zoom-in;background:0 0;border-radius:10px;width:88px;height:88px;padding:0;overflow:hidden}.msg-image-thumb img{object-fit:cover;width:100%;height:100%;display:block}.msg-image-zoom{object-fit:contain;border-radius:12px;max-width:min(90vw,900px);max-height:85vh}.attach-menu{position:relative}.attach-trigger{width:var(--ds-ctl-md);height:var(--ds-ctl-md);border-radius:var(--ds-r-md);color:var(--ink-2);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background-color .12s,color .12s;display:inline-flex}.attach-trigger:hover:not(:disabled),.attach-trigger[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}.attach-trigger:disabled{opacity:.5;cursor:default}.member-chat .composer-foot{flex-wrap:nowrap;min-width:0}.member-chat .composer-foot>*{flex-shrink:0}.member-chat .composer-foot .composer-spacer{flex:1 1 0;min-width:0}.member-chat .composer-foot .model-picker{flex-shrink:1;min-width:0}.member-chat .composer-foot .model-trigger{white-space:nowrap;overflow:hidden}.member-chat .composer-foot .model-trigger>span{text-overflow:ellipsis;overflow:hidden}.member-chat .composer-foot button{height:var(--ds-ctl-md)}.member-chat .composer-foot .model-menu button,.member-chat .composer-foot .attach-panel button{height:auto}.member-chat .composer-foot .attach-trigger{height:var(--ds-ctl-md);width:var(--ds-ctl-md)}.tchat-panel .composer-foot{flex-wrap:nowrap;min-width:0}.tchat-panel .composer-foot>*{flex-shrink:0}.tchat-panel .composer-foot .composer-spacer{flex:1 1 0;min-width:0}.tchat-panel .composer-foot .model-picker{flex-shrink:1;min-width:0}.tchat-panel .composer-foot .model-trigger{white-space:nowrap;overflow:hidden}.tchat-panel .composer-foot .model-trigger>span{text-overflow:ellipsis;overflow:hidden}.tchat-panel .composer-foot button{height:var(--ds-ctl-md)}.tchat-panel .composer-foot .model-menu button,.tchat-panel .composer-foot .attach-panel button{height:auto}.tchat-panel .composer-foot .attach-trigger{height:var(--ds-ctl-md);width:var(--ds-ctl-md)}.visually-hidden-input{opacity:0;pointer-events:none;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.attach-panel{z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;flex-direction:column;gap:1px;min-width:200px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 4px 10px #0000001a,0 12px 32px #00000029}.attach-panel.attach-panel-closed{display:none}.attach-panel .think-btn{border:none;border-radius:8px;justify-content:flex-start;width:100%;padding:8px 10px;font-size:13px}.attach-panel .think-btn.on{background:var(--accent-soft)}.model-picker-end .model-menu{left:auto;right:0}.media-card-row{justify-content:flex-start;display:flex}.media-card{border:1px solid var(--line);border-radius:var(--r-md,12px);background:var(--surface-2);width:fit-content;max-width:min(740px,100%);font-size:var(--fs-sm);align-items:center;gap:10px;margin:10px 0;padding:9px 14px;display:flex}.media-card-err{border-color:var(--danger)}.media-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.media-card-body strong{text-overflow:ellipsis;white-space:nowrap;max-width:32ch;font-weight:600;overflow:hidden}.media-card-sub{color:var(--ink-3);font-size:var(--fs-xs)}.media-card-use{height:32px;font-size:var(--fs-xs);flex-shrink:0;padding:0 12px}.media-card-x{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0}.media-card-x:hover{background:var(--surface-3,var(--surface));color:var(--ink)}.perm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:18px 20px}.perm-notice-slot{min-height:42px}.perm-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.perm-email{text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.perm-note{color:var(--ink-3);font-size:var(--ds-fs-meta);margin:0}.perm-bundles{margin-bottom:10px}.perm-label{color:var(--ink-3);font-size:var(--ds-fs-meta);margin-right:4px}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;display:grid}.perm-item{border:1px solid var(--line);cursor:pointer;border-radius:8px;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;padding:7px 9px;display:grid}.perm-item.on{border-color:var(--accent);background:var(--surface-2)}.perm-item input{grid-row:span 2;align-self:center}.perm-name{font-size:var(--ds-fs-meta)}.perm-desc{color:var(--ink-3);font-size:var(--ds-fs-meta);grid-column:2;line-height:1.4}.perm-log{margin:0;padding:0;list-style:none}.perm-log li{border-bottom:1px solid var(--line);font-size:var(--ds-fs-meta);flex-wrap:wrap;align-items:baseline;gap:8px;padding:7px 0;display:flex}.perm-act{font-size:var(--ds-fs-meta);border-radius:999px;padding:1px 7px}.perm-act.on{background:var(--accent-soft);color:var(--accent)}.perm-act.off{background:var(--danger-soft);color:var(--danger)}.perm-cap{color:var(--ink-2)}.perm-meta{color:var(--ink-3);font-size:var(--ds-fs-meta);margin-left:auto}@media (max-width:640px){.perm-grid{grid-template-columns:1fr}.perm-meta{width:100%;margin-left:0}}.req-panel{border:1px solid var(--accent);background:var(--accent-soft);border-radius:10px;margin-bottom:16px;padding:12px 14px}.req-title{font-size:var(--fs-sm);color:var(--accent);margin:0 0 10px}.req-row{border-top:1px solid var(--line);gap:4px;padding:9px 0;display:grid}.req-row:first-of-type{border-top:none;padding-top:0}.req-main{align-items:baseline;gap:10px;display:flex}.req-version{font-weight:600;font-size:var(--fs-sm)}.req-quorum,.req-reason{font-size:var(--ds-fs-meta);color:var(--ink-2)}.req-meta{font-size:var(--ds-fs-meta);color:var(--ink-3)}.req-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.req-mine{color:var(--ink-3);font-size:12px}.req-retry{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;padding:2px 9px;font-size:12px}.review-page{box-sizing:border-box;flex-direction:column;flex:1;width:100%;min-height:0;padding:20px 24px;display:flex;overflow:hidden auto}@media (max-width:760px){.review-page{padding:16px 14px;display:block;overflow-y:auto}}.review-head{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.review-head .page-desc{margin-bottom:8px}.review-quorum{font-size:var(--ds-fs-meta);color:var(--ink-3);border:1px solid var(--line);white-space:nowrap;border-radius:999px;margin-left:auto;padding:4px 10px}.rq-filters{flex-wrap:wrap;gap:4px;display:flex}.rq-filters button{font-size:var(--ds-fs-meta);height:var(--ds-ctl-sm);padding:0 var(--ds-sp-3);border-radius:var(--ds-r-full);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:0 0}.rq-filters button.on{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong);font-weight:600}.rq-count{color:var(--accent);margin-left:5px;font-size:11px;font-weight:700}.rs-empty{font-size:var(--ds-fs-meta);color:var(--ink-3);padding:6px 2px;line-height:1.6}.rq-state{font-size:var(--ds-fs-meta);border:1px solid var(--line);color:var(--ink-3);white-space:nowrap;border-radius:4px;padding:2px 6px;font-weight:600}.rq-state.s-unreviewed{background:var(--surface-2)}.rq-state.s-changes_requested{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.rq-state.s-in_review{color:var(--ink-2);border-color:var(--line-strong);background:0 0}.rq-state.s-approved{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong);font-weight:700}.rq-state.s-promoted{background:var(--surface-2);color:var(--ink-2)}.rq-state.s-retired{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-soft)}.rm-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rm-sec{font-size:var(--ds-fs-meta);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:0 0 7px}.rm-diff{margin-bottom:4px}.rs-timeline{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.rs-ev{border-left:2px solid var(--line);padding-left:9px;font-size:12px}.rs-ev.a-approved{border-left-color:var(--line-strong)}.rs-ev.a-rejected,.rs-ev.a-retired{border-left-color:var(--danger)}.rs-ev.a-promoted{border-left-color:var(--accent)}.rs-ev-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.rs-ev-who{color:var(--ink-3);font-size:11px}.rs-ev-reason{color:var(--ink-2);white-space:pre-wrap;word-break:break-word;margin:3px 0 0;line-height:1.6}.rs-ev-note{color:var(--ink-3);margin-top:3px;font-size:10.5px;font-style:italic;display:inline-block}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--line) 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s ease-in-out infinite sk-shimmer}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-2);animation:none}}.rel-now{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;margin:12px 0 4px;padding:12px 14px;display:flex}.rel-now.rel-none{border-color:var(--danger);background:var(--danger-soft)}.rel-now-main{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.rel-now-label{font-size:var(--ds-fs-meta);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.rel-now-name{font-size:15px;font-weight:650}.rel-now-meta{font-size:var(--ds-fs-meta);color:var(--ink-3)}.rel-checks{flex-wrap:wrap;gap:6px;display:flex}.rel-check{font-size:var(--ds-fs-meta);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:5px;padding:3px 8px}.rel-check.ok{border-color:var(--line-strong)}.rel-check.bad{background:var(--danger-soft);color:var(--danger);border-color:var(--danger);font-weight:600}.rel-hist-toggle{font-size:var(--ds-fs-meta);height:var(--ds-ctl-sm);border-radius:var(--ds-r-md);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;background:0 0;align-self:flex-start;align-items:center;padding:0 8px;display:inline-flex}.rel-hist{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.rel-hist li{border-left:2px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:7px;padding-left:9px;font-size:12px;display:flex}.rel-hist-act{color:var(--ink-2);font-weight:600}.rel-hist-prev{color:var(--ink-3)}.rel-hist-meta{color:var(--ink-3);font-size:11.5px}.rel-hist-reason{color:var(--ink-2);flex-basis:100%}.lineage-state{font-size:var(--ds-fs-meta);border:1px solid var(--line-strong);color:var(--ink-3);white-space:nowrap;border-radius:999px;padding:2px 7px;font-weight:600}.lineage-state.st-awaiting{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.lineage-state.st-superseded{color:var(--ink-3);background:0 0}.mf-diff{margin:4px 0 14px}.mf-title{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:0 0 6px;font-size:12px}.mf-none,.mf-sum{font-size:var(--fs-xs);color:var(--ink-2);margin:0 0 6px}.mf-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.mf-list li{border-radius:4px;padding:2px 6px;font-size:13px;line-height:1.5}.mf-mark{margin-right:6px;font-weight:700}.mf-add{background:var(--accent-soft);color:var(--accent)}.mf-del{background:var(--danger-soft);color:var(--danger)}.mf-checks{margin-bottom:14px}.ver-skel-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.ver-skel{height:46px}.rsl-filters{margin-bottom:var(--ds-sp-4)}.rsl-list{gap:var(--ds-sp-3);flex-direction:column;display:flex}.rsl-skel{border-radius:var(--ds-r-md);height:76px}.rsl-card{gap:var(--ds-sp-2);text-align:left;cursor:pointer;width:100%;height:auto;padding:var(--ds-sp-4);background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-md);transition:border-color var(--ds-dur-base) var(--ds-ease), background-color var(--ds-dur-base) var(--ds-ease);flex-direction:column;display:flex}.rsl-card:hover{border-color:var(--ds-line-strong);background:var(--ds-surface-2)}.rsl-card:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rsl-card-top{justify-content:space-between;align-items:baseline;gap:var(--ds-sp-3);flex-wrap:wrap;display:flex}.rsl-card-name{font-size:var(--ds-fs-md);color:var(--ds-ink);overflow-wrap:anywhere;min-width:0;font-weight:600}.rsl-badges{align-items:center;gap:var(--ds-sp-2);flex-wrap:wrap;display:flex}.rsl-badge{font-size:var(--ds-fs-legal);border-radius:var(--ds-r-full);white-space:nowrap;border:1px solid #0000;padding:2px 8px;font-weight:600}.rsl-badge.s-unreviewed{background:var(--ds-accent-soft);color:var(--ds-accent)}.rsl-badge.s-in_review{background:var(--ds-surface-2);color:var(--ds-ink-2);border-color:var(--ds-line-strong)}.rsl-badge.s-changes_requested{background:var(--ds-warn-soft);color:var(--ds-warn)}.rsl-badge.done{color:var(--ds-ink-3);background:0 0}.rsl-card-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.rsl-mine{color:var(--ds-accent)}.rsl-empty{padding:var(--ds-sp-10) var(--ds-sp-4);text-align:center}.rsl-empty-title{font-size:var(--ds-fs-md);color:var(--ds-ink-2);margin-bottom:var(--ds-sp-2)}.rsl-empty-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);line-height:1.7}.rc-page{background:var(--ds-ground-serve);flex-direction:column;flex:1;min-height:0;display:flex}.rc-head{align-items:center;gap:var(--ds-sp-3);padding:var(--ds-sp-3) var(--ds-sp-4);border-bottom:1px solid var(--ds-line);background:var(--ds-surface-serve);flex-shrink:0;display:flex}.rc-back{width:var(--ds-ctl-md);height:var(--ds-ctl-md);border-radius:var(--ds-r-sm);color:var(--ds-ink-2);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:16px;display:inline-flex}.rc-back:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.rc-back:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-title{font-size:var(--ds-fs-md);color:var(--ds-ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.rc-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);flex-shrink:0}.rc-open{font-size:var(--ds-fs-meta);border-radius:var(--ds-r-full);background:var(--ds-accent-soft);color:var(--ds-accent);flex-shrink:0;padding:2px 8px;font-weight:600}.rc-body{flex:1;min-height:0;position:relative;overflow-y:auto}.rc-body .chat-scroll{min-height:0;padding:24px 20px 32px}@media (max-width:640px){.rc-body .chat-scroll{padding-left:14px;padding-right:14px}}.rc-marker{margin-top:var(--ds-sp-2);justify-content:flex-end;display:flex}.rc-marker-btn{font-size:var(--ds-fs-meta);border-radius:var(--ds-r-full);border:1px solid var(--ds-line);background:var(--ds-surface);color:var(--ds-ink-2);cursor:pointer;align-items:center;gap:6px;padding:3px 10px;font-weight:600;display:inline-flex}.rc-marker-btn:hover{border-color:var(--ds-line-strong);color:var(--ds-ink)}.rc-marker-btn:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-marker-btn.s-unreviewed{background:var(--ds-accent-soft);color:var(--ds-accent);border-color:#0000}.rc-marker-btn.s-changes_requested{background:var(--ds-warn-soft);color:var(--ds-warn);border-color:#0000}.rc-marker-btn.s-approved,.rc-marker-btn.s-promoted{opacity:.7}.rc-marker-btn.s-retired{opacity:.55}.rc-marker-n{font-weight:400;font-size:var(--ds-fs-legal);opacity:.8;border-left:1px solid;margin-left:2px;padding-left:6px}.rc-marker.band{padding-left:var(--ds-sp-4);position:relative}.rc-marker.band:before{content:"";border-radius:var(--ds-r-full);background:var(--ds-accent);opacity:.55;width:2px;position:absolute;top:-2px;bottom:-2px;left:0}.rc-marker.on .rc-marker-btn{box-shadow:var(--ds-focus-ring)}.rc-orphans{margin:var(--ds-sp-6) auto;max-width:740px;padding:var(--ds-sp-4);border:1px dashed var(--ds-line-strong);border-radius:var(--ds-r-md)}.rc-orphan-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-bottom:var(--ds-sp-3)}.rc-orphan{align-items:center;gap:var(--ds-sp-3);text-align:left;width:100%;padding:var(--ds-sp-2);cursor:pointer;border-radius:var(--ds-r-sm);color:var(--ds-ink);font-size:var(--ds-fs-meta);background:0 0;border:none;display:flex}.rc-orphan:hover{background:var(--ds-surface-2)}.rc-orphan-title{overflow-wrap:anywhere;min-width:0}.rc-nav{right:var(--ds-sp-4);bottom:calc(var(--ds-sp-4) + env(safe-area-inset-bottom));z-index:5;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-r-full);box-shadow:var(--ds-shadow-2);gap:2px;padding:4px;display:flex;position:absolute}.rc-nav button{font-size:var(--ds-fs-legal);min-height:32px;color:var(--ds-ink-2);border-radius:var(--ds-r-full);cursor:pointer;background:0 0;border:none;padding:6px 10px}.rc-nav button:hover{background:var(--ds-surface-2);color:var(--ds-ink)}.rc-nav button:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-page.tool-open .rc-nav{display:none}.rc-tool{background:var(--ds-surface);border-top:1px solid var(--ds-line-strong);max-height:60dvh;box-shadow:var(--ds-shadow-3);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;flex-shrink:0;display:flex}.rc-tool-head{align-items:center;gap:var(--ds-sp-3);padding:var(--ds-sp-3) var(--ds-sp-4);border-bottom:1px solid var(--ds-line);display:flex}.rc-tool-title{font-size:var(--ds-fs-meta);color:var(--ds-ink);font-weight:600}.rc-tool-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);flex:1;min-width:0}.rc-tool-close{font-size:var(--ds-fs-meta);border:1px solid var(--ds-line-strong);border-radius:var(--ds-r-sm);background:var(--ds-surface);min-height:32px;color:var(--ds-ink-2);cursor:pointer;flex-shrink:0;padding:6px 12px}.rc-tool-close:hover{color:var(--ds-ink)}.rc-tool-close:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-tool-pager{justify-content:center;align-items:center;gap:var(--ds-sp-3);padding:var(--ds-sp-2);font-size:var(--ds-fs-meta);color:var(--ds-ink-2);border-bottom:1px solid var(--ds-line);display:flex}.rc-tool-pager button{border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);background:var(--ds-surface);min-width:32px;min-height:32px;color:var(--ds-ink-2);cursor:pointer;font-size:16px}.rc-tool-pager button:disabled{opacity:.4;cursor:default}.rc-tool-scroll{min-height:0;padding:var(--ds-sp-4);flex:1;overflow-y:auto}.rc-cand{font-size:var(--ds-fs-body);color:var(--ds-ink);padding:var(--ds-sp-3);background:var(--ds-surface-2);border-radius:var(--ds-r-sm);overflow-wrap:anywhere;line-height:1.7}.rc-cand-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-top:var(--ds-sp-2);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.rc-mine-note,.rc-blocked,.rc-superseded,.rc-hold-limit,.rc-nodiff{font-size:var(--ds-fs-meta);margin-top:var(--ds-sp-3);line-height:1.7}.rc-mine-note{color:var(--ds-accent)}.rc-blocked,.rc-superseded{color:var(--ds-warn);background:var(--ds-warn-soft);padding:var(--ds-sp-2) var(--ds-sp-3);border-radius:var(--ds-r-sm)}.rc-hold-limit,.rc-nodiff{color:var(--ds-ink-3)}.diff-legend{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-left:var(--ds-sp-3);font-weight:400}.diff-legend b{color:var(--ds-ink-2);font-weight:700}.diff-mark{width:1em;color:var(--ds-ink-3);display:inline-block}.rc-tool-actions{align-items:center;gap:var(--ds-sp-2);padding:var(--ds-sp-3) var(--ds-sp-4);border-top:1px solid var(--ds-line);flex-wrap:wrap;justify-content:flex-end;display:flex}.rc-tool-actions .rc-reject{margin-right:auto}.rc-tool-actions button{height:var(--ds-ctl-lg);padding:0 var(--ds-sp-4);font-size:var(--ds-fs-meta);border-radius:var(--ds-r-md);cursor:pointer;border:1px solid var(--ds-line-strong);background:var(--ds-surface);color:var(--ds-ink)}.rc-tool-actions button:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-tool-actions button.primary{background:var(--ds-accent);color:var(--ds-on-accent);border-color:#0000;font-weight:600}.rc-tool-actions button.primary:hover:not(:disabled){background:var(--ds-accent-deep)}.rc-tool-actions button.danger{color:var(--ds-danger);border-color:var(--ds-line-strong)}.rc-tool-actions button.danger:hover:not(:disabled){background:var(--ds-danger-soft)}.rc-tool-actions button:disabled{opacity:.45;cursor:default}.cc-wrap{gap:var(--ds-sp-3);margin-bottom:var(--ds-sp-5);flex-direction:column;display:flex}.cc-quiet{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.cc-card{padding:var(--ds-sp-5);background:var(--ds-surface);border:1px solid var(--ds-accent);border-radius:var(--ds-r-lg)}.cc-title{font-size:var(--ds-fs-lg);color:var(--ds-ink);margin-bottom:var(--ds-sp-4);font-weight:700;line-height:1.5}.cc-facts{gap:var(--ds-sp-2);margin-bottom:var(--ds-sp-4);flex-direction:column;display:flex}.cc-facts>div{gap:var(--ds-sp-3);font-size:var(--ds-fs-meta);flex-wrap:wrap;display:flex}.cc-facts dt{color:var(--ds-ink-3);min-width:92px}.cc-facts dd{color:var(--ds-ink);font-weight:600}.cc-changes{margin-bottom:var(--ds-sp-4)}.cc-difflist{margin-top:var(--ds-sp-2);flex-direction:column;gap:4px;display:flex}.cc-difflist li{align-items:baseline;gap:var(--ds-sp-2);font-size:var(--ds-fs-meta);padding:4px var(--ds-sp-2);border-radius:var(--ds-r-sm);overflow-wrap:anywhere;display:flex}.cc-difflist li.add{background:var(--ds-ok-soft);color:var(--ds-ok)}.cc-difflist li.del{background:var(--ds-danger-soft);color:var(--ds-danger)}.cc-diff-note{font-size:var(--ds-fs-meta);opacity:.8;flex-shrink:0;margin-left:auto}.cc-nochange{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.cc-who{font-size:var(--ds-fs-meta);color:var(--ds-ink-2);margin-bottom:var(--ds-sp-2)}.cc-progress{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-bottom:var(--ds-sp-4)}.cc-actions{align-items:center;gap:var(--ds-sp-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.cc-actions .cc-waiting,.cc-actions button.danger{margin-right:auto}.cc-actions button{height:var(--ds-ctl-lg);padding:0 var(--ds-sp-5);font-size:var(--ds-fs-meta);border-radius:var(--ds-r-md);cursor:pointer;border:1px solid var(--ds-line-strong);background:var(--ds-surface);color:var(--ds-ink)}.cc-actions button:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.cc-actions button.primary{background:var(--ds-accent);color:var(--ds-on-accent);border-color:#0000;font-weight:600}.cc-actions button.primary:hover:not(:disabled){background:var(--ds-accent-deep)}.cc-actions button.danger{color:var(--ds-danger)}.cc-actions button.danger:hover:not(:disabled){background:var(--ds-danger-soft)}.cc-actions button:disabled{opacity:.45;cursor:default}.cc-waiting{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}@media (max-width:640px){.rsl-card{padding:var(--ds-sp-3)}.rc-head{padding:var(--ds-sp-2) var(--ds-sp-3)}.rc-tool-scroll,.rc-tool-actions{padding:var(--ds-sp-3)}.rc-tool-actions button{flex:auto;min-width:88px}.rc-tool-actions .rc-reject{margin-right:0}.rc-next{flex-basis:100%}.cc-card{padding:var(--ds-sp-4)}.cc-actions button{flex:auto}.rc-page{left:0;right:0;top:var(--vvt,0px);height:var(--vvh,100dvh);position:fixed;overflow:hidden}.rc-tool{max-height:70dvh}}.rc-escape{min-height:var(--ds-touch);padding:0 var(--ds-sp-4);margin-top:var(--ds-sp-3);font-size:var(--ds-fs-meta);border:1px solid var(--ds-line-strong);border-radius:var(--ds-r-sm);background:var(--ds-surface);color:var(--ds-ink-2);cursor:pointer;align-items:center;text-decoration:none;display:inline-flex}.rc-escape:hover{border-color:var(--ds-accent);color:var(--ds-accent);text-decoration:none}.rc-escape:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.rc-done{align-items:flex-start;gap:var(--ds-sp-2);padding:var(--ds-sp-6) var(--ds-sp-5);flex-direction:column;display:flex}.rc-done-msg{font-size:var(--ds-fs-body);color:var(--ds-ink);font-weight:600}.cc-blocked{align-items:center;gap:var(--ds-sp-2);color:var(--ds-ink-2);flex-wrap:wrap;display:flex}.mon-views{align-items:center;gap:var(--ds-sp-1);margin:var(--ds-sp-4) 0 var(--ds-sp-3);border-bottom:1px solid var(--ds-line);scrollbar-width:none;min-width:0;display:flex;overflow-x:auto}.mon-views::-webkit-scrollbar{display:none}.mon-view{white-space:nowrap;height:var(--ds-ctl-lg);padding:0 var(--ds-sp-3);font-size:var(--ds-fs-sm);color:var(--ds-ink-2);border-bottom:2px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;text-decoration:none;display:inline-flex}.mon-view:hover{color:var(--ds-ink)}.mon-view.active{color:var(--ds-accent);border-bottom-color:var(--ds-accent);font-weight:600}.mon-view:focus-visible{box-shadow:var(--ds-focus-ring);border-radius:var(--ds-r-sm);outline:none}.mon-modes,.mon-filters{align-items:center;gap:var(--ds-sp-2);margin-bottom:var(--ds-sp-3);flex-wrap:wrap;display:flex}.mon-modes button,.mon-filters button{height:var(--ds-ctl-sm);padding:0 var(--ds-sp-3);font-size:var(--ds-fs-sm);border:1px solid var(--ds-line);border-radius:var(--ds-r-full);background:var(--ds-surface);color:var(--ds-ink-2);cursor:pointer;align-items:center;display:inline-flex}.mon-modes button:hover,.mon-filters button:hover{border-color:var(--ds-line-strong);color:var(--ds-ink)}.mon-modes button.active,.mon-filters button.active{background:var(--ds-accent-soft);color:var(--ds-accent);border-color:var(--ds-accent);font-weight:600}.mon-search{margin-bottom:var(--ds-sp-3);align-items:center;display:flex;position:relative}.mon-search-input{box-sizing:border-box;width:100%;padding:var(--ds-sp-2) var(--ds-sp-8) var(--ds-sp-2) var(--ds-sp-3);font-size:var(--ds-fs-body);border:1px solid var(--ds-line);border-radius:var(--ds-r-md);background:var(--ds-surface);color:var(--ds-ink);font-family:inherit}.mon-search-input:focus{border-color:var(--ds-accent);box-shadow:var(--ds-focus-ring);outline:none}.mon-search-clear{right:var(--ds-sp-2);cursor:pointer;color:var(--ds-ink-3);font-size:var(--ds-fs-sm);padding:var(--ds-sp-1);background:0 0;border:0;position:absolute}.mon-search-clear:hover{color:var(--ds-ink)}.mon-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-bottom:var(--ds-sp-3)}.mon-pager{justify-content:space-between;align-items:center;gap:var(--ds-sp-3);margin-top:var(--ds-sp-4);padding-top:var(--ds-sp-3);border-top:1px solid var(--ds-line);flex-wrap:wrap;display:flex}.mon-pager-count{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.mon-pager-btns{align-items:center;gap:var(--ds-sp-2);display:flex}.mon-pager-pos{font-size:var(--ds-fs-meta);color:var(--ds-ink-2);text-align:center;min-width:56px}.mon-pager-btns button{padding:var(--ds-sp-1) var(--ds-sp-3);font-size:var(--ds-fs-sm);border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);background:var(--ds-surface);color:var(--ds-ink-2);cursor:pointer;white-space:nowrap}.mon-pager-btns button:disabled{opacity:.4;cursor:default}.mon-pager-btns button:not(:disabled):hover{border-color:var(--ds-line-strong);color:var(--ds-ink)}.mon-skel-list{gap:var(--ds-sp-3);flex-direction:column;display:flex}.mon-skel{border-radius:var(--ds-r-md);height:68px}.admin-list>button.admin-row{text-align:left;width:100%;font:inherit;color:inherit;display:block}.admin-row:focus-visible{box-shadow:var(--ds-focus-ring);outline:none}.admin-row.is-static{cursor:default}.admin-row.is-static:hover{border-color:var(--ds-line)}.sp-head{border:1px solid var(--ds-line);border-radius:var(--ds-r-md);padding:var(--ds-sp-4);background:var(--ds-surface-2);margin-bottom:var(--ds-sp-3)}.sp-head-main{align-items:center;gap:var(--ds-sp-2);flex-wrap:wrap;display:flex}.sp-version{font-size:var(--ds-fs-md)}.sp-head-meta{gap:var(--ds-sp-3);margin-top:var(--ds-sp-2);font-size:var(--ds-fs-meta);color:var(--ds-ink-3);flex-wrap:wrap;display:flex}.sp-note{padding:var(--ds-sp-3);border-radius:var(--ds-r-md);background:var(--ds-warn-soft);color:var(--ds-warn);font-size:var(--ds-fs-sm);margin-bottom:var(--ds-sp-3);line-height:1.7}.sp-actions{align-items:center;gap:var(--ds-sp-3);margin-bottom:var(--ds-sp-3);flex-wrap:wrap;display:flex}.sp-copy{height:var(--ds-ctl-md);padding:0 var(--ds-sp-4);font-size:var(--ds-fs-sm);border:1px solid var(--ds-line);border-radius:var(--ds-r-md);background:var(--ds-surface);color:var(--ds-ink-2);cursor:pointer;white-space:nowrap;align-items:center;display:inline-flex}.sp-copy:hover{border-color:var(--ds-line-strong);color:var(--ds-ink)}.sp-link{font-size:var(--ds-fs-sm);color:var(--ds-accent);text-decoration:none}.sp-link:hover{text-decoration:underline}.sp-full{max-height:60vh;overflow:auto}.reqh{margin:var(--ds-sp-5) 0}.reqh-title{font-size:var(--ds-fs-md);margin-bottom:var(--ds-sp-2)}.reqh-list{gap:var(--ds-sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reqh-row{align-items:baseline;gap:var(--ds-sp-2);padding:var(--ds-sp-2) var(--ds-sp-3);border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);font-size:var(--ds-fs-sm);background:var(--ds-surface);flex-wrap:wrap;display:flex}.reqh-mark{color:var(--ds-ink-3);font-weight:700}.reqh-row.is-ratified .reqh-mark{color:var(--ds-accent)}.reqh-row.is-rejected .reqh-mark{color:var(--ds-danger)}.reqh-name{font-weight:600}.reqh-verdict{color:var(--ds-ink-2)}.reqh-row.is-rejected .reqh-verdict{color:var(--ds-danger)}.reqh-reason{color:var(--ds-ink-2);flex-basis:100%;line-height:1.7}.reqh-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);white-space:nowrap;margin-left:auto}.reqh-note{margin-top:var(--ds-sp-2);font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.rel-make{align-items:center;gap:var(--ds-sp-3);margin:var(--ds-sp-4) 0;flex-wrap:wrap;display:flex}.rel-make-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.dec-card{border:1px solid var(--ds-line);border-radius:var(--ds-r-md);padding:var(--ds-sp-4);margin-bottom:var(--ds-sp-4);background:var(--ds-surface)}.dec-card.is-quiet{opacity:.7}.dec-title{font-size:var(--ds-fs-md);margin:0 0 var(--ds-sp-2)}.dec-now{font-size:var(--ds-fs-body);color:var(--ds-ink);margin:0 0 var(--ds-sp-3);line-height:1.8}.dec-kv{gap:var(--ds-sp-2) var(--ds-sp-4);margin:0 0 var(--ds-sp-3);grid-template-columns:auto 1fr;display:grid}.dec-kv dt{font-size:var(--ds-fs-sm);color:var(--ds-ink-2);white-space:nowrap}.dec-kv dd{font-size:var(--ds-fs-sm);color:var(--ds-ink);margin:0}.dec-note{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-top:var(--ds-sp-1);line-height:1.7;display:block}.dec-warn{border-left:3px solid var(--ds-warn);background:var(--ds-warn-soft);padding:var(--ds-sp-3);border-radius:var(--ds-r-sm);font-size:var(--ds-fs-sm);color:var(--ds-ink);line-height:1.8}.dec-warn p{margin:var(--ds-sp-2) 0 0}.dec-how{color:var(--ds-ink-2)}.perm-name-main{font-size:var(--ds-fs-body);color:var(--ds-ink);font-weight:600}.perm-head .perm-email{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.perm-danger{margin-top:var(--ds-sp-3);border:1px solid var(--ds-line);border-radius:var(--ds-r-sm);overflow:hidden}.perm-danger.open{border-color:var(--ds-warn)}.perm-danger-toggle{align-items:center;gap:var(--ds-sp-2);width:100%;padding:var(--ds-sp-2) var(--ds-sp-3);font-size:var(--ds-fs-sm);background:var(--ds-warn-soft);color:var(--ds-warn);cursor:pointer;text-align:left;border:0;font-family:inherit;display:flex}.perm-danger-mark{font-weight:700}.perm-danger-caret{font-size:var(--ds-fs-meta);margin-left:auto}.perm-danger-note{margin:var(--ds-sp-2) var(--ds-sp-3) 0;font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.perm-danger .perm-grid{padding:var(--ds-sp-2) var(--ds-sp-3) var(--ds-sp-3)}.perm-item.is-danger{border-color:var(--ds-warn)}.perm-item.locked{opacity:.65;cursor:not-allowed}.perm-item.locked .perm-desc{color:var(--ds-warn)}.perm-foot{margin-top:var(--ds-sp-5);font-size:var(--ds-fs-sm);color:var(--ds-ink-3)}.modal-head>h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.modal-head>button{white-space:nowrap;flex-shrink:0}@media (max-width:640px){.mon-pager{align-items:stretch;gap:var(--ds-sp-2);flex-direction:column}.mon-pager-btns{justify-content:space-between}.sp-head-meta{gap:var(--ds-sp-2)}.sp-full{max-height:50vh;font-size:var(--ds-fs-meta)}.reqh-meta{white-space:normal;flex-basis:100%;margin-left:0}.perm-grid{grid-template-columns:1fr}.dec-kv{gap:var(--ds-sp-1);grid-template-columns:1fr}.dec-kv dt{margin-top:var(--ds-sp-2)}}.admin-page .mon-views+.admin-tab-desc{margin-top:0}.reqh-more{font-weight:400;font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.req-hint{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin:0 0 var(--ds-sp-3);line-height:1.7}.req-left{font-size:var(--ds-fs-meta);color:var(--ds-ink-2)}.mchat-layout{background:var(--ds-ground-serve)}.mchat-layout .session-list{background:var(--ds-surface);border-right-color:var(--ds-line)}.mc-head{background:var(--ds-ground-serve);border-bottom-color:var(--ds-line)}.mc-head h1{font-size:var(--ds-fs-md);color:var(--ds-ink)}.member-chat .turn.ai .bubble{font-size:var(--ds-fs-body);color:var(--ds-ink);line-height:1.8}.member-chat .turn.ai .bubble.err{background:var(--ds-danger-soft);color:var(--ds-danger);border-radius:var(--ds-r-md)}.member-chat .turn.user .bubble{background:var(--ds-surface-serve);color:var(--ds-ink);border:1px solid var(--ds-line);font-size:var(--ds-fs-body);line-height:1.65}.member-chat .composer{background:var(--ds-surface-serve);border-color:var(--ds-line);transition:border-color var(--ds-dur-base) var(--ds-ease), box-shadow var(--ds-dur-base) var(--ds-ease)}.member-chat .composer:focus-within{border-color:var(--ds-accent);box-shadow:var(--ds-shadow-1)}.member-chat .composer textarea{font-size:var(--ds-fs-body);color:var(--ds-ink);min-height:52px;line-height:1.6}.member-chat .composer textarea::placeholder{color:var(--ds-ink-3)}.member-chat .empty{color:var(--ds-ink-2);font-size:var(--ds-fs-md)}.member-chat .empty .empty-hint{font-size:var(--ds-fs-meta);color:var(--ds-ink-3)}.member-chat .turn-tools{opacity:.45;transition:opacity var(--ds-dur-base) var(--ds-ease)}.member-chat .turn:hover .turn-tools,.member-chat .turn-tools:focus-within{opacity:1}@media (hover:none){.member-chat .turn-tools{opacity:1}}.mchat-layout .s-note{font-size:var(--ds-fs-meta);color:var(--ds-ink)}.mchat-layout .s-meta{font-size:var(--ds-fs-meta);color:var(--ds-ink-3);margin-top:2px}.mchat-layout .session-item-wrap:hover{background:var(--ds-surface-2)}.mchat-layout .session-item-wrap.active{background:var(--ds-accent-soft)}@media (prefers-reduced-motion:reduce){.member-chat .composer,.member-chat .turn-tools{transition:none}}.error-banner .banner-actions{gap:var(--ds-sp-2);flex-shrink:0;margin-left:auto;display:flex}.error-banner .banner-actions .banner-action{margin-left:0}@media (max-width:640px){.error-banner:has(.banner-action){flex-wrap:wrap}.error-banner .banner-actions{flex-basis:100%;margin-left:0}}@media (pointer:coarse){.rc-tool-actions button,.cc-actions button,.lineage-read,.lineage-pick,.mon-view,.sp-copy,.perm-danger-toggle,.rel-make button,.perm-bundles button,.mon-pager-btns button,.think-label,.new-btn,.grp-add,.sl-foot-btn{min-height:var(--ds-touch);height:auto}.mc-menu,.theme-toggle,.ttab-util-btn,.attach-trigger,.rc-back{position:relative}.mc-menu:after,.tchat-menu:after,.theme-toggle:after,.ttab-util-btn:after,.attach-trigger:after,.rc-back:after{content:"";width:var(--ds-touch);height:var(--ds-touch);z-index:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mc-signout,.mc-toteacher,.composer-send,.think-btn,.ttab-spacechip-btn,.sources-toggle,.rel-hist-toggle,.rq-filters button,.mon-filters button,.mon-modes button{position:relative}.mc-signout:after,.mc-toteacher:after,.composer-send:after,.think-btn:after,.model-trigger:after,.ttab-spacechip-btn:after,.sources-toggle:after,.rel-hist-toggle:after,.rq-filters button:after,.mon-filters button:after,.mon-modes button:after{content:"";width:100%;height:var(--ds-touch);z-index:1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.s-menu-btn{min-width:var(--ds-touch)}.turn-copy{min-width:var(--ds-touch);position:relative}.turn-copy:after{content:"";width:100%;height:var(--ds-touch);z-index:1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sp-link{min-height:var(--ds-touch)}a.mc-toteacher,a.mon-view,a.sp-link,a.lineage-read,a.lineage-pick,a.sl-foot-btn,a.new-btn{justify-content:center;align-items:center;display:inline-flex}a.mon-view,.ttabs .ttab-btn,.ttabs a{border-top:2px solid #0000}}.acct-form{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.acct-form input[type=email]{flex:220px;min-width:0}.acct-form select{flex:none}.acct-row-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.acct-email{color:var(--muted,#888);font-size:12.5px;display:block}.acct-badges{flex-shrink:0;gap:6px;display:flex}.acct-badge{background:var(--chip-bg,#80808026);border-radius:999px;padding:2px 8px;font-size:12px}.acct-badge.is-warn{color:var(--warn-fg,#b47800);background:#f0a0002e}.acct-row-foot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.acct-date{color:var(--muted,#888);font-size:12.5px}.acct-reset{color:var(--danger-fg,#c0392b)}.acct-temp-pw{background:var(--code-bg,#8080801f);letter-spacing:1px;-webkit-user-select:all;user-select:all;text-align:center;border-radius:8px;margin:12px 0;padding:10px 12px;font-size:18px;display:block}.pwchange{flex-direction:column;gap:10px;margin-top:8px;display:flex}.pwchange label{flex-direction:column;gap:4px;font-size:14px;display:flex}.pwchange-hint{color:var(--muted,#888);font-size:12.5px}.pwchange-ok{color:var(--ok-fg,#1e8e3e);font-size:13.5px}.pwchange-err{color:var(--danger-fg,#c0392b);font-size:13.5px}.settings-pw{margin-top:14px}.settings-pw>summary{cursor:pointer;font-weight:600}.mustchange-banner{color:var(--warn-fg,#8a5c00);background:#f0a00024;justify-content:center;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;display:flex}.studio-link{color:inherit;font-weight:600;text-decoration:underline}
