/* Quiet Focus v6 surfaces; original feature components keep their data and behavior. */
@font-face { font-family:Outfit; src:url('vendor/Outfit.ttf') format('truetype'); font-weight:100 900; font-display:swap; }

body { background:var(--bg); }
button,a,input,select,textarea { touch-action:manipulation; }
button { -webkit-tap-highlight-color:transparent; }
button:active:not(:disabled) { transition-duration:.12s; }
svg { flex-shrink:0; }
.skip-link { position:fixed;top:8px;left:20px;transform:translateY(-200%);z-index:1000;background:var(--surface);padding:12px; }
.skip-link:focus { transform:none; }
#app:focus { outline:0; }
.top { box-sizing:content-box;position:sticky;top:0;height:94px;background:var(--bg);border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:10; }
.top.scrolled { background:var(--bg);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none; }
.topin,.wrap { width:min(1200px,calc(100% - 96px));max-width:1200px;margin-inline:auto; }
.topin { height:100%;padding:0;display:flex;gap:24px;align-items:center;justify-content:space-between; }
.logo { font-family:Outfit,sans-serif;font-weight:600;font-size:29px;letter-spacing:-1.2px;min-height:44px;gap:0; }
.logo span { color:var(--accent-ink); }
.workspace-nav { display:flex;position:relative;gap:8px;padding:5px;background:var(--surface);border-radius:30px;isolation:isolate; }
.workspace-nav .tab { min-width:62px;min-height:44px;padding:0 12px;font-size:15px;color:var(--muted);z-index:1; }
.workspace-nav .tab[aria-current=page] { color:var(--fg);font-weight:550; }
.workspace-pill { position:absolute;top:5px;left:0;width:62px;height:44px;background:var(--tint);border-radius:24px;pointer-events:none;transition:transform .38s var(--ease),width .25s var(--ease); }
.header-actions { display:flex;gap:12px;align-items:center; }
.icon-button,.avatar { height:44px;min-width:44px;display:grid;place-items:center;border-radius:50%;transition:background .18s,transform .2s var(--ease); }
.icon-button svg { width:22px;height:22px; }
.avatar { background:var(--tint); }@media(hover:hover) { .icon-button:hover { background:var(--tint); } }
.local-badge { font-size:12px;color:var(--muted);white-space:nowrap; }
.wrap { padding:0 0 40px; }
.view { position:relative;min-width:0; }
.work-surface,.view.flow { max-width:900px;width:100%;margin:24px auto 32px;padding:34px 46px 42px;border-radius:34px;background:var(--surface);min-height:calc(100dvh - 220px); }
.work-surface h1,.view.flow h1 { font-size:clamp(30px,4vw,48px);line-height:1.3;letter-spacing:-1px; }
.wrong-surface { background:var(--apple);--muted:var(--fg2); }.exam-surface { background:var(--tint); }
.back-home { align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--muted);margin-bottom:8px; }
@media(hover:hover) { .back-home:hover { color:var(--fg); } }
.rhead { gap:12px; }.rhead .sub { max-width:42em;line-height:1.8; }
.btn { background:var(--apple);color:var(--fg);min-height:48px;font-size:15px;padding:10px 24px; }
.btn.ghost { background:var(--tint);color:var(--fg);box-shadow:none; }
@media(hover:hover) { .btn:hover:not(:disabled) { background:var(--tint); } }
.btn.sm { min-height:44px;font-size:14px; }
.btn.big { align-self:flex-start; }
.chip,.fchip,.opt { box-shadow:none;border:0;background:var(--surface);min-height:44px; }
.chip.sel,.chip[aria-pressed=true],.fchip[aria-pressed=true],.opt[aria-pressed=true],.opt.sel { background:var(--apple);color:var(--fg);box-shadow:none; }
.chip.ghost { color:var(--muted);box-shadow:none;background:transparent; }
.like .chip.sel,.tchip[aria-pressed=true],.legend button[aria-pressed=true],.types span,.tag,.cmpbtn.on,.chead .cname,.slist .tag.gp,.st0 { background:var(--tint);color:var(--fg);box-shadow:none; }
.idcard { color:var(--fg); }
.field,.search input { background:var(--surface);border:0;box-shadow:none;border-radius:14px; }
.field:focus,.search input:focus { box-shadow:none; }
.box { border:0;box-shadow:none;border-radius:24px;background:var(--surface); }
.box.inner { background:var(--bg); }.box.acard { padding:26px;margin:0; }
.acard h3 { margin-bottom:15px; }.acard summary h3 { display:inline; }
.acard[open]>summary { margin-bottom:20px; }
.acard .kv { border:0; }.acard .ilist li,.exam,.lrow,.chg,.cmprow { border-color:transparent; }
.field,.stable input { min-width:0; }.srow2 { grid-template-columns:minmax(48px,1fr) minmax(48px,86px) 14px minmax(48px,86px); }
.srow2 input { background:var(--bg);border:0;box-shadow:none;max-width:100%; }
.danger { color:var(--danger-ink); }.warn,.bubble.safe { background:var(--soft);color:var(--fg);border:0; }
.dashboard { gap:0;padding-top:20px; }
.dashboard-hero { display:grid;grid-template-columns:1fr 1.08fr;gap:70px;align-items:center;padding:38px 0 35px;min-height:422px; }
.greeting { font-size:18px;font-weight:550;margin:0 0 8px; }.date { font-size:14px; }
.dashboard-hero h1 { font-size:clamp(44px,4.8vw,64px);font-weight:650;line-height:1.18;letter-spacing:-1.7px;margin:26px 0 18px; }
.hero-note { font-size:17px;color:var(--muted);margin-bottom:19px;max-width:28em; }
.hero-action { display:flex;align-items:center;gap:24px; }
.hero-primary { display:flex;gap:16px;align-items:center;font-weight:550;min-height:48px; }
.hero-primary svg { width:46px;height:46px;padding:12px;border-radius:50%;background:var(--btn) var(--button-shade);background-blend-mode:multiply;color:var(--on-accent);transition:transform .3s var(--ease); }
@media(hover:hover) { .hero-primary:hover svg { transform:translateX(4px); } }
.paper { display:flex;flex-direction:column;text-align:left;width:100%;min-height:330px;padding:25px 32px;background:var(--apple);border-radius:34px;transition:transform .45s var(--ease); }
@media(hover:hover) { .paper:hover { transform:translateY(-4px); } }
.paper-eyebrow { display:flex;align-items:center;gap:12px;font-size:14px; }
.task-subject { font-size:14px;margin-top:24px;color:var(--muted); }
.paper strong { font-size:clamp(21px,2.4vw,30px);line-height:1.65;font-weight:600;margin-top:12px;overflow-wrap:anywhere; }
.paper-caption { font-size:13px;margin-top:auto;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:8px; }
.open-mark { display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--bg);font-size:22px;flex-shrink:0; }
.module { --module-bg:var(--surface);min-width:0;background:var(--module-bg);padding:23px 28px;border-radius:30px; }
.module-heading { margin:0;font-size:16px;line-height:1.5;font-weight:550;display:flex;align-items:center;gap:12px;min-height:48px; }
.module-title { min-width:0; }
/* 只有右边的圆能点：圆画出来 30px，能点的范围 44px，比画出来的大一圈、不会延伸到标题那边 */
.module-toggle { flex:none;margin-left:auto;margin-right:-7px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%; }
.ring-icon { display:grid;place-items:center;width:38px;height:38px;border:1.5px solid var(--accent);border-radius:50%;flex-shrink:0; }
.ring-icon svg { width:19px;height:19px; }
.fold-mark { width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--bg);font-size:21px;font-weight:400;line-height:1; }
@media(hover:hover) { .module-toggle:hover .fold-mark { background:color-mix(in srgb,var(--fg) 9%,var(--bg)); } }
.module-compact { display:none;font-size:12px;color:var(--muted);margin-left:auto;font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.module.folded .module-compact { display:inline; }.module.folded .module-toggle { margin-left:4px; }
.module-body { display:flow-root; }.module-body>*:first-child { margin-top:15px; }
.home-capture { margin:8px 0 24px; }.home-exam { --module-bg:var(--tint); }.home-continue { --module-bg:var(--card2); }
.home-capture:has(textarea:focus),.assistant-surface .acomp:has(textarea:focus) { outline:2px solid var(--accent);outline-offset:4px; }
.home-summary { display:grid;grid-template-columns:1.05fr 1fr;gap:24px;align-items:start; }
.module-action { display:inline-flex;align-items:center;gap:6px;min-height:44px;text-align:left;font-size:14px;font-weight:500;color:var(--accent-ink); }
.module-action svg { width:21px;height:21px;transition:transform .25s var(--ease); }@media(hover:hover) { .module-action:hover svg { transform:translateX(4px); } }
.continue-row { display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;width:100%;min-height:62px;padding:15px 0;border-radius:15px;text-align:left;transition:transform .25s var(--ease),background .2s; }
.continue-row strong { font-size:15px;font-weight:500; }.continue-row span { font-size:13px;color:var(--muted);overflow-wrap:anywhere; }.continue-row>span:last-child { font-size:24px;color:var(--accent-ink); }
@media(hover:hover) { .continue-row:hover { transform:translateX(4px);background:var(--glass); } }.dashboard-foot { padding:42px 0 0;font-size:12px; }
.acomp { position:static;bottom:auto;z-index:auto;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;display:flex;flex-direction:column;gap:10px; }
.acomp .arow { display:block; }.acomp textarea { display:block;width:100%;border:0;border-radius:0;background:transparent;box-shadow:none;min-height:64px;max-height:40dvh;resize:vertical;padding:0;line-height:1.65; }
.acomp textarea:focus { box-shadow:none; }.composer-tools { display:flex;align-items:center;gap:20px;flex-wrap:wrap; }
.cam,.sendb { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:auto;height:auto;border-radius:25px;font-size:14px;background:none;color:var(--muted); }
.cam svg { width:21px;height:21px; }.sendb { margin-left:auto;background:var(--tint);color:var(--fg);padding:10px 20px;box-shadow:none; }.sendb svg { width:19px;height:19px; }
.aopts { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0; }.aopts .chip { min-height:36px;padding:6px 10px;background:transparent; }.aopts .chip.sel { background:var(--apple); }
.thumbs { order:-1; }.api-state { font-size:12px;line-height:1.7;margin-top:8px; }
.home-response { padding:16px 18px;background:var(--bg);border-radius:18px;margin-top:18px;font-size:14px;line-height:1.8;overflow-wrap:anywhere; }
.home-response .module-action { margin-top:8px;font-size:13px; }
.onboarding { align-self:center;display:flex;flex-direction:column;gap:22px; }.onboarding h1 { max-width:18ch; }
.log .bubble { max-width:90%;border-radius:24px; }.bubble.ai { background:var(--bg); }.bubble.me { background:var(--apple);color:var(--fg); }
.review,.today { background:var(--bg); }.wrong-surface .practice { background:var(--surface); }.practice-intro { display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:20px 0; }
.rbtn { border:0;background:var(--tint);color:var(--fg);border-radius:20px;box-shadow:none; }.rbtn.r0,.rbtn.r1,.rbtn.r2 { background:var(--tint);color:var(--fg);border-color:transparent; }@media(hover:hover) { .rbtn:hover { background:var(--apple); } }
.changes,.held,.qs { border:0;background:var(--surface);border-radius:18px; }.chg { gap:12px; }.itext,.exhead { overflow-wrap:anywhere; }
#explore { background:transparent;padding:34px 46px 42px;border-radius:34px;margin-top:24px; }.entries,.search { background:var(--surface);border:0;box-shadow:none; }.filters { gap:8px; }
#explore #exfind { background:transparent; }#explore #exfind .entry { background:transparent;padding:0;min-height:44px; }#explore #exfind .entry>span { display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px; }#explore #exfind .entry b { font-size:14px;font-weight:500; }#explore #exfind .entry small { font-size:12px; }
.grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }.tile { background:var(--surface);border:0;box-shadow:none;border-radius:24px;min-width:0; }@media(hover:hover) { .tile:hover { background:var(--card2); } }.tile.saved { box-shadow:inset 0 0 0 2px var(--apple); }
.tile .tt { color:var(--accent-ink); }.sechead { border:0; }.aibox,.idcard,.qcard,.like,.tie { border:0;box-shadow:none;background:var(--surface); }
.major-collections { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-width:0; }
.major-collection { display:flex;flex-direction:column;gap:10px;padding:22px;text-align:left;border-radius:26px;background:var(--surface);transition:background .22s,transform .22s var(--ease); }
.major-collection[aria-pressed=true] { background:var(--apple); }@media(hover:hover) { .major-collection:hover { transform:translateY(-2px); } }
.collection-top { display:flex;align-items:center;justify-content:space-between;gap:12px; }.collection-top .ring-icon { width:32px;height:32px;border-color:currentColor;color:var(--accent-ink); }.collection-top svg { width:18px;height:18px; }
.collection-count,.collection-hint { font-size:13px;color:var(--muted); }.major-collection strong { font-size:22px;font-weight:600;letter-spacing:-.3px; }.major-category-label { margin-top:6px;font-size:13px;color:var(--muted); }
#major-categories { position:sticky;top:calc(94px + env(safe-area-inset-top, 0px));z-index:5;background:var(--bg);flex-wrap:wrap;overflow:visible;gap:8px;padding-block:9px; }.category-count { margin-left:8px;font-size:12px;font-weight:400;opacity:.75; }
.major-interest { color:var(--muted);font-size:13px; }.major-interest summary { cursor:pointer;min-height:36px;align-content:center;width:fit-content; }.major-interest .filters { margin-top:10px; }
.major-selection { display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:8px; }.major-selection h3 { font-size:21px;font-weight:600; }.major-selection .small { font-size:13px;max-width:56em; }.major-selection-title-row { display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px; }#major-selection-note { margin-top:7px; }.major-selection .link { flex-shrink:0;font-size:13px;min-height:36px; }
@media(max-width:760px) { .major-collections { display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;gap:10px;padding:2px 4px 10px;margin-inline:-4px; }.major-collections::-webkit-scrollbar { display:none; }.major-collection { flex:0 0 220px;padding:19px;scroll-snap-align:start; }.major-collection strong { font-size:20px; }#major-categories { top:calc(76px + env(safe-area-inset-top, 0px));flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none; }#major-categories .fchip { min-height:40px;padding:0 12px;font-size:13px; }.major-selection { gap:12px; }.major-selection h3 { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { .major-collection:hover,.major-collection:active { transform:none; } }
#grid.major-reel { display:flex;position:relative;flex-direction:column;align-items:center;gap:14px;padding:12px 0 28px; }
#grid.major-reel .tile { width:min(100%,680px);flex-shrink:0;min-height:124px;padding:20px 26px;gap:7px;border-radius:22px;transform-origin:center;transform:scale(var(--reel-scale,1));opacity:var(--reel-opacity,1);transition:transform .12s ease-out,opacity .12s ease-out,background .2s; }
#grid.major-reel .tile h3 { font-size:22px;font-weight:600; }#grid.major-reel .tile small { font-size:14px;line-height:1.65; }
#grid.major-reel .tile.reel-visible { will-change:transform,opacity; }
#grid.major-reel .tile:focus-visible { transform:none;opacity:1;outline-offset:4px; }
@media(max-width:760px) { #grid.major-reel .tile { padding:18px 22px;min-height:122px; }#grid.major-reel .tile h3 { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { #grid.major-reel .tile { will-change:auto;transition:transform .28s cubic-bezier(.32,.72,0,1),opacity .28s cubic-bezier(.32,.72,0,1),background .28s cubic-bezier(.32,.72,0,1); } }
.sheet { margin:0;border:0;width:100%;height:100dvh;max-width:none;max-height:none;inset:0;background:var(--bg);color:var(--fg); }.sheet::backdrop { background:transparent; }.sheet .inner { max-width:940px; }.dfoot { background:var(--bg);border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none; }.close.glass { background:var(--tint);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border:0; }
.sheet .box,.sheet .dbox,.sheet .school { border:0;box-shadow:none; }.toast.glass { background:var(--fg);color:var(--surface);border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none; }
.workspace-dialog { margin:auto;width:min(540px,calc(100% - 40px));max-height:calc(100dvh - 48px);padding:38px;border:0;border-radius:30px;background:var(--surface);color:var(--fg);overflow:auto;box-shadow:0 20px 80px var(--gshadow); }
.workspace-dialog::backdrop { background:var(--veil); }.dialog-close { position:absolute;right:18px;top:16px;height:36px;width:36px;border-radius:50%;background:var(--bg);font-size:24px; }
#profile-content { display:flex;flex-direction:column;gap:18px; }#profile-title { font-size:30px;line-height:1.3;letter-spacing:-.6px; }.profile-editor .field { background:var(--bg); }.profile-editor .kv { border:0; }
.quick-dialog h2 { font-size:26px;margin:0 0 24px; }.quick-dialog input { background:var(--bg);width:100%; }.quick-result { display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:8px 12px;text-align:left;border-radius:14px; }@media(hover:hover) { .quick-result:hover { background:var(--tint); } }.quick-result svg { width:20px;height:20px; }
.route-arriving { z-index:3; }.workspace-leaving,.workspace-bridge { position:fixed;pointer-events:none;transform-origin:top left;z-index:2;overflow:hidden; }.workspace-leaving { contain:paint;margin:0; }
#tabbar { display:none; }
@media(max-width:1050px) { .dashboard-hero { gap:38px; }.local-badge { display:none; }.topin,.wrap { width:calc(100% - 64px); }.workspace-nav { gap:2px; }.workspace-nav .tab { min-width:55px; }.grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
  .top { height:76px; }.topin,.wrap { width:calc(100% - 40px); }.workspace-nav { display:none; }.topin { gap:12px; }.logo { font-size:27px; }.header-actions { gap:6px; }
  .dashboard { padding-top:8px; }.dashboard-hero { grid-template-columns:1fr;gap:28px;padding:16px 0 28px;min-height:0; }.greeting { font-size:16px; }.dashboard-hero h1 { font-size:42px;line-height:1.16;margin:20px 0 14px;letter-spacing:-1.2px; }.hero-note { font-size:15px;margin-bottom:16px; }.hero-action { gap:20px; }.hero-primary { font-size:15px; }
  .paper { min-height:225px;border-radius:28px;padding:22px 24px; }.task-subject { margin-top:16px; }.paper strong { font-size:22px; }.paper-caption { font-size:12px;padding-top:18px; }.open-mark { width:34px;height:34px; }
  .module { padding:18px 20px;border-radius:26px; }.home-capture { margin:0 0 18px; }.module-heading { font-size:15px;gap:10px; }.ring-icon { width:34px;height:34px; }.fold-mark { width:28px;height:28px; }.home-summary { grid-template-columns:1fr;gap:18px; }
  .composer-tools { gap:8px; }.cam,.sendb { font-size:13px; }.sendb { padding:10px 14px; }.aopts .chip { font-size:12px; }.acomp textarea { font-size:16px; }.continue-row { grid-template-columns:1fr auto;gap:3px 12px; }.continue-row>span:nth-child(2) { grid-row:2; }.continue-row>span:last-child { grid-column:2;grid-row:1 / span 2; }
  .work-surface,.view.flow { margin:16px auto 24px;padding:23px 21px 28px;border-radius:28px;min-height:calc(100dvh - 210px); }.work-surface h1,.view.flow h1 { font-size:31px; }.sub { font-size:15px; }.box.acard { padding:20px 16px; }.small { font-size:13px; }.api-state { font-size:11px; }
  .srow2 { grid-template-columns:minmax(42px,1fr) minmax(42px,64px) 12px minmax(42px,64px);gap:6px; }.stable input { padding:8px 4px; }.rbtns { gap:8px; }.rbtn { padding:12px 8px; }.rbtn b { font-size:13px; }.rbtn small { font-size:11px; }
  #explore { padding:23px 20px 28px;border-radius:28px;margin-top:16px; }.grid { grid-template-columns:1fr; }.field,input,select,textarea { font-size:16px; }.like { flex-wrap:wrap; }.anon { overflow-wrap:anywhere; }
  .wrap { padding-bottom:110px; }.dashboard-foot { padding-top:30px;font-size:11px; }#tabbar { display:block;position:fixed;bottom:0;left:0;right:0;padding:10px 16px max(14px,env(safe-area-inset-bottom));background:var(--bg);box-shadow:none;border:0;z-index:20; }.tabs { display:grid;grid-template-columns:repeat(4,1fr);width:min(500px,100%);margin:auto;background:var(--surface);box-shadow:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:28px;padding:5px;gap:0; }.tabs .tab { min-width:0;min-height:55px;padding:5px 0;gap:4px;flex-direction:column;display:flex;align-items:center;justify-content:center;border-radius:22px;font-size:11px; }.tabs .tab svg { width:20px;height:20px; }.tabs .tab[aria-current=page] { background:var(--tint);color:var(--fg); }.tabs .tlab { position:static;opacity:1;font-size:11px;transform:none; }.tabpill { display:none; }
  .workspace-dialog { width:calc(100% - 24px);padding:32px 24px;border-radius:28px;max-height:calc(100dvh - 32px); }#profile-title { font-size:26px; }.workspace-dialog .kv { flex-wrap:wrap; }.toast { max-width:calc(100% - 32px);font-size:13px; }
}
@media(max-width:350px) { .topin,.wrap { width:calc(100% - 28px); }.dashboard-hero h1 { font-size:36px; }.paper { padding:20px; }.work-surface,.view.flow { padding:20px 16px; }.module { padding:16px; }.composer-tools { column-gap:4px; }.cam { font-size:12px; }.aopts .chip { padding:6px; }.sendb { padding:9px 11px; }.rbtns { grid-template-columns:1fr; }.rbtn { width:100%; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }


/* ===== 交互和动画优化（Claude 2026-10-15，Luke 说 GPT 版交互和过渡还不够好） =====
   1. 能点的东西一眼看得出能点：主按钮实心深绿，次按钮描边，选项和输入框都有一圈细边。
      以前按钮和底色用同一种绿/奶酪色，放在同色卡片上就“隐形”了。
   2. 动作统一：按下缩一点（.97），松开回弹；悬停只变底色，不乱动。
   3. 系统打开“减少动态效果”时只保留短淡入淡出。 */

.btn { background:var(--primary);color:var(--on-primary);box-shadow:none;transition:background .2s,transform .18s var(--press),box-shadow .2s; }
@media(hover:hover) { .btn:hover:not(:disabled) { background:var(--primary-hover); } }
.btn:disabled { background:var(--faint);color:var(--muted);opacity:1; }
.btn.ghost { background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--ring-strong); }
@media(hover:hover) { .btn.ghost:hover:not(:disabled) { background:var(--line); } }
.link { color:var(--accent-ink);border-radius:10px;transition:color .2s,opacity .2s; }
@media(hover:hover) { .link:hover { color:var(--fg); } }
.more { color:var(--accent-ink); }
@media(hover:hover) { .more:hover { color:var(--fg); } }

.chip,.fchip { background:transparent;box-shadow:inset 0 0 0 1px var(--ring-strong);transition:background .2s,color .2s,box-shadow .2s,transform .16s var(--press); }
/* 鼠标停在选中的选项上不换底色：选中的是深字，换成 --line 以后深色里几乎看不见（第三块 3B 复盘卡的测试发现） */
@media(hover:hover) { .chip:hover:not(:disabled):not(.sel):not([aria-pressed=true]),.fchip:hover:not([aria-pressed=true]) { background:var(--line); } }
.chip.sel,.chip[aria-pressed=true],.fchip[aria-pressed=true] { background:var(--primary);color:var(--on-primary);box-shadow:inset 0 0 0 1px var(--primary); }
.opt { box-shadow:inset 0 0 0 1px var(--ring);transition:background .2s,box-shadow .2s,transform .16s var(--press); }
.opt[aria-pressed=true],.opt.sel { background:var(--apple);box-shadow:inset 0 0 0 1.5px var(--accent); }
.chip.ghost { box-shadow:inset 0 0 0 1px var(--ring); }
.aopts .chip { background:transparent; }
.aopts .chip.sel { background:var(--primary);color:var(--on-primary); }

.field,.search input { box-shadow:inset 0 0 0 1px var(--ring-strong);transition:box-shadow .2s,background .2s; }
.field:focus,.search input:focus { box-shadow:inset 0 0 0 2px var(--accent); }
.search input { border-radius:18px; }
.work-surface .field,.view.flow .field,.work-surface .chip:not(.sel):not([aria-pressed=true]) { background:var(--bg); }

/* 顶部导航和手机底栏：选中的底色滑过去 */
.workspace-nav .tab { transition:color .25s; }
@media(max-width:760px) {
  .tabs { position:relative; }
  .tabpill { display:block;position:absolute;left:0;top:5px;height:55px;width:0;border-radius:22px;background:var(--tint);z-index:0;
    transition:transform .42s cubic-bezier(.3,1.25,.5,1),width .3s var(--ease);will-change:transform; }
  .tabs .tab { position:relative;z-index:1;transition:color .25s; }
  .tabs .tab[aria-current=page] { background:transparent; }
  .tabs .tab svg { transition:transform .3s cubic-bezier(.3,1.4,.5,1); }
  .tabs .tab[aria-current=page] svg { transform:translateY(-1px); }
}

/* 第一屏留给要做的事：助手和探索是底栏标签，不放返回按钮；资料里的子页面留着“← 资料”。标题小一号 */
#assist>.back-home,#explore>.back-home { display:none; }  /* 错题、考试、计划、档案在“资料”里面，要留着“← 资料” */
.work-surface>.rhead h1 { font-size:clamp(26px,3vw,36px);letter-spacing:-.6px;line-height:1.3; }
.work-surface>.rhead { margin-bottom:6px; }
.work-surface>.rhead .sub { font-size:15px;line-height:1.7; }
#explore>.rhead h1 { font-size:clamp(30px,3.4vw,40px); }

.continue-row:active { background:var(--glass); }

/* 对话：只有新消息进场，重新渲染时旧消息不再一条条重播动画 */
.bubble { animation:none; }
.bubble.enter { animation:msgIn .42s var(--ease) both; }
.bubble.me.enter { transform-origin:right bottom; }
@keyframes msgIn { from { opacity:0;transform:translateY(10px) scale(.97); } to { opacity:1;transform:none; } }
.changes.enter,.held.enter,.qs.enter,.chips.enter { animation:fadeUp .4s var(--ease) .12s both; }
@keyframes fadeUp { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:none; } }
.bubble.typing .loading::after { content:none; }
.typing-dots { display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle; }
.typing-dots i { width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;animation:dot 1.1s ease-in-out infinite; }
.typing-dots i:nth-child(2) { animation-delay:.15s; }.typing-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes dot { 0%,80%,100% { opacity:.25;transform:translateY(0); } 40% { opacity:.9;transform:translateY(-3px); } }

/* 助手的输入框：手机上贴在底栏上面，聊天再长也不用滑到底找输入框 */
.assistant-surface .acomp { position:sticky;bottom:16px;z-index:4;background:var(--surface);padding:14px 16px;margin-inline:-16px;border-radius:22px;box-shadow:0 -1px 0 var(--ring),0 10px 30px var(--gshadow); }
.assistant-surface .acomp textarea { min-height:44px; }
#chat .composer { z-index:4;background:var(--surface);box-shadow:0 0 0 1px var(--ring),0 10px 30px var(--gshadow); }
#log > .bubble { scroll-margin-bottom:170px; }
@media(max-width:760px) { .assistant-surface .acomp,#chat .composer { bottom:calc(92px + env(safe-area-inset-bottom)); }#log > .bubble { scroll-margin-bottom:260px; } }
@media(max-width:420px) { .assistant-surface .acomp { margin-inline:0; } }
.sendb { background:var(--primary);color:var(--on-primary);transition:background .2s,transform .16s var(--press),opacity .2s; }
@media(hover:hover) { .sendb:hover:not(:disabled) { background:var(--primary-hover); } }
.sendb:disabled { opacity:.45; }
.cam { transition:color .2s,transform .16s var(--press); }@media(hover:hover) { .cam:hover { color:var(--fg); } }
/* 选图：真的选图框透明地盖在按钮上，手指点到的就是它（苹果手机上用代码点藏起来的选图框没反应，Luke 2026-10-15） */
.pick { position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent; }
.pick-input { position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px; }
.pick-input::file-selector-button { cursor:pointer; }.pick-input::-webkit-file-upload-button { cursor:pointer; }
.pick:has(.pick-input:focus-visible) { outline:2px solid var(--fg);outline-offset:3px; }
.pick.nudge { animation:pick-nudge 1.2s var(--ease) 2; }
@keyframes pick-nudge { 0%,100% { box-shadow:0 0 0 0 transparent; } 40% { box-shadow:0 0 0 6px var(--tint); } }
@media(prefers-reduced-motion:reduce) { .pick.nudge { outline:2px solid var(--fg);outline-offset:3px; } }

/* 错题重做：点完一道，这张卡往左滑走，下一道从右边进来 */
.wrong-surface .practice { box-shadow:0 12px 40px var(--gshadow); }
.rbtn { box-shadow:inset 0 0 0 1px var(--ring);transition:background .2s,transform .16s var(--press),box-shadow .2s; }
.rbtn.picked { background:var(--primary);color:var(--on-primary);box-shadow:none; }
.rbtn.picked small { color:inherit;opacity:.75; }

/* 考试记录：分数排成小方格，不再挤成一行字 */
.scoregrid { display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;margin:10px 0 4px; }
.scoregrid span { display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;background:var(--bg); }
.scoregrid i { font-style:normal;font-size:12px;color:var(--muted); }
.scoregrid b { font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2; }
.scoregrid b small { font-size:12px;font-weight:400;color:var(--muted);margin-left:2px; }
.exam { padding:14px 0;border-bottom:1px solid var(--faint)!important; }
.exam:last-of-type { border-bottom:0!important; }
.exhead { text-align:left; }

/* 折叠模块：加号转成减号，不是直接换字（按下的手感由 motion.js 统一给） */
.fold-mark { transition:transform .3s var(--ease),background .2s; }

@media(prefers-reduced-motion:reduce) {
  .tabpill { transition:none; }
  .bubble.enter,.changes.enter,.held.enter,.qs.enter,.chips.enter { animation:none; }
}
#explore .search { background:transparent;box-shadow:none; }
.assistant-surface .acomp { gap:6px;padding:10px 14px; }
.assistant-surface .acomp textarea { min-height:28px;resize:none;padding:6px 2px; }
.acomp textarea { resize:none; }


/* ===== 第三轮打磨（Claude 2026-10-15，Luke：记分框数字显示不全、输入框不好看、点开具体功能时界面和动画太少）=====
   1. 记分：每科一个小格子，大数字 + 小满分，不再挤成一排被截断；去掉数字框的上下箭头。
   2. 输入框：跟着字数长高，没有拖拽角；聚焦时只是边框变成绿色，不再套一圈很粗的框。
   3. “这次不记”做成开关；打开后输入框换成虚线边，一眼看出这条不记。
   4. 复盘：顶上三段步骤条，换步时内容往左右滑；“和上次比”有得分率小条和变化标签。
   5. 弹层：手机上从底部滑上来，带把手；电脑上轻轻放大淡入，背后遮罩一起淡入。
   6. 档案、学科喜好、搜索：卡片、分段选项、返回按钮统一。 */

input[type=number] { -moz-appearance:textfield;appearance:textfield; }
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none;margin:0; }
textarea { resize:none!important; }

/* 1. 记分格子 */
.stable { display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;padding:4px 0 8px; }
.stable .srow2 { display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;gap:0 3px;padding:11px 12px 12px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ring);cursor:text;transition:box-shadow .2s,background-color .2s;font-size:15px; }
.stable .srow2>span { grid-column:1/-1;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:1px;transition:color .2s; }
.stable .srow2 input { width:100%;min-width:0;min-height:0;height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--fg);text-align:left; }
.stable .srow2 input:focus { box-shadow:none; }
.stable .srow2 input:first-of-type { width:3.2ch;font-size:24px;font-weight:650;line-height:1.3; }
.stable .srow2 input:first-of-type::placeholder { color:var(--muted);opacity:.5;font-size:17px;font-weight:500; }
.stable .srow2 i { font-style:normal;color:var(--muted);font-size:14px; }
.stable .srow2 input:last-of-type { font-size:14px;color:var(--muted); }
.stable .srow2:focus-within { box-shadow:inset 0 0 0 1.5px var(--accent),0 8px 20px var(--gshadow); }
.stable .srow2:has(input:first-of-type:not(:placeholder-shown))>span { color:var(--fg); }
.manual { display:flex;flex-direction:column;gap:14px;padding:22px; }
.manual>.qlabel { margin:0;font-size:17px; }
.manual>.small { margin:-6px 0 0; }

/* 2. 输入框 */
.home-capture:has(textarea:focus),.assistant-surface .acomp:has(textarea:focus) { outline:none; }
.acomp { transition:box-shadow .25s var(--ease),background-color .25s,outline-color .25s; }
.acomp textarea { overflow-y:hidden;line-height:1.6;max-height:40dvh; }
.acomp textarea:focus { outline:none;box-shadow:none; }
.assistant-surface .acomp { box-shadow:0 0 0 1px var(--ring),0 10px 30px var(--gshadow); }
.assistant-surface .acomp:has(textarea:focus) { box-shadow:0 0 0 1.5px var(--accent),0 14px 36px var(--gshadow); }
.home-capture .acomp { background:var(--surface);padding:12px 14px;border-radius:20px;box-shadow:0 0 0 1px var(--ring); }
.home-capture .acomp:has(textarea:focus) { box-shadow:0 0 0 1.5px var(--accent); }

/* 3. “这次不记”开关 */
.aopts { gap:10px; }
.aopts .kinds { display:flex;gap:6px;align-items:center;flex-wrap:wrap; }
.tog { display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 8px 4px 4px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);background:transparent;transition:color .2s; }
@media(hover:hover) { .tog:hover { color:var(--fg); } }
.tog .sw { position:relative;flex:none;width:32px;height:20px;border-radius:999px;background:var(--ring-strong);transition:background-color .25s var(--ease); }
.tog .sw::after { content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px var(--gshadow);transition:transform .34s cubic-bezier(.3,1.45,.5,1),width .2s; }
.tog:active .sw::after { width:19px; }
.tog[aria-pressed=true] { color:var(--fg); }
.tog[aria-pressed=true] .sw { background:var(--primary); }
.tog[aria-pressed=true] .sw::after { transform:translateX(12px); }
.tog[aria-pressed=true]:active .sw::after { transform:translateX(9px); }
.acomp.nolog,.assistant-surface .acomp.nolog,.home-capture .acomp.nolog { outline:1.5px dashed var(--ring-strong);outline-offset:-1.5px;box-shadow:0 10px 30px var(--line); }
.acomp.nolog:has(textarea:focus),.assistant-surface .acomp.nolog:has(textarea:focus),.home-capture .acomp.nolog:has(textarea:focus) { outline:1.5px dashed var(--accent);outline-offset:-1.5px;box-shadow:0 14px 36px var(--gshadow); }

/* 4. 复盘 */
.review { box-shadow:0 0 0 1px var(--ring),0 14px 36px var(--line);gap:14px; }
.rvsteps { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.rvsteps li { display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:var(--muted);transition:color .3s; }
.rvsteps li.on { color:var(--fg); }
.rvsteps i { position:relative;display:block;height:4px;border-radius:4px;background:var(--ring);overflow:hidden; }
.rvsteps i::after { content:"";position:absolute;inset:0;border-radius:inherit;background:var(--primary);transform:scaleX(0);transform-origin:left; }
.rvsteps li.done i::after,.rvsteps li.on i::after { transform:none; }
.rvsteps li.done i::after { opacity:.45; }
.rvsteps li.fresh i::after { animation:stepFill .7s var(--ease) .1s both; }
@keyframes stepFill { from { transform:scaleX(0); } }
.rvbody { display:flex;flex-direction:column;gap:12px; }
.rvbody>p:first-child { margin:0; }
.rsub { padding:12px 14px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ring); }
.cmp { display:flex;flex-direction:column; }
.cmprow { grid-template-columns:3.2em minmax(0,300px) auto;justify-content:start;align-items:center;gap:12px;padding:7px 0;border-top:0; }
.cmprow .rate { display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums; }
.cmprow .rate i { position:relative;flex:1;max-width:180px;height:6px;border-radius:6px;background:var(--ring);overflow:hidden; }
.cmprow .rate i::after { content:"";position:absolute;inset:0;border-radius:inherit;background:var(--accent);transform-origin:left;transform:scaleX(var(--r,0)); }
.cmprow b { font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface);color:var(--muted);white-space:nowrap; }
.cmprow b.up { background:var(--apple);color:var(--fg); }
.cmprow b.down { background:var(--soft);color:var(--fg); }
.cmprow b:empty { display:none; }

/* 档案里的“最近一次考试”：分数格子 + 变化标签 */
.scoregrid em { align-self:flex-start;margin-top:5px;padding:2px 8px;border-radius:999px;font-style:normal;font-size:11px;font-weight:600;background:var(--surface);color:var(--muted); }
.scoregrid em.up { background:var(--apple);color:var(--fg); }
.scoregrid em.down { background:var(--soft);color:var(--fg); }
.exname { margin:0; }.exname small { color:var(--muted); }

/* 5. 弹层 */
.workspace-dialog::backdrop { background:var(--veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px); }
.dialog-close { transition:background .2s,transform .16s var(--press); }@media(hover:hover) { .dialog-close:hover { background:var(--tint); } }
@media(max-width:760px) {
  .workspace-dialog { margin:auto 0 0;width:100%;max-width:none;max-height:90dvh;border-radius:28px 28px 0 0;padding:36px 22px calc(28px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px var(--gshadow); }
  .workspace-dialog::before { content:"";position:absolute;top:10px;left:50%;width:38px;height:5px;margin-left:-19px;border-radius:5px;background:var(--ring-strong); }
}
#quick-input::-webkit-search-cancel-button { -webkit-appearance:none;display:none; }
.quick-result { transition:background .2s,transform .16s var(--press); }
.quick-result svg { transition:transform .25s var(--ease); }
.quick-result:focus-visible svg { transform:translateX(3px); }@media(hover:hover) { .quick-result:hover svg { transform:translateX(3px); } }

/* 6. 学科喜好：六个选项排成两行三个（手机）或一行（宽屏），留出空隙 */
.like .chips { gap:6px; }
.like .chip { min-height:40px;padding:0 4px;border-radius:12px;font-size:13px;transition:background .2s,color .2s,transform .16s var(--press),box-shadow .2s; }
@media(max-width:600px) { .like .chips { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* 返回按钮：小胶囊，不是一行灰字 */
.back-home { gap:4px;min-height:36px;padding:6px 14px 6px 12px;border-radius:999px;background:var(--bg);color:var(--muted);font-weight:600;transition:background .2s,color .2s,transform .16s var(--press); }
@media(hover:hover) { .back-home:hover { background:var(--tint);color:var(--fg); } }

/* 档案：每块是一张有细边的卡片，不再像缩进的段落 */
.box.acard { box-shadow:0 0 0 1px var(--ring); }
.box.acard+.box.acard { margin-top:12px; }
.acard>h3,.acard summary h3 { font-size:18px;letter-spacing:-.2px; }
details.acard>summary { list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer; }
details.acard>summary::-webkit-details-marker { display:none; }
details.acard>summary::after { content:"";width:8px;height:8px;margin-right:4px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease); }
details.acard[open]>summary::after { transform:translateY(2px) rotate(-135deg); }
.ilist .itext { border-radius:12px;transition:background .2s; }
@media(hover:hover) { .ilist .itext:hover:not(:disabled) { background:var(--bg); } }
.ilist li.editing { padding:12px;border-radius:16px;background:var(--bg); }
.addline { display:flex;gap:8px;align-items:center; }
.addline .field { flex:1; }
.tutor-dialog { width:min(640px,calc(100% - 40px));height:min(760px,85dvh);padding:32px 24px 20px;overflow:hidden; }
.tutor-dialog[open] { display:flex;flex-direction:column;gap:16px; }
.tutor-dialog header { flex:none;padding-right:32px;overflow-wrap:anywhere; }
.tutor-dialog h2 { margin:0; }
.tutor-turns { flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain; }
.tutor-turn { max-width:94%;margin:0 0 18px;overflow-wrap:anywhere;white-space:pre-wrap; }
.tutor-turn p { margin:4px 0; }
.tutor-me { margin-left:auto;background:var(--bg);padding:10px 14px;border-radius:var(--r); }
.tutor-example { margin-top:12px;border:1px solid var(--ring-strong);padding:12px;border-radius:12px; }
.tutor-footer { flex:none;min-width:0; }
.tutor-actions { display:flex;gap:6px;margin-bottom:12px; }
.tutor-actions button { flex:1;min-width:0;min-height:44px;padding:8px 4px; }
.tutor-compose { display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end; }
.tutor-compose textarea { flex:1;width:0;min-width:0;resize:none;max-height:18dvh; }
.tutor-compose .btn,.tutor-compose .link { min-height:44px; }
@media(max-width:760px) { .tutor-dialog { width:100%;height:85dvh;padding:32px 16px max(16px,env(safe-area-inset-bottom)); }.tutor-actions button { font-size:13px; } }
.addline .chip,.work-surface .addline .chip:not(.sel),.view.flow .addline .chip:not(.sel) { background:var(--primary);color:var(--on-primary);box-shadow:none;min-width:52px; }

@media(prefers-reduced-motion:reduce) {
  .rvsteps li.fresh i::after { animation:none; }
  .tog .sw::after { transition:none; }
}

/* Shared transitions remain active with reduced motion; only travel and overshoot change. */
:root { --ease:cubic-bezier(.32,.72,0,1); --press:cubic-bezier(.32,.72,0,1); }
button,a,summary,label.pick,input,textarea,select,[role=button] { transition-property:background-color,color,border-color,box-shadow,opacity;transition-duration:.28s;transition-timing-function:var(--ease); }
input:focus-visible,textarea:focus-visible,select:focus-visible { box-shadow:inset 0 0 0 2px var(--ring-strong); }
.workspace-pill,#tabpill { transition:none; }
.tog .sw::after { transition:transform .32s var(--ease),width .28s var(--ease); }
.tog .sw { transition:background-color .28s var(--ease); }
.chip,.fchip,.opt,.st,.cmpbtn,.tabs-d .seg button { transition:background-color .28s var(--ease),color .28s var(--ease),box-shadow .28s var(--ease); }
.material-drop-hint { transition:opacity .32s var(--ease),transform .32s var(--ease); }
.rag-original { transition:width .48s var(--ease),max-height .48s var(--ease); }
#prog { transition:none; }
@media(prefers-reduced-motion:reduce) {
  .tabpill { transition:none; }
  .bubble.enter,.changes.enter,.held.enter,.qs.enter,.chips.enter { animation:fadeup .32s var(--ease) backwards; }
  .rvsteps li.fresh i::after { animation:fadeup .32s var(--ease); }
  .tog .sw::after { transition:transform .32s var(--ease),width .28s var(--ease); }
}

@media(prefers-reduced-motion:reduce) { .chip.pop,.pick.nudge { animation:fadeup .3s cubic-bezier(.32,.72,0,1); } }

button,a,summary,input,textarea,select,[role=button],label.pick,label:has(input[type=radio]),label:has(input[type=checkbox]) { transition-duration:.28s!important;transition-timing-function:var(--ease)!important; }

@media(prefers-reduced-motion:reduce) { .rv:not(.in) { transform:translateY(24px); } }

/* 旧档案恢复 */
.old-archive-title { font-size:18px;margin:0 0 10px; }
.old-archive-title .link { text-align:left;font:inherit; }
.old-archive-row { display:flex;align-items:center;gap:8px;position:relative;padding:14px 0;border-bottom:1px solid var(--faint); }
.old-archive-info { flex:1;min-width:0;display:flex;flex-direction:column;gap:4px; }
.old-archive-meta { display:flex;min-width:0;white-space:nowrap;align-items:baseline;font-size:13px; }
.old-archive-nick { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0; }
.old-archive-meta>span:last-child,.old-archive-row>button { flex-shrink:0;white-space:nowrap; }
.old-archive-info>.small { white-space:nowrap;font-size:11px; }
.old-archive-menu { position:absolute;right:0;top:100%;z-index:5;min-width:120px;padding:8px 12px;background:var(--surface);border:1px solid var(--faint);border-radius:12px; }
.old-archive-menu .link { display:block;padding:8px 0; }
.old-archive-list+button { margin-top:12px; }

/* 点按范围（2026-10-17）：能点的地方只到看得见的字和图标，旁边的空白点了不再有反应。
   折叠标题把箭头挨着字放；小字链接和小胶囊用一层看不见的 ::after 把手指能按到的高度垫到 44px 左右，排版不变。 */
details.acard>summary,.settings details>summary,details.anon>summary,details.allsch>summary,.changes>summary,.major-interest>summary { width:fit-content;max-width:100%; }
details.acard>summary,details.allsch>summary { justify-content:flex-start;gap:10px; }
details.acard>summary::after { margin-right:0; }
details.anon>summary::after { margin-left:4px; }
.kv>button { justify-self:start; }
.ilist .itext { flex:0 1 auto;padding:6px 8px;margin:-6px auto -6px -8px; }
.exhead { align-self:flex-start;padding:6px 8px;margin:-6px -8px;border-radius:12px; }@media(hover:hover) { .exhead:hover { background:var(--bg); } }
.st,.link.inline { position:relative; }
.st::after,.link.inline::after { content:"";position:absolute;inset:-7px -3px; }
.link.inline::after { inset:-11px -6px; }
.quick-result:active { background:var(--tint); }

/* 测评页的卡片和能点的行：面板是 --surface，它们用 --bg 才看得出边（App Store 式卡片） */
.view.flow :where(.card,.plist button,.box,.choice,.aibox,.legend button,.plain,.dom,.conflict,.idcard) { background:var(--bg); }
.legend button { box-shadow:inset 0 0 0 1px var(--ring); }

/* 刘海屏横着拿：内容不进刘海区 */
body { padding-inline:env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px); }
/* 第一块：任务续接与实际参考的记录 */
.task-continue-row{display:flex;align-items:center;gap:8px;min-width:0}
.task-continue-row .continue-row{flex:1;min-width:0}
.task-continue-row .continue-row strong,.task-continue-row .continue-row>span{overflow-wrap:anywhere}
.task-close{flex:none}
.task-more-list{min-width:0}
.task-more,.task-close,.task-refs button{min-width:40px;min-height:40px}
.task-ref-list{padding:4px 0 8px}
.task-ref-row{display:flex;align-items:center;gap:12px;min-width:0}
.task-ref-row>span{flex:1;min-width:0;overflow-wrap:anywhere}
.task-ref-row>button{flex:none}
.task-context-notice{overflow-wrap:anywhere}
.rag-answer>button{min-width:40px;min-height:40px}

/* A: color changes only; the new appearance row is the sole structural addition. */
input::placeholder,textarea::placeholder { color:var(--fg2);opacity:1; }
.btn:not(.ghost):not(:disabled),.sendb:not(:disabled),.bubble.me {
  background:var(--btn) var(--button-shade); background-blend-mode:multiply; color:var(--on-accent);
}
/* 鼠标停在按钮上：保持渐变、稍微压暗。原来换成更浅的 --primary-hover，深色里白字只剩约 3:1（夜间 B 轮第二版时测试碰巧把鼠标停在“发送”上才发现） */
@media(hover:hover) {
  .btn:not(.ghost):not(:disabled),.sendb:not(:disabled) { transition:background .2s,transform .18s var(--press),box-shadow .2s,opacity .2s,filter .2s; }
  .btn:not(.ghost):hover:not(:disabled),.sendb:hover:not(:disabled) { background:var(--btn) var(--button-shade); background-blend-mode:multiply; filter:brightness(.9); }
}
/* The supplied gradient stays intact; a palette-derived blend keeps white labels readable. */
.theme-setting { flex-wrap:wrap;gap:12px; }
.theme-selector { display:grid;grid-template-columns:repeat(3,1fr);position:relative;isolation:isolate;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:15px; }
.theme-selector button { position:relative;z-index:1;min-width:66px;min-height:44px;padding:0 10px;border-radius:12px;font-size:14px;color:var(--fg2); }
.theme-selector button[aria-pressed=true] { color:var(--fg);font-weight:600; }
.theme-thumb { position:absolute;z-index:0;inset:3px auto 3px 3px;width:calc((100% - 6px)/3);border-radius:12px;background:var(--card2);box-shadow:0 1px 4px var(--gshadow);transform:translateX(calc(var(--theme-index,0)*100%));transition:transform .38s cubic-bezier(.32,.72,0,1);pointer-events:none; }
:root.theme-changing,:root.theme-changing *,:root.theme-changing *::before,:root.theme-changing *::after {
  transition:background-color .6s cubic-bezier(.22,1,.36,1),color .6s cubic-bezier(.22,1,.36,1),border-color .6s cubic-bezier(.22,1,.36,1),fill .6s cubic-bezier(.22,1,.36,1),stroke .6s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1)!important;
}
:root.theme-changing .theme-thumb { transition:transform .38s cubic-bezier(.32,.72,0,1),background-color .6s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1)!important; }
@media(prefers-reduced-motion:reduce) { .theme-thumb { transition-duration:.25s; } }

/* 提示条里的“撤销”：只有带按钮时提示条才能点（平时不挡住下面的东西） */
.toast.has-action { pointer-events:auto; }
.toast-action { display:inline-flex; align-items:center; min-height:44px; margin:-12px -12px -12px 8px; padding:0 14px; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:3px; }
