:root {
  --ink: #151417;
  --muted: #766f80;
  --canvas: #f5f6f8;
  --surface: #ffffff;
  --line: rgba(35, 25, 47, 0.08);
  --lilac: #e2d2fe;
  --lilac-strong: #7764da;
  --blue: #bae5f4;
  --pink: #fccdcd;
  --mint: #caecdd;
  --peach: #ffe0bf;
  --yellow: #ffeaa7;
  --radius-lg: 30px;
  --radius-md: 22px;
  --shadow: 0 18px 55px rgba(34, 26, 46, 0.07);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
#immersive-translate-popup { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--canvas); }
button, input { font: inherit; }
button { color: inherit; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 18px 22px; background: rgba(255,255,255,.92); border-right: 1px solid var(--line); display: flex; flex-direction: column; z-index: 20; }
.brand { width: 100%; border: 0; background: transparent; display: flex; align-items: center; gap: 11px; padding: 0 8px 26px; text-align: left; cursor: pointer; }
.brand-mark { width: 45px; height: 45px; overflow: hidden; border-radius: 15px; background: var(--lilac); display: grid; place-items: center; }
.brand-mark img { width: 64px; height: 50px; object-fit: contain; object-position: 49% 48%; transform: scale(1.45); }
.brand strong { display: block; font-size: 16px; letter-spacing: -.02em; }
.brand small { display: block; margin-top: 3px; color: #9b93a5; font-weight: 700; font-size: 9px; letter-spacing: .13em; }
.side-nav { display: grid; gap: 7px; }
.nav-item { border: 0; background: transparent; color: #716a79; padding: 12px 14px; border-radius: 16px; text-align: left; font-size: 14px; font-weight: 650; display: flex; align-items: center; gap: 12px; cursor: pointer; transition: .2s ease; }
.nav-item span { width: 24px; height: 24px; border-radius: 9px; background: #f2eef6; display: grid; place-items: center; color: #4d4459; font-weight: 850; }
.nav-item:hover { background: #f7f3fb; color: var(--ink); transform: translateX(2px); }
.nav-item.active { background: var(--lilac); color: #422f5e; }
.nav-item.active span { background: rgba(255,255,255,.72); color: #7547b5; }
.sidebar-note { margin-top: auto; padding: 15px 14px; border: 1px solid var(--line); border-radius: 18px; display: flex; align-items: flex-start; gap: 10px; background: #fbfafc; }
.sidebar-note strong { display: block; font-size: 12px; }
.sidebar-note small { display: block; margin-top: 4px; font-size: 10px; color: var(--muted); line-height: 1.4; }
.status-dot { width: 9px; height: 9px; margin-top: 3px; border-radius: 50%; background: #45c98a; box-shadow: 0 0 0 5px rgba(69,201,138,.12); }

.main-content { padding: 0 34px 60px; min-width: 0; }
.topbar { height: 92px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.search-box { width: min(470px, 48vw); height: 46px; display: flex; align-items: center; gap: 10px; padding: 0 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; color: #92899b; box-shadow: 0 8px 25px rgba(40,30,50,.03); }
.search-box input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 13px; }
.search-box kbd { padding: 3px 7px; border-radius: 7px; background: #f1edf4; color: #918799; font-size: 9px; font-family: inherit; }
.top-actions { display: flex; align-items: center; gap: 18px; }
.today-label { text-align: right; }
.today-label strong, .today-label span { display: block; }
.today-label strong { font-size: 12px; }
.today-label span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.member-pill { border: 1px solid var(--line); background: white; border-radius: 17px; padding: 6px 10px 6px 7px; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.member-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 11px; background: var(--pink); font-weight: 800; }
.member-pill span:not(.member-avatar) { font-size: 12px; font-weight: 700; }
.member-pill b { color: #968d9d; font-size: 10px; }

.view { display: none; animation: fade-in .28s ease; }
.view.active { display: block; }
@keyframes fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.welcome-card { min-height: 330px; position: relative; overflow: hidden; border-radius: 34px; padding: 42px 46px 40px; background: var(--lilac); display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(330px, .84fr); align-items: center; box-shadow: var(--shadow); }
.welcome-card::before { content: ""; position: absolute; width: 360px; height: 360px; background: var(--blue); border-radius: 44% 56% 64% 36% / 48% 38% 62% 52%; right: -95px; top: -120px; transform: rotate(13deg); }
.welcome-copy { position: relative; z-index: 3; max-width: 620px; }
.hero-index { display: block; margin-bottom: 19px; color: rgba(21,20,23,.55); font-size: 9px; font-weight: 850; letter-spacing: .17em; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; padding: 7px 12px; background: rgba(255,255,255,.72); border-radius: 99px; font-size: 11px; font-weight: 750; color: #524c59; }
.eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: #ff7868; box-shadow: 0 0 0 4px rgba(255,120,104,.13); }
.welcome-card h1 { margin: 20px 0 13px; font-size: clamp(40px, 4vw, 64px); line-height: 1.02; letter-spacing: -.055em; text-wrap: balance; }
.welcome-card p { max-width: 520px; margin: 0; font-size: 16px; line-height: 1.7; color: #5e5269; text-wrap: pretty; }
.welcome-actions { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.primary-button, .soft-button { border: 0; border-radius: 15px; padding: 12px 17px; font-size: 12px; font-weight: 780; cursor: pointer; transition: .2s ease; }
.primary-button { background: #251b30; color: white; box-shadow: 0 10px 25px rgba(30,20,40,.16); }
.primary-button:hover { transform: translateY(-2px); box-shadow: 0 14px 29px rgba(30,20,40,.2); }
.primary-button span { margin-left: 8px; }
.soft-button { background: rgba(255,255,255,.65); color: #493b56; }
.soft-button:hover { background: white; }
.mascot-stage { position: relative; height: 280px; display: grid; place-items: center; z-index: 2; }
.mascot-stage img { position: relative; z-index: 2; width: min(430px, 34vw); max-height: 315px; object-fit: contain; animation: mascot-float 4.5s ease-in-out infinite; }
@keyframes mascot-float { 0%,100% { transform: translateY(2px) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(1deg); } }
.mascot-halo { position: absolute; width: 275px; height: 230px; border-radius: 48% 52% 59% 41% / 46% 43% 57% 54%; background: rgba(255,255,255,.54); transform: rotate(8deg); }

.section-block { margin-top: 34px; }
.section-heading, .panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.section-heading { margin-bottom: 15px; }
.section-heading h2, .panel-heading h2 { margin: 3px 0 0; font-size: 21px; letter-spacing: -.035em; }
.section-kicker { color: #a096a8; font-size: 9px; letter-spacing: .16em; font-weight: 850; }
.text-button, .icon-button { border: 0; background: transparent; color: #675c70; font-size: 11px; font-weight: 750; cursor: pointer; }
.text-button span { margin-left: 5px; }
.attention-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.attention-card { min-width: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 22px; padding: 18px; display: grid; grid-template-columns: 42px minmax(0,1fr) 30px; gap: 12px; align-items: center; box-shadow: 0 12px 30px rgba(49,36,60,.04); }
.attention-card button { width: 30px; height: 30px; border: 0; border-radius: 50%; background: rgba(255,255,255,.72); cursor: pointer; }
.attention-card small, .attention-card strong, .attention-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attention-card small { color: rgba(37,27,48,.62); font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.attention-card strong { margin-top: 4px; font-size: 13px; }
.attention-card span { margin-top: 5px; color: rgba(37,27,48,.62); font-size: 10px; }
.attention-icon { width: 42px; height: 42px; border-radius: 14px; background: rgba(255,255,255,.66); display: grid; place-items: center; font-weight: 900; font-size: 17px; }
.finance-attention { background: var(--yellow); }
.health-attention { background: var(--pink); }
.document-attention { background: var(--blue); }

.overview-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 30px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 25px; box-shadow: 0 12px 40px rgba(45,32,58,.045); }
.live-badge { display: inline-flex; align-items: center; gap: 7px; padding: 7px 9px; background: #edf9f3; border-radius: 99px; color: #347956; font-size: 9px; font-weight: 800; }
.live-badge i { width: 6px; height: 6px; border-radius: 50%; background: #46c88a; }
.metric-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 20px; }
.metric { border-radius: 20px; padding: 18px; min-height: 120px; }
.metric span, .metric small, .metric strong { display: block; }
.metric span { font-size: 10px; font-weight: 750; color: #675e70; }
.metric strong { margin-top: 14px; font-size: clamp(25px, 2.5vw, 38px); letter-spacing: -.05em; }
.metric small { margin-top: 6px; color: #776f7c; font-size: 9px; }
.metric-lilac { background: var(--lilac); }
.metric-blue { background: var(--blue); }
.metric-pink { background: var(--pink); }
.source-summary { margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.source-copy strong, .source-copy span { display: block; }
.source-copy strong { font-size: 12px; }
.source-copy span { margin-top: 5px; color: var(--muted); font-size: 10px; }
.source-dots { display: flex; align-items: center; }
.source-dot { width: 31px; height: 31px; margin-left: -7px; border: 3px solid white; border-radius: 50%; display: grid; place-items: center; font-size: 9px; font-weight: 900; }
.source-dot:first-child { margin-left: 0; }
.work-panel { background: #fffdf8; }
.icon-button { width: 35px; height: 35px; border-radius: 12px; background: #f2edf7; font-size: 15px; }
.progress-card { margin-top: 20px; padding: 17px; border-radius: 19px; background: var(--lilac); }
.progress-top { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; font-weight: 750; }
.progress-top strong { color: #7246ab; }
.progress-track { height: 6px; margin: 15px 0 9px; background: rgba(255,255,255,.65); border-radius: 99px; overflow: hidden; }
.progress-track i { display: block; height: 100%; background: #8b5bc7; border-radius: inherit; }
.progress-card small { color: #6c5a79; font-size: 9px; }
.mini-task-list { list-style: none; margin: 17px 0 0; padding: 0; display: grid; gap: 11px; }
.mini-task-list li { display: flex; gap: 10px; align-items: center; }
.mini-task-list li > span { width: 25px; height: 25px; border-radius: 9px; display: grid; place-items: center; background: #f1edf3; font-weight: 850; }
.mini-task-list .done > span { background: var(--mint); color: #287050; }
.mini-task-list strong, .mini-task-list small { display: block; }
.mini-task-list strong { font-size: 11px; }
.mini-task-list small { margin-top: 3px; color: var(--muted); font-size: 9px; }

.module-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 18px; }
.module-card { position: relative; overflow: hidden; min-height: 175px; border: 0; border-radius: 26px; padding: 22px; text-align: left; cursor: pointer; transition: .22s ease; }
.module-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.module-card small, .module-card strong, .module-card em, .module-card b { position: relative; z-index: 2; display: block; }
.module-card small { color: rgba(29,23,38,.58); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.module-card strong { margin-top: 12px; max-width: 72%; font-size: 18px; line-height: 1.22; letter-spacing: -.03em; }
.module-card em { margin-top: 8px; color: rgba(29,23,38,.6); font-size: 10px; font-style: normal; }
.module-card b { margin-top: 21px; font-size: 10px; }
.module-face { position: absolute; right: 17px; top: 17px; width: 55px; height: 55px; border-radius: 48% 52% 60% 40%; background: rgba(255,255,255,.65); display: grid; place-items: center; font-size: 14px; font-weight: 850; transform: rotate(6deg); }
.module-health { background: var(--pink); }
.module-documents { background: var(--blue); }
.module-inbox { background: var(--mint); }

.page-intro { min-height: 190px; padding: 34px 36px; border-radius: 30px; display: flex; align-items: center; justify-content: space-between; overflow: hidden; }
.page-intro h1 { margin: 8px 0 8px; font-size: 40px; letter-spacing: -.055em; }
.page-intro p { margin: 0; color: #655c6d; font-size: 13px; }
.page-finance { background: var(--yellow); }
.page-health { background: var(--pink); }
.page-documents { background: var(--blue); }
.page-work { background: var(--lilac); }
.page-inbox { background: var(--mint); }
.page-emoji { width: 95px; height: 95px; margin-right: 20px; border-radius: 46% 54% 55% 45%; background: rgba(255,255,255,.65); display: grid; place-items: center; font-size: 38px; font-weight: 900; transform: rotate(7deg); }
.detail-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; margin-top: 20px; }
.bill-large { display: block; margin-top: 30px; font-size: 45px; letter-spacing: -.055em; }
.bill-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.bill-meta span { padding: 13px; border-radius: 15px; background: #f7f4f9; color: var(--muted); font-size: 10px; }
.bill-meta b { display: block; margin-top: 4px; color: var(--ink); font-size: 12px; }
.source-bars { display: grid; gap: 13px; margin-top: 20px; }
.source-bar-row { display: grid; grid-template-columns: 105px minmax(80px,1fr) 55px; align-items: center; gap: 10px; font-size: 10px; }
.source-bar-row strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.source-bar-row span { height: 8px; border-radius: 99px; background: #eeeaf1; overflow: hidden; }
.source-bar-row i { display: block; height: 100%; border-radius: inherit; background: var(--lilac-strong); }
.source-bar-row small { color: var(--muted); text-align: right; }
.bills-panel { margin-top: 18px; }
.muted-note { color: var(--muted); font-size: 10px; }
.bill-list { display: grid; gap: 10px; margin-top: 20px; }
.bill-item { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 16px; color: inherit; text-decoration: none; transition: .2s ease; }
.bill-item:hover { border-color: #bc9be6; transform: translateX(3px); }
.bill-item > span { width: 42px; height: 42px; border-radius: 13px; background: var(--pink); display: grid; place-items: center; font-weight: 900; }
.bill-item strong, .bill-item small { display: block; }
.bill-item strong { font-size: 12px; }
.bill-item small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.bill-item b { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #f1edf4; }
.repayment-panel { margin-top: 18px; }
.repayment-heading { align-items: flex-start; }
.repayment-heading p { max-width: 620px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.repayment-sms-source { margin-top: 18px; padding: 14px; border-radius: 20px; background: #eef7f4; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; }
.repayment-sms-source .mobile-host-badge { min-width: 150px; padding: 10px 12px; border-radius: 15px; }
.repayment-sms-source .mobile-host-badge span { font-size: 10px; }
.repayment-sms-source .mobile-host-badge strong { font-size: 14px; }
.repayment-sms-copy span, .repayment-sms-copy strong, .repayment-sms-copy small { display: block; }
.repayment-sms-copy span { color: #71817c; font-size: 10px; font-weight: 850; }
.repayment-sms-copy strong { margin-top: 4px; font-size: 13px; }
.repayment-sms-copy small { margin-top: 4px; color: #7c8985; font-size: 10px; }
.repayment-sms-chip { padding: 5px 8px; border: 0; border-radius: 8px; background: #def1eb !important; color: #397461 !important; font: inherit; font-size: 10px; font-weight: 850; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.repayment-summary { margin: 20px 0 16px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.repayment-summary > div { min-height: 76px; padding: 13px 14px; border-radius: 17px; background: #f5f1f7; }
.repayment-summary .overdue { background: #ffe3de; }
.repayment-summary .upcoming { background: #fff0c7; }
.repayment-summary .payment-seen { background: #dff2e8; }
.repayment-summary .needs-data { background: #e7edf8; }
.repayment-summary .pending { background: #eee5fb; }
.repayment-summary span,
.repayment-summary strong { display: block; }
.repayment-summary span { color: #736978; font-size: 10px; font-weight: 850; }
.repayment-summary strong { margin-top: 7px; font-size: 25px; line-height: 1; }
.repayment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.repayment-item { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: #fbfafc; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; }
.repayment-item.overdue { border-color: rgba(203,75,61,.18); background: #fff8f6; }
.repayment-item.important_due { border: 2px solid #c68524; background: #fff8e9; }
.repayment-item.important_due .repayment-mark { background: #f9dfae; color: #8a4c0e; }
.repayment-item.upcoming { border-color: rgba(188,145,27,.18); background: #fffdf7; }
.repayment-item.payment_seen { border-color: rgba(47,139,99,.16); background: #f7fcf9; }
.repayment-item.needs_data { border-color: rgba(79,106,153,.15); background: #f8faff; }
.repayment-item.pending { border-color: rgba(126,89,172,.16); background: #fbf8ff; }
.repayment-mark { width: 34px; height: 34px; border-radius: 12px; background: #efeaf2; display: grid; place-items: center; font-size: 13px; font-weight: 900; }
.repayment-item.overdue .repayment-mark { background: #ffdcd6; color: #aa4438; }
.repayment-item.upcoming .repayment-mark { background: #ffedbb; color: #8a6814; }
.repayment-item.payment_seen .repayment-mark { background: #d9efe3; color: #2f7c5c; }
.repayment-item.needs_data .repayment-mark { background: #e1e9f6; color: #506e9e; }
.repayment-item.pending .repayment-mark { background: #eadcf9; color: #75539e; }
.repayment-body { min-width: 0; }
.repayment-item-head { display: flex; flex-wrap:wrap; align-items: flex-start; gap: 9px; }
.repayment-item-head strong { min-width: 0; font-size: 13px; line-height: 1.45; }
.repayment-status { flex: 0 0 auto; white-space:nowrap; padding: 6px 8px; border-radius: 9px; background: white; color: #736978; font-size: 12px; line-height: 1.5; font-weight: 850; }
.repayment-item.overdue .repayment-status { background: #ffdcd6; color: #a63329; }
.repayment-item.upcoming .repayment-status { background: #ffedbb; color: #76570c; }
.repayment-item.payment_seen .repayment-status { background: #d9efe3; color: #246c4e; }
.repayment-item.needs_data .repayment-status { background: #e1e9f6; color: #425f90; }
.repayment-item.pending .repayment-status { background: #eadcf9; color: #68458f; }
.repayment-amount { display: block; margin-top: 10px; font-size: 21px; letter-spacing: -.025em; }
.repayment-facts { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 6px; }
.repayment-facts span { padding: 5px 7px; border-radius: 8px; background: white; color: #665d6c; font-size: 9px; font-weight: 750; }
.repayment-body p { margin: 10px 0 0; color: #675f6d; font-size: 14px; line-height: 1.6; }
.repayment-body small { display: block; margin-top: 8px; color: #807584; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.repayment-evidence-summary { width: 100%; margin: 10px 0 0; padding: 0; border: 0; background: transparent; color: #675f6d; font: inherit; font-size: 14px; line-height: 1.6; text-align: left; text-decoration: underline; text-decoration-color: #c0a9cf; text-underline-offset: 3px; cursor: pointer; }
.repayment-source-button { display: block; margin-top: 8px; padding: 0; border: 0; background: transparent; color: #6f5d78; font: inherit; font-size: 12px; line-height: 1.5; text-align: left; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; overflow-wrap: anywhere; }
.repayment-actions { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 7px; }
.repayment-action-button { min-height: 34px; padding: 8px 12px; border: 0; border-radius: 11px; font: inherit; font-size: 10px; font-weight: 850; cursor: pointer; transition: transform .16s ease, opacity .16s ease; }
.repayment-action-button:hover { transform: translateY(-1px); }
.repayment-action-button:disabled { cursor: wait; opacity: .55; transform: none; }
.repayment-action-button.paid { background: #2d2532; color: white; }
.repayment-action-button.pending { background: #eadcf9; color: #68488d; }
.repayment-action-button.archive { background: #eeebf0; color: #746a78; }
.repayment-action-button.undo { background: white; color: #62566a; box-shadow: inset 0 0 0 1px #ddd5e1; }
.repayment-statement-button { min-height: 38px; padding: 8px 13px; border: 1px solid #cbb9df; border-radius: 11px; background: white; color: #67468a; font: inherit; font-size: 12px; font-weight: 850; cursor: pointer; }
.repayment-statement-button:hover { background: #f5effc; }
.repayment-processed { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.repayment-processed-heading { margin-bottom: 12px; display: flex; justify-content: space-between; align-items: end; }
.repayment-processed-heading h3 { margin: 3px 0 0; font-size: 18px; }
.repayment-processed-heading > span { color: var(--muted); font-size: 10px; font-weight: 800; }
.repayment-processed-list .repayment-item { background: #f7f5f8; opacity: .88; }
.repayment-processed-list .repayment-status { color: #4e8b70; }
.repayment-empty { grid-column: 1 / -1; padding: 34px; border-radius: 18px; background: #f8f6f9; color: var(--muted); font-size: 12px; text-align: center; }
.repayment-footnote { margin: 14px 0 0; color: #8b818f; font-size: 10px; line-height: 1.55; }
.empty-state { margin-top: 20px; min-height: 380px; padding: 52px 25px; border: 1px solid var(--line); border-radius: 30px; background: white; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.empty-character { width: 94px; height: 94px; border-radius: 45% 55% 58% 42%; background: var(--pink); display: grid; place-items: center; font-size: 28px; font-weight: 900; transform: rotate(-5deg); }
.empty-state h2 { margin: 24px 0 8px; font-size: 25px; }
.empty-state p { max-width: 510px; margin: 0 0 22px; color: var(--muted); line-height: 1.7; font-size: 12px; }
.document-categories { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 20px; }
.integrated-mobile-section { margin-top: 20px; }
.integrated-mobile-section .panel-heading { align-items: flex-start; }
.integrated-mobile-section .panel-heading p { max-width: 650px; margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.source-state { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: #e5f2ed; color: #39725f; font-size: 10px; font-weight: 850; }
.integrated-source-meta { margin: 14px 0 10px; display: flex; gap: 8px; align-items: baseline; color: #7a707e; font-size: 11px; }
.integrated-source-meta strong { color: #403944; }
.compact-list .mobile-item-card { box-shadow: none; }
.document-categories article { min-height: 170px; padding: 22px; border: 1px solid var(--line); border-radius: 24px; background: white; display: flex; flex-direction: column; align-items: flex-start; }
.document-categories article > span { font-size: 28px; }
.document-categories strong, .document-categories small { display: block; }
.document-categories strong { margin-top: 18px; font-size: 14px; }
.document-categories small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.document-categories b { margin-top: auto; padding: 6px 9px; border-radius: 9px; background: #f3eff6; color: #8a7c92; font-size: 9px; }
.work-board { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; }
.work-column { min-height: 350px; padding: 20px; border: 1px solid var(--line); border-radius: 25px; background: white; }
.work-column > span { color: var(--muted); font-size: 10px; font-weight: 750; }
.work-column.muted { background: #f5f2f7; }
.work-ticket { margin-top: 15px; padding: 17px; border-radius: 18px; background: var(--lilac); }
.work-column.muted .work-ticket { background: white; }
.work-ticket b, .work-ticket strong, .work-ticket small { display: block; }
.work-ticket b { color: #7952a9; font-size: 9px; }
.work-ticket strong { margin-top: 8px; font-size: 13px; }
.work-ticket small { margin-top: 12px; color: var(--muted); font-size: 9px; }
.inbox-list { display: grid; gap: 12px; margin-top: 20px; }
.inbox-list article { padding: 17px; border: 1px solid var(--line); border-radius: 20px; background: white; display: grid; grid-template-columns: 62px 1fr auto; gap: 15px; align-items: center; }
.inbox-status { padding: 7px 8px; border-radius: 9px; text-align: center; font-size: 9px; font-weight: 800; }
.inbox-status.done { background: var(--mint); color: #2d6f52; }
.inbox-status.live { background: var(--lilac); color: #684496; }
.inbox-list strong, .inbox-list small { display: block; }
.inbox-list strong { font-size: 12px; }
.inbox-list small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.inbox-list button { border: 0; border-radius: 11px; padding: 8px 12px; background: #f1edf4; font-size: 10px; font-weight: 750; cursor: pointer; }
.mobile-nav { display: none; }
.toast { position: fixed; left: 50%; bottom: 25px; z-index: 50; max-width: min(92vw, 620px); transform: translate(-50%, 20px); padding: 12px 14px 12px 16px; border-radius: 13px; background: #241a2e; color: white; box-shadow: var(--shadow); font-size: 11px; opacity: 0; pointer-events: none; transition: .25s ease; display: flex; align-items: center; gap: 14px; }
.toast.show { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.toast-action { flex: 0 0 auto; min-height: 34px; padding: 0 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 10px; background: rgba(255,255,255,.12); color: white; font: inherit; font-weight: 800; cursor: pointer; }
.toast-action:hover { background: rgba(255,255,255,.22); }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 216px minmax(0,1fr); }
  .sidebar { padding-inline: 14px; }
  .brand { justify-content: center; padding-inline: 0; }
  .nav-item { justify-content: flex-start; padding: 11px; white-space:nowrap; }
  .nav-item span { margin: 0; font-size: 13px; }
  .sidebar-note { justify-content: center; padding: 14px; }
  .sidebar-note div { display: none; }
  .overview-grid { grid-template-columns: 1fr; }
  .attention-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  body { padding-bottom: 76px; }
  .app-shell { display: block; }
  .sidebar { display: none; }
  .main-content { padding: 0 16px 30px; }
  .topbar { height: 75px; }
  .search-box { width: 100%; height: 42px; }
  .search-box kbd, .today-label { display: none; }
  .member-pill { padding: 5px; }
  .member-pill span:not(.member-avatar), .member-pill b { display: none; }
  .member-avatar { width: 30px; height: 30px; }
  .welcome-card { min-height: 430px; padding: 30px 25px 22px; grid-template-columns: 1fr; align-items: start; }
  .welcome-card h1 { font-size: 41px; margin-top: 16px; }
  .welcome-card p { font-size: 13px; line-height: 1.6; }
  .mascot-stage { position: absolute; right: 0; bottom: -5px; width: 210px; height: 210px; }
  .mascot-stage img { width: 255px; max-width: none; }
  .mascot-halo { width: 185px; height: 185px; }
  .float-chip { display: none; }
  .welcome-actions { position: relative; z-index: 5; width: 57%; margin-top: 23px; }
  .primary-button, .soft-button { width: 100%; }
  .welcome-actions .soft-button { background: #fff; }
  .section-block { margin-top: 27px; }
  .attention-grid { grid-template-columns: 1fr; }
  .overview-grid, .module-grid, .detail-grid, .document-categories, .work-board { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; }
  .metric { padding: 13px 10px; min-height: 105px; }
  .metric strong { font-size: 22px; }
  .source-summary { align-items: flex-start; }
  .module-card { min-height: 155px; }
  .page-intro { min-height: 170px; padding: 27px 24px; }
  .page-intro h1 { font-size: 33px; }
  .page-emoji { width: 64px; height: 64px; margin-right: 0; font-size: 28px; }
  .source-bar-row { grid-template-columns: 90px 1fr 45px; }
  .repayment-summary { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; }
  .repayment-list { grid-template-columns: 1fr; }
  .repayment-item { padding: 14px 13px; }
  .repayment-heading { gap: 10px; }
  .repayment-heading p { max-width: 210px; }
  .repayment-sms-source { grid-template-columns: 1fr; align-items: stretch; }
  .repayment-sms-source .mobile-host-badge { justify-self: stretch; }
  .repayment-sms-source .soft-button { width: 100%; }
  .mobile-nav { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: 10px; display: grid; grid-template-columns: repeat(5,1fr); padding: 8px 7px calc(8px + env(safe-area-inset-bottom)); border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: 0 15px 50px rgba(28,20,38,.16); backdrop-filter: blur(16px); }
  .mobile-nav button { border: 0; background: transparent; color: #8c8393; display: grid; place-items: center; gap: 3px; font-size: 9px; font-weight: 700; }
  .mobile-nav button span { width: 29px; height: 27px; border-radius: 9px; display: grid; place-items: center; font-size: 13px; }
  .mobile-nav button.active { color: #694598; }
  .mobile-nav button.active span { background: var(--lilac); }
}

/* Fixed private entrance and passkey setup. */
.login-body { min-height: 100vh; padding: 0; background: #f6f4f8; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr); }
.login-visual { position: relative; min-height: 100vh; padding: 48px clamp(34px, 6vw, 90px); overflow: hidden; background: #e5d7ff; display: flex; flex-direction: column; }
.login-brand { position: relative; z-index: 2; display: flex; align-items: center; gap: 14px; }
.login-brand .brand-mark { width: 62px; height: 62px; }
.login-brand strong, .login-brand small { display: block; }
.login-brand strong { font-size: 22px; }
.login-brand small { margin-top: 4px; color: #8a7e96; font-size: 14px; font-weight: 800; letter-spacing: .15em; }
.login-visual-copy { position: relative; z-index: 2; max-width: 620px; margin: auto 0; padding-bottom: 120px; }
.login-kicker { display: inline-flex; align-items: center; gap: 9px; color: #6f5a85; font-size: 15px; font-weight: 850; letter-spacing: .08em; }
.login-kicker i { width: 9px; height: 9px; border-radius: 50%; background: #43c892; box-shadow: 0 0 0 6px rgba(67,200,146,.14); }
.login-visual h1 { margin: 24px 0 18px; font-size: clamp(52px, 6vw, 86px); line-height: 1.03; letter-spacing: -.07em; }
.login-visual p { max-width: 510px; margin: 0; color: #675f6e; font-size: 19px; line-height: 1.7; }
.login-mascot { position: absolute; right: -55px; bottom: -45px; width: min(45vw, 520px); opacity: .96; }
.login-mascot img { width: 100%; height: auto; }
.login-card { width: min(520px, calc(100% - 48px)); margin: auto; padding: 46px; border: 1px solid var(--line); border-radius: 34px; background: white; box-shadow: 0 25px 80px rgba(35,26,43,.10); }
.login-card h2 { margin: 10px 0 8px; font-size: 36px; letter-spacing: -.05em; }
.login-helper { margin: 0 0 27px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.passkey-login-button { width: 100%; min-height: 78px; padding: 13px 17px; border: 0; border-radius: 20px; background: #e7dcff; display: flex; align-items: center; gap: 14px; text-align: left; cursor: pointer; }
.passkey-login-button:disabled { cursor: wait; opacity: .65; }
.face-id-symbol { width: 47px; height: 47px; flex: 0 0 auto; border-radius: 16px; background: white; color: #60428d; display: grid; place-items: center; font-size: 28px; font-weight: 900; }
.passkey-login-button strong, .passkey-login-button small { display: block; }
.passkey-login-button strong { font-size: 17px; }
.passkey-login-button small { margin-top: 4px; color: #746781; font-size: 13px; }
.primary-passkey { margin-top: 8px; }
.login-divider { position: relative; margin: 25px 0; text-align: center; color: #9a919f; font-size: 12px; }
.login-divider::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--line); }
.login-divider span { position: relative; padding: 0 12px; background: white; }
.password-field { display: block; }
.password-field > span { display: block; margin-bottom: 9px; color: #62596a; font-size: 14px; font-weight: 800; }
.password-field input { width: 100%; height: 58px; padding: 0 17px; border: 1px solid #dcd5e1; border-radius: 16px; background: #faf9fb; color: var(--ink); font: inherit; font-size: 18px; }
.password-field input:focus-visible { outline: none; border-color: #8b68ba; box-shadow: 0 0 0 4px rgba(139,104,186,.15); }
.login-submit { width: 100%; height: 58px; margin-top: 14px; padding: 0 18px; border: 0; border-radius: 16px; background: #2f2835; color: white; display: flex; align-items: center; justify-content: space-between; font: inherit; font-size: 16px; font-weight: 850; cursor: pointer; }
.login-submit:disabled { cursor: wait; opacity: .7; }
.login-message { min-height: 22px; margin: 13px 0 0; color: #a23f35; font-size: 14px; line-height: 1.5; }
.login-message.success { color: #287052; }
.login-footnote { margin-top: 27px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; align-items: flex-start; gap: 10px; }
.login-footnote span { padding: 5px 8px; border-radius: 8px; background: var(--mint); color: #297153; font-size: 11px; font-weight: 900; }
.login-footnote p { margin: 1px 0 0; color: #817788; font-size: 13px; line-height: 1.5; }
.setup-check { width: 54px; height: 54px; margin-bottom: 20px; border-radius: 18px; background: var(--mint); color: #287052; display: grid; place-items: center; font-size: 25px; font-weight: 900; }
.login-skip { width: 100%; min-height: 48px; margin-top: 12px; border: 0; background: transparent; color: #6f6576; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.security-dialog { width: min(470px, calc(100% - 28px)); padding: 0; border: 0; border-radius: 28px; background: transparent; }
.security-dialog::backdrop { background: rgba(25,19,30,.42); backdrop-filter: blur(6px); }
.security-dialog-card { position: relative; padding: 34px; border-radius: 28px; background: white; box-shadow: var(--shadow); }
.security-dialog-card h2 { margin: 8px 0; font-size: 28px; }
.security-dialog-card > p { margin: 0 0 22px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.security-dialog-close { position: absolute; top: 17px; right: 17px; width: 36px; height: 36px; border: 0; border-radius: 12px; background: #f2eef4; color: #615768; font-size: 22px; cursor: pointer; }
.passkey-setting-button, .logout-button { width: 100%; min-height: 52px; border-radius: 15px; font: inherit; font-size: 15px; font-weight: 820; cursor: pointer; }
.passkey-setting-button { border: 0; background: var(--lilac); color: #50396e; display: flex; align-items: center; justify-content: center; gap: 10px; }
.passkey-setting-button span { font-size: 23px; }
.logout-button { margin-top: 10px; border: 1px solid var(--line); background: white; color: #756b7c; }
.security-dialog-card small { min-height: 20px; margin-top: 12px; color: #287052; display: block; text-align: center; font-size: 13px; }

@media (max-width: 820px) {
  .login-shell { min-height: 100svh; grid-template-columns: 1fr; background: #e5d7ff; }
  .login-visual { min-height: 285px; padding: 26px 24px 34px; }
  .login-brand .brand-mark { width: 48px; height: 48px; }
  .login-brand strong { font-size: 18px; }
  .login-brand small { font-size: 11px; }
  .login-visual-copy { margin: 42px 0 0; padding: 0; }
  .login-kicker { font-size: 12px; }
  .login-visual h1 { margin: 15px 0 11px; font-size: 43px; }
  .login-visual p { max-width: 285px; font-size: 15px; line-height: 1.55; }
  .login-mascot { right: -44px; bottom: -18px; width: 230px; }
  .login-card { width: calc(100% - 24px); margin: -18px auto 22px; padding: 29px 23px 25px; border-radius: 28px; box-shadow: 0 18px 55px rgba(35,26,43,.13); }
  .login-card h2 { font-size: 30px; }
  .login-helper { font-size: 15px; }
  .password-field input, .login-submit { height: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Readability pass v3: raise the complete interface hierarchy by one visual step. */
.brand small,
.search-box kbd,
.hero-index,
.section-kicker,
.attention-card small,
.live-badge,
.metric small,
.source-dot,
.progress-card small,
.mini-task-list small,
.module-card small,
.bill-item small,
.document-categories b,
.work-ticket b,
.work-ticket small,
.inbox-status { font-size: 14px; }

.sidebar-note small,
.member-pill b,
.attention-card span,
.metric span,
.source-copy span,
.module-card em,
.module-card b,
.bill-meta span,
.source-bar-row,
.muted-note,
.document-categories small,
.work-column > span,
.inbox-list small,
.inbox-list button { font-size: 16px; }

.today-label span,
.eyebrow,
.text-button,
.progress-top,
.mini-task-list strong,
.toast { font-size: 17px; }

.sidebar-note strong,
.primary-button,
.soft-button,
.source-copy strong,
.bill-meta b,
.bill-item strong,
.empty-state p,
.inbox-list strong { font-size: 18px; }

.search-box input,
.attention-card strong,
.page-intro p,
.work-ticket strong { font-size: 19px; }

.nav-item,
.member-pill span:not(.member-avatar),
.document-categories strong { font-size: 19px; }

.welcome-card h1 { font-size: clamp(43px, 4.3vw, 68px); }
.welcome-card p { font-size: 19px; }
.section-heading h2,
.panel-heading h2 { font-size: 24px; }
.metric strong { font-size: clamp(28px, 2.7vw, 41px); }
.module-card strong { font-size: 20px; }
.page-intro h1 { font-size: 44px; }
.bill-large { font-size: 49px; }
.empty-state h2 { font-size: 28px; }

@media (max-width: 720px) {
  body { padding-bottom: 90px; }
  .topbar { gap: 10px; }
  .search-box { width: auto; min-width: 0; flex: 1 1 auto; }
  .top-actions { flex: 0 0 auto; gap: 0; }
  .welcome-card { min-height: 455px; }
  .welcome-card h1 { font-size: 42px; }
  .welcome-card p { font-size: 19px; line-height: 1.62; }
  .welcome-actions { width: 62%; }
  .primary-button,
  .soft-button { white-space: nowrap; }
  .metric { min-height: 115px; }
  .metric strong { font-size: 25px; }
  .page-intro h1 { font-size: 36px; }
  .mobile-nav button { font-size: 14px; }
  .mobile-nav button span { width: 34px; height: 32px; font-size: 19px; }
}

/* Daily receipt dashboard: original Life Desk surfaces with a narrative timeline. */
.attention-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.task-attention { background: var(--mint); }
.task-mini-alert { background: #ffe2dc !important; color: #a13b2f; }
.mini-task-list li > div { min-width: 0; }
.mini-task-list li strong,
.mini-task-list li small { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; }
.mini-task-list li strong { -webkit-line-clamp: 2; line-height: 1.35; }
.mini-task-list li small { -webkit-line-clamp: 1; }

.task-page-intro { position: relative; }
.task-page-intro > div:first-child { max-width: 650px; }
.task-intro-mark { width: 122px; height: 122px; margin-right: 14px; border-radius: 42% 58% 58% 42% / 48% 43% 57% 52%; background: rgba(255,255,255,.68); display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(4deg); }
.task-intro-mark span { color: #6f5b82; font-size: 13px; font-weight: 780; }
.task-intro-mark strong { margin-top: 7px; font-size: 23px; letter-spacing: -.04em; }

.task-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.task-stat { min-height: 145px; padding: 20px; border: 0; border-radius: 24px; text-align: left; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.task-stat:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.task-stat:active { transform: translateY(0) scale(.985); }
.task-stat:focus-visible,
.task-section-heading:focus-visible,
.task-refresh:focus-visible { outline: 3px solid rgba(121,77,176,.28); outline-offset: 3px; }
.task-stat span,
.task-stat strong,
.task-stat small { display: block; }
.task-stat span { color: #5f5766; font-size: 16px; font-weight: 780; }
.task-stat strong { margin-top: 16px; font-size: 42px; line-height: 1; letter-spacing: -.055em; }
.task-stat small { margin-top: 9px; color: #756c7b; font-size: 14px; }
.stat-danger { background: #ffe0dc; }
.stat-success { background: var(--mint); }
.stat-standby { background: var(--blue); }
.stat-warning { background: var(--yellow); }

.task-toolbar { margin: 25px 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.task-toolbar > div { display: flex; align-items: center; gap: 12px; min-width: 0; }
.task-toolbar small { color: var(--muted); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.task-refresh { width: auto; min-width: 136px; background: white; border: 1px solid var(--line); }
.task-refresh span { display: inline-block; margin-right: 6px; }
.task-refresh.loading span { animation: task-spin .8s linear infinite; }
.task-refresh:disabled { cursor: wait; opacity: .65; }

.task-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .58fr); gap: 18px; align-items: start; }
.task-sections { display: grid; gap: 17px; }
.task-section { scroll-margin-top: 20px; padding: 0; overflow: hidden; }
.task-section-heading { width: 100%; min-height: 88px; padding: 22px 24px 18px; border: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.task-section-heading h2 { margin: 4px 0 0; font-size: 24px; letter-spacing: -.04em; }
.task-section-index { color: #8e8496; font-size: 12px; font-weight: 850; letter-spacing: .14em; }
.task-section-heading-actions { display: flex; align-items: center; gap: 9px; }
.task-section-count { min-width: 56px; padding: 8px 11px; border-radius: 99px; background: rgba(255,255,255,.72); text-align: center; color: #655b6d; font-size: 14px; font-weight: 780; }
.task-section-chevron { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.72); display: grid; place-items: center; color: #6f6477; font-size: 18px; transition: transform .2s ease; }
.task-section.collapsed .task-section-chevron { transform: rotate(-90deg); }
.task-section.collapsed .task-item-list { display: none; }
.task-section-action .task-section-heading { background: #ffe6e1; }
.task-section-repayment .task-section-heading { background: #e7dcff; }
.task-section-security .task-section-heading { background: #dff3fa; }
.task-section-notification .task-section-heading { background: #e7f4ed; }
.task-section-later .task-section-heading { background: #fff0c2; }
.task-section-handled .task-section-heading { background: #efebf2; }
.task-section-archived .task-section-heading { background: #e8e5e9; }
.task-section-completed .task-section-heading { background: #ddf3e8; }
.task-section-standby .task-section-heading { background: #dff3fa; }
.task-section-issues .task-section-heading { background: #fff0c2; }

.task-item-list { padding: 4px 24px 12px; }
.task-item { min-width: 0; padding: 17px 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 13px; border-top: 1px solid var(--line); }
.task-item { transition: opacity .19s ease, transform .19s ease; }
.task-item-resolved { opacity: 0; transform: translateX(16px); }
.task-item:first-child { border-top: 0; }
.task-status { width: 30px; height: 30px; margin-top: 1px; border-radius: 11px; display: grid; place-items: center; font-size: 15px; font-weight: 900; }
.task-status.danger { background: #ffe1dc; color: #a43b2f; }
.task-status.warning { background: #fff0bf; color: #8a670d; }
.task-status.success { background: #d9f1e6; color: #287052; }
.task-status.unknown { background: #efebf2; color: #756d7c; }
.task-item-copy { min-width: 0; }
.task-item-copy strong { display: block; font-size: 17px; line-height: 1.55; text-wrap: pretty; }
.task-item-detail { display: block; margin-top: 6px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.task-next-action { margin: 10px 0 0; padding: 11px 13px; border-radius: 13px; background: #f7f4f9; color: #51485a; font-size: 15px; line-height: 1.55; }
.task-next-action b { display: inline-block; margin-right: 8px; color: #794db0; font-size: 12px; letter-spacing: .04em; }
.task-due-chip,
.task-handled-chip,
.task-escalated-chip { width: fit-content; margin-top: 9px; padding: 6px 10px; border-radius: 99px; display: block; font-size: 13px; font-weight: 780; }
.task-due-chip { background: #eee6ff; color: #65458f; }
.task-due-chip.overdue { background: #ffe0dc; color: #a13b2f; }
.task-handled-chip { background: #e0f1e9; color: #267052; }
.task-escalated-chip { background: #ffe6e1; color: #983f34; }
.task-sync-chip { width: fit-content; margin-top: 7px; padding: 5px 9px; border-radius: 99px; display: block; font-size: 12px; font-weight: 780; }
.task-sync-chip.pending { background: #fff0c2; color: #7c600c; }
.task-sync-chip.acknowledged { background: #dff3fa; color: #28677c; }
.task-item-actions { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 9px; }
.task-action-button { min-height: 42px; padding: 0 16px; border: 1px solid transparent; border-radius: 13px; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform .16s ease, opacity .16s ease; }
.task-action-button:hover { transform: translateY(-1px); }
.task-action-button:disabled { cursor: wait; opacity: .58; transform: none; }
.task-action-button.primary { background: #2f2835; color: white; }
.task-action-button.alert { border-color: #efbcb5; background: #fff0ed; color: #963d32; }
.task-action-button.secondary { border-color: #ded7e2; background: white; color: #5f5566; }
.task-action-button.quiet { border-color: transparent; background: #f0edf2; color: #726879; }
.task-action-button:focus-visible,
.toast-action:focus-visible { outline: 3px solid rgba(121,77,176,.28); outline-offset: 2px; }
.task-item-empty { align-items: center; }

.task-feedback-rail { position: sticky; top: 18px; display: grid; gap: 18px; }
.daily-task-feedback-card { padding: 22px; background: #fffdf8; }
.daily-task-feedback-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.daily-task-feedback-head h3 { margin: 7px 0 0; font-size: 22px; letter-spacing: -.035em; }
.daily-task-feedback-head > strong { flex: 0 0 auto; padding: 7px 10px; border-radius: 10px; background: #e1f2e9; color: #287052; font-size: 12px; font-variant-numeric: tabular-nums; }
.daily-task-feedback-head > strong.attention { background: #ffe5df; color: #a43b2f; }
.daily-task-feedback-note { margin: 10px 0 3px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.daily-task-feedback-list { display: grid; margin-top: 8px; }
.daily-task-run { position: relative; min-width: 0; padding: 15px 0 15px 39px; border-top: 1px solid var(--line); transition: background .18s ease, transform .18s ease; }
.daily-task-run:first-child { border-top: 0; }
.daily-task-run[role="link"] { cursor: pointer; }
.daily-task-run[role="link"]:hover { transform: translateX(2px); }
.daily-task-run[role="link"]:focus-visible { outline: 3px solid rgba(121,77,176,.24); outline-offset: 3px; border-radius: 12px; }
.daily-task-run-marker { position: absolute; left: 0; top: 16px; width: 27px; height: 27px; border-radius: 9px; background: #efebf2; color: #756d7c; display: grid; place-items: center; font-size: 12px; font-weight: 900; }
.daily-task-run.task-tone-success .daily-task-run-marker { background: #d9f1e6; color: #287052; }
.daily-task-run.task-tone-warning .daily-task-run-marker { background: #fff0bf; color: #8a670d; }
.daily-task-run.task-tone-danger .daily-task-run-marker { background: #ffe1dc; color: #a43b2f; }
.daily-task-run.task-tone-standby .daily-task-run-marker { background: #dff3fa; color: #28677c; }
.daily-task-run-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.daily-task-run-top strong { min-width: 0; font-size: 15px; line-height: 1.4; }
.daily-task-run-top b { flex: 0 0 auto; color: #6c6373; font-size: 12px; line-height: 1.5; }
.daily-task-run-timing { display: block; margin-top: 5px; color: #8a818f; font-size: 11px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.daily-task-run-copy p { display: -webkit-box; margin: 6px 0 0; overflow: hidden; color: var(--muted); font-size: 13px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.feedback-history { margin-top: 18px; display: grid; }
.feedback-entry { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 0 0 20px; }
.feedback-entry:not(:last-child)::after { content: ""; position: absolute; left: 18px; top: 38px; bottom: 0; width: 1px; background: var(--line); }
.feedback-marker { width: 37px; height: 37px; border-radius: 13px; background: #f0ecf3; display: grid; place-items: center; color: #72687a; font-size: 13px; font-weight: 850; }
.feedback-entry.active .feedback-marker { background: var(--lilac); color: #604286; }
.feedback-entry strong,
.feedback-entry small { display: block; }
.feedback-entry strong { padding-top: 1px; font-size: 16px; }
.feedback-entry small { margin-top: 5px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.feedback-empty { color: var(--muted); font-size: 15px; }
.task-source-card { background: #fffdf8; }
.task-source-card h3 { margin: 8px 0 10px; font-size: 22px; letter-spacing: -.035em; }
.task-source-card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.task-source-card code { display: block; margin: 17px 0 12px; padding: 10px 11px; border-radius: 11px; background: #f3eff5; color: #5d5364; font-size: 11px; overflow-wrap: anywhere; }
.task-source-card .soft-button { width: 100%; background: var(--lilac); }
.daily-source-link { min-height: 46px; text-decoration: none; display: flex; align-items: center; justify-content: center; }
.daily-timeline-card { min-width: 0; }
.receipt-dayline { margin-top: 18px; display: grid; }
.receipt-event { position: relative; min-width: 0; padding: 0 0 22px 50px; }
.receipt-event:not(:last-child)::after { content: ""; position: absolute; left: 18px; top: 39px; bottom: 2px; width: 1px; background: var(--line); }
.receipt-event-marker { position: absolute; left: 0; top: 0; width: 37px; height: 37px; border-radius: 13px; background: #f0ecf3; color: #72687a; display: grid; place-items: center; font-size: 13px; font-weight: 850; z-index: 1; }
.receipt-event.success .receipt-event-marker { background: #dff2e9; color: #287052; }
.receipt-event.warning .receipt-event-marker { background: #fff0bf; color: #8a670d; }
.receipt-event.danger .receipt-event-marker { background: #ffe1dc; color: #a43b2f; }
.receipt-event-top { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.receipt-event-top strong { color: #746a7b; font-size: 12px; letter-spacing: .04em; }
.receipt-event-top small { color: var(--muted); font-size: 11px; line-height: 1.4; text-align: right; overflow-wrap: anywhere; }
.receipt-event h3 { margin: 6px 0 0; font-size: 16px; line-height: 1.5; letter-spacing: -.018em; text-wrap: pretty; }
.receipt-event p { margin: 5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; text-wrap: pretty; }
.receipt-event-undo { min-height: 34px; margin-top: 10px; padding: 0 11px; border: 1px solid #ded7e2; border-radius: 10px; background: white; color: #655b6d; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.receipt-event-undo:hover { border-color: #c9b3ec; background: #f5efff; }
.receipt-event-undo:focus-visible { outline: 3px solid rgba(121,77,176,.28); outline-offset: 2px; }
.task-loading { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.task-loading strong { font-size: 20px; }
.task-loading span { margin-top: 10px; color: var(--muted); font-size: 15px; }
.task-error { background: #fff5f3; }

@keyframes task-spin { to { transform: rotate(360deg); } }

@media (max-width: 1180px) {
  .attention-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-layout { grid-template-columns: 1fr; }
  .task-feedback-rail { position: static; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1050px) {
  .attention-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .attention-grid { grid-template-columns: 1fr; }
  .task-page-intro { align-items: flex-start; }
  .task-page-intro h1 { font-size: 36px; }
  .task-page-intro p { max-width: 220px; }
  .task-intro-mark { width: 76px; height: 76px; margin: 0; flex: 0 0 auto; }
  .task-intro-mark span { font-size: 11px; }
  .task-intro-mark strong { font-size: 17px; }
  .task-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .task-stat { min-height: 128px; padding: 16px; border-radius: 20px; }
  .task-stat span { font-size: 15px; }
  .task-stat strong { margin-top: 13px; font-size: 34px; }
  .task-stat small { font-size: 12px; line-height: 1.35; }
  .task-toolbar { align-items: stretch; flex-direction: column; }
  .task-toolbar > div { align-items: flex-start; flex-direction: column; gap: 8px; }
  .task-toolbar small { width: 100%; white-space: normal; line-height: 1.45; }
  .task-refresh { width: 100%; }
  .task-section-heading { min-height: 80px; padding: 18px 18px 15px; }
  .task-section-heading h2 { font-size: 21px; }
  .task-section-index { font-size: 10px; }
  .task-item-list { padding: 3px 18px 10px; }
  .task-item { grid-template-columns: 31px minmax(0, 1fr); gap: 11px; padding: 16px 0; }
  .task-status { width: 29px; height: 29px; }
  .task-item-copy strong { font-size: 17px; line-height: 1.48; }
  .task-item-detail,
  .task-next-action { font-size: 15px; }
  .task-item-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-item-actions .primary:first-child,
  .task-item-actions .alert:first-child { grid-column: 1 / -1; }
  .task-action-button { width: 100%; min-height: 46px; padding: 0 12px; }
  .toast { width: calc(100vw - 30px); bottom: 82px; justify-content: space-between; font-size: 14px; }
  .task-feedback-rail { grid-template-columns: 1fr; }
  .receipt-event-top { flex-direction: column; gap: 3px; }
  .receipt-event-top small { text-align: left; }
  .feedback-entry strong { font-size: 16px; }
  .feedback-entry small { font-size: 14px; }
}

/* Personal Workbench calendar: local reminders plus a dedicated iPhone calendar. */
.calendar-overview { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.calendar-board,
.calendar-agenda-card { min-width: 0; }
.calendar-heading { align-items: flex-start; }
.calendar-heading p { margin: 7px 0 0; color: var(--muted); font-size: 14px; }
.calendar-add-button { min-height: 44px; padding: 0 18px; flex: 0 0 auto; }
.calendar-summary { margin: 19px 0 17px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.calendar-summary button { min-height: 82px; padding: 13px 14px; border: 0; border-radius: 18px; background: #f5f1f7; text-align: left; cursor: pointer; }
.calendar-summary button:first-child { background: #ffe4df; }
.calendar-summary button:nth-child(2) { background: #fff0c7; }
.calendar-summary button:nth-child(3) { background: #e3f3ee; }
.calendar-summary span,
.calendar-summary strong { display: block; }
.calendar-summary span { color: #716778; font-size: 12px; font-weight: 800; }
.calendar-summary strong { margin-top: 8px; font-size: 27px; line-height: 1; }
.calendar-month-toolbar { min-height: 42px; display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 8px; }
.calendar-month-toolbar strong { text-align: center; font-size: 18px; }
.calendar-month-toolbar button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 12px; background: white; color: #5d5364; font-size: 25px; cursor: pointer; }
.calendar-weekdays,
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.calendar-weekdays { margin-top: 8px; }
.calendar-weekdays span { padding: 7px 0; color: #978c9d; text-align: center; font-size: 11px; font-weight: 850; }
.calendar-day { position: relative; min-height: 64px; padding: 8px; border: 1px solid transparent; border-radius: 14px; background: #faf8fb; color: #504757; text-align: left; cursor: pointer; }
.calendar-day:hover { border-color: #d9cde2; }
.calendar-day.other-month { color: #b1a7b6; background: #fcfbfc; }
.calendar-day.today { border-color: #8d65b2; background: #f2eafd; }
.calendar-day.selected { box-shadow: inset 0 0 0 2px #684390; }
.calendar-day time { font-size: 12px; font-weight: 850; }
.calendar-day-dots { position: absolute; left: 8px; right: 8px; bottom: 8px; display: flex; flex-wrap: wrap; gap: 3px; }
.calendar-day-dots i { width: 6px; height: 6px; border-radius: 50%; background: #7e6b8c; }
.calendar-day-dots i.high { background: #d85c4b; }
.calendar-day-dots i.normal { background: #c09a2b; }
.calendar-day-dots i.low { background: #3b9c73; }
.calendar-sync-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.calendar-sync-head h2 { margin: 5px 0 0; font-size: 24px; }
.calendar-sync-button { min-height: 40px; padding: 0 11px; font-size: 12px; }
.calendar-sync-status { margin: 15px 0 10px; padding: 11px 12px; border-radius: 14px; background: #f3eff5; color: #655b6c; display: flex; align-items: center; gap: 9px; font-size: 12px; line-height: 1.45; }
.calendar-sync-status i { width: 9px; height: 9px; border-radius: 50%; background: #c6a232; flex: 0 0 auto; }
.calendar-sync-status.synced { background: #e2f2eb; color: #2c7256; }
.calendar-sync-status.synced i { background: #42aa7d; }
.calendar-sync-status.error { background: #ffe7e2; color: #983f34; }
.calendar-sync-status.error i { background: #d65b49; }
.calendar-agenda-list { margin-top: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.calendar-agenda-item { padding: 13px 14px; border-radius: 16px; background: #faf8fb; display: grid; grid-template-columns: 9px minmax(0,1fr); gap: 11px; }
.calendar-agenda-item > i { width: 9px; height: 9px; margin-top: 5px; border-radius: 50%; background: #c09a2b; }
.calendar-agenda-item.high > i { background: #d85c4b; }
.calendar-agenda-item.low > i { background: #3b9c73; }
.calendar-agenda-copy { min-width: 0; }
.calendar-agenda-copy strong,
.calendar-agenda-copy small { display: block; }
.calendar-agenda-copy strong { font-size: 14px; line-height: 1.45; }
.calendar-agenda-copy small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.calendar-agenda-actions { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 6px; }
.calendar-agenda-actions button { min-height: 32px; padding: 0 9px; border: 0; border-radius: 10px; background: #ebe6ee; color: #5d5364; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.calendar-agenda-actions button:first-child { background: #2f2835; color: white; }
.calendar-agenda-toggle { grid-column: 1 / -1; min-height: 44px; border: 1px solid #ddd2e5; border-radius: 14px; background: #f7f3fa; color: #624b76; font: inherit; font-size: 13px; font-weight: 850; cursor: pointer; }
.calendar-link-button { background: #e7ddf5 !important; color: #624680 !important; }

.calendar-dialog { width: min(92vw, 620px); padding: 0; border: 0; border-radius: 26px; background: transparent; box-shadow: 0 24px 80px rgba(37,25,45,.28); }
.calendar-dialog::backdrop { background: rgba(35,27,40,.42); backdrop-filter: blur(5px); }
.calendar-dialog-card { position: relative; padding: 28px; border-radius: 26px; background: white; }
.calendar-dialog-close { position: absolute; right: 18px; top: 17px; width: 38px; height: 38px; border: 0; border-radius: 12px; background: #f0ecf2; color: #5f5566; font-size: 23px; cursor: pointer; }
.calendar-dialog-card h2 { margin: 7px 0 8px; font-size: 29px; }
.calendar-dialog-card > p { margin: 0 42px 18px 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.calendar-dialog-card label { margin-top: 13px; display: block; }
.calendar-dialog-card label > span { display: block; margin-bottom: 6px; color: #665c6d; font-size: 12px; font-weight: 850; }
.calendar-dialog-card input,
.calendar-dialog-card select,
.calendar-dialog-card textarea { width: 100%; border: 1px solid var(--line); border-radius: 13px; background: #fbfafc; color: #312a35; font: inherit; font-size: 15px; }
.calendar-dialog-card input,
.calendar-dialog-card select { height: 47px; padding: 0 12px; }
.calendar-dialog-card textarea { min-height: 86px; padding: 11px 12px; resize: vertical; line-height: 1.55; }
.calendar-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.calendar-dialog-actions { margin-top: 19px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 10px; }
.calendar-dialog-actions button { min-height: 47px; }
.calendar-dialog-card > small { display: block; margin-top: 12px; color: #8a7f90; font-size: 11px; line-height: 1.5; text-align: center; }

.statement-dialog { width: min(92vw, 560px); padding: 0; border: 0; border-radius: 26px; background: transparent; box-shadow: 0 24px 80px rgba(37,25,45,.28); }
.statement-dialog::backdrop { background: rgba(35,27,40,.42); backdrop-filter: blur(5px); }
.statement-dialog-card { position: relative; padding: 28px; border-radius: 26px; background: white; }
.statement-dialog-close { position: absolute; right: 18px; top: 17px; width: 38px; height: 38px; border: 0; border-radius: 12px; background: #f0ecf2; color: #5f5566; font-size: 23px; cursor: pointer; }
.statement-dialog-card h2 { margin: 7px 42px 8px 0; font-size: 29px; }
.statement-dialog-card > p { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.statement-dialog-facts { margin: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.statement-dialog-facts dt,
.statement-dialog-facts dd { margin: 0; padding: 13px 15px; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.5; }
.statement-dialog-facts dt { background: #f8f5fa; color: #756a7b; font-weight: 800; }
.statement-dialog-facts dd { color: #302933; font-weight: 750; overflow-wrap: anywhere; }
.statement-dialog-facts dt:nth-last-of-type(1),
.statement-dialog-facts dd:last-child { border-bottom: 0; }
.statement-dialog-link { margin-top: 16px; text-decoration: none; display: flex; align-items: center; justify-content: center; }
.repayment-message-dialog { width: min(92vw, 720px); max-height: min(88svh, 860px); padding: 0; border: 0; border-radius: 26px; background: transparent; box-shadow: 0 24px 80px rgba(37,25,45,.28); }
.repayment-message-dialog::backdrop { background: rgba(35,27,40,.42); backdrop-filter: blur(5px); }
.repayment-message-dialog-card { position: relative; padding: 28px; border-radius: 26px; background: white; }
.repayment-message-dialog-close { position: absolute; right: 18px; top: 17px; width: 38px; height: 38px; border: 0; border-radius: 12px; background: #f0ecf2; color: #5f5566; font-size: 23px; cursor: pointer; }
.repayment-message-dialog-card h2 { margin: 7px 42px 8px 0; font-size: 27px; }
.repayment-message-dialog-card > p { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.repayment-message-list { max-height: min(64svh, 610px); display: grid; gap: 10px; overflow: auto; padding-right: 4px; }
.repayment-message-item { padding: 15px 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfafc; }
.repayment-message-meta { display: flex; justify-content: space-between; gap: 12px; color: #776c7c; font-size: 12px; }
.repayment-message-meta strong { color: #423847; }
.repayment-message-item p { margin: 10px 0 0; color: #4f4654; font-size: 14px; line-height: 1.68; white-space: pre-wrap; overflow-wrap: anywhere; }
.repayment-message-empty { padding: 24px; border-radius: 16px; background: #f8f5fa; text-align: center; }

@media (max-width: 1050px) {
  .calendar-overview { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .calendar-overview { margin-top: 14px; gap: 12px; }
  .calendar-board,
  .calendar-agenda-card { padding: 18px; }
  .calendar-heading { gap: 9px; }
  .calendar-heading h2 { font-size: 22px; }
  .calendar-heading p { max-width: 180px; font-size: 12px; }
  .calendar-add-button { width: auto; max-width: 48%; min-height: 42px; padding: 0 12px; font-size: 12px; }
  .calendar-summary { margin-top: 15px; gap: 6px; }
  .calendar-summary button { min-height: 72px; padding: 11px; border-radius: 15px; }
  .calendar-summary span { font-size: 11px; }
  .calendar-summary strong { font-size: 24px; }
  .calendar-weekdays,
  .calendar-grid { gap: 3px; }
  .calendar-day { min-height: 51px; padding: 6px; border-radius: 11px; }
  .calendar-day-dots { left: 6px; right: 6px; bottom: 6px; gap: 2px; }
  .calendar-day-dots i { width: 5px; height: 5px; }
  .calendar-agenda-card { order: 2; }
  .calendar-agenda-list { grid-template-columns: 1fr; }
  .statement-dialog { width: calc(100vw - 24px); }
  .statement-dialog-card { padding: 24px 18px 20px; }
  .statement-dialog-facts { grid-template-columns: 105px minmax(0, 1fr); }
  .repayment-message-dialog { width: calc(100vw - 24px); max-height: calc(100svh - 24px); }
  .repayment-message-dialog-card { padding: 24px 18px 20px; }
  .repayment-message-dialog-card h2 { font-size: 23px; }
  .repayment-message-meta { display: grid; gap: 3px; }
  .calendar-dialog { width: calc(100vw - 24px); max-height: calc(100svh - 24px); overflow: auto; }
  .calendar-dialog-card { padding: 24px 18px 20px; }
  .calendar-dialog-card h2 { font-size: 25px; }
  .calendar-form-row { grid-template-columns: 1fr; gap: 0; }
}

/* Codex specialist workbench v1: a separate project surface, never a daily-task bucket. */
.page-codex { background: linear-gradient(135deg, #e9ddff 0%, #dff3fa 58%, #e5f5ed 100%); }
.codex-page-intro > div:first-child { max-width: 720px; }
.codex-source-badge { min-width: 154px; padding: 16px 18px; border-radius: 20px; background: rgba(255,255,255,.74); display: grid; grid-template-columns: 10px 1fr; align-items: center; gap: 5px 9px; }
.codex-source-badge i { width: 9px; height: 9px; border-radius: 50%; background: #39c88a; box-shadow: 0 0 0 6px rgba(57,200,138,.13); grid-row: 1 / 3; }
.codex-source-badge span { color: #746a7b; font-size: 12px; font-weight: 800; }
.codex-source-badge strong { font-size: 17px; }

.codex-overview { margin: 20px 0 18px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 13px; }
.codex-overview article { min-height: 126px; padding: 20px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: 0 11px 34px rgba(45,32,58,.04); }
.codex-overview article.accent { background: #e4f5ec; }
.codex-overview article.attention { background: #fff0c7; }
.codex-overview span,
.codex-overview strong,
.codex-overview small { display: block; }
.codex-overview span { color: #6e6575; font-size: 14px; font-weight: 800; }
.codex-overview strong { margin-top: 11px; font-size: 34px; letter-spacing: -.05em; }
.codex-overview small { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.4; }

.codex-workspace-layout { display: grid; grid-template-columns: minmax(225px,.62fr) minmax(340px,1.04fr) minmax(365px,1.12fr); gap: 16px; align-items: start; }
.codex-project-panel,
.codex-board-panel,
.codex-detail-panel { min-width: 0; padding: 20px; }
.codex-project-panel,
.codex-detail-panel { position: sticky; top: 18px; }
.codex-project-search { height: 43px; margin: 15px 0 12px; padding: 0 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8f6fa; display: flex; align-items: center; gap: 8px; }
.codex-project-search span { color: #8a8190; }
.codex-project-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 14px; }
.codex-project-list { max-height: 640px; overflow: auto; display: grid; gap: 8px; scrollbar-width: thin; }
.codex-project-item { width: 100%; padding: 13px 14px; border: 1px solid transparent; border-radius: 16px; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.codex-project-item:hover { background: #f7f4f9; }
.codex-project-item.active { border-color: #d7c6f4; background: #eee5ff; }
.codex-project-item-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.codex-project-item strong { min-width: 0; font-size: 15px; line-height: 1.4; }
.codex-project-item b { min-width: 28px; padding: 3px 7px; border-radius: 99px; background: rgba(255,255,255,.8); color: #685b72; font-size: 11px; text-align: center; }
.codex-project-item small { margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.4; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; }
.codex-project-item em { display: block; margin-top: 7px; color: #7956a6; font-size: 11px; font-style: normal; font-weight: 800; }
.codex-loading { display: block; padding: 24px 8px; color: var(--muted); font-size: 14px; text-align: center; }

.codex-board-heading { align-items: flex-start; }
.codex-board-heading h2 { max-width: 270px; line-height: 1.18; }
.codex-board-count { padding: 7px 11px; border-radius: 99px; background: #f1edf4; color: #6d6374; font-size: 13px; font-weight: 800; white-space: nowrap; }
.codex-status-filter { margin: 16px 0 14px; padding-bottom: 5px; display: flex; gap: 7px; overflow-x: auto; scrollbar-width: thin; }
.codex-status-filter button { flex: 0 0 auto; min-height: 35px; padding: 0 10px; border: 1px solid var(--line); border-radius: 11px; background: white; color: #746b7a; font: inherit; font-size: 12px; cursor: pointer; display: flex; align-items: center; gap: 7px; }
.codex-status-filter button b { color: #978e9e; font-size: 11px; }
.codex-status-filter button.active { border-color: #d3bff4; background: #eadfff; color: #604184; font-weight: 800; }
.codex-task-list { display: grid; gap: 10px; }
.codex-task-card { position: relative; width: 100%; padding: 16px 17px; border: 1px solid var(--line); border-radius: 18px; background: #fbfafc; color: inherit; text-align: left; cursor: pointer; overflow: hidden; }
.codex-task-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #d9d2dd; }
.codex-task-card.active { border-color: #c9b3ec; background: #f5efff; box-shadow: 0 10px 26px rgba(79,52,111,.08); }
.codex-task-card.active::before,
.codex-task-card.active::after { background: #9062c8; }
.codex-task-card.active::after { content: ""; position: absolute; right: 15px; top: 17px; width: 7px; height: 7px; border-radius: 50%; }
.codex-task-card.review::before { background: #9e72d3; }
.codex-task-card.active::before { background: #58b98c; }
.codex-task-card.revision::before { background: #d46d5f; }
.codex-task-card.accepted::before { background: #4d9f7a; }
.codex-task-card.paused::before { background: #b5a17b; }
.codex-task-card > strong { display: block; margin-top: 11px; padding-right: 12px; font-size: 17px; line-height: 1.45; }
.codex-task-card p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.codex-task-meta { margin-top: 11px; display: flex; gap: 8px; }
.codex-task-meta small { padding: 5px 8px; border-radius: 9px; background: white; color: #746a7b; font-size: 11px; }
.codex-status-badge { width: fit-content; padding: 6px 9px; border-radius: 9px; background: #eeeaf0; color: #695f70; font-size: 12px; font-weight: 850; }
.codex-status-badge.active { background: #dff3e9; color: #2d7457; }
.codex-status-badge.review { background: #eadfff; color: #694595; }
.codex-status-badge.revision { background: #ffe1dc; color: #9a3d32; }
.codex-status-badge.accepted { background: #d8efe4; color: #286c50; }
.codex-status-badge.paused { background: #f1e9d9; color: #776343; }
.codex-task-empty { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.codex-task-empty span { width: 50px; height: 50px; border-radius: 18px; background: #f0ebf4; display: grid; place-items: center; color: #806396; font-size: 24px; }
.codex-task-empty strong { margin-top: 14px; font-size: 18px; }
.codex-task-empty small { margin-top: 7px; color: var(--muted); font-size: 13px; }

.codex-detail-panel { max-height: calc(100vh - 36px); overflow: auto; scrollbar-width: thin; }
.codex-detail-empty { min-height: 330px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.codex-detail-empty span { width: 62px; height: 62px; border-radius: 22px; background: #eee5ff; display: grid; place-items: center; color: #77509f; font-size: 27px; }
.codex-detail-empty strong { margin-top: 17px; font-size: 19px; }
.codex-detail-empty small { max-width: 250px; margin-top: 8px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.codex-detail-head h2 { margin: 14px 0 7px; font-size: 24px; line-height: 1.3; letter-spacing: -.035em; }
.codex-detail-head p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.codex-identity { margin: 18px 0 0; padding: 15px; border-radius: 16px; background: #f7f4f9; display: grid; grid-template-columns: 82px minmax(0,1fr); gap: 9px; }
.codex-identity dt { color: #817789; font-size: 11px; font-weight: 800; }
.codex-identity dd { margin: 0; color: #4f4755; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.codex-detail-actions { margin: 13px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.codex-detail-actions a { text-decoration: none; display: flex; align-items: center; justify-content: center; text-align: center; }
.codex-detail-actions .primary-button,
.codex-detail-actions .soft-button { min-height: 45px; padding: 0 12px; font-size: 13px; }
.codex-status-form,
.codex-feedback-form,
.codex-timeline-section { margin-top: 20px; padding-top: 19px; border-top: 1px solid var(--line); }
.codex-detail-section-title h3 { margin: 5px 0 12px; font-size: 18px; }
.codex-status-form { display: grid; grid-template-columns: minmax(112px,.7fr) minmax(0,1fr); gap: 9px; }
.codex-status-form .codex-detail-section-title { grid-column: 1 / -1; }
.codex-status-form select,
.codex-status-form input,
.codex-feedback-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 13px; background: #fbfafc; color: var(--ink); font: inherit; font-size: 13px; outline: none; }
.codex-status-form select,
.codex-status-form input { height: 43px; padding: 0 11px; }
.codex-status-form .soft-button { grid-column: 1 / -1; min-height: 43px; font-size: 13px; }
.codex-feedback-form textarea { min-height: 92px; padding: 11px; resize: vertical; line-height: 1.55; }
.codex-feedback-form .primary-button { width: 100%; min-height: 45px; margin-top: 8px; font-size: 13px; }
.codex-timeline { display: grid; }
.codex-event { position: relative; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; padding-bottom: 17px; }
.codex-event:not(:last-child)::after { content: ""; position: absolute; left: 16px; top: 34px; bottom: 0; width: 1px; background: var(--line); }
.codex-event-marker { width: 33px; height: 33px; border-radius: 12px; background: #ede8f1; display: grid; place-items: center; color: #6d6077; font-size: 11px; font-weight: 850; z-index: 1; }
.event-feedback_added .codex-event-marker { background: #e9ddff; color: #684390; }
.event-status_changed .codex-event-marker { background: #daf0e5; color: #286d50; }
.codex-event-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.codex-event-top strong { font-size: 13px; }
.codex-event-top small { color: var(--muted); font-size: 10px; white-space: nowrap; }
.codex-event p { margin: 5px 0 3px; color: #534a59; font-size: 13px; line-height: 1.55; }
.codex-event-actor { color: #978d9d; font-size: 10px; }
.codex-boundary-card { margin-top: 17px; display: flex; align-items: center; justify-content: space-between; gap: 22px; background: #fffdf8; }
.codex-boundary-card h3 { margin: 6px 0 5px; font-size: 18px; }
.codex-boundary-card p { max-width: 750px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.codex-boundary-card code { max-width: 380px; padding: 10px 12px; border-radius: 11px; background: #f2eef4; color: #5d5364; font-size: 10px; overflow-wrap: anywhere; }
.codex-mini-mark { font-size: 11px !important; }
.codex-mini-mark.active { background: #dff3e9 !important; color: #2d7457; }
.mini-task-list li { cursor: pointer; }
.daily-empty { min-height: 420px; }

@media (max-width: 1320px) {
  .codex-workspace-layout { grid-template-columns: minmax(200px,.58fr) minmax(310px,1fr) minmax(330px,1.04fr); gap: 12px; }
  .codex-project-panel,
  .codex-detail-panel { top: 12px; }
}

@media (max-width: 980px) {
  .codex-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .codex-workspace-layout { grid-template-columns: 1fr; }
  .codex-project-panel { position: static; }
  .codex-project-list { max-height: 330px; }
  .codex-detail-panel { position: static; max-height: none; grid-column: auto; }
  .codex-boundary-card { align-items: flex-start; flex-direction: column; }
  .codex-boundary-card code { max-width: 100%; }
}

@media (max-width: 720px) {
  .mobile-nav { grid-template-columns: repeat(5,1fr); }
  .mobile-nav button { font-size: 11px; }
  .mobile-nav button span { width: 30px; height: 29px; font-size: 16px; }
  .codex-page-intro { min-height: 195px; align-items: flex-start; }
  .codex-page-intro h1 { max-width: 210px; font-size: 34px; }
  .codex-page-intro p { max-width: 220px; font-size: 15px; line-height: 1.55; }
  .codex-source-badge { min-width: 93px; padding: 12px; grid-template-columns: 8px 1fr; }
  .codex-source-badge span { font-size: 10px; }
  .codex-source-badge strong { font-size: 14px; }
  .codex-overview { gap: 9px; }
  .codex-overview article { min-height: 112px; padding: 16px; border-radius: 19px; }
  .codex-overview span { font-size: 13px; }
  .codex-overview strong { margin-top: 9px; font-size: 29px; }
  .codex-overview small { font-size: 11px; }
  .codex-project-panel,
  .codex-board-panel,
  .codex-detail-panel { padding: 17px; border-radius: 22px; }
  .codex-project-list { max-height: none; display: flex; overflow-x: auto; padding-bottom: 5px; }
  .codex-project-item { flex: 0 0 230px; min-height: 102px; background: #f8f6fa; }
  .codex-board-heading h2 { max-width: 210px; font-size: 21px; }
  .codex-status-filter { margin-right: -17px; padding-right: 17px; }
  .codex-task-card > strong { font-size: 16px; }
  .codex-detail-head h2 { font-size: 22px; }
  .codex-detail-actions { grid-template-columns: 1fr; }
  .codex-detail-actions .primary-button,
  .codex-detail-actions .soft-button { min-height: 48px; }
  .codex-status-form { grid-template-columns: 1fr; }
  .codex-status-form .codex-detail-section-title,
  .codex-status-form .soft-button { grid-column: auto; }
  .codex-status-form select,
  .codex-status-form input,
  .codex-status-form .soft-button { min-height: 48px; }
  .codex-feedback-form textarea { min-height: 112px; font-size: 16px; }
  .codex-event-top { align-items: flex-start; flex-direction: column; gap: 2px; }
  .codex-event-top small { white-space: normal; }
}
/* iPhone data intake: a dedicated page, separate from daily receipts and finance facts. */
.page-mobile-sync { background: #dff3f1; }
.mobile-sync-page-intro { position: relative; }
.mobile-sync-page-intro::after { content: ""; position: absolute; right: 150px; bottom: -58px; width: 210px; height: 210px; border-radius: 42% 58% 61% 39%; background: rgba(255,255,255,.38); transform: rotate(-11deg); }
.mobile-host-badge { position: relative; z-index: 1; min-width: 142px; padding: 14px 17px; border: 1px solid rgba(79,125,119,.16); border-radius: 20px; background: rgba(255,255,255,.72); display: grid; grid-template-columns: 10px 1fr; gap: 2px 9px; align-items: center; }
.mobile-host-badge i { grid-row: span 2; width: 9px; height: 9px; border-radius: 50%; background: #aaa2ad; }
.mobile-host-badge.online i { background: #45a68b; box-shadow: 0 0 0 5px rgba(69,166,139,.12); }
.mobile-host-badge.offline i { background: #d57a75; }
.mobile-host-badge span { color: #6a7773; font-size: 12px; font-weight: 800; }
.mobile-host-badge strong { color: #294f48; font-size: 17px; }
.mobile-sync-overview { margin-top: 18px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 11px; }
.mobile-sync-overview article { min-height: 112px; padding: 18px; border: 1px solid var(--line); border-radius: 23px; background: white; display: grid; align-content: space-between; }
.mobile-sync-overview span { color: #746b78; font-size: 13px; font-weight: 800; }
.mobile-sync-overview strong { margin: 9px 0 3px; font-size: 30px; line-height: 1; }
.mobile-sync-overview small { color: #958c98; font-size: 12px; }
.mobile-sync-overview article:nth-child(1) { background: #fff0d3; }
.mobile-sync-overview article:nth-child(2) { background: #eee7ff; }
.mobile-sync-overview article:nth-child(3) { background: #e4f2ff; }
.mobile-sync-overview article:nth-child(4) { background: #e4f5ec; }
.mobile-sync-overview article:nth-child(5) { background: #f4f1f5; }
.mobile-connection-panel { margin-top: 16px; }
.mobile-connection-heading { align-items: flex-start; }
.mobile-connection-heading p { margin: 7px 0 0; color: var(--muted); font-size: 14px; }
.mobile-permission-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.mobile-permission-grid article { padding: 16px; border-radius: 18px; background: #f8f6f9; display: grid; gap: 6px; }
.mobile-permission-grid span { color: #8b818e; font-size: 12px; font-weight: 800; }
.mobile-permission-grid strong { color: #3b3540; font-size: 16px; }
.mobile-permission-grid small { color: #857b88; font-size: 12px; line-height: 1.45; }
.mobile-message-analysis { margin-top: 18px; }
.mobile-history-state { align-self: flex-start; padding: 8px 12px; border-radius: 999px; background: #e4f3eb; color: #39725f; font-size: 12px; font-weight: 800; white-space: nowrap; }
.mobile-message-category-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.mobile-message-category-grid article { min-height: 90px; padding: 16px; border-radius: 18px; background: #f8f6f9; display: grid; align-content: space-between; }
.mobile-message-category-grid span { color: #857b88; font-size: 12px; font-weight: 800; }
.mobile-message-category-grid strong { color: #302936; font-size: 26px; }
.mobile-history-meta { margin: 15px 0 0; color: #756b78; font-size: 13px; line-height: 1.6; }
.mobile-sync-receipt { margin-top: 12px; padding-top: 13px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 15px; align-items: center; color: #766d79; font-size: 13px; }
.mobile-sync-receipt code { padding: 7px 10px; border-radius: 10px; background: #f4f0f6; color: #62586a; white-space: normal; }
.mobile-share-guide { margin-top: 16px; display: grid; grid-template-columns: 62px 1fr auto; gap: 17px; align-items: center; }
.mobile-share-guide h2 { margin: 5px 0 5px; }
.mobile-share-guide p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.mobile-share-icon { width: 58px; height: 58px; border-radius: 19px; background: #e4eefc; color: #4a6b9e; display: grid; place-items: center; font-size: 28px; font-weight: 900; }
.mobile-share-state { padding: 9px 12px; border-radius: 999px; background: #f1edf4; color: #756b7c; font-size: 12px; font-weight: 850; }
.mobile-sync-toolbar { margin: 18px 0 13px; overflow-x: auto; }
.mobile-sync-filters { display: flex; gap: 8px; min-width: max-content; }
.mobile-sync-filters button { min-height: 42px; padding: 0 16px; border: 1px solid var(--line); border-radius: 14px; background: white; color: #746a78; font-weight: 800; cursor: pointer; }
.mobile-sync-filters button.active { border-color: #9bcfc4; background: #dff3ee; color: #315f56; }
.mobile-item-list { display: grid; gap: 12px; }
.mobile-sync-empty { min-height: 150px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; }
.mobile-sync-empty strong { font-size: 19px; }
.mobile-sync-empty span { color: var(--muted); font-size: 13px; }
.mobile-item-card { position: relative; overflow: hidden; }
.mobile-item-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: #b7dcd4; }
.mobile-item-card.kind-message::before { background: #efc46d; }
.mobile-item-card.kind-voice::before { background: #b7a2e7; }
.mobile-item-card.kind-document::before { background: #87b6dc; }
.mobile-item-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mobile-kind-badge { padding: 7px 10px; border-radius: 10px; background: #f2eef5; color: #615669; font-size: 12px; font-weight: 850; }
.mobile-item-head small { color: #988e9b; font-size: 12px; }
.mobile-item-card h3 { margin: 16px 0 7px; font-size: 20px; }
.mobile-item-copy { margin: 0; color: #665d69; line-height: 1.65; white-space: pre-wrap; }
.mobile-item-meta { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 7px; }
.mobile-item-meta span { padding: 6px 9px; border-radius: 9px; background: #f5f2f6; color: #756b78; font-size: 12px; }
.mobile-item-meta .attention { background: #fff0d1; color: #8a6425; }
.mobile-item-meta .task { background: #e4f3eb; color: #39725f; }
.mobile-item-meta .note { background: #e7eff9; color: #4d6687; }
.mobile-item-actions { margin-top: 17px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mobile-item-actions button { min-height: 40px; padding: 0 14px; }
.mobile-archive-button { border: 0; background: transparent; color: #8d7f90; font-weight: 750; cursor: pointer; }
.mobile-document-select { min-height: 40px; padding: 0 35px 0 12px; border: 1px solid var(--line); border-radius: 13px; background: white; color: #5e5562; }
.mobile-sync-boundary { margin-top: 16px; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; }
.mobile-sync-boundary > span { padding: 6px 10px; border-radius: 10px; background: #f1edf4; color: #6d6273; font-size: 12px; font-weight: 900; }
.mobile-sync-boundary p { margin: 0; color: #6c636f; line-height: 1.6; }
.mobile-sync-boundary code { grid-column: 2; color: #908694; overflow-wrap: anywhere; }
.module-mobile-sync { background: #dff3f1; }

@media (max-width: 1050px) {
  .mobile-sync-overview { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .mobile-permission-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mobile-message-category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 720px) {
  .mobile-sync-page-intro { min-height: 0; display: grid; align-content: start; justify-content: stretch; gap: 18px; }
  .mobile-sync-page-intro::after { right: -80px; }
  .mobile-host-badge { position: relative; left: auto; bottom: auto; justify-self: start; min-width: 128px; }
  .mobile-sync-overview { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .mobile-sync-overview article { min-height: 104px; padding: 15px; }
  .mobile-sync-overview article:nth-child(5) { grid-column: span 2; }
  .mobile-connection-heading { gap: 12px; }
  .mobile-connection-heading .primary-button { min-height: 44px; padding: 0 13px; }
  .mobile-permission-grid { grid-template-columns: 1fr; }
  .mobile-message-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mobile-message-category-grid article:last-child { grid-column: span 2; }
  .mobile-sync-receipt { align-items: flex-start; flex-direction: column; }
  .mobile-share-guide { grid-template-columns: 54px 1fr; align-items: start; }
  .mobile-share-icon { width: 50px; height: 50px; }
  .mobile-share-state { grid-column: 2; justify-self: start; }
  .mobile-item-card { padding: 20px; }
  .mobile-item-head { align-items: flex-start; }
  .mobile-item-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mobile-item-actions button,
  .mobile-document-select { width: 100%; }
  .mobile-sync-boundary { grid-template-columns: 1fr; }
  .mobile-sync-boundary code { grid-column: 1; }
}

.wechat-weekly { margin-top:0; }
.wechat-weekly > p { line-height:1.7; color:var(--muted); }
.wechat-todo-card { background:white; border:1px solid var(--line); border-radius:16px; padding:20px; margin:12px 0; }
.wechat-todo-card h4 { font-size:18px; margin:10px 0; }
.wechat-todo-card p { line-height:1.7; }
.wechat-todo-card small { color:var(--muted); }
.wechat-todo-evidence { font-size:13px; color:var(--muted); }
.wechat-todo-evidence summary { cursor:pointer; }
.wechat-todo-evidence p { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:720px) {
  .mobile-nav { grid-template-columns:repeat(5,1fr); }
  #view-wechat .section-heading { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
  #view-wechat .section-heading h1 { margin-bottom:12px; }
  #view-wechat .section-heading p { margin:0; line-height:1.6; }
}
/* Source-backed WeChat analysis: same detail view on desktop and mobile. */
.wechat-analysis-dialog { width:min(900px,calc(100vw - 32px)); max-height:90dvh; padding:24px; border:1px solid #dce2e7; border-radius:18px; color:#24313d; background:#fff; overflow:auto; }
.wechat-analysis-dialog::backdrop { background:rgb(20 30 40 / 45%); }
.analysis-close { position:sticky; top:0; float:right; z-index:1; background:#fff; }
.analysis-content { clear:both; line-height:1.7; overflow-wrap:anywhere; }
.analysis-content h2 { font-size:24px; margin:18px 0 10px; }
.analysis-content h3 { margin-top:28px; border-bottom:1px solid #e4e8eb; padding-bottom:8px; }
.analysis-content p { white-space:pre-line; }
.analysis-point,.analysis-material { padding:14px; border:1px solid #e1e5e9; border-radius:12px; margin:12px 0; }
.analysis-material img { display:block; width:auto; max-width:100%; max-height:480px; border-radius:8px; }
.analysis-dates { display:block; color:#647480; margin:8px 0; font-size:13px; }
.analysis-notice { background:#fff4d9; padding:12px; border-radius:10px; }
.analysis-source { margin:10px 0; padding:12px; background:#f5f7f9; border-radius:10px; }
.analysis-source summary { cursor:pointer; }
@media(max-width:600px) { .wechat-analysis-dialog { width:calc(100vw - 16px); max-height:94dvh; padding:14px; } .analysis-content h2 { font-size:21px; } }

.analysis-report-index { margin: 20px 0; padding: 20px; border: 1px solid var(--line, #e5e2eb); border-radius: 16px; }
.analysis-report-index button { display: block; margin: 10px 0; text-align: left; max-width: 100%; white-space: normal; }
.wechat-scope { margin: 8px 0 18px; padding:12px 16px; border:1px solid #e6e5e1; border-radius:8px; background:#fff; }
.wechat-scope > summary, .analysis-report-index > summary { cursor:pointer; font-weight:500; }
#view-wechat { color:#303330; }
#view-wechat .section-heading { margin-bottom:18px; }
#view-wechat .section-heading h1 { font-size:28px; letter-spacing:-.5px; }
#view-wechat .section-heading p { font-size:13px; color:#797b76; margin:8px 0; }
.wechat-weekly h2 { font-size:22px; margin:18px 0 8px; }
#wechat-weekly-status { font-size:12px; color:#74796b; margin:8px 0 20px; }
.wechat-coverage { margin:0 0 20px; padding:16px; border:1px solid #e2e4dd; border-radius:10px; background:#fff; }
.wechat-coverage[data-state="unavailable"] { color:#8b6b54; background:#fffaf4; }
.wechat-coverage[data-state="unavailable"] p { margin:0; font-size:13px; }
.wechat-coverage[data-state="stale"] { border-color:#e7cf9c; background:#fffaf0; }
.coverage-stale { margin:0 0 12px; color:#8b6420; font-size:12px; line-height:1.5; }
.coverage-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }
.coverage-heading h3 { margin:0; font-size:15px; color:#3d4538; }
.coverage-heading p { margin:0; color:#858b7c; font-size:11px; text-align:right; }
.coverage-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.coverage-stat { display:flex; align-items:baseline; justify-content:space-between; gap:8px; min-width:0; padding:11px 12px; border-radius:7px; background:#f5f6f2; }
.coverage-stat strong { font-size:20px; line-height:1; color:#3c4735; }
.coverage-stat span { color:#747c6b; font-size:11px; white-space:nowrap; }
.coverage-partially_reviewed { background:#fff7e8; }
.coverage-missing_media { background:#fff0ed; }
.coverage-unread { background:#f0f1ee; }
.coverage-details { margin-top:12px; font-size:12px; color:#6f7667; }
.coverage-details summary { cursor:pointer; }
.coverage-details table { width:100%; margin-top:10px; border-collapse:collapse; }
.coverage-details th,.coverage-details td { padding:7px 5px; border-bottom:1px solid #eff0eb; text-align:right; }
.coverage-details th:first-child { text-align:left; }
.coverage-note { margin:10px 0 0; line-height:1.6; color:#777d70; }
.board-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:16px 0; }
.board-tabs,.board-status-tabs,.board-lane-tabs { display:flex; gap:4px; }
.board-tabs button,.board-status-tabs button,.board-lane-tabs button { border:0; border-radius:6px; background:transparent; padding:10px 15px; font-size:14px; color:#75796f; cursor:pointer; }
.board-tabs button[aria-pressed="true"] { background:#323a32; color:#fff; }
.board-status-tabs { background:#eaece6; padding:3px; border-radius:8px; flex-wrap:wrap; max-width:100%; }
.board-expiry-note { color:var(--muted); font-size:13px; line-height:1.6; margin:0 0 12px; overflow-wrap:anywhere; }
.board-status-tabs button { font-size:12px; padding:8px 12px; }
.board-status-tabs button[aria-pressed="true"] { background:#fff; color:#343b31; }
.board-lane-tabs { display:none; }
.analysis-report-index { margin:14px 0 24px; padding:12px 16px; border:1px solid #e6e5e1; background:#fff; border-radius:8px; font-size:13px; }
.analysis-report-index button { display:block; margin:9px 0; text-align:left; max-width:100%; white-space:normal; background:#f4f5f1; color:#4c5447; border-radius:6px; }
.wechat-board-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; align-items:start; }
.board-column { min-width:0; padding:0; background:transparent; border-radius:0; max-height:none; overflow:visible; }
.board-column > h3 { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:#535950; border:0; margin:0 0 14px; padding:0; }
.board-column > h3::before { content:''; width:7px; height:7px; border-radius:50%; background:#7c8975; }
.board-column.urgent > h3::before { background:#b56852; }
.board-column.low > h3::before { background:#a5ac9a; }
.board-column .wechat-todo-card { margin:0 0 14px; padding:18px; border:1px solid #e6e5e1; border-radius:10px; background:#fff; box-shadow:none; }
.board-column .wechat-todo-card h4 { font-size:15px; line-height:1.6; margin:10px 0 8px; color:#30382d; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.board-card-top small { color:#6f7666; font-size:11px; line-height:1.5; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.board-card-description { display:block; overflow-wrap:anywhere; font-size:15px; color:#6e7565; line-height:1.7; margin:8px 0 14px; }
.board-priority-buttons { display:flex; gap:5px; margin:10px 0 16px; }
.board-priority-buttons button { border:1px solid transparent; background:#f5f6f2; border-radius:4px; padding:5px 9px; font-size:11px; color:#777f6b; cursor:pointer; }
.board-priority-buttons button[aria-pressed="true"] { color:#485440; background:#eaf0e4; border-color:#dbe4d3; }
.board-priority-buttons button[data-priority="urgent"][aria-pressed="true"] { color:#9d5a44; background:#f9eee7; border-color:#efded0; }
.board-card-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid #f1f1ed; padding-top:12px; }
.board-complete,.board-analysis { width:auto; height:auto; flex-shrink:0; border-radius:5px; padding:8px 11px; border:1px solid #dfe3d8; background:#fff; color:#6e7965; cursor:pointer; font-size:12px; margin:0; }
.board-complete { margin-left:auto; }
.board-complete:hover { background:#f1f5eb; border-color:#b6c4a8; }
.board-analysis { border-color:transparent; padding-left:0; color:#535f49; }
.board-empty { color:#9a9e93; font-size:13px; padding:32px 12px; border:1px dashed #dedfd8; border-radius:8px; text-align:center; }
.wechat-todo-card.is-done { background:#fafbf8; }
.wechat-todo-card.is-done h4 { text-decoration:line-through; color:#8d9485; }
.board-column .wechat-todo-evidence { margin-top:12px; font-size:11px; color:#707a63; }
.board-column .wechat-todo-evidence p { font-size:13px; color:#626b58; }
.board-pager { display:flex; align-items:center; gap:6px; margin:10px 0; }
.board-pager button { font-size:12px; border:1px solid #e0e3da; background:#fff; color:#68745d; border-radius:5px; padding:8px 10px; cursor:pointer; }
.board-pager button:disabled { color:#b8beb0; cursor:default; }
.board-pager span { margin-left:auto; color:#939b89; font-size:11px; }
#board-feedback { position:fixed; right:24px; bottom:24px; z-index:150; display:flex; align-items:center; gap:12px; padding:12px 18px; border:1px solid #dce5d3; border-radius:8px; background:#f5faef; color:#4d6041; font-size:13px; box-shadow:0 5px 20px #2532140d; max-width:calc(100vw - 32px); }
#board-feedback:empty { display:none; }
.board-confirm-dialog { width:min(440px,calc(100vw - 36px)); border:1px solid #e2e5dd; border-radius:12px; padding:28px; color:#343d2e; background:#fff; box-shadow:0 20px 70px #18240e26; }
.board-confirm-dialog::backdrop { background:#28332266; }
.board-confirm-dialog h2 { font-size:20px; margin:0 0 20px; }
.board-confirm-dialog p { font-size:13px; line-height:1.7; color:#88917f; }
.board-confirm-dialog .board-confirm-item { font-size:16px; color:#48543d; background:#f5f7f1; border-radius:6px; padding:14px; }
.board-confirm-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
.board-primary,.board-secondary { border:1px solid #d8dfd0; border-radius:6px; padding:11px 16px; font-size:13px; cursor:pointer; background:#fff; color:#59674c; }
.board-primary { background:#3c4d31; border-color:#3c4d31; color:white; }
.board-confirm-dialog button:focus-visible,#view-wechat button:focus-visible { outline:2px solid #789060; outline-offset:3px; }
.board-primary:disabled,.board-secondary:disabled { opacity:.6; cursor:wait; }
.board-card-meta { font-size:13px; line-height:1.65; color:#74796b; overflow-wrap:anywhere; margin:10px 0; }
.board-next-actions { margin:12px 0; padding-left:20px; font-size:15px; line-height:1.7; }
.board-next-actions li { margin-bottom:8px; }
.board-save-progress { min-height:1.7em; }
.wechat-todo-card[aria-busy="true"] { outline:2px solid #dce5d3; }
.wechat-board-grid > .wechat-todo-card { margin:0; padding:18px; border:1px solid #e6e5e1; border-radius:12px; background:#fff; box-shadow:none; min-width:0; }
.wechat-board-grid > .wechat-todo-card.needs-attention { background:#fff0ed; border-color:#edc6bf; }
.wechat-board-grid > .wechat-todo-card h4 { font-size:15px; line-height:1.6; margin:12px 0 8px; color:#343b31; }
.wechat-board-grid > .wechat-todo-card.needs-attention h4 { color:#773d35; }
.board-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.board-card-top small { flex:1; }
.board-attention { flex-shrink:0; padding:5px 8px; border:1px solid #e3e5df; border-radius:5px; background:#f8f9f6; color:#7a8173; cursor:pointer; font-size:11px; }
.board-attention[aria-pressed="true"] { background:#f7dcd6; border-color:#ebbbb1; color:#9d4a3d; }
.wechat-board-grid > .wechat-todo-card .wechat-todo-evidence { margin-top:12px; font-size:11px; color:#7e8376; }
.wechat-board-grid > .wechat-todo-card .wechat-todo-evidence p { font-size:13px; }
.wechat-board-grid > .wechat-todo-card.is-done { opacity:.75; }
@media(max-width:800px) {
  .coverage-heading { display:block; }
  .coverage-heading p { margin-top:6px; text-align:left; }
  .coverage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wechat-board-grid { display:grid; grid-template-columns:1fr; overflow:visible; gap:14px; }
  .board-column.mobile-hidden { display:none; }
  .board-lane-tabs { display:flex; border-bottom:1px solid #e1e5d9; margin:8px 0 16px; }
  .board-lane-tabs button { flex:1; font-size:12px; border-radius:0; padding:10px 6px; }
  .board-lane-tabs button[aria-pressed="true"] { border-bottom:2px solid #60794b; color:#4d6540; }
  .board-tabs button { padding:9px 12px; }
  .board-toolbar { gap:12px; margin:12px 0; }
  .board-column .wechat-todo-card { padding:17px; }
  .board-confirm-dialog { padding:22px; }
  #board-feedback { bottom:90px; right:16px; }
}

/* Keep readable navigation and finance sections at tablet widths. */
.sidebar { min-width:0; }
.top-actions { flex-shrink:0; white-space:nowrap; }
.search-box { min-width:0; flex:1 1 200px; }
.sidebar-note .status-dot { flex-shrink:0; background:#92989b; box-shadow:none; }
.sidebar-note[data-state="error"] .status-dot { background:#bd705e; }
.sidebar-note[data-state="ready"] .status-dot { background:#45a97d; }
.sidebar-note strong { font-size:14px; line-height:1.6; }
.sidebar-note small { font-size:13px; }
.sidebar-note div { display:block; }
.nav-item { white-space:nowrap; }
.repayment-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); }
.repayment-body { display:block; }
.repayment-amount { text-align:left; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.repayment-amount.is-missing { font-size:16px; line-height:1.6; letter-spacing:0; }
.repayment-item-head strong { flex:1 1 180px; }
.repayment-item .repayment-status { display:inline-block; width:auto; height:auto; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.repayment-facts span { font-size:12px; line-height:1.5; }
.repayment-evidence-summary,.repayment-source-button { text-decoration:none; border-left:2px solid #ded8e2; padding-left:10px; }
.repayment-evidence-summary:hover,.repayment-source-button:hover { background:#f4f1f5; }
.repayment-action-button,.repayment-statement-button { white-space:nowrap; font-size:13px; }
.repayment-item.overdue { border-color:#dddfe0; background:#fafbfc; }
.repayment-item.overdue .repayment-status,.repayment-item.overdue .repayment-mark { background:#e9edf0; color:#54616b; }
.latest-bills { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:16px; margin-top:18px; }
.statement-card { min-width:0; padding:16px; background:#faf9fb; border:1px solid var(--line); border-radius:12px; }
.statement-card h3 { font-size:16px; line-height:1.6; margin:0 0 12px; }
.statement-card > strong { font-size:24px; font-variant-numeric:tabular-nums; }
.statement-card > small { display:block; margin-bottom:5px; color:var(--muted); }
.statement-card > strong.is-missing { font-size:16px; }
.statement-card p { font-size:14px; line-height:1.7; white-space:pre-line; }
.statement-history,.finance-coverage { margin-top:20px; }
.statement-history > summary,.finance-coverage > summary { cursor:pointer; font-size:17px; }
.finance-statements .bill-focus { background:#fff; }
.finance-load-status { margin-bottom:18px; background:#fff5f3; border-color:#d7a69d; box-shadow:none; }
.finance-load-status h2 { margin:0 0 6px; font-size:18px; line-height:1.45; }
.finance-load-status p { margin:0; color:#6b4a48; font-size:14px; line-height:1.6; }
.board-next-actions li { white-space:pre-line; }
@media(min-width:721px) and (max-width:1050px) {
  .app-shell { grid-template-columns:216px minmax(0,1fr); }
  .nav-item { justify-content:flex-start; font-size:19px; gap:10px; }
  .nav-item span { flex-shrink:0; }
  .brand { justify-content:flex-start; }
  .main-content { padding-inline:22px; }
  .sidebar-note { padding:12px; justify-content:flex-start; }
  .sidebar-note div { display:block; }
}
@media(max-width:960px) {
  .wechat-board-grid { grid-template-columns:1fr; }
}

/* 微信看板：沿用个人工作台的柔和紫色栏目头与白色圆角卡。 */
#view-wechat { color:var(--ink); }
.wechat-page-intro { margin-bottom:24px; background:var(--lilac); }
.wechat-page-intro .page-emoji { color:#6f5b82; background:rgba(255,255,255,.68); }
.wechat-weekly { margin-top:0; }
.wechat-weekly h2 { margin:0 0 7px; font-size:22px; letter-spacing:-.035em; }
#wechat-weekly-status { margin:0 0 17px; color:var(--muted); font-size:13px; line-height:1.6; }
.board-toolbar { gap:10px; margin:16px 0 18px; }
.board-tabs,.board-status-tabs { padding:4px; border-radius:14px; background:#f0ebf5; }
.board-tabs button,.board-status-tabs button { border-radius:10px; color:#71677c; }
.board-tabs button[aria-pressed="true"],.board-status-tabs button[aria-pressed="true"] { background:white; color:#493b56; box-shadow:0 5px 14px rgba(52,35,64,.08); }
.analysis-report-index { margin:16px 0 20px; padding:15px 17px; border:1px solid var(--line); border-radius:18px; background:white; }
.analysis-report-index button { border-radius:11px; background:#f4effc; color:#493b56; }
.wechat-board-grid { gap:16px; }
.wechat-board-grid > .wechat-todo-card { padding:22px; border:1px solid var(--line); border-radius:22px; background:white; box-shadow:0 10px 28px rgba(34,26,46,.05); }
.wechat-board-grid > .wechat-todo-card.needs-attention { border-color:#edc6bf; background:#fff8f7; }
.board-card-top { margin-bottom:12px; }
.board-card-top small { color:var(--muted); font-size:12px; }
.board-attention { border-color:#ddd2ea; border-radius:9px; background:#f7f2fc; color:#665275; }
.board-attention[aria-pressed="true"] { background:#f7dcd6; border-color:#ebbbb1; color:#9d4a3d; }
.wechat-board-grid > .wechat-todo-card h4 { margin:0 0 12px; color:var(--ink); font-size:19px; line-height:1.38; letter-spacing:-.025em; }
.board-card-description { display:none; }
.board-facts { display:grid; gap:8px; }
.board-fact { display:grid; grid-template-columns:minmax(0,1fr); gap:7px; padding:12px 13px; border:1px solid; border-radius:13px; }
.board-fact strong { display:flex; gap:7px; align-items:flex-start; font-size:13px; }
.board-fact strong span { color:var(--purple); font-size:16px; line-height:.9; }
.board-fact p { margin:0; font-size:15px; line-height:1.65; color:#564d5e; white-space:pre-line; overflow-wrap:anywhere; }
.board-fact.current { border-color:#d7e5fb; background:#eef5ff; }
.board-fact.next { border-color:#e1d4f4; background:#f7f1fd; }
.board-fact.completion { border-color:#cce9da; background:#f0f9f4; }
.board-fact.completion strong span { color:#219266; }
.board-card-meta { margin:13px 0 0; padding:12px 0 0; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.65; }
.board-card-actions { margin-top:13px; padding-top:13px; border-top:1px solid var(--line); }
.board-complete,.board-analysis { border-radius:11px; font-weight:780; }
.board-complete { border-color:#d8cde8; color:#63516f; }
.board-analysis { padding:9px 12px; background:#251b30; color:white; }
.board-analysis:hover { background:#352341; }
.board-card-actions .board-instruction { width:auto; padding:9px 10px; font-size:12px; border-radius:11px; }
.wechat-todo-evidence { margin-top:12px; color:var(--muted); }
.wechat-analysis-dialog { width:min(960px,calc(100vw - 34px)); height:min(100dvh - 52px,900px); max-height:none; padding:0; border:1px solid var(--line); border-radius:24px; color:var(--ink); background:white; overflow:hidden; box-shadow:0 28px 90px rgba(39,26,50,.28); }
.wechat-analysis-dialog[open] { display:flex; flex-direction:column; margin:26px 26px 26px auto; }
.wechat-analysis-dialog::backdrop { background:rgb(43 33 50 / 34%); backdrop-filter:blur(2px); }
.analysis-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:28px 32px 22px; border-bottom:1px solid var(--line); }
.analysis-dialog-header > div { min-width:0; flex:1 1 auto; }
.analysis-dialog-header .analysis-kicker { margin:0; color:var(--purple); font-size:12px; font-weight:850; letter-spacing:.06em; }
.analysis-dialog-header h2 { max-width:35ch; margin:6px 0 0; font-size:clamp(23px,3vw,34px); line-height:1.15; letter-spacing:-.04em; }
.analysis-close { position:static; float:none; width:auto; min-width:0; flex:0 0 auto; min-height:39px; border:1px solid #bda7e7; border-radius:11px; background:#f7f1fd; color:#4e3e64; white-space:nowrap; }
.analysis-content { clear:none; flex:1 1 auto; min-height:0; padding:26px 32px 46px; overflow:auto; line-height:1.7; overflow-wrap:anywhere; }
.analysis-content > h2 { display:none; }
.analysis-content h3 { margin:28px 0 11px; padding:0; border:0; font-size:21px; letter-spacing:-.025em; }
.analysis-content p { max-width:64ch; font-size:16px; line-height:1.75; }
.analysis-source { border:1px solid var(--line); border-radius:14px; background:#fbfafc; }
.analysis-point,.analysis-material { border-color:var(--line); border-radius:14px; background:#fbfafc; }
.analysis-notice { border-radius:11px; background:#f4effc; color:#63516f; }
.analysis-message { padding:14px 16px; margin:9px 0; }
.analysis-message-meta { color:var(--muted); font-size:13px; }
.analysis-message p { margin:6px 0 0; white-space:pre-wrap; }
.analysis-chat-heading { margin:22px 0 8px; }
.analysis-instruction { padding:16px; margin-bottom:24px; border:1px solid var(--line); border-radius:14px; background:#f7f2fc; }
.analysis-instruction h3 { margin-top:0; font-size:18px; }
.analysis-instruction summary { cursor:pointer; font-size:16px; font-weight:650; }
.analysis-instruction[open] summary { margin-bottom:12px; }
.analysis-instruction-text { display:block; width:100%; min-height:230px; padding:12px; resize:none; overflow:hidden; border:1px solid var(--line); border-radius:10px; font:inherit; font-size:15px; line-height:1.65; color:var(--ink); background:var(--surface); box-sizing:border-box; }
.analysis-instruction-text[hidden],.analysis-instruction-preview[hidden] { display:none; }
.analysis-instruction-preview { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:16px; font-size:15px; line-height:1.8; }
.analysis-instruction > button { margin-right:8px; }
.analysis-brief { display:flex; flex-wrap:wrap; gap:8px 18px; padding:12px 16px; border-radius:12px; background:var(--lilac); font-size:14px; font-weight:600; }
.wechat-analysis-dialog .analysis-dialog-header h2 { font-size:clamp(20px,2.3vw,27px); line-height:1.35; letter-spacing:-.02em; }
.analysis-materials { margin:24px 0; }
.analysis-materials .analysis-material,.analysis-point { padding:16px 18px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.analysis-materials h4,.analysis-point h4 { margin:0 0 8px; line-height:1.5; font-size:16px; }
.analysis-materials .soft-button { display:inline-block; margin:8px 8px 0 0; text-decoration:none; }
.analysis-link { color:var(--lilac-strong); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.analysis-link:focus-visible { outline:2px solid var(--lilac-strong); outline-offset:3px; }
.analysis-steps { padding-left:22px; line-height:1.75; }
.analysis-steps li + li { margin-top:8px; }
.analysis-update { margin:18px 0; color:var(--muted); }
.analysis-update summary { cursor:pointer; font-size:14px; }
.wechat-emoticon { display:inline; }
.board-material-links { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:10px 0; font-size:13px; }
.analysis-instruction .soft-button { margin-top:12px; }
.analysis-copy-status { margin:8px 0 0; font-size:13px!important; }
.analysis-image-open { display:block; padding:0; border:0; background:none; cursor:zoom-in; max-width:100%; }
.analysis-image-open img { display:block; max-width:100%; }
.analysis-message-images { display:grid; gap:12px; margin-top:10px; }
.analysis-message-images [hidden] { display:none !important; }
.analysis-message-image { margin:0; min-width:0; }
.analysis-message-image .analysis-image-open { width:min(100%,640px); }
.analysis-message-image img { width:auto; height:auto; max-height:480px; object-fit:contain; border-radius:8px; }
.analysis-image-state { margin-top:6px; color:var(--muted); font-size:13px; line-height:1.6; }
.wechat-image-dialog { position:fixed; inset:0; margin:0; width:100%; max-width:none; height:100dvh; max-height:none; padding:0; border:0; border-radius:0; background:#151719; color:#f4f4f5; overflow:hidden; box-sizing:border-box; }
.wechat-image-dialog[open] { display:flex; flex-direction:column; }
.wechat-image-dialog::backdrop { background:#151719; }
.wechat-image-notice { flex:0 0 auto; margin:0; padding:10px 16px max(10px,env(safe-area-inset-bottom)); font-size:12px; text-align:center; color:#aeb5bc; }
.wechat-image-viewport { position:relative; display:flex; align-items:center; justify-content:center; flex:1; min-height:0; min-width:0; overflow:hidden; touch-action:none; user-select:none; overscroll-behavior:contain; }
.wechat-image-viewport img { display:block; flex:none; max-width:none; max-height:none; margin:0; object-fit:contain; transform-origin:center; user-select:none; -webkit-user-drag:none; }
.wechat-image-viewport img[hidden] { display:none; }
.wechat-image-dialog.is-zoomed .wechat-image-viewport { cursor:grab; }
.wechat-image-dialog.is-zoomed .wechat-image-viewport.is-dragging { cursor:grabbing; }
.wechat-image-close { position:absolute; z-index:2; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); width:44px; height:44px; padding:0; border:0; border-radius:50%; background:rgba(24,26,28,.65); color:white; font-size:28px; line-height:1; cursor:pointer; }
.wechat-image-close:hover { background:rgba(24,26,28,.85); }
.wechat-image-close:focus-visible { outline:2px solid #dfcaff; outline-offset:2px; }
@media(max-width:600px) { .wechat-image-notice { font-size:11px; } }
.wechat-coverage { border-color:var(--line); border-radius:18px; background:white; }
.wechat-coverage[data-state="ready"] { border-color:var(--line); background:white; }
.coverage-heading h3,.coverage-heading p { color:var(--ink); }
.coverage-grid article { border-radius:13px; background:#f4effc; }
.coverage-grid article:nth-child(2) { background:#eef5ff; }
.coverage-grid article:nth-child(3) { background:#fff0ef; }
.coverage-grid article:nth-child(4) { background:#f9f3df; }
.board-primary { background:#251b30; border-color:#251b30; }
.board-secondary { border-color:#d8cde8; color:#63516f; }
.board-confirm-dialog button:focus-visible,#view-wechat button:focus-visible { outline-color:var(--purple); }
@media(max-width:600px) {
  .wechat-page-intro { margin-bottom:18px; }
  .board-fact { grid-template-columns:1fr; gap:7px; padding:13px; }
  .wechat-board-grid > .wechat-todo-card { padding:17px; border-radius:18px; }
  .wechat-board-grid > .wechat-todo-card h4 { font-size:18px; }
  .wechat-analysis-dialog { inset:0; width:100%; max-width:100%; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; }
  .wechat-analysis-dialog[open] { display:flex; margin:0; }
  .analysis-dialog-header { position:sticky; top:0; z-index:1; padding:17px 16px; background:white; }
  .analysis-dialog-header h2 { font-size:20px; }
  .analysis-close { width:auto; min-width:0; flex:0 0 auto; }
  .analysis-content { padding:18px 16px 34px; }
  .analysis-content h3 { margin-top:24px; font-size:19px; }
  .analysis-content p { font-size:15px; }
}
.finance-source-notices { margin: 22px 0; }
.finance-source-notices[hidden] { display: none; }
.finance-source-notices > h3 { margin: 0 0 6px; font-size: 18px; }
.finance-source-notices > p { margin: 0 0 14px; color: var(--muted, #726d7c); line-height: 1.65; }
.source-notice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.source-notice-card { min-width: 0; padding: 20px; border: 1px solid #e6d8c5; border-radius: 16px; background: #fffcf6; }
.source-notice-card.is-important { border-left: 4px solid #b08048; }
.source-notice-card h4 { margin: 0; font-size: 17px; }
.source-notice-due { margin: 8px 0 12px; color: #78552f; font-weight: 600; }
.source-notice-amount { display: block; font-size: clamp(25px, 3vw, 32px); font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.source-notice-label { display: block; margin-top: 4px; font-size: 12px; color: #78552f; }
.source-notice-identity { margin: 16px 0 8px; font-size: 13px; line-height: 1.6; }
.source-notice-explanation { margin: 0; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.source-notice-card details { margin-top: 16px; font-size: 13px; }
.source-notice-card summary { cursor: pointer; width: fit-content; padding: 5px 0; }
.source-notice-card summary:focus-visible { outline: 2px solid #856c9c; outline-offset: 3px; border-radius: 4px; }
.source-notice-original { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.source-notice-card details small { color: var(--muted, #726d7c); }
@media (max-width: 720px) {
  .source-notice-list { grid-template-columns: 1fr; }
  .source-notice-card { padding: 16px; }
}

.triage-focus-section { margin: 28px 0; }
.triage-focus-list,.triage-risk-list { display: grid; gap: 14px; }
.triage-card { min-width: 0; padding: 22px; border: 1px solid var(--line,#e5deeb); border-radius: 18px; background: white; overflow-wrap: anywhere; }
.triage-card-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; align-items:center; }
.triage-card-heading small,.triage-reason { color:var(--muted,#726d7c); font-size:13px; line-height:1.7; }
.triage-owner { padding:5px 9px; border-radius:8px; background:#f3edf9; color:#63516f; font-size:12px; }
.triage-card h3 { margin:14px 0 8px; font-size:18px; line-height:1.5; }
.triage-next { margin:12px 0; font-size:14px; line-height:1.7; }
.triage-risk { border-left:4px solid #b84b49; background:#fffafa; }
.triage-risk-list h2 { font-size:18px; margin:12px 0 0; }
.triage-source-details { margin-top:14px; font-size:13px; }
.triage-source-details > summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:#63516f; }
.triage-source-row { margin-top:14px; padding:14px; background:#f8f6fa; border-radius:12px; }
.triage-source-row p { white-space:pre-wrap; line-height:1.7; }
.triage-source-row small,.triage-source-row code { display:block; line-height:1.7; overflow-wrap:anywhere; }
.triage-source-row code { margin:8px 0; font-size:11px; }
.triage-filter[aria-pressed="true"] { border-color:#856c9c; box-shadow:inset 0 0 0 1px #856c9c; }
#daily-summary { grid-template-columns:repeat(5,minmax(0,1fr)); }
.triage-list-caption,.triage-empty { margin:0; padding:16px; color:var(--muted,#726d7c); font-size:14px; line-height:1.8; }
.triage-calendar-archive { margin:26px 0; }
.triage-calendar-archive > summary { cursor:pointer; padding:16px; border-radius:14px; border:1px solid var(--line,#e5deeb); background:white; font-size:15px; }
.triage-calendar-archive .calendar-overview { margin-top:14px; }
.triage-history-log { margin:18px 0; padding:18px; }
.triage-history-log > summary { cursor:pointer; min-height:44px; }
.triage-history-log #daily-timeline { margin-top:14px; }
.triage-filter:focus-visible,.triage-source-details summary:focus-visible,.triage-calendar-archive summary:focus-visible { outline:2px solid #856c9c; outline-offset:3px; }
@media (max-width:720px) {
  #daily-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  #daily-summary .task-stat { min-width:0; padding:14px; }
  #daily-summary .task-stat:last-child { grid-column:1 / -1; }
  .triage-card { padding:17px; border-radius:16px; }
  .triage-card h3 { font-size:17px; }
  .triage-source-row { padding:12px; }
  .triage-source-row .task-item-actions { display:flex; flex-wrap:wrap; gap:8px; }
  .triage-source-row .task-action-button { min-height:44px; white-space:normal; }
  #view-work .task-page-intro { padding:18px; margin-bottom:18px; gap:12px; }
  #view-work .task-page-intro h1 { font-size:25px; line-height:1.3; margin:8px 0; }
  #view-work .task-page-intro p { font-size:13px; line-height:1.6; }
  #view-work .task-intro-mark { padding:10px; min-width:72px; }
  #daily-summary .task-stat { gap:4px; min-height:88px; }
  #daily-summary .task-stat strong { font-size:26px; line-height:1.1; }
  #daily-summary .task-stat small { font-size:11px; line-height:1.5; }
}

.eagle-review-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;margin:0 0 22px;background:#edf3ed;border:1px solid #dce5da;border-radius:16px;text-decoration:none;color:#2f6652}.eagle-review-entry strong{font-size:16px}.eagle-review-entry span{font-size:13px}@media(max-width:500px){.eagle-review-entry{padding:16px;align-items:flex-start;flex-direction:column;gap:6px}}
