
:root,
html[data-theme="paper"][data-theme-mode="light"] {
  color-scheme: light;
  --paper: #F6F1EB; --paper-soft: #FFFCF8; --paper-card: #FFFCF8;
  --paper-ink: #2E2118; --paper-muted: #75665A;
  --paper-line: #E8DFD4; --paper-line-strong: #CDBEAE;
  --paper-accent: #B45A5F; --paper-on-accent: #FFF9F5; --paper-accent-soft: #F2D9D0;
  --paper-green: #55786A; --paper-blue: #66788F; --paper-warm: #B57C58;
  --paper-overlay: rgba(46,33,24,.38);
}

html[data-theme="manuscript"][data-theme-mode="light"] {
  --paper: #F7F3EA; --paper-soft: #FCF9F2; --paper-card: #FFFCF6;
  --paper-ink: #34302B; --paper-muted: #756E64;
  --paper-line: #DED5C8; --paper-line-strong: #BDB0A0;
  --paper-accent: #A8604F; --paper-on-accent: #FFF; --paper-accent-soft: #EAD8C9;
  --paper-green: #55766A; --paper-blue: #536F88; --paper-warm: #B78158;
  --paper-overlay: rgba(40,36,31,.38);
}

html[data-theme="manuscript"][data-theme-mode="dark"] {
  --paper: #262522; --paper-soft: #2E2C28; --paper-card: #302E29;
  --paper-ink: #EEE6D7; --paper-muted: #B4AA9A;
  --paper-line: #46423B; --paper-line-strong: #696158;
  --paper-accent: #D38C72; --paper-on-accent: #262522; --paper-accent-soft: #533E35;
  --paper-green: #85AA9A; --paper-blue: #91B6CE; --paper-warm: #DEC082;
  --paper-overlay: rgba(0,0,0,.58);
}

html[data-theme="paper"][data-theme-mode="dark"] {
  --paper: #1C1412; --paper-soft: #241A17; --paper-card: #2A201B;
  --paper-ink: #F0E6DA; --paper-muted: #AD9C8D;
  --paper-line: #3D2F28; --paper-line-strong: #655146;
  --paper-accent: #C97478; --paper-on-accent: #1C1412; --paper-accent-soft: #3A2428;
  --paper-green: #82AD98; --paper-blue: #91A6C0; --paper-warm: #D3A174;
  --paper-overlay: rgba(8,5,4,.66);
}

html[data-theme="camellia"][data-theme-mode="light"] {
  --paper: #F3F0ED; --paper-soft: #FDFCFA; --paper-card: #FDFCFA;
  --paper-ink: #1F1E1C; --paper-muted: #716C66;
  --paper-line: #E2DEDA; --paper-line-strong: #C3BCB5;
  --paper-accent: #9E4B50; --paper-on-accent: #FFF; --paper-accent-soft: #E8D5D6;
  --paper-green: #687B6C; --paper-blue: #667587; --paper-warm: #A77C5C;
  --paper-overlay: rgba(31,30,28,.38);
}

html[data-theme="camellia"][data-theme-mode="dark"] {
  --paper: #181716; --paper-soft: #201E1D; --paper-card: #252322;
  --paper-ink: #ECE8E4; --paper-muted: #A7A09A;
  --paper-line: #363231; --paper-line-strong: #5C5652;
  --paper-accent: #B86166; --paper-on-accent: #FFF7F4; --paper-accent-soft: #352526;
  --paper-green: #8DA695; --paper-blue: #99A8BA; --paper-warm: #C59B76;
  --paper-overlay: rgba(5,5,5,.68);
}

html[data-theme="sakura"][data-theme-mode="light"] {
  --paper: #FFF6F8; --paper-soft: #FFFBFC; --paper-card: #FFFCFD;
  --paper-ink: #3B2932; --paper-muted: #725F68;
  --paper-line: #EADCE2; --paper-line-strong: #CDB6C0;
  --paper-accent: #A84268; --paper-on-accent: #FFF; --paper-accent-soft: #F4D6E1;
  --paper-green: #4F7768; --paper-blue: #68799C; --paper-warm: #B97955;
  --paper-overlay: rgba(59,41,50,.36);
}

html[data-theme="sakura"][data-theme-mode="dark"] {
  --paper: #21191F; --paper-soft: #292027; --paper-card: #30252D;
  --paper-ink: #F4E9EF; --paper-muted: #B6A2AC;
  --paper-line: #463541; --paper-line-strong: #6C5262;
  --paper-accent: #E589AA; --paper-on-accent: #241820; --paper-accent-soft: #4A2937;
  --paper-green: #8FC2AD; --paper-blue: #9FB2D8; --paper-warm: #E1AD76;
  --paper-overlay: rgba(9,5,8,.68);
}

html[data-theme="sage"][data-theme-mode="light"] {
  --paper: #F2F4EC; --paper-soft: #F9FAF5; --paper-card: #FBFCF8;
  --paper-ink: #29352D; --paper-muted: #617067;
  --paper-line: #DCE3DA; --paper-line-strong: #B8C6BA;
  --paper-accent: #4D6C59; --paper-on-accent: #FFF; --paper-accent-soft: #DCE7D9;
  --paper-green: #466956; --paper-blue: #607D8D; --paper-warm: #AA7449;
  --paper-overlay: rgba(30,50,38,.38);
}

html[data-theme="sage"][data-theme-mode="dark"] {
  --paper: #17231D; --paper-soft: #1D2B24; --paper-card: #23332A;
  --paper-ink: #EDF4EC; --paper-muted: #A3B5A7;
  --paper-line: #34473B; --paper-line-strong: #526A59;
  --paper-accent: #99C09F; --paper-on-accent: #132019; --paper-accent-soft: #304939;
  --paper-green: #8DBA97; --paper-blue: #8EB4C4; --paper-warm: #DDA679;
  --paper-overlay: rgba(4,10,6,.68);
}

html[data-theme="harbor"][data-theme-mode="light"] {
  --paper: #EDF5F6; --paper-soft: #F6FAFA; --paper-card: #FAFDFC;
  --paper-ink: #203944; --paper-muted: #5A7178;
  --paper-line: #D5E4E5; --paper-line-strong: #ADC7CA;
  --paper-accent: #287783; --paper-on-accent: #FFF; --paper-accent-soft: #D2E8E7;
  --paper-green: #548A79; --paper-blue: #466F91; --paper-warm: #C77361;
  --paper-overlay: rgba(18,48,59,.4);
}

html[data-theme="harbor"][data-theme-mode="dark"] {
  --paper: #102630; --paper-soft: #16313B; --paper-card: #1B3842;
  --paper-ink: #EDF7F4; --paper-muted: #A4C0C0;
  --paper-line: #2C4A54; --paper-line-strong: #496A73;
  --paper-accent: #75C5C4; --paper-on-accent: #0E252D; --paper-accent-soft: #294A52;
  --paper-green: #86BEAD; --paper-blue: #91ADD3; --paper-warm: #EDA678;
  --paper-overlay: rgba(2,12,17,.7);
}

html[data-theme="dusk"][data-theme-mode="light"] {
  --paper: #F4F1F6; --paper-soft: #FAF8FB; --paper-card: #FDFBFD;
  --paper-ink: #393344; --paper-muted: #706879;
  --paper-line: #E1DAE5; --paper-line-strong: #C1B4C8;
  --paper-accent: #765A89; --paper-on-accent: #FFF; --paper-accent-soft: #E7DDED;
  --paper-green: #5D7D6C; --paper-blue: #596F9B; --paper-warm: #AE725B;
  --paper-overlay: rgba(42,35,50,.4);
}

html[data-theme="dusk"][data-theme-mode="dark"] {
  --paper: #24212E; --paper-soft: #2A2735; --paper-card: #302C3B;
  --paper-ink: #F3EDF7; --paper-muted: #B5ABBE;
  --paper-line: #423C4E; --paper-line-strong: #62596F;
  --paper-accent: #C7A0D9; --paper-on-accent: #211D2A; --paper-accent-soft: #493D55;
  --paper-green: #8FB5A1; --paper-blue: #9BADDE; --paper-warm: #D5B279;
  --paper-overlay: rgba(7,5,11,.7);
}

html[data-theme="mono"][data-theme-mode="light"] {
  --paper: #F4F4F1; --paper-soft: #FAFAF7; --paper-card: #FFF;
  --paper-ink: #171715; --paper-muted: #5E5E59;
  --paper-line: #DDDDD7; --paper-line-strong: #B8B8B0;
  --paper-accent: #1D1D1B; --paper-on-accent: #FFF; --paper-accent-soft: #E5E5DF;
  --paper-green: #4A5A4D; --paper-blue: #555C66; --paper-warm: #76675A;
  --paper-overlay: rgba(0,0,0,.4);
}

html[data-theme="mono"][data-theme-mode="dark"] {
  --paper: #141413; --paper-soft: #1A1A18; --paper-card: #20201E;
  --paper-ink: #F2F2ED; --paper-muted: #A7A7A0;
  --paper-line: #343430; --paper-line-strong: #575750;
  --paper-accent: #F0F0EA; --paper-on-accent: #151514; --paper-accent-soft: #353532;
  --paper-green: #A5B0A4; --paper-blue: #A6ABB4; --paper-warm: #B7ADA4;
  --paper-overlay: rgba(0,0,0,.72);
}

:root {
  --font-prose: "LXGW WenKai TC", "Kaiti TC", "Kaiti SC", STKaiti, ui-serif, serif;
  --font-display: "Cormorant Garamond", "Times New Roman", ui-serif, serif;
  --font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", "PingFang SC", "Noto Sans TC", "Noto Sans SC", system-ui, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  --type-page-title-size: clamp(1.3rem, 1.17rem + .42vw, 1.55rem);
  --type-page-title-line: 1.16;
  --type-page-title-weight: 650;
  --type-section-title-size: .8125rem;
  --type-section-title-line: 1.38;
  --type-section-title-weight: 650;
  --type-body-size: .875rem;
  --type-body-line: 1.68;
  --type-meta-size: .6875rem;
  --type-meta-line: 1.48;
  --type-meta-weight: 450;
  --paper-icon-stroke: 1.7;
  --paper-motion-fast: 140ms;
  --paper-motion-medium: 240ms;
  --paper-motion-ease: cubic-bezier(.16, 1, .3, 1);
  --paper-shadow: 0 9px 24px rgba(46,33,24,.08), 0 2px 5px rgba(46,33,24,.05);
  --paper-glass: color-mix(in srgb, var(--paper-soft) 70%, transparent);
  --paper-glass-top: color-mix(in srgb, var(--paper-card) 84%, transparent);
  --paper-glass-bottom: color-mix(in srgb, var(--paper-soft) 58%, transparent);
  --glass-border: color-mix(in srgb, var(--paper-line-strong) 48%, rgba(255,255,255,.56));
  --glass-highlight: color-mix(in srgb, white 68%, transparent);
  --identity-cookie: #a8604f; --identity-codex: #557b73; --identity-user: #b86855;
  --bg: var(--paper) !important; --card: var(--paper-card) !important;
  --border: var(--paper-line) !important; --text: var(--paper-ink) !important;
  --dim: var(--paper-muted) !important; --accent: var(--paper-accent) !important;
  --accent-deep: var(--paper-accent) !important; --pink: var(--paper-accent) !important;
  --green: var(--paper-green) !important; --blue: var(--paper-blue) !important;
}

html[data-theme-mode="dark"] {
  color-scheme: dark;
  --paper-shadow: 0 14px 34px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.2);
  --glass-border: color-mix(in srgb, var(--paper-line-strong) 66%, rgba(255,255,255,.1));
  --glass-highlight: color-mix(in srgb, white 16%, transparent);
  --surface: var(--paper-soft) !important; --card-alt: var(--paper-soft) !important;
  --card-hover: color-mix(in srgb, var(--paper-card) 88%, white 4%) !important;
  --accent-bg: color-mix(in srgb, var(--paper-accent) 16%, transparent) !important;
  --cookie-bg: color-mix(in srgb, var(--identity-cookie) 15%, transparent) !important;
  --pink-light: color-mix(in srgb, var(--paper-accent) 15%, transparent) !important;
  --ink: var(--paper-ink) !important; --ink-soft: var(--paper-muted) !important; --line: var(--paper-line) !important;
  --accent-dim: color-mix(in srgb,var(--paper-accent) 82%,white) !important;
  --bug-bg: color-mix(in srgb, #9b7ac0 16%, transparent) !important; --bug-deep: #c5a5e2 !important; --cookie-deep: #e0a1bf !important;
  --type-meta-weight: 500;
}

* { box-sizing: border-box; }
html { background: var(--paper); }
body.paper-ui,
body {
  background-color: var(--paper) !important;
  color: var(--paper-ink) !important;
  background-image:
    radial-gradient(circle at 13% 8%, color-mix(in srgb,var(--paper-accent) 13%,transparent), transparent 34%),
    radial-gradient(circle at 87% 82%, color-mix(in srgb,var(--paper-blue) 11%,transparent), transparent 32%),
    radial-gradient(circle at 72% 14%, color-mix(in srgb,var(--paper-green) 8%,transparent), transparent 28%),
    radial-gradient(circle at 18% 78%, color-mix(in srgb,var(--paper-warm) 7%,transparent), transparent 26%) !important;
  background-size: auto !important;
}

body.paper-ui { position: relative; isolation: isolate; }
.paper-global-background {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image: var(--paper-global-background-image, none);
  background-position: center; background-repeat: no-repeat; background-size: cover;
  opacity: 0; filter: saturate(.88) contrast(.96);
  transition: opacity .24s ease;
}
html[data-global-background="on"] .paper-global-background { opacity: .78; }
html[data-theme-mode="dark"][data-global-background="on"] .paper-global-background {
  opacity: .62; filter: saturate(.76) brightness(.72) contrast(.94);
}
@media (prefers-reduced-motion: reduce) {
  .paper-global-background { transition: none; }
}

html[data-theme="manuscript"] body {
  background-image:
    linear-gradient(color-mix(in srgb,var(--paper-line) 30%,transparent) 1px,transparent 1px),
    radial-gradient(circle at 14% 8%,color-mix(in srgb,var(--paper-accent) 9%,transparent),transparent 34%),
    radial-gradient(circle at 84% 80%,color-mix(in srgb,var(--paper-blue) 7%,transparent),transparent 32%) !important;
  background-size: 100% 28px,auto,auto !important;
}

html[data-theme="mono"] body { background-image: none !important; }

body { font-family: var(--font-prose); }
button, input, textarea, select { font-family: var(--font-ui); }
.paper-menu-trigger, .paper-drawer, .paper-toast, .bottom-nav,
.section-title, .status, .meta, .timestamp, .time, label, .note,
.choice, .tab, .tool-link { font-family: var(--font-ui); }

/* Shared typography roles. Chat copy keeps its dedicated, user-tuned scale. */
html[data-theme][data-page]:not([data-page="chat"]) body.paper-ui :is(h1, .h1),
html[data-theme][data-page="capsule"] .title,
html[data-theme][data-page="upload"] .title {
  font-family: var(--font-display) !important;
  font-size: var(--type-page-title-size) !important;
  font-weight: var(--type-page-title-weight) !important;
  line-height: var(--type-page-title-line) !important;
  letter-spacing: .015em !important;
  text-wrap: balance;
}
html[data-theme] :is(
  .section-title, .section-label, .card-title, .form-label, .stat-label,
  .drive-label, .jiwen-label, .emotion-label, .notes-label, .book-list-title
) {
  font-family: var(--font-ui) !important;
  font-size: var(--type-section-title-size) !important;
  font-weight: var(--type-section-title-weight) !important;
  line-height: var(--type-section-title-line) !important;
  letter-spacing: .035em;
}
html[data-theme] :is(
  .subtitle, .sub, .meta, .timestamp, .time, .note, .session-id, .status-meta,
  .timeline-meta, .todo-meta, .capsule-meta, .memory-item-meta, .memory-item-date,
  .event-time, .refresh-note, .weather-detail, .weather-day, .transition-time,
  .ch-meta, .upload-hint, .book-size, .modal-meta
) {
  font-family: var(--font-ui) !important;
  font-size: var(--type-meta-size) !important;
  font-weight: var(--type-meta-weight) !important;
  line-height: var(--type-meta-line) !important;
  letter-spacing: .015em;
}
html[data-theme][data-page]:not([data-page="chat"]) :is(
  .thought-text, .todo-desc, .capsule-content, .audioText, .modal-section p
) {
  font-size: var(--type-body-size);
  line-height: var(--type-body-line);
}

.card, .paper-card, .panel, .usage-card, .tool, .modal-card,
.term-wrap, .terminal-legacy, .messages, .login-card {
  background: var(--paper-card) !important;
  border-color: var(--paper-line) !important;
  box-shadow: var(--paper-shadow) !important;
}

button, .btn, input, textarea, select {
  border-color: var(--paper-line-strong) !important;
}

button:not(:disabled), .btn, a { transition: color .16s, background-color .16s, transform .16s; }
button:not(:disabled):active, .btn:active { transform: translate(1px, 1px); }

a { color: var(--paper-accent); }
input, textarea, select {
  background: var(--paper-soft) !important;
  color: var(--paper-ink) !important;
}
input::placeholder, textarea::placeholder { color: var(--paper-muted) !important; opacity: .72; }

.bottom-nav {
  background: linear-gradient(180deg,var(--paper-glass-top),var(--paper-glass-bottom)) !important;
  border-color: var(--glass-border) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.6); backdrop-filter: blur(14px) saturate(1.6);
  box-shadow: 0 -10px 28px color-mix(in srgb,var(--paper-ink) 8%,transparent), inset 0 1px 0 var(--glass-highlight);
}

.paper-rule { height: 1px; background: var(--paper-line); transform: rotate(-.15deg); }
.paper-kicker { color: var(--paper-muted); letter-spacing: .12em; font-size: .72rem; }
.paper-title { color: var(--paper-ink); font-weight: 650; letter-spacing: .025em; }

.paper-actions {
  display: flex; align-items: center; gap: 6px;
}
.paper-icon-btn {
  width: 38px; height: 38px; display: inline-grid; place-items: center;
  border: 1px solid var(--paper-line); border-radius: 48% 52% 47% 53%;
  background: var(--paper-card); color: var(--paper-ink); cursor: pointer;
  box-shadow: 1px 2px 0 rgba(60,52,43,.06);
}
.paper-icon-btn:hover { background: var(--paper-accent-soft); }
.paper-icon-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

svg.paper-line-icon {
  fill: none !important;
  stroke: currentColor;
  stroke-width: var(--paper-icon-stroke) !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
svg.paper-line-icon :is(path, line, polyline, polygon, rect, circle, ellipse) {
  stroke-width: inherit !important;
  stroke-linecap: inherit !important;
  stroke-linejoin: inherit !important;
  vector-effect: non-scaling-stroke;
}

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: paper-page-out 110ms ease both; }
::view-transition-new(root) { animation: paper-page-in var(--paper-motion-medium) var(--paper-motion-ease) both; }
@keyframes paper-page-out { to { opacity: .96; } }
@keyframes paper-page-in {
  from { opacity: .94; transform: translateY(2px); filter: blur(1px); }
  to { opacity: 1; transform: none; filter: none; }
}
@keyframes paper-reveal-in {
  from { opacity: .7; transform: translateY(-3px); filter: blur(.8px); }
  to { opacity: 1; transform: none; filter: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .paper-reveal-in { animation: paper-reveal-in var(--paper-motion-medium) var(--paper-motion-ease) both; }
}
@supports not (view-transition-name: root) {
  @media (prefers-reduced-motion: no-preference) {
    html:not([data-page="chat"]):not([data-page="terminal"]):not([data-page="login"]):not([data-page="jive-bridge"]) .paper-page-root {
      animation: paper-page-in var(--paper-motion-medium) var(--paper-motion-ease) both;
    }
  }
}

.paper-menu-trigger {
  width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 42px;
  border: 0 !important; border-radius: 50%; background: transparent !important;
  color: var(--paper-ink) !important; cursor: pointer;
}
.paper-menu-trigger:hover { background: color-mix(in srgb, var(--paper-soft) 74%, transparent) !important; }
.paper-menu-trigger svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.paper-menu-trigger:focus-visible, .paper-drawer-close:focus-visible, .paper-drawer-nav a:focus-visible { outline: 2px solid var(--paper-accent); outline-offset: 3px; }
.paper-global-trigger {
  position: fixed; top: max(10px, env(safe-area-inset-top)); left: 10px; z-index: 900;
  background: radial-gradient(circle at 28% 12%,var(--glass-highlight),transparent 44%),linear-gradient(180deg,var(--paper-glass-top),var(--paper-glass-bottom)) !important;
  border: 1px solid var(--glass-border) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.6); backdrop-filter: blur(14px) saturate(1.6);
  box-shadow: 0 8px 24px color-mix(in srgb,var(--paper-ink) 12%,transparent), inset 0 1px 0 var(--glass-highlight), inset 0 -1px 0 color-mix(in srgb,var(--paper-ink) 9%,transparent);
}
.paper-legacy-nav { display: none !important; }
body.paper-has-global-trigger > :is(.wrap, .container, .app) { padding-top: max(70px, calc(58px + env(safe-area-inset-top))) !important; }
html[data-page="desire"] body.paper-has-global-trigger,
html[data-page="forge"] body.paper-has-global-trigger,
html[data-page="todo"] body.paper-has-global-trigger,
html[data-page="jive-bridge"] body.paper-has-global-trigger { padding-top: max(70px, calc(58px + env(safe-area-inset-top))) !important; }
html[data-page="cart"] body.paper-has-global-trigger > .header { padding-left: 66px !important; }
.paper-drawer { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--paper-ink); overflow: hidden; }
.paper-drawer::backdrop { background: var(--paper-overlay); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.paper-drawer-shade { position: absolute; inset: 0; width: 100%; height: 100%; border: 0 !important; background: transparent !important; cursor: default; }
.paper-drawer-panel { position: relative; width: min(84vw, 330px); height: 100%; display: flex; flex-direction: column; padding: calc(20px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, color-mix(in srgb,var(--paper-card) 88%,transparent), color-mix(in srgb,var(--paper-soft) 82%,transparent)); border-right:1px solid var(--glass-border); -webkit-backdrop-filter: blur(22px) saturate(1.45); backdrop-filter: blur(22px) saturate(1.45); box-shadow: 12px 0 36px rgba(43,37,31,.17), inset -1px 0 0 var(--glass-highlight); transform: translateX(-102%); transition: transform .28s cubic-bezier(.16,1,.3,1); }
html[data-theme-mode="dark"] .paper-drawer-panel { box-shadow: 14px 0 42px rgba(0,0,0,.48), inset -1px 0 0 rgba(255,255,255,.08); }
.paper-drawer:popover-open .paper-drawer-panel { transform: translateX(0); }
@starting-style { .paper-drawer:popover-open .paper-drawer-panel { transform: translateX(-102%); } }
.paper-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 8px 18px; }
.paper-drawer-head strong { display: block; font-size: 25px; line-height: 1.2; letter-spacing: -.02em; }
.paper-drawer-head span { display: block; margin-top: 4px; color: var(--paper-muted); font-size: 11px; }
.paper-drawer-close { width: 40px; height: 40px; flex: 0 0 40px; border: 0 !important; border-radius: 50%; background: color-mix(in srgb,var(--paper-soft) 62%,transparent) !important; color: var(--paper-ink) !important; display: grid; place-items: center; cursor: pointer; }
.paper-drawer-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.paper-drawer-nav { display: flex; flex-direction: column; gap: 3px; overflow-y: auto; padding: 2px; scrollbar-width: thin; scrollbar-color: var(--paper-line-strong) transparent; }
.paper-drawer-nav a { display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 9px 13px; border-radius: 14px; color: var(--paper-ink); text-decoration: none; font-size: 14px; }
.paper-drawer-nav a:hover { background: color-mix(in srgb,var(--paper-soft) 74%,transparent); }
.paper-drawer-nav a[aria-current="page"] { background: color-mix(in srgb,var(--paper-accent-soft) 72%,transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--paper-accent) 18%,transparent); }
.paper-drawer-nav svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.paper-drawer-section { padding: 18px 13px 6px; color: var(--paper-muted); font-size: 11px; }

.paper-toast {
  position: fixed; left: 50%; bottom: calc(76px + env(safe-area-inset-bottom));
  transform: translateX(-50%); z-index: 9999; padding: 8px 14px;
  border: 1px solid var(--paper-line-strong); border-radius: 10px 13px 9px 12px;
  background: var(--paper-soft); color: var(--paper-ink); box-shadow: var(--paper-shadow);
  font-size: 13px; opacity: 0; pointer-events: none; transition: opacity .18s;
}
.paper-toast.show { opacity: 1; }

@media (max-width: 640px) {
  .paper-icon-btn { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .paper-global-trigger, .bottom-nav, .paper-drawer-panel, .composer { background: var(--paper-card) !important; }
}

/* Shared theme bridge for tools that predate the paper token system. */
html[data-theme][data-page]:is(
  [data-page="reader"], [data-page="todo"], [data-page="desire"], [data-page="toy"],
  [data-page="call"], [data-page="forge"], [data-page="capsule"], [data-page="cat"],
  [data-page="cart"], [data-page="stickers"]
) {
  --surface: var(--paper-soft) !important; --card-alt: var(--paper-soft) !important;
  --card-hover: color-mix(in srgb,var(--paper-card) 90%,var(--paper-accent-soft)) !important;
  --accent-bg: color-mix(in srgb,var(--paper-accent) 12%,transparent) !important;
  --cookie-bg: color-mix(in srgb,var(--identity-cookie) 12%,transparent) !important;
  --ink: var(--paper-ink) !important; --ink-soft: var(--paper-muted) !important; --line: var(--paper-line) !important;
  --sans: var(--font-ui) !important; --serif: var(--font-prose) !important;
  --mono: var(--font-mono) !important; --wk: var(--font-ui) !important; --cg: var(--font-display) !important;
}

html[data-theme][data-page]:is(
  [data-page="reader"], [data-page="todo"], [data-page="desire"], [data-page="toy"],
  [data-page="call"], [data-page="forge"], [data-page="capsule"], [data-page="cat"],
  [data-page="cart"], [data-page="stickers"]
) body { font-family: var(--font-ui) !important; color: var(--paper-ink) !important; }

html[data-theme][data-page]:is(
  [data-page="reader"], [data-page="todo"], [data-page="desire"], [data-page="toy"],
  [data-page="call"], [data-page="forge"], [data-page="capsule"], [data-page="cat"],
  [data-page="cart"], [data-page="stickers"]
) :is(h1, .h1, .title, .shelf-heading h2) { font-family: var(--font-display) !important; color: var(--paper-ink) !important; }

html[data-theme][data-page="reader"] :is(.who, .chapters a:hover, .anno-input textarea, .manage-toggle) {
  background: var(--paper-card) !important; color: var(--paper-ink) !important; border-color: var(--paper-line) !important;
}
html[data-theme][data-page="reader"] :is(.book .m, .bookmarks, .ch-meta, .empty, .shelf-heading p, .shelf-empty, .shelf-error) { color: var(--paper-muted) !important; }
html[data-theme-mode="dark"][data-page="reader"] .book {
  color: var(--paper-ink) !important;
  background: linear-gradient(90deg, rgba(238,230,215,.1) 0 6px, var(--paper-card) 6px) !important;
  border-color: var(--paper-line) !important;
}

html[data-theme][data-page="desire"] :is(.card-title, .intent-action, .jiwen-value, .back-btn),
html[data-theme][data-page="forge"] :is(.card-title, .handoff-btn, .back-btn) { color: var(--paper-accent) !important; }
html[data-theme][data-page="desire"] :is(.subtitle, .drive-label, .drive-val, .jiwen-label, .intent-reason, .loading),
html[data-theme][data-page="forge"] :is(.subtitle, .stat-label, .bubble-time, .tag-label, .note, .loading, .session-id, .status-meta, .timeline-meta) { color: var(--paper-muted) !important; }
html[data-theme][data-page="desire"] :is(.drive-bar-bg, .jiwen-bar-bg, .flit),
html[data-theme][data-page="forge"] :is(.bubble-assistant, .tag, .btn-cancel, .handoff-detail) {
  background: var(--paper-soft) !important; color: var(--paper-ink) !important;
}
html[data-theme][data-page="desire"] :is(.jiwen-decision, .intent-box, .fixation),
html[data-theme][data-page="forge"] .bubble-user { background: var(--paper-accent-soft) !important; color: var(--paper-ink) !important; }
html[data-theme][data-page="desire"] .thought-item { border-color: var(--paper-line) !important; }
html[data-theme][data-page="forge"] :is(.stat-pill, .result-box, .result-box.failed, .result-box.waiting, .result-box.committed) {
  background: var(--paper-card) !important; color: var(--paper-ink) !important;
}
html[data-theme][data-page="forge"] :is(.stat-val, .tag) { color: var(--paper-ink) !important; }
html[data-theme][data-page="forge"] .timeline-item { border-color: var(--paper-line-strong) !important; }
html[data-theme]:is([data-page="desire"], [data-page="forge"]) body > div:first-of-type > div:nth-child(2) { color: var(--paper-ink) !important; }

html[data-theme][data-page="toy"] :is(.item, .item-icon),
html[data-theme][data-page="todo"] :is(.todo-item, .add-bar),
html[data-theme][data-page="capsule"] :is(.capsule, .create-section) {
  background: var(--paper-card) !important; color: var(--paper-ink) !important; border-color: var(--paper-line) !important;
}
html[data-theme][data-page="toy"] :is(.item-info .desc, .item-arrow, .back),
html[data-theme][data-page="todo"] :is(.subtitle, .todo-desc, .todo-meta, .section-label, .empty),
html[data-theme][data-page="capsule"] :is(.subtitle, .capsule-meta, .capsule-content-hint, .empty, .form-label) { color: var(--paper-muted) !important; }
html[data-theme][data-page="toy"] .item-icon,
html[data-theme][data-page="capsule"] .capsule:hover { background: var(--paper-soft) !important; }

html[data-theme][data-page="call"] code { background: var(--paper-soft) !important; color: var(--paper-ink) !important; }

html[data-theme][data-page="cart"] :is(.shop-header, .item, .modal, .bottom-bar) {
  background: var(--paper-card) !important; color: var(--paper-ink) !important; border-color: var(--paper-line) !important;
}
html[data-theme][data-page="cart"] .item:hover { background: var(--paper-soft) !important; }
html[data-theme][data-page="cart"] :is(.item-img, .modal-img, .reason-box, .review-box, .modal-close, .tag-sale, .tag-new, .tag-hot) { background: var(--paper-soft) !important; }
html[data-theme][data-page="cart"] :is(.item-title, .modal-section p) { color: var(--paper-ink) !important; }
html[data-theme][data-page="cart"] :is(.item-price .original, .item-qty, .item-date, .modal-original, .modal-meta, .modal-section h3) { color: var(--paper-muted) !important; }
html[data-theme][data-page="cart"] .modal-meta { border-color: var(--paper-line) !important; }

html[data-theme][data-page="cat"] :is(.stats, .action-btn, .action-sub, .events) {
  background: var(--paper-card) !important; color: var(--paper-ink) !important; border-color: var(--paper-line) !important;
}
html[data-theme][data-page="cat"] :is(.cat-avatar, .sub-btn) { background: var(--paper-soft) !important; border-color: var(--paper-line) !important; }
html[data-theme][data-page="cat"] :is(.cat-mood, .cat-location, .cat-age, .weight-info, .refresh-note, .stat-label, .stat-val, .event-time) { color: var(--paper-muted) !important; }
html[data-theme][data-page="cat"] :is(.stat-bar-bg, .weight-info) { border-color: var(--paper-line) !important; background-color: var(--paper-soft) !important; }
html[data-theme][data-page="cat"] :is(.cat-name, .events h3, .event-item) { color: var(--paper-ink) !important; }

html[data-theme-mode="dark"][data-page="jive-bridge"] :is(.ok, .err, .pending, #log) { color: #eee6d7 !important; }

.markdown-body { font-family: var(--font-prose); line-height: 1.72; overflow-wrap: anywhere; }
.markdown-body > :first-child { margin-top: 0; }
.markdown-body > :last-child { margin-bottom: 0; }
.markdown-body p { margin: .45em 0; }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4 { margin: .9em 0 .35em; line-height: 1.3; font-family: var(--font-prose); }
.markdown-body h1 { font-size: 1.42em; } .markdown-body h2 { font-size: 1.25em; } .markdown-body h3 { font-size: 1.12em; }
.markdown-body ul, .markdown-body ol { margin: .45em 0; padding-left: 1.45em; }
.markdown-body blockquote { margin: .65em 0; padding: .35em .7em; border: 1px solid var(--paper-line); border-radius: 8px; background: color-mix(in srgb,var(--paper-accent-soft) 42%,transparent); color: var(--paper-muted); }
.markdown-body hr { border: 0; border-top: 1px solid var(--paper-line); margin: 1em 0; transform: rotate(-.1deg); }
.md-inline { padding: .1em .32em; border: 1px solid var(--paper-line); border-radius: 5px; background: var(--paper-accent-soft); font-family: var(--font-mono); font-size: .9em; }
.md-code { margin: .7em 0; overflow: hidden; border: 1px solid var(--paper-line-strong); border-radius: 10px 13px 9px 12px; background: #282722; color: #eee6d7; }
.md-code-head { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-bottom: 1px solid rgba(255,255,255,.12); color: #c8bead; font: 11px ui-monospace, monospace; }
.md-code-actions { display: inline-flex; align-items: center; gap: 4px; }
.md-code-head button { border: 0 !important; background: transparent !important; color: inherit !important; padding: 3px 5px; cursor: pointer; }
.md-code pre { margin: 0; padding: 12px; overflow: auto; max-height: 360px; }
.md-code.expanded pre { max-height: none; }
.md-code code { font: 12px/1.58 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre; }
.md-table-wrap { overflow-x: auto; margin: .65em 0; }
.markdown-body table { width: 100%; border-collapse: collapse; font-size: .92em; }
.markdown-body th, .markdown-body td { padding: 6px 8px; border: 1px solid var(--paper-line); text-align: left; }
.markdown-body th { background: var(--paper-accent-soft); }
.hljs-keyword,.hljs-selector-tag,.hljs-literal { color:#e6a986 }.hljs-string,.hljs-attr { color:#b9d28e }.hljs-number,.hljs-built_in { color:#d7b57b }.hljs-comment { color:#938b7e;font-style:italic }.hljs-title,.hljs-function { color:#8fc6c1 }.hljs-variable,.hljs-template-variable { color:#d99a95 }
