/* Responsive desktop workspace, shared by all existing business modules. */
:root{--bg:#f5f7f9;--ink:#243a35;--ink2:#73817d;--ink3:#74847f;--brand:#198165;--brand-soft:#eaf5ef;--line:#e7ede9;--grad:linear-gradient(120deg,#15765c,#269c76)}
body{font-size:14px;padding:0 0 85px}.sidebar{display:none}.header-date{display:none}.topbar{background:#fff;box-shadow:none;border-bottom:1px solid var(--line);padding:15px 20px}.village{color:var(--ink);font-size:16px}.demo-tag{color:var(--ink2);font-size:11px}.elder-toggle,.role-select{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink2);backdrop-filter:none}.elder-toggle.on{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}.role-select{max-width:180px}.view{padding:0 20px 25px;max-width:1560px;margin:auto}.page-heading{padding:24px 20px 19px;max-width:1560px;margin:auto}.page-heading h1{font-size:25px;letter-spacing:-.7px;margin:0 0 4px;font-weight:650}.page-heading p{color:var(--ink2);margin:0;font-size:13px}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.heading-kicker{font-size:11px;font-weight:600;letter-spacing:2px;color:var(--brand);margin-bottom:5px}.card{border-radius:13px;box-shadow:none;padding:22px}.card-title{font-size:15px}.card-title:before{display:none}.btn-primary{box-shadow:none}.btn:hover{border-color:var(--brand);color:var(--brand)}.btn-primary:hover{background:var(--brand-deep);color:#fff}.btn:disabled{cursor:wait;opacity:.6}.ico{display:inline-block;width:20px;height:20px;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:-70px;left:20px;background:var(--brand);color:white;padding:12px;z-index:200}.skip-link:focus{top:10px}:focus-visible{outline:3px solid #68b69d;outline-offset:3px}.welcome-banner{position:relative;overflow:hidden;display:flex;align-items:center;min-height:170px;border:1px solid #dcebe1;background:#eaf4ed;border-radius:14px;padding:26px 30px;margin-bottom:22px}.welcome-copy{position:relative;z-index:1;max-width:65%}.welcome-copy h2{font-size:24px;margin:0 0 8px;font-weight:650;letter-spacing:-.5px}.welcome-copy p{color:#678477;font-size:13px;margin:0 0 17px;line-height:1.8}.welcome-chip{display:inline-flex;align-items:center;gap:6px;color:#46745d;background:#ffffff9c;border:1px solid #d5e5d9;border-radius:6px;padding:5px 9px;font-size:11px}.village-art{position:absolute;width:370px;height:195px;right:5px;bottom:-2px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric{border:1px solid var(--line);border-radius:12px;background:#fff;padding:19px;position:relative;min-width:0}.metric-icon{float:right;width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#ecf5ef;color:#238469}.metric:nth-child(2) .metric-icon{background:#ebf2fc;color:#6086c5}.metric:nth-child(3) .metric-icon{background:#fff5e7;color:#c48b33}.metric:nth-child(4) .metric-icon{background:#eeedf9;color:#8980b6}.metric-label{font-size:12px;color:var(--ink2);margin:0 0 8px}.metric-value{font-size:30px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-1px}.metric-value small{font-size:12px;font-weight:400;color:var(--ink2);margin-left:7px;letter-spacing:0}.metric-foot{font-size:11px;margin-top:12px;color:var(--ink2)}.metric-foot strong{color:var(--brand);font-weight:500}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:22px;align-items:start}.section-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.section-top h2{font-size:15px;margin:0;font-weight:650}.count-pill{background:var(--brand-soft);color:var(--brand);border-radius:5px;font-size:11px;padding:2px 7px;margin-left:7px}.text-link{background:none;border:0;font:inherit;font-size:12px;color:var(--brand);cursor:pointer;padding:4px}.reminder-filters{display:flex;gap:7px;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:4px;flex-wrap:wrap}.reminder-filters button{font-family:inherit;border:0;background:none;color:var(--ink2);padding:5px 11px;border-radius:6px;cursor:pointer;font-size:12px}.reminder-filters button.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.remind{padding:17px 0;gap:12px;align-items:center}.remind-name{font-size:14px}.remind-sub{font-size:11px;margin-top:4px}.remind .badge{font-size:10px;border-radius:5px;padding:2px 6px}.remind .avatar{width:36px;height:36px;font-size:13px;border-radius:10px}.remind .btn{min-height:30px;background:white;color:var(--brand);border-color:#dbe9e0;font-size:11px;padding:5px 11px}.remind .btn:disabled{background:var(--brand-soft)}.reminder-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;color:var(--ink2);font-size:11px;gap:8px}.pager{display:flex;gap:6px}.pager button{border:1px solid var(--line);background:#fff;border-radius:6px;min-height:28px;font-family:inherit;color:var(--brand);cursor:pointer}.pager button:disabled{color:#a5afaa;cursor:default}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 9px}.quick-item{border:0;background:none;font-family:inherit;color:var(--ink);font-size:11px;cursor:pointer;display:flex;align-items:center;flex-direction:column;gap:8px;padding:3px}.quick-item span{display:grid;place-items:center;width:40px;height:40px;background:#f1f6f3;border-radius:11px;color:var(--brand);transition:background .15s}.quick-item:hover span{background:#dcefe4}.fund-total{font-size:28px;font-weight:650;letter-spacing:-.7px;margin:10px 0 14px}.fund-total small{font-size:12px;font-weight:400;color:var(--ink2);letter-spacing:0}.fund-label{font-size:11px;color:var(--ink2)}.fund-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:15px 0 3px;border-top:1px solid var(--line)}.fund-split b{font-size:14px;font-weight:600;display:block;margin-top:5px}.fund-bar{display:flex;gap:3px;height:6px;overflow:hidden;border-radius:4px;margin:0 0 17px}.fund-bar span:first-child{background:#66a68a}.fund-bar span:last-child{background:#e4b66e}.tag-row{display:flex;align-items:center;gap:12px;margin:14px 0;font-size:12px}.tag-row .bar{flex:1;margin:0;height:6px;background:#f0f4f1}.tag-row .bar-in{background:#86b49e}.tag-row b{font-size:12px;min-width:25px;text-align:right;font-weight:500}.tag-row>span{width:60px;flex-shrink:0;color:var(--ink2)}.dashboard-bottom{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:18px 0 0}.mini-stat{padding:0 12px;border-right:1px solid var(--line)}.mini-stat:first-child{padding-left:0}.mini-stat:last-child{border:0}.mini-stat b{display:block;font-size:19px;font-weight:600}.mini-stat span{font-size:10px;color:var(--ink2)}.dashboard-note{font-size:11px;color:var(--ink2);text-align:center;padding:8px 0 0}.modal-head{z-index:2}.modal{align-items:center}.modal-box{border-radius:16px;max-height:85dvh}.filterbar{margin-top:16px}.list-row:hover{background:#f8fbf9}.modal-body{overflow-wrap:anywhere}.view>.btn-block:first-child{width:auto;margin:0 0 16px auto}.tab-icon .ico{width:19px;height:19px}.tab{color:#6d8178}.tab.active{background:var(--brand-soft)}.tab.active::before{display:none}
@media(min-width:1000px){body{padding:0 0 0 222px}.sidebar{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:222px;background:#fff;border-right:1px solid var(--line);z-index:35;padding:28px 16px 18px}.side-brand{display:flex;gap:10px;align-items:center;font-size:15px;font-weight:650;padding:0 6px 30px;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--brand);color:#fff;width:36px;height:38px;border-radius:10px;font-size:24px;font-family:serif}.side-brand small{display:block;color:var(--ink2);font-size:8px;font-weight:400;margin-top:4px}.side-caption{padding:0 16px 12px;font-size:10px;letter-spacing:1.5px;color:#88968e}#sideNav{overflow-y:auto;scrollbar-width:thin;flex:1}.nav-item{display:flex;align-items:center;gap:13px;border:0;background:transparent;width:100%;padding:11px 16px;color:#6e8076;border-radius:8px;margin-bottom:5px;font-family:inherit;font-size:13px;cursor:pointer;text-align:left}.nav-item.active{background:#eaf4ed;color:#1c7d5e;font-weight:600}.nav-item.active:after{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand);margin-left:auto}.nav-item:hover{background:#f1f7f3}.nav-group{font-size:10px;color:#8c9a93;padding:18px 16px 10px;letter-spacing:1px}.side-foot{border-top:1px solid var(--line);padding:18px 8px 0;font-size:10px;color:#687f72}.side-foot small{display:block;font-size:9px;margin-top:6px;color:#8e9d94}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#62a583;margin-right:4px}.topbar{padding:15px 30px;min-height:76px}.header-date{display:block;font-size:11px;color:var(--ink2);margin-right:12px}.page-heading{padding:28px 30px 22px}.view{padding:0 30px 30px}.tabbar{display:none}.toast{bottom:30px}.sos{bottom:25px}.grid2{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1500px){.welcome-banner{min-height:190px}.village-art{right:35px;width:440px;height:230px}.metric{padding:24px}.metric-value{font-size:36px}.dashboard-columns{grid-template-columns:minmax(0,1.85fr) minmax(320px,1fr)}}
@media(max-width:700px){.topbar{padding:12px;gap:6px;flex-wrap:wrap}.topbar-main{flex-basis:45%}.village{font-size:14px}.role-select{max-width:150px;font-size:12px;flex:1}.elder-toggle{font-size:11px;padding:6px 8px}.view{padding:0 14px 22px}.page-heading{padding:22px 14px 16px}.page-heading h1{font-size:23px}.heading-row>.btn{font-size:11px;min-height:34px;padding:6px 10px}.welcome-banner{padding:22px;min-height:165px;margin-bottom:15px}.welcome-copy{max-width:80%}.welcome-copy h2{font-size:20px}.welcome-copy p{font-size:12px}.village-art{width:225px;right:-65px;opacity:.35}.welcome-chip{font-size:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.metric{padding:15px}.metric-value{font-size:28px}.metric-icon{width:30px;height:30px}.metric-foot{font-size:10px}.dashboard-columns{grid-template-columns:1fr;gap:0}.card{padding:18px;margin-bottom:16px}.dashboard-bottom{gap:0}.mini-stat{padding:0 8px}.mini-stat span{font-size:9px}.remind{gap:8px}.remind .avatar{width:31px;height:31px}.remind-name{font-size:13px}.remind-sub{font-size:11px}.reminder-footer{font-size:10px}.modal{align-items:flex-end}.modal-box{border-radius:16px 16px 0 0;max-height:88dvh}.quick-grid{grid-template-columns:repeat(3,1fr)}.tabbar{padding-bottom:env(safe-area-inset-bottom);scroll-padding:15px}.tab{min-width:70px;min-height:65px}.tab-text{font-size:11px}.dashboard-note{padding-bottom:10px}}
body.elder .metric-label,body.elder .metric-foot,body.elder .mini-stat span,body.elder .quick-item,body.elder .fund-label,body.elder .tag-row,body.elder .reminder-filters button,body.elder .reminder-footer{font-size:16px}body.elder .page-heading p,body.elder .welcome-copy p{font-size:17px}body.elder .nav-item{font-size:17px}body.elder .metric-icon{display:none}body.elder .mini-stat{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.page-heading,.skip-link{display:none!important}body{padding:0}}

/* Second pass: consistent surfaces, readable ledgers and polished module pages. */
:root {
  --ink: #233c32;
  --ink2: #64786e;
  --ink3: #708177;
  --line: #e2eae4;
  --bg: #f3f6f3;
  --brand: #177657;
}
body { font-size: 15px; }
button, input, select, textarea { transition: border-color .16s, background .16s, box-shadow .16s; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.workspace-search { display:none; position:relative; }
.workspace-search input { width:100%; border:1px solid var(--line); border-radius:9px; background:#f6f8f6; padding:10px 38px 10px 13px; font-size:12px; color:var(--ink); }
.workspace-search button { position:absolute; top:0; right:0; bottom:0; width:36px; border:0; background:none; color:var(--brand); cursor:pointer; font-size:25px; }
.side-brand { letter-spacing:.2px; }
.side-foot { background:linear-gradient(135deg,#eff6ef,#f9faf5); border:1px solid #e5eee3; border-radius:10px; padding:15px 12px; }
.side-foot small { font-size:10px; }
.heading-kicker { letter-spacing:2px; font-size:10px; }
.page-heading h1 { font-size:28px; }
.page-heading p { font-size:13px; }
.topbar { background:rgba(255,255,255,.96); }
.welcome-banner { background:linear-gradient(110deg,#e5f0e5 0%,#edf4e8 58%,#dfead9 100%); border-color:#d7e4d4; min-height:184px; }
.welcome-copy h2 { font-size:27px; letter-spacing:-.8px; }
.welcome-copy p { color:#54765e; }
.welcome-chip { border-color:#cfded0; color:#42694b; }
.metric { box-shadow:0 3px 12px #193b2303; border-color:#e3ebe2; }
.metric-label { font-size:13px; }
.metric-foot { font-size:12px; }
.metric-value { font-size:34px; }
.metric-icon { width:40px; height:40px; border-radius:12px; }
.metric:hover { border-color:#c9ddcd; }
.section-top h2 { font-size:16px; }
.card { box-shadow:0 2px 8px #203d2503; border-color:#e4ebe3; }
.remind-name { font-size:15px; }
.remind-sub { font-size:12px; color:#63766b; }
.remind .btn { min-height:35px; font-size:12px; border-radius:7px; }
.remind .btn:hover { background:#ebf5ec; }
.reminder-filters button { font-size:13px; padding:7px 12px; }
.reminder-footer { font-size:12px; }
.pager button { min-height:32px; padding:4px 10px; }
.quick-item { font-size:12px; gap:9px; padding:5px; border-radius:9px; }
.quick-item:hover { background:#f7faf6; }
.quick-item span { height:43px; width:43px; }
.quick-item:nth-child(2) span { background:#edf2fc; color:#5c81b5; }
.quick-item:nth-child(3) span { background:#fcf2e3; color:#bb8740; }
.quick-item:nth-child(5) span { background:#f0eef9; color:#8173af; }
.quick-item:nth-child(6) span { background:#edf5ee; color:#719565; }
.fund-label { font-size:12px; }
.mini-stat span { font-size:12px; }
.mini-stat b { font-size:23px; }
.tag-row { font-size:13px; }
.text-link { font-size:12px; }
.view[data-page="persons"] > .btn-block:first-child { margin-bottom:16px; }
.people-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
.people-toolbar h2 { margin:0; font-size:17px; font-weight:600; }
.people-toolbar p { font-size:12px; margin:4px 0 0; color:var(--ink2); }
.people-toolbar .btn { flex-shrink:0; }
.people-toolbar .count-pill { font-size:12px; }
.people-card { padding:0; overflow:hidden; }
.people-header.people-grid { display:none; }
.people-grid { display:grid; grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(180px,1.3fr) minmax(130px,1fr) 72px; gap:16px; align-items:center; }
.people-row { padding:18px 22px; border-top:1px solid #edf1ec; color:var(--ink); cursor:pointer; }
.people-row:hover { background:#f5faf4; }
.people-identity { display:flex; gap:12px; align-items:center; min-width:0; }
.people-identity .avatar { border-radius:11px; width:42px; height:42px; font-size:15px; }
.people-name { font-size:15px; font-weight:600; }
.people-meta { color:var(--ink2); font-size:12px; margin-top:3px; }
.people-contact { font-size:13px; font-variant-numeric:tabular-nums; }
.people-address { font-size:12px; margin-top:3px; color:var(--ink2); overflow-wrap:anywhere; }
.people-tags .badge { border-radius:5px; font-size:11px; margin-bottom:4px; padding:3px 7px; }
.people-footer { padding:14px 22px; border-top:1px solid var(--line); font-size:12px; color:var(--ink2); background:#fbfcfa; }
.people-number { font-size:12px; font-variant-numeric:tabular-nums; color:var(--ink2); }
.people-more { font-size:12px; color:var(--brand); text-align:right; font-weight:500; }
.filterbar input, .filterbar select { min-height:44px; font-size:14px; border-color:#dfe8df; }
.filterbar input { flex:2; }
.filterbar select { flex:1; }
.filterbar { gap:12px; }
.filterbar .btn { border-radius:8px; }
.seg { background:#e9eeE7; padding:5px; border-radius:11px; gap:4px; width:fit-content; max-width:100%; }
.seg-item { background:transparent; border-color:transparent; border-radius:8px; font-size:13px; padding:7px 17px; }
.seg-item.on { background:#fff; border-color:#e1e8dd; color:var(--brand); box-shadow:0 1px 4px #123d1410; }
.tile { padding:22px; border-radius:13px; border-color:#e1e9df; box-shadow:none; }
.tile-icon { display:grid; place-items:center; border-radius:11px; background:#eff5eb; width:44px; height:44px; margin-bottom:14px; font-size:23px; }
.tile-name { font-size:16px; }
.tile-count { margin-top:6px; }
.tile-meta { color:#6f8072; }
.tile-actions { padding-top:18px; }
.stat { border-radius:12px; padding:20px; box-shadow:none; }
.stat-num { font-size:29px; }
.list-row { padding:18px 8px; }
.row-name { font-size:15px; font-weight:550; }
.row-sub { font-size:13px; }
.modal { background:#15302466; backdrop-filter:blur(5px); }
.modal-head { padding:20px 24px; font-size:18px; }
.modal-body { padding:22px 24px; }
.modal-close { background:#edf3eb; color:#4c7055; }
.field span { color:#506859; font-size:13px; }
.field input,.field select,.field textarea { border-color:#dce7dc; border-radius:9px; background:#fcfefb; }
.modal-body .btn-block { margin-top:20px; }
.kv { padding:12px 0; font-size:14px; }
.toast { border-radius:11px; background:#234e39; }
.loading { background:white; padding:70px 20px; border:1px solid var(--line); border-radius:13px; }
.empty { color:#62776a; padding:44px 18px; }
.view:not([data-page="dash"]) { min-height:65vh; }
@media (min-width:1200px) {
  .workspace-search:not([hidden]) { display:block; width:220px; }
  .header-date { margin-right:4px; }
  .people-header.people-grid { display:grid; padding:13px 22px; font-size:12px; color:#718271; background:#f7faf5; border-bottom:1px solid var(--line); }
}
@media (min-width:1000px) {
  .sidebar { padding-top:25px; }
  .nav-item { font-size:14px; min-height:44px; padding-top:12px; padding-bottom:12px; }
  .view[data-page="persons"] .filterbar { margin:0 0 18px; }
  .view[data-page="events"] > .card, .view[data-page="gov"] > .card { margin-top:16px; }
}
@media (max-width:1199px) {
  .people-grid { grid-template-columns:minmax(140px,1fr) minmax(150px,1fr) 75px; gap:12px; }
  .people-number { display:none; }
  .people-tags { grid-column:1/3; grid-row:2; }
  .people-more { grid-column:3; grid-row:1/3; }
}
@media (max-width:700px) {
  .page-heading h1 { font-size:25px; }
  .welcome-copy h2 { font-size:22px; }
  .welcome-banner { min-height:180px; padding:23px; }
  .welcome-copy { max-width:90%; }
  .village-art { opacity:.23; }
  .metric { padding:16px; }
  .metric-foot { font-size:11px; line-height:1.7; min-height:19px; }
  .metric-value { font-size:31px; }
  .metric-label { font-size:12px; }
  .metric-icon { width:29px; height:29px; border-radius:8px; }
  .metric-icon .ico { width:17px; height:17px; }
  .card { padding:20px 17px; }
  .people-card { padding:0; }
  .people-toolbar { align-items:center; }
  .people-toolbar h2 { font-size:16px; }
  .people-toolbar .btn { font-size:12px; padding:9px 11px; }
  .people-toolbar p { max-width:200px; line-height:1.7; }
  .people-grid { grid-template-columns:minmax(0,1fr) 60px; gap:8px; }
  .people-row { padding:18px 16px; }
  .people-contact { grid-column:1; padding-left:54px; }
  .people-tags { grid-column:1; grid-row:3; padding-left:54px; }
  .people-more { grid-column:2; grid-row:1/4; }
  .people-footer { font-size:11px; padding:13px 16px; }
  .filterbar { gap:9px; }
  .filterbar input { flex-basis:100%; }
  .filterbar select { min-width:0; }
  .remind-name { font-size:14px; }
  .remind-sub { font-size:12px; }
  .remind .badge { font-size:10px; }
  .remind .btn { font-size:12px; padding:5px 9px; }
  .remind { align-items:flex-start; }
  .remind .avatar { margin-top:3px; }
  .mini-stat { padding:0 7px; }
  .mini-stat span { font-size:10px; }
  .mini-stat b { font-size:21px; }
  .seg { width:100%; }
  .seg-item { flex:1; padding:7px 10px; white-space:nowrap; }
  .tile { padding:17px; }
  .modal-body { padding:20px 18px; }
  .modal-head { padding:18px; }
}
body.elder .people-name { font-size:21px; }
body.elder .people-meta,body.elder .people-contact,body.elder .people-address,body.elder .people-number,body.elder .people-more,body.elder .people-footer { font-size:17px; }
body.elder .people-tags .badge { font-size:15px; }
body.elder .people-toolbar p { font-size:16px; }
body.elder .people-grid { grid-template-columns:1fr; }
body.elder .people-number,body.elder .people-header { display:none; }
body.elder .people-tags,body.elder .people-contact,body.elder .people-more { grid-column:1; grid-row:auto; padding:0; text-align:left; }
body.elder .metric-foot { min-height:0; }
@media print { .workspace-search { display:none!important; } }

/* 2026-11-02: task-led visual hierarchy and responsive navigation. */
:root {
  --bg:#f4f6f5; --ink:#20332d; --ink2:#61736c; --ink3:#6d7f77;
  --brand:#186b50; --brand-deep:#10563f; --brand-soft:#eaf3ee;
  --line:#e3eae6; --danger:#b74a3c; --warn:#9c6724;
  --danger-soft:#fcf0ec; --warn-soft:#faf2e5;
}
body {font-family:"Microsoft YaHei UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;letter-spacing:.05px;}
button, input, select, textarea {font-family:inherit;}
button {touch-action:manipulation;}
.ico {stroke-width:1.7;}
.topbar {box-shadow:none;background:#fff;min-height:80px;gap:12px;}
.village {font-size:15px;font-weight:650;}
.demo-tag {font-size:12px;color:#718078;margin-top:3px;}
.header-date {font-size:12px;}
.role-select {border-radius:8px;font-size:12px;max-width:178px;}
.elder-toggle {font-size:12px;min-height:36px;border-radius:8px;}
.workspace-search input {background:#f6f8f6;font-size:12px;min-height:38px;}
.page-heading {padding-top:30px;padding-bottom:23px;}
.heading-kicker {font-size:11px;letter-spacing:1px;color:#7a8d82;margin-bottom:7px;}
.page-heading h1 {font-size:30px;font-weight:650;line-height:1.3;letter-spacing:-.8px;margin-bottom:8px;}
.page-heading p {font-size:14px;line-height:1.6;}
.heading-row>.btn {background:#fff;border-color:#dce5df;font-size:13px;box-shadow:0 1px 2px #1c3c2104;}
.heading-row>.btn .ico {width:16px;height:16px;}
.view {max-width:1510px;}
.card {padding:24px;border-color:#e1e9e3;box-shadow:0 2px 5px #1d332703;border-radius:14px;}
.section-top {margin-bottom:20px;gap:16px;}
.section-top h2 {font-size:17px;font-weight:650;line-height:1.4;}
.section-eyebrow {font-size:10px;color:#7c8f83;letter-spacing:1.8px;margin-bottom:5px;}
.section-meta {font-size:12px;color:#6e8175;white-space:nowrap;}
.count-pill {font-size:12px;font-weight:500;background:#edf3ee;color:#45725a;padding:3px 8px;vertical-align:middle;}
.welcome-banner {background:#164d3b;border:0;min-height:184px;padding:28px 32px;border-radius:16px;margin-bottom:22px;isolation:isolate;}
.welcome-banner:after {content:"";position:absolute;width:370px;height:370px;border:1px solid #a3c7ae24;border-radius:50%;right:-42px;top:-100px;z-index:-1;}
.welcome-copy {max-width:74%;}
.welcome-eyebrow {color:#c3d6c8;display:flex;align-items:center;font-size:12px;margin-bottom:13px;gap:5px;}
.welcome-eyebrow .live-dot {background:#b0cc9c;width:5px;height:5px;}
.welcome-copy h2 {font-size:26px;color:#fff;font-weight:600;line-height:1.4;letter-spacing:.2px;margin:0 0 9px;}
.welcome-copy p {color:#bed1c3;font-size:13px;line-height:1.8;margin:0 0 19px;}
.hero-action {display:inline-flex;gap:24px;align-items:center;background:#dfebce;color:#214a32;border:0;border-radius:7px;font-size:12px;font-weight:600;min-height:36px;padding:8px 13px;cursor:pointer;}
.hero-action:hover {background:#f0f5df;}
.hero-action>span {font-size:17px;line-height:1;}
.village-art {right:4px;bottom:-14px;width:330px;height:185px;opacity:.64;mix-blend-mode:luminosity;z-index:-1;}
.hero-caption {position:absolute;right:27px;top:28px;color:#a6c1ad;font-size:10px;letter-spacing:2px;}
.metrics {gap:18px;margin-bottom:26px;}
.metric {display:block;text-align:left;color:var(--ink);font:inherit;border:1px solid #e0e8e2;padding:20px 22px;border-radius:12px;box-shadow:0 1px 4px #1b382004;background:#fff;cursor:pointer;transition:box-shadow .18s,border-color .18s,transform .18s;}
.metric:hover {border-color:#b2cebb;box-shadow:0 5px 16px #224c3110;transform:translateY(-2px);}
.metric-top {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;}
.metric-label {font-size:13px;color:#60746a;margin:0;}
.metric-icon {float:none;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;}
.metric-icon .ico {width:18px;height:18px;}
.metric-value {display:block;font-family:"Segoe UI","Helvetica Neue",sans-serif;font-size:36px;font-weight:650;line-height:1.2;letter-spacing:-1.5px;}
.metric-value small {font-family:"Microsoft YaHei",sans-serif;font-size:12px;letter-spacing:0;margin-left:9px;color:#718177;}
.metric-foot {display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#6e8075;margin-top:13px;}
.metric-foot>span {color:#879c8d;font-size:16px;}
.metric-attention {border-top:3px solid #c6924c;padding-top:18px;}
.metric-attention .metric-foot {color:#9e682d;}
.dashboard-columns {grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:24px;}
.dashboard-primary,.dashboard-secondary {min-width:0;}
.priority-summary {display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dfeadf;background:#f3f8f1;border-radius:8px;margin-bottom:20px;}
.priority-summary.has-overdue {background:#fcf7ee;border-color:#f1e4ce;}
.priority-icon {display:grid;place-items:center;width:32px;height:32px;background:#fff;border-radius:7px;color:#658254;flex-shrink:0;}
.has-overdue .priority-icon {color:#b17a35;}
.priority-summary strong {display:block;font-size:13px;font-weight:600;color:#84602d;margin-bottom:4px;}
.priority-summary>div>span {display:block;color:#7f745f;font-size:12px;line-height:1.7;}
.reminder-card {scroll-margin-top:100px;}
.reminder-filters {padding:0;border-bottom:1px solid var(--line);gap:20px;margin:0;flex-wrap:nowrap;}
.reminder-filters button {background:none;border-radius:0;padding:0 0 13px;border-bottom:2px solid transparent;font-size:13px;min-height:40px;color:#718176;white-space:nowrap;}
.reminder-filters button.on {background:none;border-bottom-color:var(--brand);color:var(--brand);font-weight:600;}
.reminder-filters button>span {font-size:10px;padding:2px 5px;border-radius:4px;background:#eff3ef;margin-left:4px;font-weight:400;}
.remind {padding:17px 0;gap:13px;align-items:center;border-color:#edf1ed;}
.remind .avatar {width:37px;height:37px;background:#f0f5f0;border-radius:10px;font-size:14px;}
.remind .avatar.danger {background:#fcf0ed;color:#b85747;}
.remind .avatar.warn {background:#faf3e7;color:#a77c37;}
.remind-name {font-size:15px;gap:8px;font-weight:600;}
.remind-sub {font-size:12px;color:#667b6e;line-height:1.7;margin-top:3px;}
.remind .badge {font-size:10px;font-weight:400;padding:2px 6px;border-radius:4px;}
.remind .btn {min-height:35px;font-size:12px;border-radius:6px;min-width:55px;border-color:#d8e5dc;}
.reminder-footer {font-size:12px;color:#6c7f71;padding-top:18px;}
.pager button {min-height:32px;padding:5px 9px;font-size:12px;}
.dashboard-bottom {grid-template-columns:repeat(3,1fr);padding-top:0;gap:0;}
.mini-stat {font:inherit;cursor:pointer;background:none;border:0;border-right:1px solid var(--line);text-align:left;padding:0 18px;color:var(--ink);}
.mini-stat b {font-family:"Segoe UI",sans-serif;font-size:27px;font-weight:600;margin-bottom:7px;}
.mini-stat span {font-size:12px;color:var(--ink2);}
.mini-stat:hover b {color:var(--brand);}
.quick-grid {gap:18px 12px;}
.quick-item {padding:5px 0;font-size:12px;gap:9px;background:none;}
.quick-item strong {font-weight:400;}
.quick-item span {width:43px;height:43px;border-radius:12px;}
.quick-item:hover strong {color:var(--brand);}
.finance-card {background:#fdfefc;}
.fund-label {font-size:12px;color:#718272;}
.fund-total {font-family:"Segoe UI",sans-serif;font-size:34px;font-weight:600;letter-spacing:-1px;line-height:1.2;margin:10px 0 23px;color:#24513b;}
.fund-split {gap:16px;padding-top:16px;}
.fund-split b {font-family:"Segoe UI",sans-serif;font-size:16px;color:#2c5140;letter-spacing:.1px;margin-top:8px;}
.fund-split>div:last-child b {color:#9c763d;}
.legend-dot {display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:5px;vertical-align:middle;}
.legend-dot.income {background:#709a7c;}
.legend-dot.expense {background:#c9aa76;}
.text-link {font-size:12px;color:#56785f;min-height:32px;}
.tag-row {width:100%;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;gap:12px;font:inherit;margin:16px 0;}
.tag-row>span:first-child {width:46px;font-size:12px;flex-shrink:0;color:#64786a;text-align:left;}
.tag-row .bar {height:6px;flex:1;margin:0;background:#eef3ec;display:block;}
.tag-row .bar-in {display:block;height:100%;background:#78a184;border-radius:6px;}
.tag-row b {font-family:"Segoe UI",sans-serif;font-size:13px;font-weight:500;min-width:38px;}
.tag-row b small {font-family:"Microsoft YaHei",sans-serif;font-size:10px;font-weight:400;margin-left:4px;color:#819082;}
.tag-row:hover>span:first-child {color:var(--brand);}
.chart-note {font-size:10px;color:#788b7a;line-height:1.7;margin:22px 0 0;}
.dashboard-note {display:flex;justify-content:space-between;gap:14px;font-size:11px;color:#7d8f80;padding-top:4px;}
.people-toolbar {margin-bottom:22px;}
.people-toolbar h2 {font-size:18px;}
.people-toolbar p {font-size:13px;}
.people-card {padding:0;}
.people-row {padding-top:20px;padding-bottom:20px;}
.people-name {font-size:15px;}
.people-header.people-grid {background:#f2f6f1;font-size:12px;color:#647c69;}
.people-row:hover {background:#f7faf5;}
.people-meta,.people-address,.people-number {color:#6e8173;}
.people-footer {color:#718472;}
.people-more {font-size:12px;}
.seg {padding:4px;border-radius:9px;background:#e9eee9;gap:4px;}
.seg-item {border-radius:6px;font-size:13px;padding:8px 15px;}
.seg-item.on {box-shadow:0 1px 4px #0d341210;}
.btn {border-radius:8px;font-weight:500;}
.btn-primary {box-shadow:none;}
.grid2 {gap:18px;}
.tile {border-radius:12px;padding:22px;}
.tile-icon {background:#eff4eb;border-radius:10px;}
.tile-name {font-size:16px;line-height:1.6;}
.tile-meta {font-size:12px;line-height:1.8;}
.tile-actions .btn {font-size:12px;}
.modal-box {max-width:600px;border-radius:16px;}
.modal-head {padding:20px 24px;font-size:18px;border-bottom:1px solid var(--line);}
.modal-body {padding:24px;}
.modal-close {font-size:12px;background:#f0f4ee;min-height:34px;}
.field span {font-size:13px;margin-bottom:7px;}
.field input,.field select,.field textarea {min-height:45px;border-color:#dce5db;background:#fcfdfa;}
.function-menu {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.function-item {display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:10px;min-height:94px;background:#fcfefb;font:inherit;font-size:13px;cursor:pointer;color:#4c6c55;}
.function-item.selected {background:var(--brand-soft);border-color:#8eb69b;color:var(--brand);}
.function-item:hover {background:#eef5eb;}
.menu-note {font-size:13px;color:var(--ink2);margin:0 0 18px;}
.tabbar {display:flex;overflow:visible;padding:5px 8px max(7px,env(safe-area-inset-bottom));box-shadow:0 -2px 18px #14341a08;background:#fffffffa;gap:4px;}
.tab {flex:1;min-width:0;padding:8px 2px;min-height:58px;border-radius:9px;color:#6f8274;gap:5px;}
.tab-text {font-size:11px;}
.tab.active {background:#eef5ec;color:#1b6b47;}
.tab.active::before {display:none;}
.tab-icon .ico {width:21px;height:21px;}
.skip-link:focus {border-radius:8px;}
.priority-summary:empty {display:none;}
:focus-visible {outline:3px solid #88b89b;outline-offset:3px;}
@media(min-width:1000px) {
  body {padding-left:232px;}
  .sidebar {width:232px;padding:26px 15px 18px;background:#173e30;border-right:0;}
  .side-brand {color:#f6faf1;padding:0 7px 30px;font-size:15px;gap:10px;}
  .side-brand small {color:#a3bca8;font-size:9px;margin-top:6px;}
  .brand-mark {background:#d5e5bf;color:#244731;border-radius:10px;font-size:25px;width:36px;height:38px;}
  .side-caption {color:#8fac94;font-size:10px;letter-spacing:1px;padding-left:16px;padding-bottom:12px;}
  .nav-item {color:#c0d1c3;font-size:13px;padding:10px 15px;min-height:42px;gap:13px;border-radius:7px;margin-bottom:5px;}
  .nav-item .ico {width:18px;height:18px;opacity:.85;}
  .nav-item.active {background:#dfebcf;color:#294b34;font-weight:600;}
  .nav-item.active .ico {opacity:1;}
  .nav-item.active:after {width:4px;height:4px;background:#447652;}
  .nav-item:hover {background:#ffffff0c;color:#fff;}
  .nav-item.active:hover {background:#e8f0de;color:#294b34;}
  .nav-group {color:#87a58f;font-size:10px;letter-spacing:1px;padding:19px 16px 10px;}
  .side-foot {color:#bfd2c0;background:#1e4936;border:1px solid #50725938;border-radius:9px;padding:14px 12px;font-size:11px;}
  .side-foot small {color:#97b49c;font-size:9px;margin-top:7px;}
  .side-foot .live-dot {background:#a7c88a;}
  .topbar {padding:17px 32px;}
  .view {padding:0 32px 30px;}
  .page-heading {padding-left:32px;padding-right:32px;max-width:1510px;}
  .tabbar {display:none;}
}
@media(min-width:1500px) {
  .view {padding-left:40px;padding-right:40px;}
  .page-heading {padding-left:40px;padding-right:40px;}
  .welcome-banner {min-height:194px;}
  .village-art {width:370px;height:210px;right:20px;}
}
@media(min-width:1000px) and (max-width:1220px) {
  body {padding-left:206px;}
  .sidebar {width:206px;}
  .side-brand {font-size:13px;gap:8px;}
  .side-brand small {font-size:8px;}
  .dashboard-columns {grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px;}
  .card {padding:20px;}
  .people-card {padding:0;}
  .metric {padding:17px;}
  .metric-attention {padding-top:15px;}
  .metric-foot {font-size:10px;}
  .metrics {gap:12px;}
  .welcome-copy h2 {font-size:23px;}
  .welcome-copy {max-width:83%;}
  .village-art {opacity:.3;}
}
@media(max-width:999px) {
  .dashboard-columns {grid-template-columns:1fr;gap:0;}
  .dashboard-secondary {display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .shortcuts-card {grid-column:1/-1;}
  .quick-grid {grid-template-columns:repeat(6,1fr);}
  .metrics {gap:12px;}
  .metric {padding:18px;}
  .metric-attention {padding-top:16px;}
}
@media(max-width:700px) {
  body {padding-bottom:90px;}
  .topbar {padding:12px 16px;gap:7px;min-height:80px;}
  .topbar-main {flex:1 1 55%;}
  .village {font-size:14px;}
  .demo-tag {font-size:10px;}
  .elder-toggle {font-size:11px;padding:6px 9px;min-height:33px;}
  .role-select {max-width:100%;flex:1 1 100%;padding:7px 9px;min-height:32px;font-size:11px;background:#f7f9f5;}
  .view {padding:0 16px 24px;}
  .page-heading {padding:23px 16px 19px;}
  .page-heading h1 {font-size:27px;margin-bottom:6px;}
  .heading-kicker {font-size:10px;margin-bottom:7px;}
  .page-heading p {font-size:12px;}
  .heading-row {gap:10px;align-items:center;}
  .heading-row>.btn {padding:7px 9px;font-size:11px;min-height:34px;gap:4px;white-space:nowrap;}
  .welcome-banner {padding:24px 22px;min-height:198px;border-radius:12px;margin-bottom:16px;}
  .welcome-copy {max-width:100%;}
  .welcome-eyebrow {font-size:11px;margin-bottom:12px;}
  .welcome-copy h2 {font-size:21px;line-height:1.5;letter-spacing:-.3px;max-width:265px;}
  .welcome-copy p {font-size:12px;max-width:250px;line-height:1.9;margin-bottom:16px;color:#c4d7c7;}
  .hero-action {font-size:11px;min-height:35px;padding:7px 12px;}
  .village-art {width:190px;height:125px;right:-40px;bottom:-18px;opacity:.22;}
  .hero-caption {display:none;}
  .metrics {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;}
  .metric {padding:16px;border-radius:10px;}
  .metric-attention {padding-top:14px;}
  .metric-value {font-size:32px;}
  .metric-label {font-size:12px;}
  .metric-icon {width:27px;height:27px;border-radius:7px;}
  .metric-top {gap:4px;margin-bottom:9px;}
  .metric-foot {font-size:10px;margin-top:11px;min-height:0;line-height:1.8;}
  .metric-foot>span {display:none;}
  .card {padding:21px 17px;border-radius:12px;margin-bottom:18px;}
  .section-top h2 {font-size:17px;}
  .section-top {margin-bottom:17px;gap:8px;}
  .section-meta {font-size:10px;}
  .section-eyebrow {font-size:9px;}
  .priority-summary {padding:12px;gap:10px;margin-bottom:15px;}
  .priority-summary strong {font-size:12px;}
  .priority-summary>div>span {font-size:11px;}
  .priority-icon {width:28px;height:28px;}
  .priority-icon .ico {width:17px;height:17px;}
  .reminder-filters {gap:15px;}
  .reminder-filters button {font-size:12px;}
  .reminder-filters button>span {font-size:9px;margin-left:2px;padding:2px 3px;}
  .remind {padding:17px 0;gap:9px;}
  .remind .avatar {width:31px;height:33px;font-size:12px;border-radius:8px;}
  .remind-name {font-size:14px;gap:5px;}
  .remind-sub {font-size:11px;line-height:1.8;}
  .remind .badge {font-size:9px;padding:2px 4px;}
  .remind .btn {font-size:11px;padding:5px 8px;min-width:42px;min-height:33px;}
  .reminder-footer {font-size:10px;gap:7px;}
  .pager {gap:4px;}
  .pager button {font-size:10px;padding:4px 7px;min-height:31px;}
  .mini-stat {padding:0 13px;}
  .mini-stat b {font-size:25px;}
  .mini-stat span {font-size:10px;}
  .dashboard-secondary {display:block;}
  .quick-grid {grid-template-columns:repeat(3,1fr);gap:18px 12px;}
  .quick-item {font-size:12px;}
  .fund-total {font-size:34px;}
  .dashboard-note {display:block;text-align:center;font-size:10px;line-height:1.9;}
  .dashboard-note>span {display:block;}
  .people-card {padding:0;}
  .people-toolbar {gap:10px;margin-bottom:18px;}
  .people-toolbar h2 {font-size:16px;}
  .people-toolbar p {font-size:11px;}
  .people-toolbar .btn {min-height:40px;}
  .people-row {padding:18px 15px;}
  .people-more {font-size:11px;}
  .people-footer {font-size:11px;}
  .people-tags .badge {font-size:11px;}
  .modal-box {border-radius:17px 17px 0 0;}
  .modal-body {padding:20px 18px;}
  .modal-head {padding:18px;font-size:17px;}
  .function-menu {gap:9px;}
  .function-item {font-size:12px;min-height:88px;gap:10px;}
  .function-item .ico {width:21px;height:21px;}
  .grid2 {gap:12px;}
  .tile {padding:17px;}
  .tile-name {font-size:15px;}
  .tile-actions {flex-wrap:wrap;}
  .tile-actions .btn {flex:1;}
  .reminder-card {scroll-margin-top:125px;}
}
body.elder .welcome-copy h2 {font-size:27px;}
body.elder .welcome-copy p {font-size:18px;max-width:none;}
body.elder .welcome-eyebrow,body.elder .hero-action {font-size:16px;}
body.elder .metric-label,body.elder .metric-foot {font-size:16px;}
body.elder .metric-top {flex-wrap:wrap;}
body.elder .priority-summary strong,body.elder .priority-summary>div>span {font-size:17px;}
body.elder .reminder-filters {flex-wrap:wrap;gap:12px;}
body.elder .reminder-filters button {font-size:17px;}
body.elder .reminder-filters button>span {font-size:14px;}
body.elder .mini-stat span,body.elder .quick-item,body.elder .section-meta,body.elder .fund-label,body.elder .chart-note {font-size:16px;}
body.elder .nav-item,body.elder .function-item {font-size:18px;}
body.elder .function-menu {grid-template-columns:repeat(2,1fr);}
body.elder .people-header.people-grid {display:none;}
body.elder .tab {min-width:0;padding:8px 2px;}
body.elder .tab-text {white-space:normal;font-size:14px;line-height:1.35;}
@media(max-width:700px) {
  body.elder .metrics {grid-template-columns:1fr 1fr;}
  body.elder .metric {padding:16px 12px;}
  body.elder .remind {flex-wrap:wrap;}
  body.elder .remind-main {flex-basis:calc(100% - 60px);}
  body.elder .remind .btn {margin-left:auto;}
  body.elder .dashboard-bottom {grid-template-columns:1fr;gap:18px;}
  body.elder .mini-stat {border-right:0;border-bottom:1px solid var(--line);padding:0 0 16px;}
  body.elder .reminder-footer {flex-wrap:wrap;}
}
.heading-kicker,.section-eyebrow,.section-meta,.fund-label,.chart-note,.dashboard-note {color:#607466;}
.people-meta,.people-address,.people-number,.people-footer,.tile-meta {color:#637567;}
.priority-summary>div>span {color:#776a53;}
.tile-actions .btn {white-space:nowrap;}
@media(max-width:700px) {.tile-actions {display:grid;grid-template-columns:1fr;gap:7px;}.tile-actions .btn {min-height:36px;width:100%;}}
.format-guide {background:#edf4ed;border:1px solid #dfe9dc;border-radius:10px;padding:15px 18px;margin-bottom:22px;}
.format-guide summary {cursor:pointer;color:#42674c;font-size:13px;font-weight:500;line-height:1.7;}
.format-guide summary>span {font-weight:400;font-size:11px;color:#738b76;margin-left:12px;}
.format-guide[open] summary {padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #d7e4d3;}
.format-guide .card-note {font-size:13px;line-height:1.9;}
.tile-icon .ico {width:23px;height:23px;color:#548362;}
@media(max-width:700px) {.format-guide {padding:13px 15px;margin-bottom:18px;}.format-guide summary>span {display:block;margin:5px 0 0 16px;}}
body.elder .format-guide summary,body.elder .format-guide .card-note {font-size:18px;}
@media print {.sidebar,.page-heading,.workspace-search,.dashboard-note {display:none!important;}body {padding:0!important;}}
