:root {
  --ink: #17191f;
  --muted: #6e737d;
  --faint: #9ba0aa;
  --line: #e7e9ed;
  --soft: #f5f6f8;
  --paper: #ffffff;
  --green: #148754;
  --blue: #2d62d7;
  --accent-yellow: #ffb64b;
  --accent-yellow-rgb: 255, 182, 75;
  --accent-yellow-soft: #fff0dc;
  --amber: var(--accent-yellow);
  --accent-orange: var(--accent-yellow);
  --accent-orange-cream: var(--accent-yellow);
  --accent-orange-soft: var(--accent-yellow-soft);
  --accent-orange-deep: var(--ink);
  --danger: #c0392b;
  --radius: 20px;
  --shadow: 0 18px 60px rgba(25, 28, 35, .11);
  --motion-curve: cubic-bezier(.32,.72,0,1);
  --motion-ease-out: cubic-bezier(.23,1,.32,1);
  --motion-ease-in-out: cubic-bezier(.77,0,.175,1);
  --motion-fast: 160ms;
  --motion-control: 220ms;
  --motion-nav: 320ms;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html {
  overflow-x: clip;
  background: #eef0f3;
  scroll-padding-bottom: 112px;
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  color: var(--ink);
  background:
    radial-gradient(circle at 15% 0%, rgba(255,255,255,.95), transparent 34rem),
    #eef0f3;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

button, input, textarea, select { font: inherit; }
button { color: inherit; }

.app-shell {
  width: min(100%, 520px);
  min-height: 100vh;
  margin: 0 auto;
  background: var(--paper);
  position: relative;
  padding-bottom: 78px;
  box-shadow: var(--shadow);
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 86px;
  padding: 20px 22px 14px;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(231,233,237,.7);
}

.eyebrow {
  margin: 0 0 4px;
  color: var(--faint);
  font-size: 10px;
  line-height: 1;
  letter-spacing: .15em;
  font-weight: 800;
}

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: 22px; letter-spacing: -.04em; }
h2 { margin-bottom: 0; font-size: 21px; letter-spacing: -.035em; }
h3 { font-size: 15px; }

.header-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--muted);
  font-size: 11px;
}

.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.app-view {
  padding: 18px 18px 28px;
  scroll-padding-bottom: 112px;
}

.tab-bar {
  position: fixed;
  left: 50%;
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 40;
  width: min(calc(100% - 30px), 490px);
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 999px;
  background: rgba(255,255,255,.56);
  -webkit-backdrop-filter: blur(28px) saturate(1.8);
  backdrop-filter: blur(28px) saturate(1.8);
  box-shadow: 0 12px 32px rgba(23,25,31,.14), inset 0 1px 0 rgba(255,255,255,.72);
}

.tab {
  min-height: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--faint);
  cursor: pointer;
  font-size: 9.5px;
  transition: color .2s ease, background .2s ease;
}

.tab.active { background: rgba(92,96,105,.13); color: var(--ink); font-weight: 750; }

.nav-icon { position: relative; width: 20px; height: 20px; display: block; color: currentColor; }
.nav-icon::before, .nav-icon::after, .nav-icon i, .nav-icon i::before, .nav-icon i::after { position: absolute; content: ""; display: block; box-sizing: border-box; }

.tab[data-tab="schedule"] .nav-icon { border: 1.5px solid currentColor; border-radius: 4px; margin-top: 1px; height: 18px; }
.tab[data-tab="schedule"] .nav-icon::before { left: -1.5px; right: -1.5px; top: 5px; border-top: 1.5px solid currentColor; }
.tab[data-tab="schedule"] .nav-icon::after { width: 2px; height: 4px; left: 4px; top: -3px; border-radius: 2px; background: currentColor; box-shadow: 8px 0 0 currentColor; }

.tab[data-tab="topics"] .nav-icon { width: 17px; height: 19px; margin-left: 1px; border: 1.5px solid currentColor; border-radius: 3px; }
.tab[data-tab="topics"] .nav-icon::before { left: 4px; right: 3px; top: 5px; border-top: 1.5px solid currentColor; box-shadow: 0 4px 0 currentColor, 0 8px 0 currentColor; }

.tab[data-tab="ai"] .nav-icon { width: 20px; height: 20px; margin-top: 0; }
.tab[data-tab="ai"] .nav-icon::before,
.tab[data-tab="ai"] .nav-icon::after { display: none; }
.tab[data-tab="ai"] .nav-icon svg { width: 100%; height: 100%; display: block; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }

.tab[data-tab="scripts"] .nav-icon { width: 16px; height: 19px; border: 1.5px solid currentColor; border-radius: 3px; }
.tab[data-tab="scripts"] .nav-icon::before { width: 5px; height: 5px; right: -1.5px; top: -1.5px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; background: rgba(255,255,255,.45); }
.tab[data-tab="scripts"] .nav-icon::after { left: 3px; right: 3px; top: 8px; border-top: 1.5px solid currentColor; box-shadow: 0 4px 0 currentColor; }

.tab[data-tab="mine"] .nav-icon::before { width: 7px; height: 7px; left: 6.5px; top: 1px; border: 1.5px solid currentColor; border-radius: 50%; }
.tab[data-tab="mine"] .nav-icon::after { width: 16px; height: 9px; left: 2px; bottom: 1px; border: 1.5px solid currentColor; border-bottom: 0; border-radius: 9px 9px 3px 3px; }

.section-head, .row-between, .detail-head, .card-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.section-head { margin-bottom: 14px; }
.section-head h2, .section-head h3 { margin: 0; }
.subtle { color: var(--muted); font-size: 12px; line-height: 1.6; }
.muted { color: var(--muted); }
.small { font-size: 11px; }

.button, .icon-button, .chip-button {
  border: 0;
  cursor: pointer;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 17px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 13px;
}

.button.primary { background: var(--ink); color: #fff; }
.button.secondary { background: var(--soft); color: var(--ink); }
.button.danger { background: #fff0ee; color: var(--danger); }
.button.block { width: 100%; }
.button:disabled { opacity: .45; cursor: wait; }

.icon-button {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--soft);
  font-size: 22px;
  line-height: 1;
}

.toolbar { display: flex; align-items: center; gap: 8px; }
.toolbar.wrap { flex-wrap: wrap; }

.card {
  margin-bottom: 11px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: #fff;
}

button.card { width: 100%; text-align: left; cursor: pointer; }
button.card:hover { border-color: #cfd2d8; }
.card-title { margin: 0 0 7px; font-size: 14px; font-weight: 750; line-height: 1.5; }
.card-meta { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }

.chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 700;
}

.chip.green { background: #e8f5ee; color: var(--green); }
.chip.blue { background: #edf3ff; color: var(--blue); }
.chip.amber { background: rgba(var(--accent-yellow-rgb), .2); color: var(--ink); }
.chip.dark { background: var(--ink); color: #fff; }

.quick-form {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--soft);
}

.quick-form input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  padding: 0 12px;
  background: transparent;
  font-size: 13px;
}

.quick-form .button { min-height: 38px; }

.calendar {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.calendar-head { display: grid; grid-template-columns: repeat(7, 1fr); padding: 10px 8px 6px; color: var(--faint); font-size: 10px; text-align: center; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); padding: 0 8px 10px; }
.calendar-day {
  position: relative;
  min-height: 52px;
  padding: 7px 2px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
}
.calendar-day.other { color: #c6c9cf; }
.calendar-day.selected { background: var(--ink); color: #fff; font-weight: 800; }
.calendar-day.today:not(.selected) { box-shadow: inset 0 0 0 1px var(--ink); }
.event-dots { display: flex; justify-content: center; gap: 3px; margin-top: 7px; }
.event-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .65; }

.empty-state {
  padding: 32px 18px;
  border: 1px dashed #d8dbe0;
  border-radius: var(--radius);
  text-align: center;
  color: var(--muted);
}
.empty-state h3 { margin-bottom: 7px; color: var(--ink); }
.empty-state p { margin-bottom: 16px; font-size: 12px; line-height: 1.7; }

.back-button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 18px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--muted);
  font-size: 13px;
}

.detail-title { margin-bottom: 8px; font-size: 24px; letter-spacing: -.04em; line-height: 1.25; }
.detail-head { align-items: flex-start; margin-bottom: 20px; }
.detail-actions { display: flex; gap: 7px; }

.stage-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 7px;
  margin: 18px 0;
}

.stage {
  min-height: 64px;
  padding: 8px 3px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  color: var(--muted);
  font-size: 10px;
}
.stage::before { content: "○"; display: block; margin-bottom: 4px; font-size: 18px; }
.stage.done { border-color: var(--ink); background: var(--ink); color: #fff; font-weight: 750; }
.stage.done::before { content: "✓"; }
.stage.payment.done { border-color: var(--green); background: var(--green); }

.info-list { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--line); }
.info-row { display: flex; justify-content: space-between; gap: 18px; padding: 13px 15px; background: #fff; font-size: 12px; }
.info-row dt { color: var(--muted); }
.info-row dd { margin: 0; text-align: right; font-weight: 650; }

.payment-list { display: grid; gap: 9px; margin-top: 12px; }
.payment-row {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.payment-check { width: 24px; height: 24px; accent-color: var(--green); }
.payment-label { font-size: 13px; font-weight: 750; }
.payment-meta { margin-top: 3px; color: var(--muted); font-size: 10.5px; }
.payment-amount { font-size: 14px; font-weight: 800; }

.filter-row { display: flex; gap: 7px; overflow-x: auto; margin: 0 -18px 14px; padding: 0 18px 2px; scrollbar-width: none; }
.filter-row::-webkit-scrollbar { display: none; }
.chip-button { flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; background: var(--soft); color: var(--muted); font-size: 12px; }
.chip-button.active { background: var(--ink); color: #fff; font-weight: 700; }

.search-input, .field input, .field textarea, .field select, .chat-compose textarea, .script-title, .script-body {
  width: 100%;
  border: 1px solid var(--line);
  outline: 0;
  background: var(--soft);
  color: var(--ink);
}
.search-input { margin-bottom: 14px; padding: 12px 14px; border-radius: 999px; font-size: 13px; }
.search-input:focus, .field input:focus, .field textarea:focus, .field select:focus, .chat-compose textarea:focus, .script-title:focus, .script-body:focus { border-color: var(--ink); background: #fff; }

.analysis-box { margin: 16px 0; padding: 17px; border-radius: 18px; background: var(--soft); }
.analysis-section + .analysis-section { margin-top: 14px; }
.analysis-section h3 { margin-bottom: 6px; }
.analysis-section p, .analysis-section li { color: var(--muted); font-size: 12px; line-height: 1.8; }
.analysis-section ul { margin: 0; padding-left: 20px; }

.group-title { margin: 20px 2px 9px; color: var(--faint); font-size: 11px; font-weight: 800; }

.chat {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 48vh;
}
.message { display: flex; }
.message.user { justify-content: flex-end; }
.bubble { max-width: 84%; padding: 12px 14px; border-radius: 17px; font-size: 13px; line-height: 1.75; white-space: pre-wrap; }
.message.user .bubble { background: var(--ink); color: #fff; border-bottom-right-radius: 5px; }
.message.assistant .bubble { background: var(--soft); border: 1px solid var(--line); border-bottom-left-radius: 5px; }
.message.pending .bubble { color: var(--muted); }
.message.assistant .bubble.ai-rich { padding: 16px; white-space: normal; line-height: 1.82; }
.ai-rich p { margin: 0 0 10px; }
.ai-rich p:last-child { margin-bottom: 0; }
.ai-rich h3 { margin: 19px 0 8px; color: var(--ink); font-size: 14px; line-height: 1.45; letter-spacing: -.01em; }
.ai-rich h3:first-child { margin-top: 0; }
.ai-rich strong { color: var(--ink); font-weight: 800; }
.ai-rich ul { margin: 0 0 12px; padding: 0; list-style: none; }
.ai-rich li { position: relative; margin: 7px 0; padding-left: 12px; }
.ai-rich li::before { content: ''; position: absolute; top: .76em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: var(--ink); opacity: .45; }
.ai-rich hr { height: 1px; margin: 17px 0; border: 0; background: var(--line); }

.chat-compose {
  position: sticky;
  bottom: 72px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  margin-top: 18px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(16px);
}
.chat-compose textarea { min-height: 46px; max-height: 120px; resize: vertical; padding: 11px 13px; border-radius: 14px; font-size: 13px; }

.script-title { padding: 13px 14px; border-radius: 14px; font-size: 17px; font-weight: 800; }
.script-body { min-height: 390px; margin-top: 10px; padding: 15px; border-radius: 16px; resize: vertical; font-size: 13px; line-height: 1.85; }
.save-state { color: var(--green); font-size: 11px; }
.ai-tools { display: flex; gap: 7px; overflow-x: auto; margin: 12px -18px; padding: 0 18px 4px; scrollbar-width: none; }
.ai-suggestion { margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 17px; background: var(--soft); }
.ai-suggestion pre { margin: 10px 0 14px; white-space: pre-wrap; font: inherit; color: var(--muted); line-height: 1.75; }

.profile-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 0 22px;
}
.avatar {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #f4f5f6, #e1e3e7);
  box-shadow: 0 8px 22px rgba(23,25,31,.12);
  font-size: 27px;
  font-weight: 800;
}
.profile-name { margin: 12px 0 4px; font-size: 16px; font-weight: 800; }
.profile-state { margin: 0; color: var(--muted); font-size: 11px; }

.income-summary {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--line);
  padding: 0;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.income-cell { padding: 18px; background: #fff; }
.income-value { margin: 6px 0 0; font-size: 24px; font-weight: 850; letter-spacing: -.04em; }
.menu-card { padding: 0; overflow: hidden; }
.menu-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 0 16px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
  text-align: left;
  font-size: 13px;
}
.menu-item:last-child { border-bottom: 0; }
.menu-item span:last-child { color: var(--faint); }

.ledger-total {
  margin-bottom: 14px;
  padding: 24px 18px;
  border-radius: 20px;
  background: var(--ink);
  color: #fff;
  text-align: center;
}
.ledger-total .eyebrow { color: rgba(255,255,255,.55); }
.ledger-total-value { margin: 8px 0 5px; font-size: 36px; font-weight: 850; letter-spacing: -.05em; }
.ledger-total-sub { margin: 0; color: rgba(255,255,255,.62); font-size: 11px; }
.ledger-row {
  display: grid;
  grid-template-columns: 46px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 14px 2px;
  border-bottom: 1px solid var(--line);
}
.ledger-date { text-align: center; }
.ledger-date strong { display: block; font-size: 17px; }
.ledger-date span { color: var(--faint); font-size: 9px; }
.ledger-title { font-size: 13px; font-weight: 700; }
.ledger-meta { margin-top: 4px; color: var(--muted); font-size: 10.5px; }
.ledger-amount { color: var(--green); font-size: 14px; font-weight: 800; }
.month-row { display: grid; grid-template-columns: 38px 1fr 76px; align-items: center; gap: 10px; padding: 13px 2px; border-bottom: 1px solid var(--line); font-size: 12px; }
.month-bar { height: 6px; overflow: hidden; border-radius: 999px; background: var(--soft); }
.month-bar i { display: block; height: 100%; border-radius: inherit; background: var(--ink); }
.month-value { text-align: right; font-weight: 750; }

.editor-dialog {
  width: min(calc(100% - 28px), 480px);
  max-height: calc(100vh - 40px);
  padding: 0;
  border: 0;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(23,25,31,.25);
}
.editor-dialog::backdrop { background: rgba(18,20,25,.42); backdrop-filter: blur(3px); }
.editor-dialog form { padding: 21px; }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }
.dialog-fields { display: grid; gap: 15px; max-height: 62vh; overflow-y: auto; padding-right: 2px; }
.field { display: grid; gap: 7px; }
.field label { font-size: 12px; font-weight: 700; }
.field input, .field textarea, .field select { padding: 11px 12px; border-radius: 12px; font-size: 13px; }
.field textarea { min-height: 86px; resize: vertical; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dialog-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: 9px; margin-top: 20px; }

.toast {
  position: fixed;
  left: 50%;
  bottom: 76px;
  z-index: 100;
  max-width: calc(100% - 40px);
  padding: 11px 16px;
  border-radius: 12px;
  transform: translate(-50%, 6px);
  opacity: 0;
  pointer-events: none;
  background: rgba(23,25,31,.92);
  color: #fff;
  font-size: 12px;
  transition: opacity .16s ease-out, transform .16s ease-out;
}
.toast.show { transform: translate(-50%, 0); opacity: 1; }

@media (min-width: 700px) {
  body { padding: 24px 0; }
  .app-shell { min-height: calc(100vh - 48px); border-radius: 32px; overflow: hidden; }
  .tab-bar { bottom: 38px; }
}

@media (max-width: 380px) {
  .app-view { padding-left: 14px; padding-right: 14px; }
  .stage-grid { gap: 4px; }
  .stage { font-size: 9px; }
}

@media (max-width: 699px) {
  .auth-dialog {
    width: 100%;
    max-width: none;
    max-height: min(86dvh, 720px);
    margin: auto 0 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 28px 28px 0 0;
  }
  .auth-dialog form {
    max-height: min(86dvh, 720px);
    overflow: auto;
    padding-bottom: calc(22px + env(safe-area-inset-bottom));
  }
  .auth-dialog[open] { animation-name: auth-sheet-in; }
}

/* Stitch 最终级联：放在旧版兼容样式之后 */
:root { --ink:#111315; --muted:#626670; --faint:#969aa4; --line:rgba(17,19,21,.075); --soft:#f0f1f3; --paper:#fff; --canvas:#f7f8fa; --shadow:0 12px 34px rgba(17,19,21,.075); }
html,body{background:var(--canvas)}
body{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
.app-shell{width:min(100%,430px);min-height:100dvh;padding-bottom:108px;background:var(--canvas);box-shadow:0 28px 90px rgba(17,19,21,.12)}
.app-shell::before,.app-shell::after{display:none}
.app-header{min-height:92px;padding:50px 22px 13px;background:rgba(247,248,250,.88);border:0;box-shadow:0 1px 10px rgba(17,19,21,.025)}
.app-header h1{font-size:22px;font-weight:800;letter-spacing:-.04em}
.header-add-button{display:none!important}
.app-view{padding:10px 16px 30px}
.tab-bar{grid-template-columns:repeat(4,1fr);width:min(calc(100% - 32px),398px);bottom:max(15px,env(safe-area-inset-bottom));padding:6px;gap:2px;background:rgba(255,255,255,.84);border:1px solid rgba(17,19,21,.04);box-shadow:0 14px 38px rgba(17,19,21,.11)}
.tab{min-height:55px;gap:4px;border:0;background:transparent;box-shadow:none;font-size:12px;color:#3f4452}
.tab.active{background:#292c2d;color:#fff;font-weight:750;box-shadow:0 5px 13px rgba(17,19,21,.18)}
.tab[data-tab="ai"] .nav-icon svg{fill:currentColor;stroke:none}
.shoot-card,.topic-card,.project-card{backdrop-filter:none}
.editor-dialog{width:min(100%,430px);height:100dvh;max-height:100dvh;margin:0 auto;padding:0;border-radius:0;background:var(--canvas);box-shadow:none}
.editor-dialog form{height:100%;display:flex;flex-direction:column;padding:15px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto}
.editor-dialog .dialog-head{position:sticky;top:-15px;z-index:5;align-items:center;margin:0 -16px 12px;padding:12px 16px;background:rgba(247,248,250,.9);backdrop-filter:blur(18px)}
.editor-dialog .dialog-fields{display:grid;gap:14px;max-height:none;overflow:visible}
.editor-dialog .form-section{padding:18px;border:0;border-radius:28px;background:#fff;box-shadow:var(--shadow)}
.editor-dialog .dialog-actions{position:sticky;bottom:-1px;z-index:5;margin:14px -16px -20px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(247,248,250,.92);backdrop-filter:blur(18px)}
body[data-route="projects"] .app-header,body[data-route="schedule-detail"] .app-header,body[data-route="ledger"] .app-header{display:none}
body[data-route="projects"] .tab-bar,body[data-route="schedule-detail"] .tab-bar,body[data-route="ledger"] .tab-bar,body[data-route="topic-detail"] .tab-bar,body[data-route="script-editor"] .tab-bar{display:none}
body[data-route="projects"] .app-shell,body[data-route="schedule-detail"] .app-shell,body[data-route="ledger"] .app-shell,body[data-route="topic-detail"] .app-shell,body[data-route="script-editor"] .app-shell{padding-bottom:26px}
body[data-route="projects"] .app-view,body[data-route="schedule-detail"] .app-view,body[data-route="ledger"] .app-view{padding-top:9px}
@media(min-width:700px){body{padding:24px 0}.app-shell{min-height:calc(100dvh - 48px);border-radius:34px;overflow:clip}.tab-bar{bottom:38px}.editor-dialog{height:min(92dvh,900px);max-height:min(92dvh,900px);margin:auto;border-radius:32px}}

/* 2026-09 Stitch 视觉实现：以移动端参考截图为准 */
:root {
  --ink: #111315;
  --muted: #626670;
  --faint: #969aa4;
  --line: rgba(17, 19, 21, .075);
  --soft: #f0f1f3;
  --paper: #fff;
  --canvas: #f7f8fa;
  --shadow: 0 12px 34px rgba(17, 19, 21, .075);
}

html, body { background: var(--canvas); }
body { font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; }
.app-shell { width: min(100%, 430px); min-height: 100dvh; padding-bottom: 108px; background: var(--canvas); box-shadow: 0 28px 90px rgba(17,19,21,.12); }
.app-header { min-height: 92px; padding: 50px 22px 13px; background: rgba(247,248,250,.88); border: 0; box-shadow: 0 1px 10px rgba(17,19,21,.025); }
.app-header h1 { font-size: 22px; font-weight: 800; letter-spacing: -.04em; }
.app-view { padding: 10px 16px 30px; }
.tab-bar { grid-template-columns: repeat(4, 1fr); width: min(calc(100% - 32px), 398px); bottom: max(15px, env(safe-area-inset-bottom)); padding: 6px; gap: 2px; background: rgba(255,255,255,.84); border: 1px solid rgba(17,19,21,.04); box-shadow: 0 14px 38px rgba(17,19,21,.11); }
.tab { min-height: 55px; gap: 4px; font-size: 12px; color: #3f4452; }
.tab.active { background: #292c2d; color: #fff; font-weight: 750; box-shadow: 0 5px 13px rgba(17,19,21,.18); }
.tab[data-tab="topics"] .nav-icon { border: 0; width: 19px; height: 20px; border-radius: 50% 50% 42% 42%; box-shadow: inset 0 0 0 1.6px currentColor; }
.tab[data-tab="topics"] .nav-icon::before { left: 6px; right: 6px; top: 4px; bottom: 7px; border: 0; border-radius: 50%; box-shadow: none; background: currentColor; opacity: .16; }
.tab[data-tab="topics"] .nav-icon::after { left: 6px; width: 7px; bottom: -2px; border-top: 1.6px solid currentColor; }
.tab[data-tab="ai"] .nav-icon svg { fill: currentColor; stroke: none; }

body[data-route="projects"] .app-header,
body[data-route="schedule-detail"] .app-header,
body[data-route="ledger"] .app-header { display: none; }
body[data-route="projects"] .tab-bar,
body[data-route="schedule-detail"] .tab-bar,
body[data-route="ledger"] .tab-bar,
body[data-route="topic-detail"] .tab-bar,
body[data-route="script-editor"] .tab-bar { display: none; }
body[data-route="projects"] .app-shell,
body[data-route="schedule-detail"] .app-shell,
body[data-route="ledger"] .app-shell,
body[data-route="topic-detail"] .app-shell,
body[data-route="script-editor"] .app-shell { padding-bottom: 26px; }
body[data-route="projects"] .app-view,
body[data-route="schedule-detail"] .app-view,
body[data-route="ledger"] .app-view { padding-top: 9px; }

.date-hero { display:flex; align-items:flex-end; justify-content:space-between; padding: 3px 1px 9px; }
.today-label { display:block; font-size:12px; color:#3f434c; font-weight:600; letter-spacing:.02em; }
.today-label i { display:inline-block; width:7px; height:7px; margin-right:5px; border-radius:50%; background:var(--ink); }
.date-hero strong { display:inline-block; margin-top:3px; font-size:36px; line-height:1; letter-spacing:-.06em; font-variant-numeric:tabular-nums; }
.date-hero b { margin-left:4px; font-size:19px; }
.date-tools { display:flex; align-items:center; gap:9px; }
.segment { display:flex; padding:4px; border-radius:999px; background:#ebecef; }
.segment button { min-width:43px; min-height:30px; padding:0 12px; border:0; border-radius:999px; background:transparent; color:#4e5360; font-weight:750; cursor:pointer; }
.segment button.active { background:#2d3031; color:#fff; box-shadow:0 3px 9px rgba(17,19,21,.18); }
.round-add { width:43px; height:43px; border:0; border-radius:50%; background:#2d3031; color:#fff; font-size:30px; line-height:1; box-shadow:0 7px 17px rgba(17,19,21,.2); cursor:pointer; }
.week-strip { display:flex; gap:10px; overflow-x:auto; margin:11px -16px 27px; padding:1px 16px 12px; scrollbar-width:none; }
.week-day { flex:0 0 54px; min-height:76px; padding:10px 5px; border:1px solid var(--line); border-radius:17px; background:#fff; color:#333741; box-shadow:0 5px 13px rgba(17,19,21,.055); }
.week-day.selected { background:#2d3031; color:#fff; border-color:#2d3031; box-shadow:0 11px 24px rgba(17,19,21,.2); }
.week-label { font-size:12px; color:inherit; opacity:.78; }
.week-day strong { margin:4px 0 3px; font-size:19px; font-variant-numeric:tabular-nums; }
.week-event-dots { min-height:6px; }
.week-event-dot { width:6px; height:6px; background:currentColor !important; opacity:.38; }
.week-day.selected .week-event-dot { opacity:.92; }
.stitch-section-title { display:flex; align-items:center; justify-content:space-between; margin:0 2px 10px; }
.stitch-section-title h2 { font-size:21px; font-weight:800; letter-spacing:-.035em; }
.stitch-section-title span { color:#555963; font-size:13px; }
.spotlight-stack { position:relative; }
/* 同一天多个拍摄安排时叠成一摞：除最后一张外都绝对定位，
   逐层下移 + 左右内缩，最后一张留在文档流里撑起整摞高度 */
.spotlight-stack.stacked { display:flex; flex-direction:column; }
.spotlight-stack.stacked > .shoot-card { position:absolute; width:auto; }
.spotlight-stack.stacked > .shoot-card:nth-child(1) { top:0; left:0; right:0; z-index:30; }
.spotlight-stack.stacked > .shoot-card:nth-child(2) { top:15px; left:7px; right:7px; z-index:29; background:#26292c; }
.spotlight-stack.stacked > .shoot-card:nth-child(3) { top:30px; left:14px; right:14px; z-index:28; background:#23262a; }
.spotlight-stack.stacked > .shoot-card:nth-child(4) { top:45px; left:21px; right:21px; z-index:27; background:#202327; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+5) { top:60px; left:28px; right:28px; z-index:26; background:#1d2024; }
.spotlight-stack.stacked > .shoot-card:nth-child(2):last-child { position:relative; top:auto; left:auto; right:auto; margin:15px 7px 10px; }
.spotlight-stack.stacked > .shoot-card:nth-child(3):last-child { position:relative; top:auto; left:auto; right:auto; margin:30px 14px 10px; }
.spotlight-stack.stacked > .shoot-card:nth-child(4):last-child { position:relative; top:auto; left:auto; right:auto; margin:45px 21px 10px; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+5):last-child { position:relative; top:auto; left:auto; right:auto; margin:60px 28px 10px; }
/* 展开 / 收起控件 */
.stack-toggle-row { display:flex; justify-content:center; margin:11px 0 2px; }
.stack-toggle { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border:0; border-radius:999px; background:#eceef0; cursor:pointer; transition:transform 220ms cubic-bezier(.23,1,.32,1), background-color 220ms cubic-bezier(.23,1,.32,1); }
.stack-toggle span { color:#555963; font-size:12px; }
.stack-toggle b { color:var(--ink); font-size:12px; font-weight:750; }
.stack-toggle:active { transform:scale(.94); background-color:#e2e4e8; }
.stack-toggle .chevron { width:7px; height:7px; margin-top:-3px; border-right:1.6px solid var(--ink); border-bottom:1.6px solid var(--ink); transform:rotate(45deg); transition:transform 320ms cubic-bezier(.34,1.56,.64,1), margin 320ms cubic-bezier(.34,1.56,.64,1); }
.stack-toggle.open .chevron { margin-top:3px; transform:rotate(-135deg); }
/* 展开：卡片依次落位；收起：卡片重新聚回一摞 */
.spotlight-stack.motion-expanding > .shoot-card { animation:card-drop 340ms cubic-bezier(.23,1,.32,1) both; }
.spotlight-stack.motion-collapsing > .shoot-card { animation:card-gather 280ms cubic-bezier(.23,1,.32,1) both; }
.spotlight-stack.motion-expanding > .shoot-card:nth-child(2) { animation-delay:45ms; }
.spotlight-stack.motion-expanding > .shoot-card:nth-child(3) { animation-delay:90ms; }
.spotlight-stack.motion-expanding > .shoot-card:nth-child(4) { animation-delay:135ms; }
.spotlight-stack.motion-expanding > .shoot-card:nth-child(n+5) { animation-delay:180ms; }
@keyframes card-drop { from { opacity:0; transform:translate3d(0,-14px,0) scale(.96); } to { opacity:1; transform:translate3d(0,0,0) scale(1); } }
@keyframes card-gather { from { opacity:.55; transform:translate3d(0,14px,0) scale(.97); } to { opacity:1; transform:translate3d(0,0,0) scale(1); } }
.shoot-card { width:100%; display:block; margin:0 0 10px; padding:18px; border:0; border-radius:28px; background:#2d3031; color:#fff; text-align:left; box-shadow:0 14px 28px rgba(17,19,21,.16); cursor:pointer; }
.shoot-card.featured { background:#2d3031; color:#fff; box-shadow:0 14px 28px rgba(17,19,21,.16); }
.shoot-tags { display:flex; align-items:center; gap:6px; margin-bottom:11px; }
.shoot-tags span { padding:4px 11px; border-radius:999px; background:rgba(255,255,255,.16); color:#fff; font-size:11px; font-weight:750; }
.featured .shoot-tags span { background:rgba(255,255,255,.16); color:#fff; }
.shoot-tags i { width:6px; height:6px; border-radius:50%; background:currentColor; }
.shoot-tags b { margin-left:auto; font-size:17px; font-variant-numeric:tabular-nums; }
.shoot-card > strong { display:block; margin-bottom:4px; font-size:17px; line-height:1.45; }
.shoot-card > small { display:block; color:rgba(255,255,255,.72); font-size:12px; line-height:1.55; }
.featured > small { color:rgba(255,255,255,.68); }
.more-row { width:100%; min-height:44px; border:0; border-radius:20px; background:#fff; font-weight:700; cursor:pointer; }
.daily-title { margin-top:24px; }
.daily-list { overflow:hidden; padding:5px 12px; border-radius:28px; background:#fff; box-shadow:var(--shadow); }
.daily-row { width:100%; display:grid; grid-template-columns:32px 1fr 16px; gap:9px; align-items:center; min-height:66px; padding:9px 2px; border:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; cursor:pointer; }
.daily-row:last-child { border-bottom:0; }
.daily-row span strong,.daily-row span small { display:block; }
.daily-row span strong { font-size:14px; font-weight:600; line-height:1.45; }
.daily-row span small { margin-top:2px; color:#747983; font-size:11px; }
.daily-row > b { color:#777c86; font-size:24px; font-weight:400; }
.task-check { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:#e5e7e9; color:#fff; font-style:normal; }
.task-check.done { background:#2d3031; }
.project-banner { width:100%; display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:11px; margin-top:20px; padding:14px 17px; border:0; border-radius:26px; background:#2d3031; color:#fff; text-align:left; box-shadow:0 14px 28px rgba(17,19,21,.16); cursor:pointer; }
.project-banner strong,.project-banner small { display:block; }
.project-banner strong { font-size:16px; }.project-banner small { margin-top:2px; color:rgba(255,255,255,.68); font-size:10px; }.project-banner b { font-size:11px; white-space:nowrap; }.project-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); }

.topic-capture { width:100%; display:grid; grid-template-columns:36px 1fr 24px; align-items:center; gap:10px; min-height:70px; padding:10px 15px; border:0; border-radius:24px; background:#2d3031; color:#fff; text-align:left; box-shadow:0 12px 25px rgba(17,19,21,.16); }
.topic-capture > span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); }.topic-capture b{font-size:24px;font-weight:400}.topic-capture i{font-size:24px;font-style:normal}.topic-capture strong{font-size:16px}
.topics-head { display:flex; justify-content:space-between; align-items:flex-end; padding:25px 4px 12px; }.topics-head p{margin:0 0 2px;color:#747983;font-size:11px}.topics-head h2{font-size:23px}.topics-head>span{font-size:25px}
.topics-page .search-input { margin-bottom:10px; padding:14px 17px; border:0; background:#fff; box-shadow:none; }
.topics-page .filter-row { margin:0 -16px 13px; padding:0 16px 2px; }.topics-page .chip-button{border:0;background:#eceef0;box-shadow:none}.topics-page .chip-button.active{background:#2d3031;color:#fff}
.topic-grid { display:grid; gap:11px; }.topic-card{width:100%;padding:17px;border:0;border-radius:25px;background:#fff;box-shadow:var(--shadow);text-align:left}.topic-card-top,.topic-card-foot{display:flex;justify-content:space-between;align-items:center}.topic-card-top span{padding:4px 10px;border-radius:999px;background:#eceef0;font-size:11px;font-weight:750}.topic-card-top b{color:#5f6470;font-size:11px}.topic-card>strong{display:block;margin:14px 0 6px;font-size:17px;line-height:1.45}.topic-card>p{margin:0 0 12px;color:#6d717b;font-size:12px;line-height:1.65}.topic-card-foot{padding-top:11px;border-top:1px solid var(--line);color:#6d717b;font-size:11px}.topic-card-foot b{color:#282b31}.ai-classify{text-align:center;color:#717681;font-size:11px;margin:18px 0}

.mine-page { position:relative; padding-top:38px; text-align:center; }.mine-search{position:absolute;left:5px;top:3px;border:0;background:transparent;font-size:30px}.logout-link{position:absolute;right:3px;top:11px;border:0;background:transparent;color:#6b707a;font-size:12px}.profile-orb{position:relative;width:106px;height:106px;margin:0 auto 20px;display:grid;place-items:center;border:7px solid #fff;border-radius:50%;box-shadow:0 8px 23px rgba(17,19,21,.08),0 0 0 1px rgba(17,19,21,.06)}.profile-orb span{width:70px;height:70px;display:grid;place-items:center;border-radius:50%;background:#111315;color:#fff;font-size:30px;font-weight:850}.profile-orb i{position:absolute;right:-1px;bottom:4px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 3px 10px rgba(17,19,21,.12);font-style:normal}.mine-page>h2{font-size:25px}.account-caption{margin:5px 0 0;color:#868b95;font-size:11px}.income-spotlight{margin-top:31px;padding:25px;border-radius:30px;background:radial-gradient(circle at 85% 0,rgba(255,255,255,.08),transparent 45%),#111315;color:#fff;text-align:left;box-shadow:0 18px 34px rgba(17,19,21,.18)}.income-head{display:flex;align-items:center;gap:9px}.income-head>span{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.1)}.income-head p{margin:0;color:rgba(255,255,255,.7);font-size:11px;font-weight:700}.segment.dark{margin-left:auto;background:rgba(255,255,255,.12);padding:2px}.segment.dark button{min-width:42px;min-height:26px;padding:0 8px;color:rgba(255,255,255,.62);font-size:11px}.segment.dark button.active{background:#fff;color:#111315}.income-number{margin:24px 0 5px;font-size:36px;font-weight:850;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.income-number small{margin-right:5px;color:rgba(255,255,255,.65);font-size:21px;font-weight:500}.pending-income{margin:0;color:rgba(255,255,255,.66);font-size:12px}.pending-income i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:rgba(255,255,255,.48)}.income-button,.locked-income button{width:100%;min-height:51px;margin-top:23px;border:0;border-radius:999px;background:#fff;color:#111315;font-size:15px;font-weight:800}.locked-income{text-align:center}.locked-income p{color:rgba(255,255,255,.62);font-size:12px}.locked-income strong{display:block;margin-top:11px;font-size:23px}

.assistant-mode{display:flex;justify-content:space-between;align-items:center;margin:0 3px 13px;font-size:12px}.assistant-mode span i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#111315}.assistant-mode b{padding:5px 10px;border-radius:999px;background:#e7e8ea}.voice-orb{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:11px;border-radius:30px;background:#111315;color:#fff;box-shadow:0 16px 32px rgba(17,19,21,.17)}.voice-orb>span{font-size:26px}.voice-orb strong{margin-top:3px;font-size:20px}.voice-orb small{margin-top:4px;color:rgba(255,255,255,.62)}.voice-orb i{margin-top:13px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.12);font-size:10px;font-style:normal}.prompt-chips{display:flex;gap:7px;overflow-x:auto;margin:0 -16px 13px;padding:0 16px 3px}.prompt-chips button{flex:0 0 auto;padding:9px 12px;border:0;border-radius:999px;background:#fff;box-shadow:0 4px 13px rgba(17,19,21,.05);font-size:11px}.assistant-intro{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:16px;border-radius:25px;background:#fff;box-shadow:var(--shadow)}.assistant-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#2d3031;color:#fff}.assistant-intro strong{font-size:13px}.assistant-intro p{margin:6px 0 12px;color:#6d717b;font-size:11px;line-height:1.6}.assistant-capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.assistant-capabilities span{font-size:10px;font-weight:700}.assistant-capabilities small{display:block;margin-top:3px;color:#92969f;font-size:8.5px}.assistant-compose{position:sticky;bottom:80px;display:grid;grid-template-columns:1fr 42px;gap:8px;margin-top:14px;padding:7px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 11px 30px rgba(17,19,21,.12);backdrop-filter:blur(18px)}.assistant-compose input{min-width:0;border:0;outline:0;background:transparent;padding:0 12px}.assistant-compose button{width:42px;height:42px;border:0;border-radius:50%;background:#2d3031;color:#fff;font-size:21px}.history-group h3{margin:17px 3px 7px;color:#858a94;font-size:10px}

.detail-nav{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;min-height:58px;text-align:center}.detail-nav button{width:46px;height:46px;border:0;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(17,19,21,.06);font-size:34px;line-height:1}.detail-nav h2{font-size:20px}.detail-nav>span{font-size:22px}.pipeline-summary{display:flex;justify-content:space-between;align-items:center;margin:9px 0 13px;padding:18px;border-radius:29px;background:#fff;box-shadow:var(--shadow)}.pipeline-summary p{margin:0;color:#666b75;font-size:10px;letter-spacing:.08em}.pipeline-summary strong{font-size:31px}.pipeline-summary span{font-size:12px}.pipeline-summary>div:last-child{text-align:right}.pipeline-summary b,.pipeline-summary small{display:block}.pipeline-summary b{font-size:12px}.pipeline-summary small{margin-top:3px;color:#717681;font-size:10px}.project-search{width:100%;padding:15px 17px;border:0;border-radius:999px;outline:0;background:#fff;font-size:13px}.project-filters{display:flex;gap:7px;overflow-x:auto;margin:12px -16px 14px;padding:0 16px}.project-filters button{flex:0 0 auto;padding:10px 14px;border:0;border-radius:999px;background:#fff;font-size:11px;font-weight:700}.project-filters button.active{background:#2d3031;color:#fff}.project-filters i{margin-left:5px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.14);font-style:normal}.project-list{display:grid;gap:11px}.project-card{width:100%;padding:17px;border:0;border-radius:27px;background:#fff;box-shadow:var(--shadow);text-align:left}.project-card-top{display:flex;justify-content:space-between;align-items:center}.project-card-top span{color:#626670;font-size:10px}.project-card-top span b{margin-right:7px;padding:4px 9px;border-radius:999px;background:#e7e8ea;color:#202329}.project-card-top i{padding:4px 9px;border-radius:999px;background:#f0f1f3;font-size:10px;font-style:normal}.project-card>strong{display:block;margin:13px 0 3px;font-size:16px}.project-card>p{margin:0;color:#717681;font-size:11px}.project-next{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:10px 12px;border-radius:14px;background:#f5f6f7;font-size:11px}.project-next b{font-size:18px}.floating-project-add{position:sticky;bottom:16px;display:block;min-height:50px;margin:25px auto 0;padding:0 26px;border:0;border-radius:999px;background:#2d3031;color:#fff;font-weight:800;box-shadow:0 12px 25px rgba(17,19,21,.18)}

.project-hero{padding:24px;border-radius:30px;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.1),transparent 45%),#2d3031;color:#fff;box-shadow:0 17px 34px rgba(17,19,21,.18)}.hero-kicker{display:flex;justify-content:space-between;align-items:center}.hero-kicker span{padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.15);font-size:10px}.hero-kicker b{font-size:10px}.project-hero h2{margin:22px 0 4px;font-size:21px}.project-hero>p{color:rgba(255,255,255,.67);font-size:11px}.progress-copy{display:flex;justify-content:space-between;align-items:end;margin-top:24px}.progress-copy strong{font-size:34px}.progress-copy strong small{font-size:10px}.progress-copy span{font-size:11px}.progress-track{height:8px;margin-top:9px;border-radius:999px;background:rgba(255,255,255,.22)}.progress-track i{display:block;height:100%;border-radius:inherit;background:#fff}.hero-meta{display:flex;justify-content:space-between;margin-top:19px;font-size:10px}.hero-meta b{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.15)}.milestone-card,.requirements-card,.receivable{margin-top:15px;padding:18px;border-radius:28px;background:#fff;box-shadow:var(--shadow)}.milestone-card h3,.requirements-card h3,.receivable h3{margin:0;font-size:17px}.milestone-card .row-between>span,.requirements-card .row-between>span,.receivable .row-between>span{color:#747983;font-size:10px}.timeline{position:relative;margin-top:12px}.timeline::before{position:absolute;left:17px;top:17px;bottom:17px;width:2px;background:#e5e7e9;content:""}.timeline-row{position:relative;width:100%;display:grid;grid-template-columns:36px 1fr;gap:9px;margin:0 0 10px;padding:0;border:0;background:transparent;text-align:left}.timeline-row>i{z-index:1;width:29px;height:29px;display:grid;place-items:center;margin-top:8px;border-radius:50%;background:#e8eaed;color:#afb4bd;font-style:normal}.timeline-row.done>i,.timeline-row.current>i{background:#2d3031;color:#fff;box-shadow:0 0 0 5px #e6e7e9}.timeline-row>div{padding:13px 14px;border-radius:20px;background:#f3f4f6}.timeline-row.current>div{background:#2d3031;color:#fff;box-shadow:0 8px 17px rgba(17,19,21,.16)}.timeline-row p{display:flex;justify-content:space-between;margin:0 0 7px;color:#6c717b;font-size:10px}.timeline-row.current p{color:rgba(255,255,255,.67)}.timeline-row strong{display:block;font-size:13px}.timeline-row small{display:block;margin-top:5px;color:#7a7f89;font-size:10px;line-height:1.5}.timeline-row.current small{color:rgba(255,255,255,.69)}.requirement{margin-top:13px;padding:15px;border-radius:20px;background:#f0f1f3}.requirement b{font-size:11px}.requirement p{margin:7px 0 0;color:#4f5460;font-size:11px;line-height:1.65}.detail-sticky-actions{position:sticky;bottom:12px;display:grid;grid-template-columns:.8fr 1.7fr;gap:8px;margin-top:16px;padding:8px;border-radius:999px;background:rgba(255,255,255,.86);box-shadow:0 12px 30px rgba(17,19,21,.13);backdrop-filter:blur(18px)}.detail-sticky-actions button{min-height:47px;border:0;border-radius:999px;background:#f1f2f4;font-size:11px;font-weight:750}.detail-sticky-actions button:last-child{background:#2d3031;color:#fff;font-size:13px}

.ledger-hero{margin-top:8px;padding:25px;border-radius:32px;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.1),transparent 42%),#2d3031;color:#fff;box-shadow:0 17px 34px rgba(17,19,21,.18)}.ledger-period{display:flex;justify-content:space-between;align-items:center}.ledger-period span{color:rgba(255,255,255,.68);font-size:11px}.ledger-period button{padding:7px 13px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-weight:750}.ledger-hero .ledger-total-value{margin:29px 0 4px;text-align:left;font-size:39px}.ledger-total-value small{margin-right:5px;color:rgba(255,255,255,.65);font-size:20px}.ledger-hero>p{margin:0;color:rgba(255,255,255,.7);font-size:11px}.ledger-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:27px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}.ledger-stats span{color:rgba(255,255,255,.65);font-size:10px}.ledger-stats strong{display:block;margin-top:5px;color:#fff;font-size:15px}.ledger-list{margin-top:12px}.ledger-row{grid-template-columns:42px 1fr auto;margin:0;padding:14px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.ledger-row:last-child{border-bottom:0}.ledger-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#eff0f2;font-weight:800}.ledger-title{font-size:12px}.ledger-meta{font-size:9.5px}.ledger-amount{color:#111315;font-size:14px}.ledger-actions{display:grid;grid-template-columns:1fr 1.12fr;gap:8px;margin-top:19px}.ledger-actions button{min-height:52px;border:0;border-radius:999px;background:#e8e9eb;font-size:11px;font-weight:750}.ledger-actions button:last-child{background:#2d3031;color:#fff}

.editor-dialog{width:min(100%,430px);height:100dvh;max-height:100dvh;margin:0 auto;padding:0;border-radius:0;background:var(--canvas);box-shadow:none}.editor-dialog::backdrop{background:rgba(17,19,21,.24)}.editor-dialog form{height:100%;display:flex;flex-direction:column;padding:15px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto}.dialog-head{position:sticky;top:-15px;z-index:5;align-items:center;margin:0 -16px 12px;padding:12px 16px;background:rgba(247,248,250,.9);backdrop-filter:blur(18px)}.dialog-head .eyebrow{display:none}.dialog-head h2{font-size:20px}.dialog-head .icon-button{order:-1;width:46px;height:46px;background:#fff;border:0;box-shadow:0 4px 12px rgba(17,19,21,.06)}.dialog-fields{display:grid;gap:14px;max-height:none;overflow:visible}.form-section{padding:18px;border-radius:28px;background:#fff;box-shadow:var(--shadow)}.form-section-head{margin-bottom:17px}.form-section-index{background:#2d3031;color:#fff}.field input,.field textarea,.field select,.money-input{border:0 !important;border-radius:18px !important;background:#f0f1f3 !important;box-shadow:none !important}.type-options{padding:4px;border-radius:999px;background:#eceef0}.type-option span{border:0 !important;border-radius:999px !important;background:transparent !important;box-shadow:none !important}.type-option input:checked+span{background:#2d3031 !important;color:#fff !important}.dialog-actions{position:sticky;bottom:-1px;z-index:5;margin:14px -16px -20px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(247,248,250,.92);backdrop-filter:blur(18px)}.dialog-actions .button{min-height:52px}.dialog-actions .button.primary{background:#2d3031}

@media (min-width:700px){body{padding:24px 0}.app-shell{min-height:calc(100dvh - 48px);border-radius:34px;overflow:clip}.tab-bar{bottom:38px}.editor-dialog{height:min(92dvh,900px);max-height:min(92dvh,900px);margin:auto;border-radius:32px}}
@media (max-width:380px){.app-view{padding-left:14px;padding-right:14px}.week-strip{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.week-day{flex-basis:50px}.assistant-capabilities{grid-template-columns:1fr}.ledger-actions{grid-template-columns:1fr}.project-hero,.ledger-hero{padding:20px}}

/* 高级毛玻璃视觉层：保留原结构，只提升层级、材质与交互反馈 */
:root {
  --glass-strong: rgba(255, 255, 255, .78);
  --glass: rgba(255, 255, 255, .58);
  --glass-soft: rgba(248, 249, 252, .46);
  --glass-border: rgba(255, 255, 255, .82);
  --glass-line: rgba(126, 133, 146, .16);
  --glass-shadow: 0 18px 44px rgba(36, 41, 52, .10), 0 3px 12px rgba(36, 41, 52, .05);
  --glass-shadow-soft: 0 10px 28px rgba(36, 41, 52, .075), 0 2px 8px rgba(36, 41, 52, .035);
  --glass-inset: inset 0 1px 0 rgba(255, 255, 255, .88);
}

html {
  background: #e9ecf1;
}

body {
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.98) 0, rgba(255,255,255,0) 36rem),
    radial-gradient(circle at 92% 22%, rgba(207,215,229,.62) 0, rgba(207,215,229,0) 30rem),
    radial-gradient(circle at 28% 94%, rgba(222,226,235,.7) 0, rgba(222,226,235,0) 32rem),
    linear-gradient(155deg, #edf0f5 0%, #e4e8ef 48%, #f2f3f6 100%);
  background-attachment: fixed;
}

.app-shell {
  isolation: isolate;
  background:
    radial-gradient(circle at 92% 6%, rgba(217,223,234,.58), transparent 18rem),
    radial-gradient(circle at 2% 72%, rgba(230,233,240,.75), transparent 22rem),
    linear-gradient(160deg, rgba(255,255,255,.86), rgba(246,247,250,.72));
  box-shadow: 0 30px 90px rgba(25,30,40,.16), inset 0 1px 0 rgba(255,255,255,.95);
}

.app-shell::before,
.app-shell::after {
  position: fixed;
  z-index: -1;
  content: "";
  pointer-events: none;
  border-radius: 50%;
  filter: blur(3px);
}

.app-shell::before {
  width: 180px;
  height: 180px;
  top: 112px;
  margin-left: 330px;
  background: rgba(200,208,222,.28);
}

.app-shell::after {
  width: 150px;
  height: 150px;
  top: 58vh;
  margin-left: -72px;
  background: rgba(255,255,255,.62);
}

.app-header {
  background: rgba(250,251,253,.57);
  border-bottom: 1px solid rgba(255,255,255,.7);
  -webkit-backdrop-filter: blur(28px) saturate(1.45);
  backdrop-filter: blur(28px) saturate(1.45);
  box-shadow: 0 8px 28px rgba(42,47,58,.045), inset 0 -1px 0 rgba(128,135,148,.08);
}

.header-meta {
  background: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.78);
  box-shadow: var(--glass-inset), 0 6px 16px rgba(35,40,50,.05);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.app-view > * { animation: none; }

.card,
.calendar,
.quick-form,
.analysis-box,
.empty-state,
.payment-row,
.chat-compose,
.script-title,
.script-body,
.ai-suggestion,
.income-summary,
.menu-card,
.editor-dialog {
  border: 1px solid var(--glass-border);
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(247,248,251,.48));
  -webkit-backdrop-filter: blur(22px) saturate(1.32);
  backdrop-filter: blur(22px) saturate(1.32);
  box-shadow: var(--glass-inset), var(--glass-shadow-soft);
}

.card {
  margin-bottom: 14px;
  border-radius: 20px;
  background:
    linear-gradient(130deg, rgba(255,255,255,.86), rgba(255,255,255,.48)),
    rgba(246,248,251,.5);
  box-shadow: var(--glass-inset), var(--glass-shadow);
  transition: box-shadow .2s ease, border-color .2s ease, filter .12s ease-out;
}

.calendar {
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(255,255,255,.84), rgba(245,247,251,.54));
  box-shadow: var(--glass-inset), 0 22px 50px rgba(38,43,54,.105), 0 4px 12px rgba(38,43,54,.04);
}

.quick-form {
  padding: 7px;
  background: rgba(255,255,255,.55);
  box-shadow: var(--glass-inset), 0 12px 30px rgba(36,41,52,.075);
}

.quick-form input {
  color: var(--ink);
}

.button,
.icon-button,
.chip-button,
.stage,
.calendar-day,
.menu-item,
.back-button {
  transition: filter .12s ease-out, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.button.primary {
  background: linear-gradient(145deg, #282b32, #111318);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 9px 22px rgba(17,19,24,.18);
}

.button.secondary,
.icon-button,
.chip-button {
  border: 1px solid rgba(255,255,255,.78);
  background: rgba(255,255,255,.5);
  box-shadow: var(--glass-inset), 0 7px 18px rgba(36,41,52,.055);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.button.danger {
  border: 1px solid rgba(255,255,255,.7);
  background: rgba(255,241,239,.7);
  box-shadow: var(--glass-inset), 0 8px 20px rgba(144,50,42,.07);
}

.chip {
  border: 1px solid rgba(255,255,255,.68);
  background: rgba(244,246,249,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.78), 0 3px 9px rgba(34,39,49,.04);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.calendar-day:hover:not(.selected) {
  background: rgba(255,255,255,.58);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 7px 15px rgba(36,41,52,.06);
}

.calendar-day.selected {
  background: linear-gradient(145deg, #30333a, #15171c);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 9px 20px rgba(20,22,27,.22);
}

.empty-state {
  border-style: solid;
  background: rgba(255,255,255,.4);
  box-shadow: var(--glass-inset), 0 15px 34px rgba(36,41,52,.06);
}

.stage {
  border-color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.52);
  box-shadow: var(--glass-inset), 0 8px 18px rgba(36,41,52,.055);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.stage.done {
  background: linear-gradient(145deg, #30333a, #15171c);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 10px 22px rgba(17,19,24,.18);
}

.stage.payment.done {
  background: linear-gradient(145deg, #249866, #0d7245);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 10px 22px rgba(20,135,84,.18);
}

.info-list {
  gap: 0;
  border: 1px solid rgba(255,255,255,.75);
  background: rgba(255,255,255,.3);
  box-shadow: var(--glass-inset), 0 10px 26px rgba(36,41,52,.055);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.info-row {
  background: rgba(255,255,255,.42);
  border-bottom: 1px solid rgba(126,133,146,.1);
}

.info-row:last-child { border-bottom: 0; }

.payment-row {
  border-radius: 17px;
  background: rgba(255,255,255,.48);
  box-shadow: var(--glass-inset), 0 9px 22px rgba(36,41,52,.055);
}

.search-input,
.field input,
.field textarea,
.field select {
  border-color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.5);
  box-shadow: var(--glass-inset), 0 8px 20px rgba(36,41,52,.045);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.search-input:focus,
.field input:focus,
.field textarea:focus,
.field select:focus,
.chat-compose textarea:focus,
.script-title:focus,
.script-body:focus {
  border-color: rgba(81,88,101,.3);
  background: rgba(255,255,255,.76);
  box-shadow: var(--glass-inset), 0 0 0 3px rgba(65,72,84,.055), 0 12px 28px rgba(36,41,52,.075);
}

.analysis-box {
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0, rgba(213,220,232,.5), transparent 13rem),
    linear-gradient(150deg, rgba(255,255,255,.8), rgba(241,244,249,.48));
  box-shadow: var(--glass-inset), var(--glass-shadow);
}

.message.assistant .bubble {
  border-color: rgba(255,255,255,.76);
  background: rgba(255,255,255,.56);
  box-shadow: var(--glass-inset), 0 10px 24px rgba(36,41,52,.06);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.message.user .bubble {
  background: linear-gradient(145deg, #30333a, #15171c);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 10px 24px rgba(18,20,25,.18);
}

.chat-compose {
  bottom: 64px;
  background: rgba(255,255,255,.62);
  box-shadow: var(--glass-inset), 0 18px 42px rgba(35,40,50,.12);
}

.chat-compose textarea {
  border-color: rgba(255,255,255,.72);
  background: rgba(249,250,252,.55);
}

.script-title,
.script-body,
.ai-suggestion {
  background: rgba(255,255,255,.55);
  box-shadow: var(--glass-inset), var(--glass-shadow-soft);
}

.avatar {
  border: 1px solid rgba(255,255,255,.92);
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(216,221,231,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 16px 36px rgba(35,40,50,.13);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.income-summary {
  gap: 0;
  overflow: hidden;
  background: rgba(255,255,255,.42);
  box-shadow: var(--glass-inset), var(--glass-shadow);
}

.income-cell {
  display: block;
  background: rgba(255,255,255,.34);
}

.income-cell + .income-cell {
  border-left: 1px solid rgba(126,133,146,.11);
}

.income-value { display: block; }

.menu-card {
  background: rgba(255,255,255,.48);
  box-shadow: var(--glass-inset), var(--glass-shadow);
}

.menu-item {
  background: rgba(255,255,255,.24);
  border-bottom-color: rgba(126,133,146,.1);
}

.ledger-total {
  border-color: rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 85% -25%, rgba(255,255,255,.16), transparent 13rem),
    linear-gradient(145deg, rgba(42,45,53,.96), rgba(17,19,24,.94));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 22px 46px rgba(17,19,24,.2);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}

.ledger-row,
.month-row {
  margin-bottom: 9px;
  padding: 13px 14px;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 16px;
  background: rgba(255,255,255,.48);
  box-shadow: var(--glass-inset), 0 9px 22px rgba(36,41,52,.05);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.month-bar {
  background: rgba(114,121,134,.12);
  box-shadow: inset 0 1px 2px rgba(35,40,50,.06);
}

.editor-dialog {
  overflow: hidden;
  background: rgba(248,249,252,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 30px 90px rgba(23,28,38,.28);
  -webkit-backdrop-filter: blur(30px) saturate(1.35);
  backdrop-filter: blur(30px) saturate(1.35);
}

.editor-dialog::backdrop {
  background: rgba(28,32,40,.28);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.tab-bar {
  background: linear-gradient(145deg, rgba(255,255,255,.64), rgba(244,246,250,.43));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 18px 44px rgba(28,33,43,.17), 0 3px 10px rgba(28,33,43,.06);
}

.tab.active {
  background: linear-gradient(145deg, rgba(255,255,255,.65), rgba(111,117,128,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 6px 14px rgba(35,40,50,.06);
}

@media (hover: hover) and (pointer: fine) {
  button.card:hover,
  .income-summary:hover,
  .payment-row:hover,
  .ledger-row:hover,
  .month-row:hover {
    border-color: rgba(255,255,255,.96);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 24px 52px rgba(36,41,52,.12), 0 5px 13px rgba(36,41,52,.05);
  }

  .button:hover,
  .icon-button:hover,
  .chip-button:hover,
  .stage:hover,
  .menu-item:hover {
    filter: brightness(.985);
  }

  .menu-item:hover { background: rgba(255,255,255,.5); }
}

.button:active,
.icon-button:active,
.chip-button:active,
.stage:active,
.calendar-day:active,
.menu-item:active,
button.card:active,
.income-summary:active,
.tab:active {
  transform: none;
  filter: brightness(.94);
}

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

/* 日程功能增强 */
.calendar-day {
  min-width: 0;
  min-height: 82px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6px 3px 4px;
  overflow: hidden;
}

.calendar-number {
  flex: 0 0 auto;
  line-height: 18px;
}

.calendar-events {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 2px;
  margin-top: 3px;
  pointer-events: none;
}

.calendar-event {
  min-width: 0;
  height: 16px;
  display: block;
  padding: 1px 4px;
  overflow: hidden;
  border-radius: 5px;
  font-size: 8px;
  font-weight: 750;
  line-height: 14px;
  text-align: left;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.calendar-event > span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.calendar-event.order { background: #f6e7e4; color: #98483f; }
.calendar-event.video { background: #e8f0fa; color: #35699f; }
.calendar-event.other-type { background: #eff0f2; color: #6e737d; }
.calendar-day.selected .calendar-event.order { background: #b4574d; color: #fff; }
.calendar-day.selected .calendar-event.video { background: #4278b1; color: #fff; }
.calendar-day.selected .calendar-event.other-type { background: #626872; color: #fff; }
.calendar-day.other .calendar-events { opacity: .55; }

.calendar-more {
  color: var(--faint);
  font-size: 8px;
  line-height: 11px;
}

.calendar-day.selected .calendar-more { color: rgba(255,255,255,.7); }

.stage-grid.four-stages { grid-template-columns: repeat(4, 1fr); }

.stage {
  min-height: 78px;
}

.stage-label,
.stage-date {
  display: block;
}

.stage-date {
  margin-top: 4px;
  color: var(--faint);
  font-size: 8.5px;
  font-weight: 650;
  line-height: 1.25;
}

.stage.done .stage-date { color: rgba(255,255,255,.68); }

.milestone-fields,
.order-payment-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.order-payment-fields[hidden] { display: none; }

.back-button-prominent {
  min-height: 44px;
  margin-bottom: 20px;
  padding: 0 15px;
  border: 1px solid rgba(224,227,233,.9);
  border-radius: 14px;
  background: rgba(248,249,251,.9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 5px 14px rgba(36,41,52,.05);
  color: var(--ink);
  font-size: 13px;
  font-weight: 750;
}

.back-button-prominent > span {
  font-size: 18px;
  line-height: 1;
}

@media (max-width: 380px) {
  .calendar-day { min-height: 76px; padding-inline: 2px; }
  .calendar-event { padding-inline: 3px; font-size: 7.5px; }
  .milestone-fields,
  .order-payment-fields { gap: 8px; }
}

/* 编辑日程：分组式毛玻璃子菜单 */
.editor-dialog form {
  padding: 20px;
  background: rgba(255,255,255,.22);
}

.editor-dialog .dialog-head {
  margin-bottom: 16px;
  padding: 2px 2px 0;
}

.editor-dialog .dialog-fields {
  gap: 12px;
  max-height: 64vh;
  padding: 2px 3px 10px;
}

.form-section {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(224,227,233,.9);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(248,249,251,.56));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 10px 26px rgba(36,41,52,.06),
    0 2px 7px rgba(36,41,52,.025);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  backdrop-filter: blur(18px) saturate(1.15);
}

.form-section-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(126,133,146,.11);
}

.form-section-head h3 {
  margin: 0 0 3px;
  font-size: 14px;
  line-height: 1.2;
}

.form-section-head p {
  margin: 0;
  color: var(--faint);
  font-size: 10.5px;
}

.form-section-index {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 11px;
  background: rgba(255,255,255,.58);
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 4px 11px rgba(36,41,52,.035);
}

.form-section .field {
  gap: 8px;
}

.form-section .field > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 2px;
  font-size: 11.5px;
}

.field-required,
.field-optional {
  font-size: 9.5px;
  font-weight: 650;
}

.field-required { color: var(--ink); }
.field-optional { color: var(--faint); }
.field-help { padding: 0 3px; color: var(--faint); font-size: 9.5px; }

.form-section .field > input,
.form-section .field > textarea {
  min-height: 46px;
  padding: 12px 13px;
  border-color: rgba(226,229,234,.94);
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 3px 10px rgba(36,41,52,.025);
}

.form-section .field > textarea {
  min-height: 104px;
  line-height: 1.7;
}

.type-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.type-option {
  position: relative;
  cursor: pointer;
}

.type-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
}

.type-option > span {
  min-height: 62px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid rgba(224,227,233,.9);
  border-radius: 15px;
  background: rgba(255,255,255,.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 4px 11px rgba(36,41,52,.03);
  color: var(--muted);
  transition: background .18s ease, color .18s ease, box-shadow .18s ease, border-color .18s ease, filter .12s ease-out;
}

.type-option strong { font-size: 12px; }
.type-option small { color: var(--faint); font-size: 9px; }

.type-option input:checked + span {
  border-color: rgba(22,24,29,.9);
  background: linear-gradient(145deg, #30333a, #15171c);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 8px 18px rgba(18,20,25,.14);
}

.type-option input:checked + span small { color: rgba(255,255,255,.58); }

.type-option input:focus-visible + span {
  outline: 3px solid rgba(44,49,58,.11);
  outline-offset: 2px;
}

.money-input {
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid rgba(226,229,234,.94);
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 3px 10px rgba(36,41,52,.025);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.money-input > span {
  color: var(--muted);
  font-size: 15px;
  font-weight: 800;
}

.money-input input {
  width: 100%;
  min-width: 0;
  padding: 11px 0;
  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  font-size: 14px;
  font-weight: 750;
}

.money-input:focus-within {
  border-color: rgba(81,88,101,.3);
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 0 0 3px rgba(65,72,84,.055), 0 8px 20px rgba(36,41,52,.045);
}

.editor-dialog .dialog-actions {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(126,133,146,.1);
}

@media (hover: hover) and (pointer: fine) {
  .type-option:hover > span { filter: brightness(.985); border-color: rgba(204,208,215,.95); }
}

.type-option:active > span { filter: brightness(.94); }

/* 更轻的顶栏与底栏 */
.app-header {
  min-height: 68px;
  padding: 18px 22px 13px;
  background: rgba(255,255,255,.34);
  border-bottom-color: rgba(210,214,222,.32);
  -webkit-backdrop-filter: blur(30px) saturate(1.5);
  backdrop-filter: blur(30px) saturate(1.5);
  box-shadow: 0 5px 18px rgba(42,47,58,.025), inset 0 -1px 0 rgba(255,255,255,.46);
}

.app-header h1 {
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.04em;
}

.header-add-button {
  min-height: 38px;
  padding: 0 15px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(145deg, #292c33, #111318);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 8px 18px rgba(17,19,24,.16);
  transition: filter var(--motion-fast) var(--motion-curve), box-shadow var(--motion-control) var(--motion-curve);
}

.header-add-button[hidden] { display: none; }
.header-add-button:active { filter: brightness(.92); }

.header-ai-back {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 38px;
  margin: 0;
  padding: 0 3px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 12px;
  font-weight: 760;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.header-ai-back > span {
  margin-top: -2px;
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
}

.header-ai-back[hidden] { display: none; }
.header-ai-back:active { opacity: .58; }

.app-header.ai-chat-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.app-header.ai-chat-header h1 {
  grid-column: 2;
  justify-self: center;
  font-size: 16px;
  letter-spacing: -.025em;
}

.app-header.ai-chat-header .header-ai-back {
  grid-column: 1;
  justify-self: start;
}

.app-header.ai-chat-header .header-add-button {
  grid-column: 3;
  justify-self: end;
}

.conversation-card {
  display: flex;
  align-items: center;
  gap: 10px;
}

.conversation-open {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.conversation-open > div { min-width: 0; }

.conversation-delete {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 8px;
  border: 1px solid rgba(212, 215, 221, .9);
  border-radius: 999px;
  background: rgba(255,255,255,.45);
  color: var(--faint);
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: color var(--motion-fast) var(--motion-curve), border-color var(--motion-fast) var(--motion-curve), background var(--motion-fast) var(--motion-curve);
}

.conversation-delete:active {
  border-color: rgba(121, 126, 137, .62);
  background: rgba(240,241,244,.9);
  color: var(--ink);
}

.calendar-header-hint {
  margin: 5px 0 0;
  color: var(--faint);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.35;
}

.tab-bar {
  --indicator-x: 5px;
  --indicator-width: calc((100% - 18px) / 5);
  width: min(calc(100% - 68px), 392px);
  gap: 2px;
  padding: 5px;
  background: linear-gradient(145deg, rgba(255,255,255,.44), rgba(242,244,248,.25));
  border-color: rgba(255,255,255,.66);
  -webkit-backdrop-filter: blur(32px) saturate(1.65);
  backdrop-filter: blur(32px) saturate(1.65);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 15px 38px rgba(28,33,43,.13), 0 2px 8px rgba(28,33,43,.045);
}

.tab-bar::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 5px;
  bottom: 5px;
  left: 0;
  width: var(--indicator-width);
  border-radius: 999px;
  pointer-events: none;
  background: linear-gradient(145deg, rgba(255,255,255,.65), rgba(111,117,128,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 6px 14px rgba(35,40,50,.06);
  transform: translateX(var(--indicator-x));
  transition: transform var(--motion-nav) var(--motion-curve), width var(--motion-nav) var(--motion-curve);
  will-change: transform;
}

.tab {
  position: relative;
  z-index: 1;
  min-height: 40px;
  gap: 1px;
  font-size: 8.5px;
}

.tab.active {
  background: transparent;
  box-shadow: none;
}

.nav-icon {
  margin-block: -2px;
  transform: scale(.8);
  transform-origin: center;
}

/* 一体式星期栏：七天属于同一信息层级 */
.calendar-head {
  gap: 0;
  margin: 9px 9px 4px;
  padding: 4px;
  border-radius: 12px;
  background: linear-gradient(145deg, #30333a, #15171c);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 5px 12px rgba(18,20,25,.1);
}

.calendar-head span {
  display: grid;
  min-height: 27px;
  place-items: center;
  color: #fff;
  border-radius: 8px;
}

.calendar-head span:nth-child(-n+5) {
  background: transparent;
  box-shadow: none;
}

/* 弹窗仅保留短淡入和极小位移，不缩放 */
.editor-dialog[open] {
  animation: dialog-in var(--motion-control) var(--motion-curve) both;
}

.editor-dialog[open]::backdrop {
  animation: backdrop-in var(--motion-fast) var(--motion-curve) both;
}

.editor-dialog.is-closing {
  pointer-events: none;
  animation: dialog-out var(--motion-fast) var(--motion-curve) both;
}

.editor-dialog.is-closing::backdrop {
  animation: backdrop-out var(--motion-fast) var(--motion-curve) both;
}

@keyframes dialog-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes dialog-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(4px); }
}

@keyframes backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes backdrop-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .editor-dialog[open],
  .editor-dialog.is-closing,
  .editor-dialog[open]::backdrop,
  .editor-dialog.is-closing::backdrop {
    animation: none !important;
  }
}

/* 统一交互节奏：沿用导航滑块的缓动，不赋予错误的运动方向 */
.tab {
  transition:
    color var(--motion-control) var(--motion-curve),
    background-color var(--motion-control) var(--motion-curve),
    filter var(--motion-fast) var(--motion-curve);
}

.button,
.icon-button,
.chip-button,
.stage,
.calendar-day,
.menu-item,
.back-button,
button.card,
.income-summary,
.payment-row,
.ledger-row,
.month-row,
.type-option > span,
.money-input {
  transition:
    color var(--motion-control) var(--motion-curve),
    background-color var(--motion-control) var(--motion-curve),
    border-color var(--motion-control) var(--motion-curve),
    box-shadow var(--motion-control) var(--motion-curve),
    opacity var(--motion-control) var(--motion-curve),
    filter var(--motion-fast) var(--motion-curve);
}

.search-input,
.field input,
.field textarea,
.field select,
.chat-compose textarea,
.script-title,
.script-body {
  transition:
    background-color var(--motion-control) var(--motion-curve),
    border-color var(--motion-control) var(--motion-curve),
    box-shadow var(--motion-control) var(--motion-curve);
}

.toast {
  transition:
    opacity var(--motion-fast) var(--motion-curve),
    transform var(--motion-fast) var(--motion-curve);
}

/* 页面底色保持纯白；毛玻璃只用于功能卡片和导航层 */
html,
body {
  background: #fff;
  background-image: none;
  background-attachment: initial;
}

.app-shell {
  background: #fff;
}

.app-shell::before,
.app-shell::after {
  display: none;
}

/* 分级悬浮：主卡片轻悬浮，内部控件更平，导航和弹窗保持最高层 */
.card,
.calendar,
.analysis-box,
.income-summary,
.menu-card,
.script-title,
.script-body,
.ai-suggestion {
  border-color: rgba(225, 228, 234, .92);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 14px 34px rgba(36,41,52,.075),
    0 2px 8px rgba(36,41,52,.035);
}

.quick-form,
.payment-row,
.stage,
.info-list,
.search-input,
.field input,
.field textarea,
.field select,
.button.secondary,
.icon-button,
.chip-button {
  border-color: rgba(224,227,233,.86);
  -webkit-backdrop-filter: blur(11px) saturate(1.08);
  backdrop-filter: blur(11px) saturate(1.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.86),
    0 4px 12px rgba(36,41,52,.035);
}

.info-row,
.income-cell,
.menu-item {
  box-shadow: none;
  background: rgba(250,251,252,.56);
}

.ledger-row,
.month-row {
  border-color: rgba(225,228,234,.9);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.84),
    0 4px 12px rgba(36,41,52,.032);
}

.chat-compose,
.message.assistant .bubble {
  border-color: rgba(225,228,234,.9);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 10px 26px rgba(36,41,52,.065);
}

@media (hover: hover) and (pointer: fine) {
  button.card:hover,
  .income-summary:hover {
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.94),
      0 17px 38px rgba(36,41,52,.085),
      0 3px 9px rgba(36,41,52,.035);
  }

  .payment-row:hover,
  .ledger-row:hover,
  .month-row:hover {
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.9),
      0 7px 16px rgba(36,41,52,.045);
  }
}

/* 日历选中态改为轻量描边，不再整格压黑 */
.calendar-day.selected {
  background: rgba(241,243,246,.9);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(102,109,121,.16);
}

.calendar-day.selected .calendar-number {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1.5px solid #454b56;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 3px 8px rgba(30,34,42,.08);
  color: var(--ink);
}

.calendar-day.today:not(.selected) { box-shadow: none; }

.calendar-day.today:not(.selected) .calendar-number {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(62,68,78,.34);
}

.calendar-day.selected .calendar-event.order { background: #f6e7e4; color: #98483f; }
.calendar-day.selected .calendar-event.video { background: #e8f0fa; color: #35699f; }
.calendar-day.selected .calendar-event.other-type { background: #e9ebee; color: #626872; }
.calendar-day.selected .calendar-more { color: var(--faint); }

/* 项目收款：小圆点到账状态与可编辑金额 */
.payment-row {
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: 9px;
  padding: 11px 12px;
}

.payment-check {
  width: 16px;
  height: 16px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid rgba(118,125,137,.55);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  transition: border-color var(--motion-control) var(--motion-curve), box-shadow var(--motion-control) var(--motion-curve), background var(--motion-control) var(--motion-curve);
}

.payment-check:checked {
  border-color: #168754;
  background: radial-gradient(circle, #168754 0 4px, #fff 4.5px);
  box-shadow: 0 0 0 2px rgba(20,135,84,.09);
}

.payment-check:focus-visible {
  outline: 3px solid rgba(20,135,84,.12);
  outline-offset: 2px;
}

.payment-amount-editor {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 0 9px;
  border: 1px solid rgba(220,224,230,.92);
  border-radius: 10px;
  background: rgba(255,255,255,.78);
  color: var(--muted);
  transition: border-color var(--motion-control) var(--motion-curve), box-shadow var(--motion-control) var(--motion-curve), background var(--motion-control) var(--motion-curve);
}

.payment-amount-editor:focus-within {
  border-color: rgba(69,75,86,.42);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(69,75,86,.06);
}

.payment-amount-editor input {
  width: 70px;
  padding: 6px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  text-align: right;
}

.payment-amount-editor input::-webkit-inner-spin-button,
.payment-amount-editor input::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

/* 标注修正：类型颜色与日历保持一致 */
.chip.amber {
  border-color: rgba(152,72,63,.08);
  background: #f6e7e4;
  color: #98483f;
}

.chip.blue {
  border-color: rgba(53,105,159,.08);
  background: #e8f0fa;
  color: #35699f;
}

/* “今天”使用小圆点，避免和选中日期混淆 */
.calendar-day.today:not(.selected) .calendar-number {
  position: relative;
  width: auto;
  height: auto;
  display: block;
  box-shadow: none;
}

.calendar-day.today:not(.selected) .calendar-number::after {
  content: "";
  position: absolute;
  top: 1px;
  right: -6px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #454b56;
}

/* 导航选中态提高对比度，保留原滑动曲线 */
.tab-bar::before {
  border: 1px solid rgba(137,144,155,.2);
  background: linear-gradient(145deg, rgba(244,245,248,.98), rgba(213,217,224,.82));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 6px 15px rgba(35,40,50,.1);
}

.tab.active {
  color: #111318;
  font-weight: 800;
}

/* 周/月在同一工作区中从中心展开与收拢 */
.schedule-month-view {
  transform-origin: 50% 24%;
  animation: schedule-month-open 240ms var(--motion-curve) both;
}

.schedule-day-view {
  transform-origin: 50% 24%;
  animation: schedule-week-return 240ms var(--motion-curve) both;
}

.day-focus-calendar {
  position: sticky;
  top: 68px;
  z-index: 12;
  margin: -2px -4px 22px;
  padding: 10px 10px 8px;
  border: 1px solid rgba(224,227,233,.88);
  border-radius: 22px;
  background: rgba(255,255,255,.88);
  -webkit-backdrop-filter: blur(24px) saturate(1.25);
  backdrop-filter: blur(24px) saturate(1.25);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.94), 0 12px 30px rgba(36,41,52,.08);
  animation: week-strip-in 220ms var(--motion-curve) both;
}

.day-focus-head {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 4px 7px;
  color: var(--faint);
  font-size: 10px;
  font-weight: 750;
}

.day-back-button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(222,225,231,.9);
  border-radius: 999px;
  background: rgba(247,248,250,.9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.94), 0 4px 12px rgba(36,41,52,.045);
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  transition: background var(--motion-control) var(--motion-curve), box-shadow var(--motion-control) var(--motion-curve), filter var(--motion-fast) var(--motion-curve);
}

.day-back-button:active { filter: brightness(.94); }

.week-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-top: 1px solid rgba(224,227,233,.68);
}

.week-day {
  min-width: 0;
  min-height: 68px;
  display: grid;
  grid-template-rows: 17px 34px 8px;
  place-items: center;
  padding: 5px 1px 2px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background var(--motion-control) var(--motion-curve), color var(--motion-control) var(--motion-curve), filter var(--motion-fast) var(--motion-curve);
}

.week-day:active { filter: brightness(.92); }

.week-label {
  color: var(--faint);
  font-size: 9px;
  font-weight: 700;
}

.week-day strong {
  position: relative;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 13px;
  line-height: 1;
  transition: background var(--motion-nav) var(--motion-curve), color var(--motion-nav) var(--motion-curve), box-shadow var(--motion-nav) var(--motion-curve);
}

.week-day.selected strong {
  background: #17191f;
  box-shadow: 0 7px 16px rgba(23,25,31,.2), inset 0 1px 0 rgba(255,255,255,.14);
  color: #fff;
}

.week-day.today:not(.selected) strong::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 3px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #454b56;
}

.week-event-dots {
  min-height: 6px;
  display: flex;
  justify-content: center;
  gap: 3px;
}

.week-event-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
}

.week-event-dot.order { background: #b4574d; }
.week-event-dot.video { background: #4278b1; }
.week-event-dot.other-type { background: #777d87; }

.day-agenda-head {
  align-items: flex-end;
  margin-bottom: 14px;
}

.day-agenda-head h2 {
  max-width: 310px;
  font-size: 19px;
  line-height: 1.35;
}

.day-agenda-list {
  min-height: 240px;
}

@keyframes schedule-month-open {
  from { opacity: .3; transform: translateX(28px) scale(.78); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes schedule-week-return {
  from { opacity: .35; transform: translateX(-22px) scale(1.08); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes week-strip-in {
  from { opacity: .7; transform: translateY(-8px) scaleY(.94); }
  to { opacity: 1; transform: translateY(0) scaleY(1); }
}

/* 2026-09-12 交互收紧：日程一级页、AI 对话、选题速记与账单 */
.schedule-view-switch {
  padding: 2px;
}

.schedule-view-switch button {
  min-width: 30px;
  min-height: 24px;
  padding: 0 7px;
  font-size: 11px;
}

.date-tools {
  gap: 5px;
}

.date-tools .round-add {
  width: 28px;
  height: 28px;
  font-size: 20px;
  box-shadow: 0 4px 10px rgba(17,19,21,.16);
}

.stitch-schedule .week-strip {
  border-top: 0;
  border-bottom: 0;
}

.stitch-section-title h2 {
  font-size: 11px;
  letter-spacing: .01em;
}

.stitch-section-title span {
  font-size: 9px;
}

.shoot-progress {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 9px;
  margin: 9px 0 7px;
}

.shoot-progress > span {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .26);
}

.shoot-progress > span i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #fff;
}

.shoot-progress > b {
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

.stitch-schedule .shoot-card {
  margin-bottom: 8px;
  padding: 14px;
  border-radius: 22px;
}

.stitch-schedule .shoot-tags {
  margin-bottom: 8px;
}

.stitch-schedule .shoot-tags span {
  padding: 3px 9px;
  font-size: 10px;
}

.stitch-schedule .shoot-tags b {
  font-size: 14px;
}

.stitch-schedule .shoot-card > strong {
  margin-bottom: 2px;
  font-size: 15px;
}

.stitch-schedule .shoot-progress {
  margin: 6px 0 5px;
}

.stitch-schedule .shoot-card > small {
  font-size: 10px;
}

.shoot-card.featured .shoot-progress > span {
  background: rgba(255,255,255,.2);
}

.shoot-card.featured .shoot-progress > span i {
  background: #fff;
}

.month-date-hero {
  margin-bottom: 7px;
}

.month-navigation {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: center;
  margin-bottom: 9px;
  color: #555963;
  text-align: center;
  font-size: 11px;
  font-weight: 750;
}

.month-navigation button {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.72);
  color: #111315;
  font-size: 21px;
}

.schedule-month-view .calendar-day {
  min-height: 48px;
  padding: 4px 2px;
  border: 0;
  box-shadow: none;
}

.schedule-month-view .calendar-number {
  line-height: 24px;
}

.schedule-month-view .calendar-day.selected {
  background: #2d3031;
  color: #fff;
  box-shadow: 0 8px 16px rgba(17,19,21,.16);
}

.schedule-month-view .calendar-day.selected .calendar-number {
  width: auto;
  height: 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #fff;
}

.schedule-month-view .calendar-day.selected .calendar-dot {
  background: rgba(255,255,255,.72);
}

.month-agenda {
  margin-top: 22px;
}

.daily-row.static.completed {
  opacity: .66;
}

.daily-row.static.completed span strong {
  color: #747983;
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
}

.daily-row.static.completed .task-check {
  background: #2d3031;
  color: #fff;
}

.calendar-dots {
  min-height: 5px;
  display: flex;
  justify-content: center;
  gap: 2px;
}

.calendar-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #777d87;
}

.calendar-dot.order { background: #b4574d; }
.calendar-dot.video { background: #4278b1; }
.calendar-dot.other-type { background: #777d87; }

.topic-quick-add {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 7px;
  border-radius: 22px;
  background: #2d3031;
  box-shadow: 0 12px 25px rgba(17,19,21,.16);
}

.topic-quick-add input {
  min-width: 0;
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  border-radius: 16px;
  outline: 0;
  background: #fff;
  color: #111315;
  font: inherit;
}

.topic-quick-add button {
  min-width: 64px;
  border: 0;
  border-radius: 16px;
  background: #fff;
  color: #111315;
  font-weight: 800;
}

.topics-page .search-input {
  border: 1.5px solid #111315;
}

.login-link {
  position: absolute;
  right: 3px;
  top: 8px;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid #111315;
  border-radius: 999px;
  background: #fff;
  color: #111315;
  font-size: 11px;
  font-weight: 800;
}

.redesigned-mine {
  padding-top: 18px;
}

.redesigned-mine .profile-orb {
  width: 82px;
  height: 82px;
  margin-bottom: 10px;
  border-width: 5px;
}

.redesigned-mine .profile-orb span {
  width: 54px;
  height: 54px;
  font-size: 23px;
}

.redesigned-mine .profile-orb i {
  right: -3px;
  bottom: 0;
  width: 26px;
  height: 26px;
  font-size: 12px;
}

.ledger-overview {
  min-height: 156px;
  margin-top: 18px;
  padding: 19px;
  border-radius: 24px;
}

.ledger-overview-head,
.ledger-overview-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ledger-overview-head p,
.ledger-overview-head strong {
  display: block;
}

.ledger-overview-head p {
  margin: 0 0 4px;
  color: rgba(255,255,255,.62);
  font-size: 10px;
  font-weight: 700;
}

.ledger-overview-head strong {
  font-size: 16px;
}

.ledger-overview .segment.dark {
  margin-left: 0;
}

.ledger-overview .segment.dark button {
  min-width: 36px;
  min-height: 24px;
  padding: 0 7px;
  font-size: 10px;
}

.ledger-overview .income-number {
  margin: 18px 0 13px;
  font-size: 31px;
}

.ledger-overview .income-number small {
  font-size: 16px;
}

.ledger-overview-foot span {
  color: rgba(255,255,255,.65);
  font-size: 11px;
}

.ledger-overview-foot button {
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
}

.account-feature-card {
  width: 100%;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  margin-top: 12px;
  padding: 15px;
  border: 1px solid rgba(222,225,231,.95);
  border-radius: 21px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(36,41,52,.06);
  color: #111315;
  text-align: left;
}

.account-feature-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #eef0f3;
  font-size: 13px;
  font-weight: 850;
}

.account-feature-card small,
.account-feature-card strong {
  display: block;
}

.account-feature-card small {
  margin-bottom: 3px;
  color: #838994;
  font-size: 10px;
}

.account-feature-card strong {
  font-size: 12px;
}

.account-feature-card > b {
  color: #686e78;
  font-size: 11px;
  white-space: nowrap;
}

.locked-income {
  text-align: left;
}

.locked-income > p {
  margin: 20px 0 0;
  color: rgba(255,255,255,.62);
  font-size: 11px;
}

/* 周卡片保留两侧缓冲，使被选日期可真正滚动到容器正中。 */
.stitch-schedule .week-strip {
  display: flex;
  grid-template-columns: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-inline: 16px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.stitch-schedule .week-day {
  flex: 0 0 60px;
  scroll-snap-align: center;
}

/* 选题在列表中保持同一深色信息层级。 */
.topics-page .topic-card {
  background: #2d3031;
  color: #fff;
  box-shadow: 0 14px 28px rgba(17,19,21,.14);
}

.topics-page .topic-card-top span {
  background: rgba(255,255,255,.14);
  color: #fff;
}

.topics-page .topic-card > p,
.topics-page .topic-card-foot {
  color: rgba(255,255,255,.68);
}

.topics-page .topic-card-foot {
  border-color: rgba(255,255,255,.14);
}

.topics-page .topic-card-foot b {
  color: #fff;
}

/* AI 回复在左侧使用稳定的身份头像，避免与用户消息混淆。 */
.assistant-chat-box .message.assistant {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.assistant-chat-avatar {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  margin-top: 2px;
  border-radius: 10px;
  background: #2d3031;
  color: #fff;
  box-shadow: 0 5px 12px rgba(17,19,21,.14);
}

.assistant-chat-avatar svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.assistant-chat-avatar circle { fill: currentColor; stroke: none; }

.assistant-chat-box .message.assistant .bubble {
  max-width: calc(100% - 38px);
}

.ledger-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.assistant-chat-page {
  min-height: calc(100dvh - 154px);
  display: grid;
  grid-template-rows: auto minmax(280px, 1fr) auto;
  gap: 10px;
}

.assistant-chat-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #626670;
  font-size: 10px;
}

.assistant-chat-status span i {
  width: 6px;
  height: 6px;
  display: inline-block;
  margin-right: 6px;
  border-radius: 50%;
  background: #168754;
}

.assistant-chat-box {
  min-height: 0;
  max-height: none;
  overflow: auto;
  padding: 14px;
  border: 1px solid rgba(224,227,233,.9);
  border-radius: 24px;
  background: rgba(255,255,255,.74);
  box-shadow: var(--glass-shadow-soft);
}

.assistant-chat-compose {
  position: sticky;
  bottom: 79px;
  grid-template-columns: minmax(0, 1fr) 42px auto;
  align-items: end;
  gap: 7px;
  margin: 0;
  padding: 7px;
  border-radius: 20px;
  background: rgba(255,255,255,.94);
}

.assistant-chat-compose textarea {
  min-height: 42px;
  max-height: 110px;
  resize: none;
  border: 0;
  background: transparent;
}

.voice-input-button,
.send-message-button {
  min-height: 42px;
  border: 0;
  border-radius: 14px;
  cursor: pointer;
}

.voice-input-button {
  width: 42px;
  display: grid;
  place-items: center;
  background: #eceef0;
  color: #111315;
}

.voice-input-button svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
}

.voice-input-button.listening {
  background: #111315;
  color: #fff;
  animation: voice-pulse 1s ease-in-out infinite;
}

.send-message-button {
  padding: 0 14px;
  background: #2d3031;
  color: #fff;
  font-weight: 800;
}

@keyframes voice-pulse {
  50% { box-shadow: 0 0 0 6px rgba(17,19,21,.1); }
}

/* 手机端日期控件：避免 iOS 原生日期输入的固有宽度造成重叠 */
.milestone-field,
.milestone-field input[type="date"] {
  min-width: 0;
  max-width: 100%;
}

.milestone-field input[type="date"] {
  width: 100%;
  box-sizing: border-box;
}

.milestone-fields {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.milestone-field {
  grid-template-columns: minmax(0, 1fr) 154px;
  align-items: center;
  gap: 10px;
}

.milestone-field label {
  margin: 0;
  white-space: nowrap;
}

.milestone-field input[type="date"] {
  width: 154px;
  height: 36px;
  min-height: 36px;
  justify-self: end;
  padding: 4px 8px;
  border-radius: 10px;
  font-size: 16px;
  text-align: center;
}

.milestone-field input[type="date"]::-webkit-datetime-edit,
.milestone-field input[type="date"]::-webkit-date-and-time-value {
  min-height: 0;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: -.02em;
  text-align: center;
}

@media (max-width: 340px) {
  .milestone-field {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  .milestone-field input[type="date"] {
    justify-self: start;
  }
}

@media (max-width: 380px) {
  .day-focus-calendar { margin-inline: -2px; padding-inline: 7px; }
  .week-day { min-height: 64px; }
  .week-day strong { width: 30px; height: 30px; }
  .day-agenda-head h2 { font-size: 17px; }
}

/* 统一以当前主力手机的约 402px 画布作为桌面预览基准 */
.app-shell {
  width: min(100%, 402px);
}

.editor-dialog {
  width: min(calc(100% - 28px), 374px);
}

.tab-bar {
  width: min(calc(100% - 68px), 334px);
}

.toast {
  max-width: min(calc(100% - 40px), 362px);
}

/* 弹窗滚动条使用独立留白，不覆盖右侧卡片内容 */
.editor-dialog .dialog-fields {
  min-width: 0;
  padding: 2px 12px 10px 3px;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}

.editor-dialog .dialog-fields > .form-section {
  width: 100%;
  min-width: 0;
}

.editor-dialog .dialog-fields::-webkit-scrollbar {
  width: 3px;
}

.editor-dialog .dialog-fields::-webkit-scrollbar-track {
  background: transparent;
}

.editor-dialog .dialog-fields::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(91, 97, 108, .28);
}

/* 可选执行节点：按需添加，不再强制四个日期 */
.milestone-builder,
.milestone-list {
  display: grid;
  gap: 9px;
  min-width: 0;
}

.milestone-list:empty {
  display: none;
}

.milestone-entry {
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 8px;
  padding: 5px 7px 5px 12px;
  border: 1px solid rgba(224, 227, 233, .9);
  border-radius: 13px;
  background: rgba(255, 255, 255, .64);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 3px 10px rgba(36,41,52,.025);
}

.milestone-entry-label {
  font-size: 11.5px;
  font-weight: 800;
}

.milestone-entry input[type="date"] {
  width: 100%;
  min-width: 0;
  height: 36px;
  padding: 4px 7px;
  border: 0;
  border-radius: 9px;
  outline: 0;
  background: rgba(244, 246, 248, .9);
  font-size: 16px;
  text-align: center;
}

.milestone-entry input[type="date"]::-webkit-datetime-edit,
.milestone-entry input[type="date"]::-webkit-date-and-time-value {
  min-height: 0;
  font-size: 12.5px;
  text-align: center;
}

.milestone-remove {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(232, 234, 238, .78);
  color: var(--muted);
  cursor: pointer;
  font-size: 17px;
  line-height: 1;
}

.milestone-picker {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 7px;
  border-radius: 12px;
  background: rgba(239, 241, 245, .8);
}

.milestone-picker[hidden] {
  display: none;
}

.milestone-option {
  min-height: 34px;
  padding: 0 6px;
  border: 0;
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.milestone-add {
  min-height: 42px;
  border: 1px dashed rgba(102, 109, 121, .34);
  border-radius: 12px;
  background: rgba(247, 248, 250, .72);
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.milestone-add:disabled {
  border-style: solid;
  color: var(--faint);
  cursor: default;
  opacity: .7;
}

.stage-grid {
  grid-template-columns: repeat(var(--stage-count, 5), minmax(0, 1fr));
}

/* AI 对话输入区固定在底部导航上方 */
.chat {
  padding-bottom: 146px;
}

.chat .message:last-child {
  scroll-margin-bottom: 146px;
}

.chat-compose {
  position: fixed;
  z-index: 39;
  left: 50%;
  bottom: calc(max(14px, env(safe-area-inset-bottom)) + 58px);
  width: min(calc(100% - 68px), 334px);
  margin: 0;
  transform: translateX(-50%);
}

@media (min-width: 700px) {
  .chat-compose {
    bottom: 98px;
  }
}

/* 账户与云端状态 */
.auth-dialog {
  width: min(calc(100% - 28px), 430px);
  max-height: min(720px, calc(100dvh - 28px));
  margin: auto;
  padding: 0;
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 28px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 28px 90px rgba(20,24,33,.26);
}

.auth-dialog::backdrop {
  background: rgba(22,25,31,.32);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.auth-dialog[open] { animation: auth-in 280ms var(--motion-curve) both; }
.auth-dialog form { padding: 24px; }
.auth-head { margin-bottom: 18px; }
.auth-head h2 { font-size: 26px; }

.auth-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  margin-bottom: 22px;
  padding: 4px;
  border-radius: 15px;
  background: #f1f2f4;
}

.auth-switch button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--muted);
  font-weight: 750;
}

.auth-switch button.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 3px 12px rgba(25,28,35,.08);
}

.auth-fields { display: grid; gap: 15px; }
.auth-fields .field { margin: 0; }
.auth-fields .field > span:first-child { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 750; }
.auth-fields input { min-height: 50px; background: #f8f9fa; }
.password-field { position: relative; display: block; }
.password-field input { width: 100%; padding-right: 58px; }
.password-field button { position: absolute; top: 50%; right: 8px; min-width: 44px; height: 36px; transform: translateY(-50%); border: 0; background: transparent; color: var(--muted); font-size: 12px; }
.auth-message { min-height: 18px; margin: -2px 0 0; color: var(--green); font-size: 12px; line-height: 1.5; }
.auth-message.error { color: var(--danger); }
.auth-submit { min-height: 50px; margin-top: 18px; }
.auth-footnote { margin: 13px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; text-align: center; }

.account-loading,
.locked-state {
  min-height: calc(100dvh - 190px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  text-align: center;
}

.account-loading h2,
.locked-state h2 { margin: 12px 0 7px; }
.account-loading p,
.locked-state > p:not(.eyebrow) { max-width: 300px; margin: 0 0 22px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.loading-ring { width: 28px; height: 28px; border: 2px solid #e4e6ea; border-top-color: var(--ink); border-radius: 50%; animation: spin .8s linear infinite; }
.locked-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 18px; background: var(--ink); color: #fff; font-size: 25px; box-shadow: 0 12px 30px rgba(23,25,31,.18); }

.account-hero {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 14px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 15px 38px rgba(30,34,42,.07);
}
.account-mark { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 18px; background: var(--ink); color: #fff; font-size: 18px; font-weight: 800; }
.account-hero h2 { margin-bottom: 7px; font-size: 19px; }
.account-hero p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.account-login { grid-column: 1 / -1; min-height: 48px; }
.privacy-note { display: flex; gap: 12px; margin: 14px 0; padding: 16px; border-radius: 18px; background: #f5f6f8; }
.privacy-note > span { width: 24px; height: 24px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--ink); color: #fff; font-size: 12px; }
.privacy-note strong { font-size: 13px; }
.privacy-note p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.account-profile { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 13px; text-align: left; }
.account-profile .avatar { margin: 0; }
.profile-copy .profile-name { margin-bottom: 3px; }
.profile-copy .profile-state { margin: 0; }
.button.compact { min-height: 36px; padding: 0 13px; font-size: 11px; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes auth-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes auth-sheet-in { from { opacity: .7; transform: translateY(28px); } to { opacity: 1; transform: none; } }

@media (max-width: 380px) {
  .auth-dialog form { padding: 20px; }
  .account-hero { padding: 17px; }
  .account-profile { grid-template-columns: 48px 1fr auto; gap: 10px; }
  .account-profile .avatar { width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-dialog[open] { animation: none; }
}

@media (max-width: 699px) {
  .auth-dialog {
    width: 100%;
    max-width: none;
    max-height: min(86dvh, 720px);
    margin: auto 0 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 28px 28px 0 0;
  }
  .auth-dialog form {
    max-height: min(86dvh, 720px);
    overflow: auto;
    padding-bottom: calc(22px + env(safe-area-inset-bottom));
  }
  .auth-dialog[open] { animation-name: auth-sheet-in; }
}

/* 本文件尾部的 Stitch 表单修正 */
.editor-dialog{inset:0;width:100vw;max-width:430px;height:100dvh;max-height:100dvh;margin:0 auto;padding:0;border:0;border-radius:0;background:#f7f8fa;box-shadow:none;backdrop-filter:none}
.editor-dialog::backdrop{background:rgba(17,19,21,.24);backdrop-filter:blur(3px)}
.editor-dialog form{height:100%;display:flex;flex-direction:column;padding:15px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto}
.editor-dialog .dialog-head{position:sticky;top:-15px;z-index:5;align-items:center;margin:0 -16px 12px;padding:12px 16px;background:rgba(247,248,250,.96);backdrop-filter:blur(18px)}
.editor-dialog .dialog-fields{display:grid;gap:14px;max-height:none;overflow:visible}
.editor-dialog .dialog-actions{position:sticky;bottom:-1px;z-index:5;margin:14px -16px -20px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(247,248,250,.96);backdrop-filter:blur(18px)}
@media(min-width:700px){.editor-dialog{height:min(92dvh,900px);max-height:min(92dvh,900px);margin:auto;border-radius:32px}}

/* 2026-09-12 全局交互动效：反馈、空间连续性与状态确认 */
:root {
  --motion-nav: 280ms;
}

.tab-bar::before {
  transition: transform var(--motion-nav) var(--motion-ease-in-out);
}

button {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

button[data-action],
button[data-auth-action],
button[type="submit"] {
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    transform 140ms var(--motion-ease-out),
    color var(--motion-control) var(--motion-curve),
    background-color var(--motion-control) var(--motion-curve),
    border-color var(--motion-control) var(--motion-curve),
    box-shadow var(--motion-control) var(--motion-curve),
    opacity var(--motion-fast) var(--motion-curve),
    filter var(--motion-fast) var(--motion-curve);
}

button[data-action]:active:not(:disabled),
button[data-auth-action]:active:not(:disabled),
button[type="submit"]:active:not(:disabled) {
  transform: translate3d(0, 0, 0) scale(.97);
}

.round-add:active:not(:disabled),
.icon-button:active:not(:disabled),
.voice-input-button:active:not(:disabled) {
  transform: translate3d(0, 0, 0) scale(.92);
}

.password-field button[data-auth-action]:active:not(:disabled) {
  transform: translateY(-50%) scale(.95);
}

.password-field button[data-auth-action] {
  transform: translateY(-50%);
}

button:disabled {
  cursor: default;
  opacity: .55;
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid rgba(45,48,49,.12);
  outline-offset: 2px;
}

.shoot-card,
.topic-card,
.project-card,
.project-banner,
.account-feature-card,
.income-spotlight,
.conversation-card,
.daily-row,
.timeline-row,
.ledger-row,
.month-row {
  transform: translate3d(0, 0, 0);
  transition:
    transform var(--motion-fast) var(--motion-ease-out),
    box-shadow var(--motion-control) var(--motion-curve),
    background-color var(--motion-control) var(--motion-curve),
    opacity var(--motion-fast) var(--motion-curve),
    filter var(--motion-fast) var(--motion-curve);
}

.tab .nav-icon {
  transition: transform var(--motion-control) var(--motion-ease-out), opacity var(--motion-fast) var(--motion-curve);
}

.tab.active .nav-icon {
  transform: translate3d(0, -1px, 0) scale(.84);
}

.tab:active .nav-icon {
  transform: translate3d(0, 1px, 0) scale(.75);
}

.segment button.active,
.chip-button.active,
.project-filters button.active,
.auth-switch button.active {
  transition:
    transform var(--motion-fast) var(--motion-ease-out),
    background-color var(--motion-control) var(--motion-curve),
    color var(--motion-control) var(--motion-curve),
    box-shadow var(--motion-control) var(--motion-curve);
}

.task-check.done,
.payment-check:checked {
  animation: control-confirm var(--motion-control) var(--motion-ease-out) both;
}

.shoot-progress i,
.progress-track i,
.month-bar i {
  transform-origin: left center;
  animation: progress-reveal var(--motion-control) var(--motion-ease-out) both;
}

.toast {
  transition:
    opacity var(--motion-control) var(--motion-ease-out),
    transform var(--motion-control) var(--motion-ease-out);
}

/* 周/月内容统一交由可打断的页面过渡控制，避免重复播放两套动画。 */
.schedule-month-view,
.schedule-day-view {
  animation: none;
}

@media (hover: hover) and (pointer: fine) {
  .shoot-card:hover,
  .topic-card:hover,
  .project-card:hover,
  .project-banner:hover,
  .account-feature-card:hover,
  .income-spotlight:hover {
    transform: translate3d(0, -2px, 0);
    filter: brightness(1.015);
  }

  .daily-row:hover,
  .timeline-row:hover,
  .ledger-row:hover,
  .month-row:hover {
    transform: translate3d(2px, 0, 0);
  }

  button[data-action]:hover:not(:disabled),
  button[data-auth-action]:hover:not(:disabled),
  button[type="submit"]:hover:not(:disabled) {
    filter: brightness(.985);
  }
}

@keyframes control-confirm {
  from { opacity: .62; transform: scale(.9); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes progress-reveal {
  from { opacity: .45; transform: scaleX(.18); }
  to { opacity: 1; transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }

  button[data-action],
  button[data-auth-action],
  button[type="submit"],
  .shoot-card,
  .topic-card,
  .project-card,
  .project-banner,
  .account-feature-card,
  .income-spotlight,
  .conversation-card,
  .daily-row,
  .timeline-row,
  .ledger-row,
  .month-row,
  .tab .nav-icon {
    transition-duration: 80ms;
  }

  .task-check.done,
  .payment-check:checked,
  .shoot-progress i,
  .progress-track i,
  .month-bar i {
    animation: none;
  }

  button[data-action]:active:not(:disabled),
  button[data-auth-action]:active:not(:disabled),
  button[type="submit"]:active:not(:disabled),
  .round-add:active:not(:disabled),
  .icon-button:active:not(:disabled),
  .voice-input-button:active:not(:disabled) {
    transform: none;
  }

  .password-field button[data-auth-action]:active:not(:disabled) {
    transform: translateY(-50%);
  }
}

/* ── AI 助手：对齐小程序版（会眨眼的助手头像 / 气泡入场 / 输入中跳动点 / 胶囊输入条） ── */
.assistant-chat-page {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: calc(100dvh - 154px);
}

.assistant-chat-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 2px 2px;
  color: #9ba0aa;
  font-size: 11px;
}

.assistant-chat-status span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
}

.assistant-chat-status span i {
  width: 6px;
  height: 6px;
  margin: 0;
  border-radius: 50%;
  background: #148754;
}

.assistant-chat-status small { font-size: 11px; }

.assistant-chat-box {
  flex: 1;
  min-height: 0;
  max-height: none;
  overflow: auto;
  gap: 0;
  padding: 6px 4px 146px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.assistant-chat-box .message {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 13px;
  animation: bubble-in 260ms cubic-bezier(.23, 1, .32, 1);
}

.assistant-chat-box .message.user { justify-content: flex-end; }

.assistant-chat-avatar {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 2px;
  border-radius: 50%;
  background: #2d3031;
  box-shadow: 0 8px 18px rgba(17, 19, 21, .18);
}

.assistant-chat-avatar .eye {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  animation: avatar-blink 3.6s infinite;
}

.assistant-chat-box .bubble {
  max-width: min(250px, 78%);
  padding: 11px 13px;
  border: 0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(25, 28, 35, .07);
  font-size: 13px;
  line-height: 1.62;
}

.assistant-chat-box .message.assistant .bubble {
  max-width: min(250px, 78%);
  border: 0;
  border-top-left-radius: 6px;
  background: #fff;
}

.assistant-chat-box .message.user .bubble {
  max-width: min(250px, 78%);
  border: 0;
  border-top-right-radius: 6px;
  background: #2d3031;
  color: #fff;
  box-shadow: 0 6px 18px rgba(17, 19, 21, .16);
}

.assistant-chat-box .message.pending .bubble { color: inherit; }

.assistant-chat-box .typing {
  display: flex;
  gap: 4px;
  padding: 3px 1px;
}

.assistant-chat-box .typing i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #b6bac1;
  animation: typing-dot 1.1s infinite ease-in-out;
}

.assistant-chat-box .typing i:nth-child(2) { animation-delay: .16s; }
.assistant-chat-box .typing i:nth-child(3) { animation-delay: .32s; }

.assistant-chat-compose {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px auto;
  align-items: center;
  gap: 7px;
  padding: 7px 7px 7px 14px;
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 9px 25px rgba(25, 28, 35, .1);
}

.assistant-chat-compose textarea {
  min-height: 28px;
  max-height: 104px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  font-size: 14px;
}

.assistant-chat-compose .voice-input-button {
  width: 36px;
  height: 36px;
  min-height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #f2f3f5;
  color: #6e737d;
  cursor: pointer;
}

.assistant-chat-compose .voice-input-button svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
}

.assistant-chat-compose .voice-input-button.listening {
  background: #17191f;
  color: #fff;
}

.assistant-chat-compose .send-message-button {
  height: 36px;
  min-height: 36px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: #ebedf0;
  color: #9ba0aa;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 220ms cubic-bezier(.23, 1, .32, 1), color 220ms cubic-bezier(.23, 1, .32, 1);
}

.assistant-chat-compose .send-message-button.ready {
  background: #17191f;
  color: #fff;
}

@keyframes bubble-in {
  from { opacity: 0; transform: translate3d(0, 6px, 0) scale(.98); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes typing-dot {
  0%, 60%, 100% { transform: translateY(0); opacity: .5; }
  30% { transform: translateY(-4px); opacity: 1; }
}

@keyframes avatar-blink {
  0%, 92%, 100% { transform: scaleY(1); }
  96% { transform: scaleY(.2); }
}

/* ── 日程页：对齐小程序版（纯白卡片 / 黑色选中态 / 更紧凑的行距） ── */
body[data-tab="schedule"] .app-shell { background: #f5f6f8; }

.stitch-schedule .date-hero { padding: 13px 2px 12px; }
.stitch-schedule .date-hero > div > strong { font-size: 46px; font-weight: 800; letter-spacing: -2px; line-height: 1; }
.stitch-schedule .date-hero b { margin-left: 5px; font-size: 15px; font-weight: 700; }
.stitch-schedule .today-label { color: #9ba0aa; font-size: 12.5px; }
.stitch-schedule .segment { padding: 3px; background: #ebedf0; }
.stitch-schedule .segment button { min-width: 0; min-height: 0; padding: 5px 13px; font-size: 12px; font-weight: 700; color: #555963; }
.stitch-schedule .segment button.active { background: #2d3031; color: #fff; box-shadow: 0 6px 12px rgba(17,19,21,.2); }
.stitch-schedule .round-add { width: 33px; height: 33px; font-size: 21px; box-shadow: 0 6px 12px rgba(17,19,21,.2); }

/* 横滑容器会同时裁掉纵向内容，这里把间距从 margin 挪进 padding，
   给周卡片的阴影留出空间，否则阴影会在容器底边被硬切出一条线 */
.stitch-schedule .week-strip {
  /* 卡片间距由卡片自身内边距提供，这里不再用 gap */
  gap: 0;
  /* 通栏：左右各吃掉页面 16px 内边距，可视宽度正好等于 7 格，
     每格因此更宽，卡片变宽后圆角比例更接近设计稿 */
  margin: 0 -16px;
  padding: 2px 0 20px;
  /* 滚动位置由脚本按实测卡片间距对齐，这里关掉浏览器自带的吸附，避免两套逻辑打架 */
  scroll-snap-type: none;
}
.stitch-schedule .week-day {
  /* 一屏正好 7 张：每张占容器 1/7，7 张刚好铺满，第 8 张完全落在容器外，
     避免边缘露出小半张卡；间距用内边距 + background-clip 切出来，不依赖 gap */
  flex: 0 0 14.2857%;
  /* 左右各留 4px，卡片之间就有 8px 的空隙 */
  padding: 0 4px;
  background-clip: content-box;
  height: 62px;
  min-height: 62px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 0;
  /* 卡片变宽后把圆角收一点，避免整张卡看起来像压扁的胶囊 */
  border-radius: 11px;
  /* 必须用 background-color 长写：background 简写会把上面的 background-clip 重置成 border-box，
     内边距留出的空隙会被背景填掉，卡片看起来挤在一起 */
  background-color: #fff;
  color: #333741;
  /* 扁平化：不用阴影和描边，靠白底和画布底色区分 */
  box-shadow: none;
  scroll-snap-align: none;
  transition: background-color 220ms cubic-bezier(.23,1,.32,1), color 220ms cubic-bezier(.23,1,.32,1), box-shadow 220ms cubic-bezier(.23,1,.32,1), border-color 220ms;
}
.stitch-schedule .week-label { color: #9ba0aa; font-size: 10.5px; }
.stitch-schedule .week-day.selected { background-color: #2d3031; color: #fff; box-shadow: none; }
.stitch-schedule .week-day.selected .week-label { color: rgba(255,255,255,.72); }
.stitch-schedule .week-day strong { width: auto; height: auto; margin: 0; font-size: 18px; font-weight: 800; }
.stitch-schedule .week-event-dots { min-height: 5px; gap: 3px; }
.stitch-schedule .week-event-dot { width: 4px; height: 4px; opacity: 1; }
.stitch-schedule .week-event-dot.order { background: #17191f !important; }
.stitch-schedule .week-event-dot.video { background: #7b8089 !important; }
.stitch-schedule .week-event-dot.other-type { background: #c7cad0 !important; }
.stitch-schedule .week-day.selected .week-event-dot { background: rgba(255,255,255,.82) !important; }

.stitch-schedule .calendar {
  padding: 12px 10px 10px;
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.stitch-schedule .month-navigation { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 8px; color: var(--ink); font-size: 13.5px; font-weight: 700; }
.stitch-schedule .month-navigation button { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #f5f6f8; color: var(--ink); font-size: 16px; cursor: pointer; }
.stitch-schedule .month-navigation span { flex: 1; text-align: center; }
.stitch-schedule .calendar-head { padding: 0 0 4px; color: #9ba0aa; font-size: 11px; }
.stitch-schedule .calendar-grid { gap: 3px; padding: 0; }
.stitch-schedule .calendar-day { min-height: 44px; border: 0; border-radius: 13px; background: transparent; font-size: 13.5px; font-weight: 700; }
.stitch-schedule .calendar-day.other { opacity: .34; }
.stitch-schedule .calendar-day.selected { background: #2d3031; color: #fff; }
.stitch-schedule .calendar-day.today:not(.selected) { box-shadow: none; }
.stitch-schedule .calendar-day.today:not(.selected) .calendar-number { color: #2d62d7; }
.stitch-schedule .calendar-dots { min-height: 4px; gap: 2px; }
.stitch-schedule .calendar-dot { width: 3px; height: 3px; }
.stitch-schedule .calendar-day.selected .calendar-dot { background: rgba(255,255,255,.82) !important; }

.stitch-schedule .stitch-section-title { margin: 0 2px 10px; }
.stitch-schedule .stitch-section-title h2 { font-size: 20px; font-weight: 800; letter-spacing: -.7px; }
.stitch-schedule .stitch-section-title span { color: #555963; font-size: 12.5px; }
.stitch-schedule .stitch-section-title.daily-title { margin-top: 17px; }

.stitch-schedule .shoot-card { margin-bottom: 10px; padding: 17px; border-radius: 26px; box-shadow: none; }
.stitch-schedule .shoot-tags { gap: 6px; margin-bottom: 11px; }
.stitch-schedule .shoot-tags span { padding: 4px 10px; font-size: 11px; }
.stitch-schedule .shoot-tags b { font-size: 20px; font-weight: 800; letter-spacing: -.5px; }
.stitch-schedule .shoot-card > strong { margin: 0 0 11px; font-size: 18px; font-weight: 800; line-height: 1.4; }
.stitch-schedule .shoot-progress { margin: 0; }
.stitch-schedule .shoot-progress > span { height: 5px; }
.stitch-schedule .shoot-progress > b { font-size: 12.5px; font-weight: 700; }
.stitch-schedule .shoot-card > small { margin-top: 10px; font-size: 12px; }

.stitch-schedule .daily-list { padding: 4px 13px; border-radius: 22px; box-shadow: none; }
.stitch-schedule .daily-row { grid-template-columns: 23px 1fr 20px; gap: 10px; min-height: 58px; padding: 8px 0; border-bottom: 1px solid #eef0f3; }
.stitch-schedule .daily-row span strong { font-size: 14.5px; font-weight: 700; }
.stitch-schedule .daily-row span small { margin-top: 3px; color: #747983; font-size: 11.5px; }
.stitch-schedule .daily-row > b { font-size: 20px; }
.stitch-schedule .task-check { width: 23px; height: 23px; background: #e5e7e9; }
.stitch-schedule .task-check.done { background: #2d3031; }
.stitch-schedule .daily-row.static.completed span strong { color: #9ba0aa; text-decoration: line-through; }

.stitch-schedule .project-banner { grid-template-columns: 34px 1fr auto; gap: 10px; margin-top: 18px; padding: 14px 16px; border-radius: 24px; box-shadow: none; }
.stitch-schedule .project-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.14); font-size: 15px; }
.stitch-schedule .project-banner strong { font-size: 15.5px; font-weight: 800; }
.stitch-schedule .project-banner small { color: rgba(255,255,255,.66); font-size: 11px; }
.stitch-schedule .project-banner b { font-size: 11.5px; }

/* 周 / 月切换与日期点选的动效（对齐小程序） */
.stitch-schedule .week-strip.week-enter { animation: strip-in 300ms cubic-bezier(.23, 1, .32, 1); }
.stitch-schedule .calendar.month-enter { transform-origin: 50% 0; animation: month-open 340ms cubic-bezier(.23, 1, .32, 1); }
.stitch-schedule .calendar-day { transition: background-color 200ms cubic-bezier(.23, 1, .32, 1), color 200ms cubic-bezier(.23, 1, .32, 1); }

@keyframes strip-in {
  from { opacity: 0; transform: translate3d(0, -6px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes month-open {
  0% { opacity: 0; transform: scale(.9) translate3d(0, -10px, 0); }
  60% { opacity: 1; }
  100% { opacity: 1; transform: scale(1) translate3d(0, 0, 0); }
}

/* AI 操作回执：模型把内容写进工作台之后，在气泡下方留一条可以核对的回执 */
.ai-action-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}

.ai-action-chip {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  font-size: 11.5px;
  line-height: 1.5;
}

.ai-action-chip b { font-weight: 700; color: var(--ink); }
.ai-action-chip i { flex: none; font-style: normal; color: var(--muted); white-space: nowrap; }
.ai-action-chip.shoot { border-left: 3px solid #2d3031; }
.ai-action-chip.reminder { border-left: 3px solid #2d62d7; }
.ai-action-chip.income { border-left: 3px solid #148754; }
.ai-action-chip.copy { border-left: 3px solid var(--accent-yellow); }

/* 流式输出过程中气泡内容持续替换，去掉重绘带来的闪烁 */
.bubble.ai.streaming { backface-visibility: hidden; }

.daily-empty {
  margin: 0;
  padding: 14px 2px;
  font-size: 12.5px;
  line-height: 1.6;
}

/* 2026-09-12 日程与资料迭代：圆角遵循 20px 卡片令牌 */
.stitch-schedule .week-day { border-radius: 20px; }

.detail-sticky-actions {
  grid-template-columns: .62fr .9fr 1.6fr;
}

.detail-sticky-actions button.delete {
  background: #fff0ee;
  color: var(--danger);
}

.detail-sticky-actions button:last-child {
  font-size: 12px;
}

.redesigned-mine .profile-orb {
  padding: 0;
  border: 7px solid #fff;
  background: transparent;
  cursor: pointer;
}

.redesigned-mine .profile-orb img,
.profile-preview img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 50%;
  object-fit: cover;
}

.profile-edit-link {
  margin-top: 10px;
  padding: 7px 13px;
  border: 0;
  border-radius: 999px;
  background: #eef0f3;
  color: #555963;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
}

.redesigned-mine .profile-edit-link + .income-spotlight { margin-top: 22px; }

.profile-editor { text-align: center; }

.profile-preview {
  width: 96px;
  height: 96px;
  display: grid;
  place-items: center;
  margin: 0 auto 12px;
  overflow: hidden;
  border-radius: 50%;
  background: #17191f;
  color: #fff;
  font-size: 32px;
  font-weight: 800;
}

.avatar-picker {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.avatar-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.voice-input-button { touch-action: none; user-select: none; -webkit-user-select: none; }

/* 2026-09-16 黄色语义：强调统一为账单黄，商单标签等大面积底色保留同色系浅黄 */
.stitch-schedule .stitch-section-title:not(.daily-title) > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.stitch-schedule .stitch-section-title:not(.daily-title) > span::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent-orange);
  box-shadow: 0 0 0 3px rgba(var(--accent-yellow-rgb), .13);
  content: "";
}

.stitch-schedule .shoot-tags .shoot-tag-order {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-yellow-rgb), .42);
}

.stitch-schedule .shoot-tags b {
  color: var(--accent-orange);
}

.stitch-schedule .shoot-progress > span i,
.stitch-schedule .shoot-card.featured .shoot-progress > span i,
.project-hero .progress-track i,
.month-bar i {
  background: linear-gradient(90deg, var(--accent-orange-cream), var(--accent-orange));
}

.stitch-schedule .shoot-progress > b,
.project-hero .progress-copy strong {
  color: var(--accent-orange);
}

body[data-tab="schedule"] .stitch-schedule .week-day.selected .week-event-dot.order {
  background: var(--accent-orange) !important;
  box-shadow: 0 0 0 2px rgba(var(--accent-yellow-rgb), .22);
}

.stitch-schedule .calendar-day.today:not(.selected) .calendar-number {
  color: var(--accent-orange-deep);
}

.stitch-schedule .daily-row:not(.completed):first-child .task-check {
  background: var(--accent-orange-soft);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-yellow-rgb), .42);
}

.project-hero .hero-meta b[data-project-total] {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
}

.timeline-row.current > i {
  background: var(--accent-orange);
  color: #2d3031;
  box-shadow: 0 0 0 5px var(--accent-orange-soft);
}

.timeline-row.current time {
  color: var(--accent-orange-cream);
}

.ledger-overview .income-number,
.ledger-hero .ledger-total-value {
  color: var(--accent-orange-cream);
}

.ledger-overview .income-number small,
.ledger-hero .ledger-total-value small {
  color: rgba(var(--accent-yellow-rgb), .78);
}

.ledger-amount,
.month-value {
  color: var(--accent-orange-deep);
}

/* 2026-09-16 Script + inspiration workspace */
.tab-bar { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tab { min-width: 0; padding-inline: 2px; font-size: 10px; }
.tab[data-tab="inspiration"] .nav-icon { width: 18px; height: 18px; border: 1.6px solid currentColor; border-radius: 50%; }
.tab[data-tab="inspiration"] .nav-icon::before { width: 6px; height: 8px; left: 5px; top: 3px; border-radius: 7px 7px 4px 4px; background: currentColor; opacity: .24; }
.tab[data-tab="inspiration"] .nav-icon::after { width: 6px; left: 5px; bottom: -3px; border-top: 1.6px solid currentColor; }

body[data-route="ai"] .tab-bar,
body[data-route="script-editor"] .tab-bar { display: none; }
body[data-route="ai"] .app-shell,
body[data-route="script-editor"] .app-shell { padding-bottom: 26px; }

.inspiration-page,
.scripts-library,
.script-editor-page { display: grid; gap: 16px; }

.inspiration-intro { padding: 8px 2px 2px; }
.inspiration-intro h2 { margin-bottom: 8px; font-size: 27px; line-height: 1.12; }
.inspiration-intro > p:last-child { max-width: 34rem; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.inspiration-search { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 8px; border-radius: 18px; background: #f1f2f4; }
.inspiration-search input { min-width: 0; min-height: 46px; padding: 0 12px; border: 0; outline: 0; background: transparent; color: var(--ink); }
.inspiration-search button { min-width: 76px; border: 0; border-radius: 13px; background: var(--ink); color: #fff; font-weight: 750; }
.inspiration-search button:disabled { opacity: .48; }
.service-state { padding: 17px 18px; border: 1px solid rgba(var(--accent-yellow-rgb), .5); border-radius: 18px; background: var(--accent-orange-soft); color: var(--ink); }
.service-state.error { border-color: #efc8c3; background: #fff2f0; color: #842d22; }
.service-state b { display: block; margin-bottom: 5px; font-size: 13px; }
.service-state p { margin: 0; font-size: 12px; line-height: 1.55; }
.service-state button { margin-top: 10px; padding: 7px 11px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font-size: 11px; font-weight: 750; }
.inspiration-result-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-top: 8px; }
.inspiration-result-head p { margin: 0 0 3px; color: var(--accent-orange-deep); font-size: 11px; font-weight: 800; }
.inspiration-result-head h2 { font-size: 22px; }
.inspiration-result-head > div:last-child { display: grid; justify-items: end; gap: 2px; text-align: right; }
.inspiration-result-head span,
.inspiration-result-head small { color: var(--muted); font-size: 10px; }
.inspiration-result-head button { margin-top: 4px; padding: 0; border: 0; background: transparent; color: var(--accent-orange-deep); font-size: 11px; font-weight: 750; }
.scoring-note { margin: -7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.inspiration-list { display: grid; gap: 10px; }
.inspiration-card { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 13px; padding: 17px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.inspiration-rank { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.inspiration-rank b { color: var(--accent-orange); font-size: 24px; letter-spacing: -.05em; }
.inspiration-rank span { padding: 4px 6px; border-radius: 999px; background: var(--accent-orange-soft); color: var(--accent-orange-deep); font-size: 9px; font-weight: 800; white-space: nowrap; }
.inspiration-copy { min-width: 0; }
.inspiration-copy h3 { margin: 0 0 7px; font-size: 14px; line-height: 1.45; }
.inspiration-copy > p { margin: 0; color: var(--muted); font-size: 10px; }
.metric-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 12px; }
.metric-row span { display: grid; gap: 2px; color: var(--faint); font-size: 9px; }
.metric-row b { color: var(--ink); font-size: 11px; }
.inspiration-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 13px; }
.inspiration-actions a,
.inspiration-actions > span { color: var(--muted); font-size: 11px; }
.inspiration-actions button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 750; }

.new-script-hero { position: relative; min-height: 138px; display: grid; align-content: end; justify-items: start; padding: 24px; overflow: hidden; border: 0; border-radius: 27px; background: var(--ink); color: #fff; text-align: left; }
.new-script-hero::before { position: absolute; width: 160px; height: 160px; right: -34px; top: -65px; border-radius: 50%; background: linear-gradient(145deg, var(--accent-orange-cream), var(--accent-orange)); content: ""; }
.new-script-hero > span { position: relative; font-size: 24px; font-weight: 850; letter-spacing: -.04em; }
.new-script-hero > small { position: relative; margin-top: 5px; color: rgba(255,255,255,.62); }
.new-script-hero > b { position: absolute; right: 24px; bottom: 23px; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--ink); font-size: 24px; }
.scripts-head { display: flex; justify-content: space-between; padding: 7px 2px 0; }
.script-category-row { display: flex; gap: 7px; margin: 0 -18px; padding: 0 18px 2px; overflow-x: auto; scrollbar-width: none; }
.script-category-row::-webkit-scrollbar { display: none; }
.script-category-row button { flex: 0 0 auto; min-height: 34px; padding: 0 13px; border: 0; border-radius: 999px; background: #eff0f2; color: var(--muted); font-size: 11px; font-weight: 750; }
.script-category-row button.active { background: var(--ink); color: #fff; }
.script-library-list { display: grid; gap: 10px; }
.script-library-card { width: 100%; display: grid; justify-items: start; gap: 6px; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: #fff; text-align: left; }
.script-library-card .script-kind { padding: 5px 8px; border-radius: 999px; background: var(--accent-orange-soft); color: var(--accent-orange-deep); font-size: 9px; font-weight: 800; }
.script-library-card > strong { font-size: 15px; }
.script-library-card > p { width: 100%; margin: 0; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.script-library-card > div { width: 100%; display: flex; justify-content: space-between; margin-top: 5px; color: var(--faint); font-size: 10px; }
.script-library-card > div b { color: var(--ink); }

.workspace-sheet-backdrop { position: fixed; inset: 0; z-index: 90; display: flex; align-items: end; justify-content: center; padding: 16px; background: rgba(17,19,21,.34); }
.workspace-sheet { width: min(100%, 490px); max-height: min(86dvh, 760px); overflow-y: auto; padding: 11px 16px calc(18px + env(safe-area-inset-bottom)); border: 1px solid rgba(255,255,255,.72); border-radius: 28px; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px); box-shadow: 0 24px 70px rgba(17,19,21,.24); }
.workspace-sheet.compact { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
.sheet-handle { width: 34px; height: 4px; margin: 1px auto 16px; border-radius: 999px; background: #c9ccd1; }
.workspace-sheet h2 { margin-bottom: 15px; }
.workspace-sheet > button { width: 100%; display: grid; gap: 3px; padding: 15px; margin-top: 8px; border: 0; border-radius: 16px; background: #f1f2f4; text-align: left; }
.workspace-sheet > button b { font-size: 13px; }
.workspace-sheet > button span { color: var(--muted); font-size: 10px; }
.workspace-sheet form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; margin-top: 12px; }
.workspace-sheet label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; }
.workspace-sheet input { min-width: 0; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; color: var(--ink); }
.workspace-sheet form button { min-height: 44px; padding: 0 15px; border: 0; border-radius: 13px; background: var(--ink); color: #fff; font-weight: 750; }

.script-editor-page { gap: 13px; }
.script-editor-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; }
.script-editor-nav > button,
.script-editor-nav > div button { min-height: 36px; padding: 0 7px; border: 0; background: transparent; font-size: 11px; font-weight: 750; }
.script-editor-nav > div { display: flex; justify-content: end; gap: 5px; }
.script-editor-nav .danger-text { color: var(--danger); }
.script-editor-nav .save-state { color: var(--faint); font-size: 10px; text-align: center; }
.script-title-card,
.script-body-card,
.brief-card { padding: 17px; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.script-title-card > label { display: grid; gap: 6px; color: var(--faint); font-size: 10px; font-weight: 750; }
.script-title-card .script-title { width: 100%; min-height: 42px; padding: 0; border: 0; background: transparent; font-size: 19px; }
.title-ai-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--line); }
.title-ai-tools > span { margin-right: auto; color: var(--muted); font-size: 10px; font-weight: 750; }
.title-ai-tools button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 999px; background: #f0f1f3; color: #454a53; font-size: 10px; }
.script-body-head { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.script-body-head h3 { margin: 0; font-size: 15px; }
.script-body-head > span { color: var(--faint); font-size: 10px; }
.script-writing-surface { min-height: 48vh; }
.script-block-wrap + .script-block-wrap { margin-top: 12px; }
.script-block { min-height: 36px; padding: 4px 2px; border-radius: 7px; outline: 0; color: #24272d; font-size: 14px; line-height: 1.85; white-space: pre-wrap; }
.script-block:empty::before { color: #a4a8b0; content: "从这里开始写…"; }
.script-block:focus { background: rgba(var(--accent-yellow-rgb), .08); box-shadow: 0 0 0 3px var(--accent-orange-soft); }
.selection-command { position: fixed; z-index: 100; display: flex; gap: 3px; max-width: calc(100vw - 24px); padding: 5px; overflow-x: auto; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: #202226; color: #fff; box-shadow: 0 12px 32px rgba(17,19,21,.28); scrollbar-width: none; }
.selection-command::-webkit-scrollbar { display: none; }
.selection-command button { min-height: 34px; padding: 0 9px; border: 0; border-radius: 10px; background: transparent; color: inherit; font-size: 10px; font-weight: 750; white-space: nowrap; }
.selection-command button:active { background: rgba(255,255,255,.12); }
.inline-ai-suggestion { margin: 10px 0 2px; padding: 15px; border: 1px solid rgba(var(--accent-yellow-rgb), .55); border-radius: 17px; background: var(--accent-orange-soft); }
.inline-ai-suggestion.loading { color: var(--accent-orange-deep); }
.inline-ai-suggestion > div:first-child { display: flex; justify-content: space-between; align-items: center; }
.inline-ai-suggestion > div:first-child p { margin: 0; color: var(--accent-orange-deep); font-size: 11px; font-weight: 800; }
.inline-ai-suggestion > div:first-child span { color: var(--muted); font-size: 9px; }
.inline-ai-suggestion > p { margin: 9px 0; color: var(--ink); font-size: 11px; line-height: 1.55; }
.inline-ai-suggestion blockquote { margin: 0; padding: 12px; border: 0; border-radius: 12px; background: rgba(255,255,255,.72); font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.inline-ai-suggestion details { margin-bottom: 8px; color: var(--muted); font-size: 10px; }
.inline-ai-suggestion summary { cursor: pointer; }
.inline-ai-suggestion details blockquote { margin-top: 7px; opacity: .72; }
.inline-ai-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 11px; }
.inline-ai-actions button { min-height: 38px; border: 0; border-radius: 12px; background: rgba(255,255,255,.72); color: var(--ink); font-size: 11px; font-weight: 750; }
.inline-ai-actions button:last-child { background: var(--ink); color: #fff; }

.brief-card > div:first-child > span { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.brief-card h3 { margin: 0; }
.brief-upload { position: relative; display: grid; gap: 3px; margin-top: 14px; padding: 14px; border: 1px dashed #cbd0d7; border-radius: 15px; background: #f7f8f9; cursor: pointer; }
.brief-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.brief-upload b { color: var(--accent-orange-deep); font-size: 12px; }
.brief-upload span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.brief-upload.busy { opacity: .58; }
.brief-text { width: 100%; min-height: 160px; margin-top: 11px; padding: 12px; resize: vertical; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); font-size: 11px; line-height: 1.65; }
.brief-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; }
.brief-actions button { min-height: 40px; border: 0; border-radius: 12px; background: #eff0f2; font-size: 10px; font-weight: 750; }
.brief-actions button.primary { background: var(--ink); color: #fff; }
.anchor-status { margin: 8px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }

.ai-entry-card em { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; font-weight: 500; }

@media (max-width: 380px) {
  .tab { font-size: 9px; }
  .tab-bar { width: calc(100% - 16px); }
  .metric-row { grid-template-columns: repeat(2, 1fr); }
  .selection-command button { padding-inline: 7px; font-size: 9px; }
}

@media (prefers-reduced-transparency: reduce) {
  .workspace-sheet { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (prefers-contrast: more) {
  .inspiration-card,
  .script-library-card,
  .script-title-card,
  .script-body-card,
  .brief-card { border-color: #555b65; }
  .service-state,
  .inline-ai-suggestion { border-color: var(--accent-orange-deep); }
  .tab.active { outline: 2px solid currentColor; outline-offset: -2px; }
}

/* 2026-09-16 日程与选题增强：加高导航，为倒计时和可操作信息使用橙黄强调 */
html,
.app-view { scroll-padding-bottom: 132px; }

.app-shell { padding-bottom: 96px; }

.tab-bar {
  padding: 7px 5px;
}

.tab {
  min-height: 52px;
  gap: 3px;
}

.tab .nav-icon {
  transform: scale(.86);
}

body[data-route="projects"] .app-shell,
body[data-route="schedule-detail"] .app-shell,
body[data-route="ledger"] .app-shell,
body[data-route="topic-detail"] .app-shell,
body[data-route="ai"] .app-shell,
body[data-route="script-editor"] .app-shell { padding-bottom: 26px; }

.daily-title-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.stitch-schedule .daily-title-actions > button {
  min-height: 30px;
  padding: 0 11px;
  border: 0;
  border-radius: 999px;
  background: var(--accent-orange);
  color: #2d241b;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.stitch-schedule .daily-row span small em {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
}

.card-countdown {
  display: inline-flex;
  align-items: center;
  margin-left: 7px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--accent-orange);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.card-countdown::before {
  margin-right: 6px;
  color: rgba(255,255,255,.42);
  content: "·";
}

.project-list .project-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(var(--accent-yellow-rgb), .32);
  box-shadow: inset 4px 0 0 var(--accent-orange), 0 14px 28px rgba(17,19,21,.12);
}

.project-list .project-card .shoot-tag-order {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
}

.topics-page .topic-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(34, 27, 19, .07);
}

.topics-page .topic-card-top span {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
}

.topics-page .topic-card-foot b {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  color: var(--accent-orange-deep);
  font-weight: 800;
  white-space: nowrap;
}

.topics-page .topic-card-foot b {
  background: var(--accent-orange);
}

.reminder-recurrence-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.topic-idea-chat {
  display: grid;
  gap: 13px;
  margin: 16px 0;
  padding: 17px;
  border: 1px solid rgba(var(--accent-yellow-rgb), .42);
  border-radius: 22px;
  background: rgba(var(--accent-yellow-rgb), .08);
}

.topic-chat-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.topic-chat-head p {
  margin: 0 0 3px;
  color: var(--accent-orange-deep);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}

.topic-chat-head h3 { margin: 0; font-size: 16px; }
.topic-chat-head > span { color: var(--muted); font-size: 9px; }

.topic-chat-messages {
  display: grid;
  gap: 9px;
  max-height: 320px;
  padding: 12px;
  overflow-y: auto;
  border-radius: 17px;
  background: rgba(255,255,255,.76);
}

.topic-chat-empty {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.topic-chat-message {
  display: flex;
  align-items: flex-start;
  gap: 7px;
}

.topic-chat-message.user { justify-content: flex-end; }

.topic-chat-message > div {
  max-width: 84%;
  padding: 10px 12px;
  border-radius: 15px;
  background: #eceef0;
  color: #303238;
  font-size: 11px;
  line-height: 1.6;
}

.topic-chat-message.user > div {
  background: #2d3031;
  color: #fff;
  border-bottom-right-radius: 5px;
}

.topic-chat-message.assistant > div {
  background: var(--accent-orange-soft);
  border-bottom-left-radius: 5px;
}

.topic-chat-message p,
.topic-chat-message ul { margin: 0; }
.topic-chat-message p + p,
.topic-chat-message p + ul { margin-top: 6px; }

.topic-chat-avatar {
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--accent-orange);
  color: #2d241b;
  font-size: 8px;
  font-weight: 900;
}

.topic-idea-chat-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
}

.topic-idea-chat-form textarea {
  min-width: 0;
  min-height: 44px;
  max-height: 120px;
  padding: 11px 12px;
  resize: vertical;
  border: 1px solid rgba(var(--accent-yellow-rgb), .42);
  border-radius: 14px;
  outline: 0;
  background: #fff;
  color: var(--ink);
  font-size: 11px;
  line-height: 1.5;
}

.topic-idea-chat-form textarea:focus {
  border-color: var(--accent-orange);
  box-shadow: 0 0 0 3px rgba(var(--accent-yellow-rgb), .13);
}

.topic-idea-chat-form button {
  min-width: 58px;
  min-height: 44px;
  border: 0;
  border-radius: 14px;
  background: #2d3031;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.topic-idea-chat-form button:disabled { opacity: .45; }

@media (max-width: 380px) {
  .daily-title-actions { gap: 5px; }
  .stitch-schedule .daily-title-actions > button { padding-inline: 9px; }
  .topic-chat-head > span { display: none; }
}

@media (prefers-contrast: more) {
  .topics-page .topic-card,
  .topic-idea-chat,
  .project-list .project-card { border-color: var(--accent-orange-deep); }
}

/* 2026-09-16 四页信息层级与交互收口 */
.stitch-schedule .shoot-tags {
  justify-content: flex-start;
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) {
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 12px 34px rgba(17,19,21,.075);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-tags span {
  background: var(--soft);
  color: var(--ink);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-tags .shoot-tag-order {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-progress > span {
  background: rgba(17,19,21,.11);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-progress > b {
  color: var(--ink);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) > small {
  color: var(--muted);
}

.stitch-schedule .daily-title-actions > .daily-add-button {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  background: var(--ink);
  color: var(--paper);
  font-size: 21px;
  line-height: 1;
  box-shadow: 0 7px 16px rgba(17,19,21,.16);
}

.project-filter-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin: 12px 0 14px;
}

.project-filter-bar .project-filters {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.project-add-inline {
  min-height: 40px;
  padding: 0 13px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.project-list .project-card {
  border: 0;
  color: var(--paper);
  box-shadow: 0 14px 28px rgba(17,19,21,.16);
}

.inspiration-search {
  gap: 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.inspiration-search input {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
}

.inspiration-search button {
  min-height: 46px;
  border-radius: 14px;
}

.topic-quick-add button {
  background: var(--accent-orange);
  color: var(--accent-orange-deep);
}

.topics-head {
  align-items: flex-start;
  padding-bottom: 8px;
}

.topics-count-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.topic-search-toggle {
  width: 44px;
  min-width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
}

.topic-search-toggle.active {
  border-color: transparent;
  background: var(--accent-orange);
}

.topic-search-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 8px;
  margin-bottom: 10px;
}

.topic-search-panel input {
  min-width: 0;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  outline: 0;
  background: var(--paper);
  color: var(--ink);
}

.topic-search-panel input:focus {
  border-color: var(--accent-orange);
  box-shadow: 0 0 0 3px rgba(var(--accent-yellow-rgb), .13);
}

.topic-search-panel button {
  width: 44px;
  min-height: 44px;
  border: 0;
  border-radius: 14px;
  background: var(--soft);
  color: var(--ink);
  font-size: 20px;
}

.new-script-hero {
  min-height: 128px;
  align-content: center;
  padding: 24px 82px 24px 24px;
}

.new-script-hero > b {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}

.script-editor-nav {
  grid-template-columns: auto minmax(68px, 1fr) auto;
}

.script-editor-nav > .script-back-button {
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 5px 14px rgba(17,19,21,.07);
  white-space: nowrap;
}

.script-title-card {
  border-color: transparent;
  background: var(--ink);
  color: var(--paper);
  box-shadow: 0 14px 28px rgba(17,19,21,.16);
}

.script-title-card > label {
  color: var(--accent-orange);
}

.script-title-card .script-title {
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.09);
  color: var(--paper);
}

.script-title-card .script-title::placeholder {
  color: rgba(255,255,255,.46);
}

.script-title-card .script-title:focus {
  border-color: var(--accent-orange);
  background: rgba(255,255,255,.12);
  box-shadow: 0 0 0 3px rgba(var(--accent-yellow-rgb), .16);
}

.script-title-card .title-ai-tools {
  border-top-color: rgba(255,255,255,.14);
}

.script-title-card .title-ai-tools > span {
  color: var(--accent-orange);
}

.script-title-card .title-ai-tools button {
  background: rgba(255,255,255,.11);
  color: var(--paper);
}

@media (max-width: 380px) {
  .stitch-schedule .week-strip { margin-inline: -14px; }
  .topics-page .filter-row { margin-inline: -14px; padding-inline: 14px; }
  .script-category-row { margin-inline: -14px; padding-inline: 14px; }
  .project-add-inline { padding-inline: 11px; }
  .script-editor-nav { gap: 5px; }
  .script-editor-nav > .script-back-button { padding-inline: 9px; }
  .script-editor-nav > div button { padding-inline: 5px; }
}

/* 2026-09-17 强调色语义与日程新增入口收口 */
.date-tools {
  position: relative;
  z-index: 12;
}

.schedule-add-control {
  position: relative;
  flex: 0 0 auto;
}

.schedule-add-control > .round-add {
  transition: transform 220ms var(--motion-curve), box-shadow 220ms var(--motion-curve);
}

.schedule-add-control > .round-add.open {
  transform: rotate(45deg);
  box-shadow: 0 4px 12px rgba(17,19,21,.12);
}

.schedule-add-menu {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  z-index: 50;
  width: 218px;
  display: grid;
  gap: 5px;
  padding: 7px;
  border: 1px solid rgba(17,19,21,.075);
  border-radius: 20px;
  background: rgba(255,255,255,.96);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 42px rgba(17,19,21,.16);
  transform-origin: 88% 0;
  animation: schedule-add-menu-in 220ms var(--motion-curve) both;
}

.schedule-add-menu > button {
  min-height: 58px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.schedule-add-menu > button + button {
  border-top: 1px solid var(--line);
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.schedule-add-menu > button:active { background: var(--soft); }
.schedule-add-menu span { display: grid; gap: 2px; }
.schedule-add-menu b { font-size: 13px; font-weight: 800; }
.schedule-add-menu small { color: var(--muted); font-size: 10px; }

.schedule-add-icon {
  position: relative;
  width: 32px;
  height: 32px;
  display: block;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--soft);
}

.schedule-add-icon.reminder::before {
  position: absolute;
  inset: 8px 7px 7px;
  border: 1.5px solid var(--ink);
  border-radius: 4px;
  content: "";
}

.schedule-add-icon.reminder::after {
  position: absolute;
  left: 8px;
  right: 8px;
  top: 12px;
  border-top: 1.5px solid var(--ink);
  content: "";
}

.schedule-add-icon.shooting::before {
  position: absolute;
  inset: 8px;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
  content: "";
}

.schedule-add-icon.shooting::after {
  position: absolute;
  width: 5px;
  height: 5px;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  background: var(--ink);
  content: "";
  transform: translate(-50%, -50%);
}

@keyframes schedule-add-menu-in {
  from { opacity: 0; transform: translateY(-8px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.stitch-schedule .spotlight-stack > .shoot-card,
.stitch-schedule .spotlight-stack > .shoot-card:not(.featured),
.stitch-schedule .spotlight-stack.stacked > .shoot-card:nth-child(n) {
  border: 0;
  background: #2d3031;
  color: var(--paper);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-tags span {
  background: rgba(255,255,255,.16);
  color: var(--paper);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-tags .shoot-tag-order {
  background: var(--accent-orange-soft);
  color: var(--accent-orange-deep);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-progress > span {
  background: rgba(255,255,255,.2);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) .shoot-progress > b {
  color: var(--accent-orange);
}

.stitch-schedule .spotlight-stack > .shoot-card:not(.featured) > small {
  color: rgba(255,255,255,.72);
}

.spotlight-stack.stacked::after {
  position: absolute;
  z-index: 40;
  top: 14px;
  right: 15px;
  min-width: 42px;
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: var(--paper);
  content: attr(data-stack-count);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.spotlight-stack.stacked > .shoot-card:first-child .shoot-tags { padding-right: 54px; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+2) > * { visibility: hidden; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+2) { box-shadow: 0 -1px 0 rgba(255,255,255,.22), 0 14px 24px rgba(17,19,21,.12); }
.spotlight-stack.stacked > .shoot-card:nth-child(2) { top: 22px; left: 8px; right: 8px; }
.spotlight-stack.stacked > .shoot-card:nth-child(3) { top: 42px; left: 16px; right: 16px; }
.spotlight-stack.stacked > .shoot-card:nth-child(4) { top: 62px; left: 24px; right: 24px; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+5) { top: 82px; left: 32px; right: 32px; }
.spotlight-stack.stacked > .shoot-card:nth-child(2):last-child { margin: 22px 8px 12px; }
.spotlight-stack.stacked > .shoot-card:nth-child(3):last-child { margin: 42px 16px 12px; }
.spotlight-stack.stacked > .shoot-card:nth-child(4):last-child { margin: 62px 24px 12px; }
.spotlight-stack.stacked > .shoot-card:nth-child(n+5):last-child { margin: 82px 32px 12px; }

.topic-quick-add button {
  background: var(--paper);
  color: var(--ink);
}

.topics-page .topic-card-foot span { color: rgba(255,255,255,.68); }
.topics-page .topic-card-foot em {
  color: var(--accent-orange);
  font-style: normal;
  font-weight: 800;
}

.topics-page .topic-card-foot b {
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--paper);
}

.project-list .project-card .shoot-progress > span { background: rgba(255,255,255,.2); }
.project-list .project-card .shoot-progress > span i { background: var(--accent-orange); }
.project-list .project-card .shoot-progress > b { color: var(--accent-orange); }

@media (prefers-reduced-motion: reduce) {
  .schedule-add-menu { animation-duration: 1ms; }
}
