/* Forest glass: opaque text over translucent surfaces, with solid fallbacks. */
:root{--radius:28px;--glass:#f9fbf8;--glass-strong:#fff;--glass-line:#dce7dd;--glass-shadow:0 12px 38px #193e2810,inset 0 1px 0 #ffffff;--text3:#65776b}
body{background:radial-gradient(ellipse at 94% 6%,#d0f58a45,transparent 38%),radial-gradient(ellipse at 10% 64%,#bdd7cb70,transparent 43%),#f2f5f2;background-attachment:fixed}
.card,.stat-row{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow);border-radius:var(--radius)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 :root{--glass:#ffffffb8;--glass-strong:#fffffff0;--glass-line:#ffffffdb}
 .card,.stat-row{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
}
.head{padding:4px 0 12px}.page-kicker{color:#526c5c;letter-spacing:2.1px}.head h1{letter-spacing:-1px}.view.active{gap:24px}.card h2{letter-spacing:0}.main{padding-top:38px}

/* Floating navigation keeps the original forest and lime palette. */
@media(min-width:1051px){.sidebar{inset:16px auto 16px 16px;width:calc(var(--rail) - 24px);border:1px solid #53705f66;border-radius:30px;padding:28px 14px 22px;background:#173b2df2;box-shadow:0 18px 48px #173b2d24,inset 0 1px 0 #ffffff20;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.sidebar .logo{padding-left:8px;padding-right:8px}.nav-item{border-radius:17px;min-height:50px}.nav-item.active{box-shadow:0 5px 18px #132e2822,inset 0 1px 0 #ffffff70}.sidebar-foot{padding-left:8px;padding-right:8px}}
.cloud-bar{background:#eef5eae8;border-bottom-color:#d9e5d5;color:#465f4c}.cloud-bar button{min-height:36px;border-radius:10px}.cloud-bar>span:before{background:#647a69}.cloud-bar button:first-of-type{border-radius:11px;background:#ffffffc9}
.tabbar{background:var(--glass-strong);box-shadow:0 -6px 30px #214e3c12,inset 0 1px 0 white}.tabbar .item{border-radius:16px}.tabbar .item.active{background:#d0f58a70;color:#173d2e}.floating-add{border-radius:20px;border:1px solid #ffffff70;box-shadow:0 8px 24px #173d2e30,inset 0 1px 0 #ffffff30}

/* Ledger hierarchy: readable figures, quiet rows and distinct controls. */
.book-stat{border-radius:26px;gap:12px}.book-stat:first-child{background:linear-gradient(125deg,#214e3cf5,#173d2ef0);border:1px solid #426950;box-shadow:0 14px 28px #173d2e22,inset 0 1px 0 #ffffff24}.book-stat:first-child .ledger-total{color:#d0f58a}.book-stat:first-child:after{width:145px;height:145px;right:-62px;bottom:-76px}
.book-stat-label,.book-stat .small,.book-stat .link-button{font-size:12px}.ledger-controls input[type=month],.ledger-controls .search,.ledger-filter-row select{background:var(--glass-strong);border-color:#d7e4d8;border-radius:16px}.ledger-filter-row{padding:16px 18px;border:1px solid var(--glass-line);border-radius:22px;background:var(--glass)}
.transaction{border-radius:14px;padding:15px 9px;gap:12px}.transaction:hover{background:#e8f1e8a6}.transaction .small,.book-day-label{font-size:12px;color:#576d5a}.transaction .detail b{font-weight:600}.transaction .category-icon{background:#e2eedec9;border:1px solid #d3e4cb;border-radius:15px}.book-day-label{padding-left:9px;padding-right:9px}.book-account-row>strong{font-variant-numeric:tabular-nums}.book-account-row>.small,.book-account-row>b .small,.book-accounts>.small{font-size:12px}.book-donut>div{background:#f8fbf5}.book-category-row{border-radius:10px;padding-left:7px;padding-right:7px}.filtered-totals{padding:12px;background:#edf4e9c9;border-radius:13px;color:#496249}

/* Sheets retain a high-opacity reading plane above the blurred backdrop. */
dialog,dialog.recorder-dialog{background:var(--glass-strong);border:1px solid #ffffffde;border-radius:30px;box-shadow:0 30px 100px #102e2a40,inset 0 1px 0 #ffffff;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}dialog::backdrop{background:#102f2866;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.close-btn{width:44px;height:44px;border-radius:16px;border:1px solid #dce8d9}.sheet-footer{background:var(--glass-strong);padding-bottom:4px}.category-grid button{border-radius:17px;font-size:12px;color:#52644a}.category-grid button.selected{background:#e0edcf;border:1px solid #cadcb8}.entry-category-icon{border-radius:13px}.entry-value-card{border-radius:20px;border:1px solid #d9e7d1;background:#ffffffef;box-shadow:inset 0 1px 0 white}.entry-result{color:#526c46;font-size:12px}.entry-options label{border-radius:13px;background:#ffffffd9;color:#52624c;min-height:44px}.entry-budget-toggle{min-height:42px;font-size:12px;border-radius:13px;color:#486144}.entry-budget-toggle[aria-pressed=true]{color:#38552b;background:#e1edc7;border-color:#a5bd89}.entry-keypad{gap:8px;padding:10px 0 0}.entry-keypad button{border-radius:16px;background:#ffffffde;border:1px solid #dfe8d9;min-height:50px}.entry-keypad .key-again{background:#e7efdc}.entry-keypad .key-done{background:#214e3c;color:#d0f58a;border-color:#214e3c;box-shadow:0 4px 12px #214e3c25}.entry-operators button{min-height:40px}.quick-entry .form-error{font-size:12px}.analysis-numbers>div,.analysis-result:not(:empty){border-radius:20px;background:#edf5e4d9}.analysis-numbers span,.managed-account .small,.preview-row .review{font-size:12px}.drop{border-radius:22px;background:#edf6e3c9}.managed-account.archived{background:#edf1eb;color:#657060}

/* Class schedule keeps a complete table and solid sticky time labels. */
.timetable-scroll{border-radius:20px;border-color:#d9e4d6;background:#f9fcf7}.timetable-grid td{background:#ffffffd9}.timetable-grid thead th,.timetable-grid tbody th,.timetable-grid caption{background:#edf4e7;color:#405b40}.timetable-grid .today-column{background:#ddecce}.scheduled-course{border-radius:15px;padding:12px 10px}.scheduled-course.is-active{background:#e3efd9;border:1px solid #c9ddb9;box-shadow:inset 0 1px 0 #ffffffb0}.scheduled-course.is-active.elective{background:#e4efed;border-color:#c6ddd6}.scheduled-course.is-inactive{background:#eef1ed;color:#657263;border-color:#ccd5c8;opacity:1}.scheduled-course .course-clock{font-weight:700;letter-spacing:.1px}.period-times time{color:#4b644c}.scheduled-course span,.scheduled-course small,.scheduled-course .course-clock,.period-times>div,.timetable-grid th small{font-size:12px}.daily-slot{border-radius:17px;border:1px solid #d6e3ce;background:#e9f2e1}.daily-course-item .small,.daily-date-nav .small,.next-course .small{font-size:12px}.daily-course-item{border-top-color:#dce7d7}.next-course{border-radius:20px;background:#e7f1dce0}.daily-week-strip button{border-radius:17px}.daily-date-nav>.btn,.cal-nav button{min-width:40px;min-height:40px;border-radius:12px}.daily-course-list{scrollbar-gutter:stable}.kb-col{border-radius:24px;background:#e4eddf99}.kb-col.p1{background:#f2eddfaa}.kb-col.p2{background:#e1ebe5aa}.task-card{border-radius:20px;background:#ffffffd9}.task-card select{min-height:40px}.pri{font-size:12px}.weight-svg{background:#f4f8efd9;border-radius:18px}.fitness-row .category-icon{border-radius:16px}

/* Transparency and contrast preferences must never fade foreground text. */
@media(prefers-reduced-transparency:reduce){:root{--glass:#f9fbf8;--glass-strong:#fff;--glass-line:#dce7dd}body{background:#f2f5f2}.card,.stat-row,dialog,dialog.recorder-dialog,.sidebar,.tabbar,dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.sidebar{background:#173b2d}.book-stat:first-child{background:#214e3c}.tabbar{background:white}}
@media(prefers-contrast:more){:root{--glass:#fff;--glass-strong:#fff;--glass-line:#708871;--text2:#344f3c;--text3:#344f3c}.card,.stat-row{backdrop-filter:none}.small,.muted,.transaction .small,.book-day-label{color:#344f3c}.scheduled-course.is-inactive{color:#465144;border-color:#70816c}.btn,.field input,.field select{border-color:#708871}}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #315f36;outline-offset:3px;box-shadow:0 0 0 5px #f6faf0}.sidebar button:focus-visible{outline-color:#d0f58a;box-shadow:none}.btn:disabled{opacity:1;color:#627064;background:#e4e9e1;border-color:#d4ddd0}.btn.primary:disabled{color:#eef3e9;background:#667962}.skip-link{position:fixed;left:18px;top:-100px;z-index:200;padding:13px 20px;background:#214e3c;color:#fff;border-radius:14px}.skip-link:focus{top:12px}.page-kicker,.stat .trend{color:#566d5c}::selection{background:#d0f58a;color:#173d2e}

/* Phone-sized layouts prioritize touch and prevent the keyboard covering Save. */
@media(max-width:680px){.main{padding:24px 14px calc(118px + env(safe-area-inset-bottom))}.view.active{gap:18px}.card,.stat-row{border-radius:25px}.card{padding:19px}.head-right .btn{border-radius:15px;min-height:46px;font-size:13px}.head h1{font-size:30px}.book-stat{padding:17px}.book-stat-label,.book-stat .small,.book-stat .link-button{font-size:12px}.book-stat>b,.book-stat .ledger-total,.book-stat:first-child>b{font-size:clamp(15px,calc(194px / var(--value-length,9)),27px)}.ledger-filter-row{padding:14px;border-radius:21px;gap:10px}.ledger-filter-row label{min-width:120px}.ledger-filter-row select,.ledger-controls .search,.ledger-controls input[type=month],.preview-row select{font-size:16px}.ledger-controls .segmented{height:auto}.segmented button{min-height:40px}.book-flow.card{padding:18px 13px}.transaction{gap:8px;padding:14px 6px;flex-wrap:wrap}.transaction .detail{min-width:110px}.transaction .amount{font-size:14px;max-width:100%;overflow-wrap:anywhere;white-space:normal}.transaction .small{font-size:12px}.book-day-label{font-size:12px}.book-calendar-day span{font-size:11px}.book-calendar{gap:4px}.book-calendar-day{min-height:70px}.tabbar .item{font-size:11px;min-height:50px}.tabbar{border-radius:25px 25px 0 0}.link-button,.cloud-bar button{min-height:40px}.cloud-bar>span{font-size:12px}.cloud-bar button{font-size:12px}.timetable-card.card{padding:16px}.timetable-grid{min-width:910px}.timetable-slot-col{width:84px}.scheduled-course{padding:10px 8px}.daily-week-strip button{min-height:74px}.daily-course-list{max-height:none;overflow:visible}.daily-sidebar{position:static}.calendar-cell{min-height:91px}.evt{font-size:10px}.cal-wd{font-size:12px}.category-grid{gap:4px;max-height:184px}.category-grid button{font-size:12px;min-height:68px}.entry-keypad{gap:7px}.entry-keypad button{min-height:48px;border-radius:15px}.entry-operators button{min-width:40px;min-height:40px}.entry-operators .danger{font-size:12px}.entry-options label{padding:8px;min-height:44px}.entry-options select,.entry-options input{max-width:141px}.entry-budget-toggle{min-height:44px}.entry-fx .small,#entry-transfer-fx .small{font-size:12px}dialog,dialog.wide,dialog.recorder-dialog{border-radius:29px 29px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));margin:auto 0 0}.preview-row{align-items:center}.preview-row label,.preview-row .small{font-size:12px}.preview-row select{max-width:86px;min-height:44px}.analysis-numbers span{font-size:12px}.analysis-numbers{grid-template-columns:1fr}.analysis-numbers>div{flex-direction:row;justify-content:space-between;align-items:center}.analysis-result{font-size:14px}.form-error{font-size:13px}}
@media(max-height:600px){dialog.recorder-dialog[open]{height:96dvh}.entry-keypad button{min-height:40px}.recorder-dialog .dialog-head{margin-bottom:5px}}
@media(hover:none){.transaction:hover,.btn:hover{background:inherit}.btn.primary:hover{background:#214e3c}}

/* A printable timetable/ledger remains useful without translucent screen layers. */
@media print{body{background:#fff!important;color:#142a1c!important;font-size:11pt}.sidebar,.tabbar,.floating-add,.cloud-bar,.head-right,.skip-link,#toast,.error-banner,dialog,.ledger-controls,.ledger-filter-row,.pagination,.timetable-toolbar .actions,.link-button{display:none!important}.main{margin:0;padding:0}.view.active{gap:12px;display:block}.head{padding:0 0 16px}.head h1{font-size:24pt}.page-kicker{display:none}.card,.stat-row,.book-stat,.task-card{background:#fff!important;color:#142a1c!important;box-shadow:none!important;backdrop-filter:none!important;border:1px solid #bccbb6;border-radius:10px;break-inside:avoid;margin-bottom:14px}.book-stat .ledger-total,.book-stat:first-child .small,.book-stat:first-child .book-stat-label{color:#142a1c!important}.book-stat:first-child:after{display:none}.book-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.book-layout,.overview-layout,.split{display:block}.book-analytics{break-before:page}.book-calendar-panel{display:none}.timetable-scroll{overflow:visible;border-radius:0}.timetable-grid{min-width:0;width:100%;font-size:8pt}.timetable-slot-col{width:65px}.scheduled-course{padding:6px;border-radius:7px}.scheduled-course b{font-size:9pt}.scheduled-course span,.scheduled-course small,.scheduled-course .course-clock,.period-times>div{font-size:8pt;white-space:normal}.timetable-grid tbody th{position:static}.timetable-grid tr{break-inside:avoid}.timetable-grid thead{display:table-header-group}.transaction{break-inside:avoid}.book-flow:after{content:'仅打印当前筛选页。完整流水请在设置中导出 CSV。';display:block;font-size:9pt;color:#40593e;margin-top:12px}.daily-sidebar{position:static}.preview-list,.book-category-list{max-height:none;overflow:visible}a{color:inherit;text-decoration:none}}
