:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#173140;--ledger-ink:#173140;--ledger-ink-soft:#315260;--paper:#edf4f2;--paper-raised:#fbfcf8;--carbon-line:#b8d6d1;--carbon-shadow:#8eb8b1;--seal:#b73b2e;--seal-deep:#8f2a22;--brass:#b98d43;--warning:#9b5c18;--danger:#a72d2d;--focus:#235f83;--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--shadow-ledger:0 24px 70px #1731402e;--shadow-paper:0 16px 32px #1731401c;--safe-bottom:env(safe-area-inset-bottom,0px);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#dfece8;font-family:SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{background:radial-gradient(circle at 0 0,#b98d4338,#0000 30rem),linear-gradient(135deg,#dfece8 0%,#edf4f2 42%,#d4e5e1 100%);min-height:100%}body{min-width:320px;min-height:100vh;margin:0}body:before{z-index:-1;pointer-events:none;content:"";background-image:linear-gradient(#1731400e 1px,#0000 1px),linear-gradient(90deg,#1731400a 1px,#0000 1px);background-size:26px 26px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000d9,#0000 86%);mask-image:linear-gradient(#000000d9,#0000 86%)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2{letter-spacing:-.045em;font-family:Songti SC,STSong,SimSun,Noto Serif CJK SC,serif;font-weight:700}h1{font-size:clamp(1.75rem,6vw,3.75rem);line-height:.96}h2{font-size:clamp(1.5rem,8vw,4.8rem);line-height:.94}p{line-height:1.7}#root{min-height:100vh}.skip-link{z-index:50;color:var(--paper-raised);background:var(--ledger-ink);border-radius:999px;padding:.75rem 1rem;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-140%)}.skip-link:focus{transform:translateY(0)}.button{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.76rem 1.05rem;font-weight:800;text-decoration:none;transition:transform .18s,box-shadow .18s,background-color .18s;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.65}.button:not(:disabled):hover{transform:translateY(-1px)}.button--primary{color:var(--paper-raised);background:var(--ledger-ink);box-shadow:0 10px 24px #17314033}.button--secondary{color:var(--ledger-ink);background:#edf4f2e6;border-color:#1731402e}.button--ghost{color:var(--ledger-ink);background:0 0;border-color:#17314024}.button--danger{color:snow;background:var(--danger)}.eyebrow{color:var(--seal);letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Menlo,monospace;font-size:.76rem;font-weight:800}.app-shell{min-height:100vh;padding:12px 12px calc(86px + var(--safe-bottom));grid-template-columns:1fr;display:grid}.ledger-spine{display:none}.app-surface{width:min(100%,1180px);margin:0 auto}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem .25rem 1.4rem;display:flex}.app-header h1{margin-top:.24rem}.session-pill{max-width:46vw;color:var(--ledger-ink-soft);white-space:nowrap;background:#fbfcf8b8;border:1px solid #1731401c;border-radius:999px;align-items:center;gap:.45rem;padding:.56rem .75rem;font-size:.78rem;font-weight:700;display:inline-flex;overflow:hidden;box-shadow:0 8px 20px #17314014}.session-pill span:last-child{text-overflow:ellipsis;overflow:hidden}.session-pill__dot,.status-dot{background:#2d8b57;border-radius:999px;flex:none;width:.62rem;height:.62rem;box-shadow:0 0 0 5px #2d8b571f}.session-pill__dot.is-muted,.status-dot.is-muted{background:#7a8688;box-shadow:0 0 0 5px #7a86881f}.status-dot.is-waiting{background:var(--brass);box-shadow:0 0 0 5px #b98d4329}.app-main{min-height:55vh}.page-stack{gap:1rem;display:grid}.ledger-hero,.placeholder-panel,.state-card,.contract-grid article,.rule-ledger,.sync-ledger,.settings-list,.insight-placeholder,.table-skeleton{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);border:1px solid #17314021}.ledger-hero{background:linear-gradient(90deg, #17314014 0 18px, transparent 18px), var(--paper-raised);align-items:stretch;min-height:430px;display:grid;position:relative;overflow:hidden}.ledger-hero:before{pointer-events:none;content:"";opacity:.45;background-image:repeating-linear-gradient(#0000 0 31px,#17314021 32px);position:absolute;inset:0}.ledger-hero__paper{z-index:1;flex-direction:column;justify-content:flex-end;gap:1.2rem;padding:clamp(1.35rem,6vw,4.5rem);display:flex;position:relative}.ledger-hero__paper p:not(.eyebrow){max-width:58ch;color:var(--ledger-ink-soft);font-size:1.02rem}.ledger-hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.ledger-hero__seal{z-index:2;width:8.4rem;height:8.4rem;color:var(--seal);opacity:.92;border:.42rem double;border-radius:32% 43% 38% 45%;place-items:center;display:grid;position:absolute;top:1.35rem;right:1.1rem;transform:rotate(9deg)}.ledger-hero__seal:before,.ledger-hero__seal:after{content:"";border:1px solid;border-radius:45% 35% 42% 38%;position:absolute;inset:.62rem}.ledger-hero__seal span{text-align:center;width:3.6rem;font-family:Songti SC,STSong,SimSun,serif;font-size:1.25rem;font-weight:800;line-height:1.05}.contract-grid{gap:.8rem;display:grid}.contract-grid article{background:#fbfcf8d1;padding:1.1rem}.contract-grid span,.settings-list span{color:var(--seal);letter-spacing:.1em;margin-bottom:.3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:800;display:block}.contract-grid strong,.rule-ledger strong,.sync-ledger strong,.settings-list strong{color:var(--ledger-ink);margin-bottom:.3rem;font-size:1.02rem;display:block}.contract-grid p,.rule-ledger p,.sync-ledger p,.settings-list p,.placeholder-panel p,.state-card p{color:var(--ledger-ink-soft);font-size:.95rem}.placeholder-panel{background:#fbfcf8e6;padding:clamp(1.25rem,5vw,2.4rem);position:relative;overflow:hidden}.placeholder-panel:after{color:#b73b2e1c;content:"待记";font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(4rem,20vw,9rem);font-weight:800;line-height:1;position:absolute;bottom:.75rem;right:1rem}.placeholder-panel h2{z-index:1;margin:.25rem 0 .8rem;position:relative}.placeholder-panel p{z-index:1;max-width:62ch;position:relative}.rule-ledger{background:#fbfcf8db;gap:0;display:grid;overflow:hidden}.rule-ledger>div{border-bottom:1px dashed #17314029;gap:.25rem;padding:1rem;display:grid}.rule-ledger>div:last-child{border-bottom:0}.sync-ledger{background:#fbfcf8db;gap:0;display:grid;overflow:hidden}.sync-ledger article{border-bottom:1px dashed #17314029;align-items:flex-start;gap:1rem;padding:1.1rem;display:flex}.sync-ledger article:last-child{border-bottom:0}.settings-list{background:#fbfcf8db;gap:1rem;padding:1.1rem;display:grid}.github-auth-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8f0;border:1px solid #17314021;gap:1rem;padding:clamp(1.1rem,4vw,1.6rem);display:grid}.github-auth-card__heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.github-auth-card__heading h2{margin-top:.2rem}.auth-lock-badge{color:#1f5a45;background:#4387681f;border:1px solid #43876847;border-radius:999px;align-items:center;min-height:32px;padding:.35rem .7rem;font-size:.78rem;font-weight:800;display:inline-flex}.auth-lock-badge.is-locked{color:var(--ledger-ink-soft);background:#1731400f;border-color:#17314029}.github-auth-steps{color:var(--ledger-ink-soft);gap:.55rem;padding-left:1.35rem;display:grid}.github-auth-form{border-top:1px dashed #1731402e;gap:1rem;padding-top:1rem;display:grid}.github-auth-actions{flex-wrap:wrap;gap:.7rem;display:flex}.github-auth-result{color:#1f5a45;border-radius:var(--radius-md);background:#4387681a;border:1px solid #4387683d;padding:.9rem 1rem}.github-auth-result p{color:var(--ledger-ink-soft);margin-top:.35rem}.github-setup-hero:after{content:"Git"}.auth-method-picker,.device-flow-card,.repository-evidence,.unlock-card,.unlock-summary,.sync-overview,.sync-facts,.sync-action-note,.conflict-card,.conflict-empty{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8f0;border:1px solid #17314021;margin:0;padding:clamp(1.1rem,4vw,1.6rem)}.auth-method-picker,.conflict-heads,.conflict-editor{border:0;min-width:0}.auth-method-picker{grid-template-columns:1fr;gap:.75rem;display:grid}.auth-method-picker legend,.conflict-heads legend,.conflict-editor legend{width:100%;color:var(--ledger-ink);margin-bottom:.8rem;font-weight:900}.auth-method-picker>label,.conflict-heads>label{border-radius:var(--radius-md);cursor:pointer;background:#edf4f2b3;border:2px solid #0000;align-items:flex-start;gap:.8rem;min-width:0;padding:1rem;display:flex}.auth-method-picker>label.is-selected,.conflict-heads>label.is-selected{border-color:var(--brass);background:#b98d431a}.auth-method-picker input,.conflict-heads input,.delete-choice input{width:1.2rem;height:1.2rem;accent-color:var(--seal);flex:none;margin-top:.12rem}.auth-method-picker span,.auth-method-picker small{display:block}.auth-method-picker small{color:var(--ledger-ink-soft);margin-top:.3rem;line-height:1.5}.device-flow-card,.unlock-card,.unlock-form,.conflict-card,.conflict-card form,.conflict-editor{gap:1rem;display:grid}.device-flow-card h2,.repository-evidence h2,.unlock-card h2,.sync-overview h2,.conflict-card h2{margin:.22rem 0 .65rem;font-size:clamp(1.55rem,7vw,3.3rem)}.device-flow-card p,.repository-evidence p,.unlock-card>p,.unlock-summary p,.sync-overview>p,.sync-action-note p,.conflict-card>p,.conflict-empty p{color:var(--ledger-ink-soft)}.device-code-panel{border-radius:var(--radius-md);background:#1731400a;border:1px dashed #1731403d;justify-items:start;gap:.65rem;padding:1rem;display:grid}.device-code-panel span,.device-code-panel small{color:var(--ledger-ink-soft)}.device-code-panel strong{letter-spacing:.12em;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.45rem,10vw,2.6rem)}.device-flow-status{min-height:1.7rem;color:var(--ledger-ink-soft);font-weight:750}.repository-evidence.is-pending{border-style:dashed}.evidence-grid,.conflict-head-summary dl{grid-template-columns:minmax(0,1fr);gap:.7rem;margin:1rem 0;display:grid}.evidence-grid>div,.conflict-head-summary dl>div{border-radius:var(--radius-sm);background:#edf4f2b3;min-width:0;padding:.8rem}.evidence-grid dt,.conflict-head-summary dt{color:var(--seal);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;font-size:.72rem;font-weight:800}.evidence-grid dd,.conflict-head-summary dd{overflow-wrap:anywhere;margin:0;font-weight:800}.evidence-note{font-size:.85rem}.unlock-form input,.conflict-editor input,.auto-lock-control select{width:100%;min-height:48px;color:var(--ledger-ink);border-radius:var(--radius-sm);background:#ffffffc7;border:1px solid #17314038;padding:.72rem .82rem}.unlock-summary{justify-items:start;gap:.7rem;display:grid}.sync-overview{border-left:7px solid var(--ledger-ink-soft);gap:1rem;display:grid}.sync-overview.tone-success{border-left-color:#2d8b57}.sync-overview.tone-waiting{border-left-color:var(--brass)}.sync-overview.tone-active{border-left-color:var(--focus)}.sync-overview.tone-danger{border-left-color:var(--danger)}.sync-overview.tone-muted{border-left-color:#7a8688}.sync-overview.tone-local{border-left-color:var(--seal)}.sync-overview__heading,.conflict-card__heading,.settings-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.connectivity-badge{color:#1f5a45;background:#4387681f;border:1px solid #43876847;border-radius:999px;align-items:center;min-height:32px;padding:.35rem .72rem;font-size:.78rem;font-weight:850;display:inline-flex}.connectivity-badge.is-offline{color:var(--ledger-ink-soft);background:#1731400f;border-color:#17314029}.offline-assurance,.sync-action-note{border-radius:var(--radius-md);background:#b98d431a;padding:.85rem 1rem}.sync-overview__actions,.settings-action-grid{flex-wrap:wrap;gap:.7rem;display:flex}.sync-facts{gap:0;padding:0;display:grid;overflow:hidden}.sync-facts article{border-bottom:1px dashed #17314029;gap:.32rem;min-width:0;padding:1rem;display:grid}.sync-facts article:last-child{border-bottom:0}.sync-facts span{color:var(--seal);font-size:.75rem;font-weight:850}.sync-facts strong{overflow-wrap:anywhere;font-size:1.08rem}.sync-facts small{color:var(--ledger-ink-soft)}.sync-action-note{gap:.45rem;display:grid}.conflict-card__heading small,.conflict-head-summary>small{overflow-wrap:anywhere;max-width:100%;color:var(--ledger-ink-soft)}.conflict-heads{grid-template-columns:minmax(0,1fr);gap:.8rem;padding:0;display:grid}.conflict-head-summary{flex:1;min-width:0}.conflict-head-summary dl{margin:.65rem 0}.conflict-editor{border-radius:var(--radius-md);background:#edf4f2a6;border:1px solid #17314021;padding:1rem}.delete-choice{align-items:flex-start;gap:.65rem;display:flex}.conflict-empty{gap:.4rem;display:grid}.settings-action-grid .button{flex:180px}.auto-lock-control{gap:.5rem;display:grid}.auto-lock-control label{font-weight:800}@media (width>=720px){.auth-method-picker,.evidence-grid,.conflict-head-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}.sync-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.sync-facts article{border-bottom:0;border-right:1px dashed #17314029}.sync-facts article:last-child{border-right:0}}@media (width>=1100px){.conflict-heads{grid-template-columns:repeat(2,minmax(0,1fr))}}.ledger-dashboard__heading,.page-heading-row,.section-heading-row,.ledger-health{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ledger-dashboard__heading,.page-heading-row{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8e6;border:1px solid #1731401f;padding:clamp(1.15rem,4vw,2rem)}.ledger-dashboard__heading>div,.page-heading-row>div:first-child{gap:.55rem;max-width:50rem;display:grid}.ledger-dashboard__heading h2,.page-heading-row h2{font-size:clamp(2rem,8vw,4.8rem)}.money-summary{grid-template-columns:minmax(0,1fr);gap:.85rem;display:grid}.money-summary article{border-radius:var(--radius-md);background:#fbfcf8e6;border:1px solid #1731401f;gap:.45rem;min-width:0;padding:1.1rem;display:grid}.money-summary span,.money-summary small,.transaction-list span,.transaction-list small,.category-bars span{color:var(--ledger-ink-soft)}.money-value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:clamp(1.45rem,7vw,2.6rem)}.money-value--expense{color:var(--seal-deep)}.money-value--income{color:#216846}.ledger-health,.recent-ledger,.transaction-filters,.transaction-editor,.insight-panel{border-radius:var(--radius-md);background:#fbfcf8e0;border:1px solid #1731401f;padding:1.1rem}.ledger-health{border-left:6px solid #2d8b57;align-items:center}.ledger-health--warning{border-left-color:var(--danger)}.ledger-health>div:first-child{gap:.35rem;display:grid}.ledger-health__actions{flex-wrap:wrap;gap:.6rem;display:flex}.recent-ledger,.transaction-editor,.insight-panel{gap:1rem;display:grid}.section-heading-row h3,.ledger-health h3{margin:.2rem 0 0;font-size:clamp(1.25rem,4vw,2rem)}.transaction-list,.category-bars{gap:0;margin:0;padding:0;list-style:none;display:grid}.transaction-list>li{border-bottom:1px dashed #1731402e;grid-template-columns:minmax(0,1fr);align-items:center;gap:.8rem;min-width:0;padding:1rem 0;display:grid}.transaction-list>li:last-child{border-bottom:0}.transaction-list>li.is-deleted{opacity:.72}.transaction-list>li.is-conflicted{border-radius:var(--radius-sm);background:#a72d2d0f;padding-inline:.85rem}.transaction-list__main,.transaction-list__amount{gap:.3rem;min-width:0;display:grid}.transaction-list__amount{justify-items:end}.transaction-list__main small{overflow-wrap:anywhere}.transaction-list__title{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.transaction-list__money{font-variant-numeric:tabular-nums;font-size:1.15rem}.transaction-list__actions{flex-wrap:wrap;gap:.45rem;display:flex}.transaction-list__actions .button{min-height:40px;padding:.55rem .8rem}.status-chip{color:var(--ledger-ink-soft);background:#17314014;border-radius:999px;padding:.22rem .52rem;font-size:.72rem;font-weight:850;display:inline-flex}.status-chip--danger{color:var(--danger);background:#a72d2d1a}.transaction-filters{grid-template-columns:minmax(0,1fr);gap:.8rem;display:grid}.transaction-filters input,.transaction-filters select,.transaction-editor input,.transaction-editor select,.insights-page__month select{width:100%;min-height:46px;color:var(--ledger-ink);border-radius:var(--radius-sm);background:#ffffffd1;border:1px solid #17314038;padding:.68rem .78rem}.transaction-filters__deleted{align-items:center;gap:.6rem;min-height:46px;font-weight:800;display:flex}.transaction-filters__deleted input{width:1.2rem;height:1.2rem;min-height:auto;accent-color:var(--seal)}.transaction-editor form{gap:1rem;display:grid}.pagination{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.insights-page__month{width:min(100%,16rem)}.category-bars>li{border-bottom:1px dashed #1731402e;grid-template-columns:minmax(7rem,.7fr) minmax(7rem,2fr) minmax(6.5rem,auto);align-items:center;gap:.8rem;padding:.85rem 0;display:grid}.category-bars>li:last-child{border-bottom:0}.category-bars>li>div:first-child{gap:.2rem;display:grid}.category-bars__track{background:#17314017;border-radius:999px;height:.7rem;overflow:hidden}.category-bars__fill{border-radius:inherit;height:100%;display:block}.category-bars__fill--expense{background:var(--seal)}.category-bars__fill--income{background:#2d8b57}.insight-table-wrap{overflow-x:auto}.insight-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:38rem}.insight-table th,.insight-table td{text-align:right;border-bottom:1px dashed #17314029;padding:.75rem}.insight-table th:first-child{text-align:left}@media (width>=720px){.money-summary,.transaction-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.transaction-filters__keyword{grid-column:span 2}.transaction-list>li{grid-template-columns:minmax(0,1fr) auto auto}.transaction-list--compact>li{grid-template-columns:minmax(0,1fr) auto}}.notice{border-radius:var(--radius-md);color:var(--warning);background:#fff6dfd1;border:1px solid #9b5c1838;margin-bottom:.9rem;padding:.85rem 1rem}.notice--reauth{justify-content:space-between;align-items:center;gap:1rem;display:flex}.notice--reauth div{gap:.2rem;display:grid}.notice--reauth span{color:var(--ledger-ink-soft)}.state-card{background:#fbfcf8e6;align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.state-card h1,.state-card h2{margin-bottom:.35rem;font-size:clamp(1.45rem,6vw,2.4rem)}.state-card__mark{border:2px solid var(--seal);border-radius:38% 44% 34% 48%;flex:none;width:2.3rem;height:2.3rem;position:relative}.state-card__mark:after{content:"";border:1px solid var(--seal);border-radius:inherit;position:absolute;inset:.44rem}.state-card--loading .state-card__mark{animation:1.45s ease-in-out infinite seal-breathe}.state-card--error .state-card__mark{border-color:var(--danger)}.state-card__action{margin-top:.9rem}.bottom-nav{right:12px;bottom:calc(10px + var(--safe-bottom));z-index:30;box-shadow:var(--shadow-ledger);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbfcf8eb;border:1px solid #17314024;border-radius:24px;grid-template-columns:repeat(5,1fr);gap:.18rem;padding:.35rem;display:grid;position:fixed;left:12px}.bottom-nav__item{min-height:52px;color:var(--ledger-ink-soft);border-radius:18px;place-items:center;gap:.18rem;font-size:.72rem;font-weight:800;text-decoration:none;display:grid}.bottom-nav__item span,.rail-nav__item span{opacity:.45;background:currentColor;border-radius:999px;width:.44rem;height:.44rem}.bottom-nav__item.is-active{color:var(--paper-raised);background:var(--ledger-ink)}.pwa-toast{right:1rem;bottom:calc(86px + var(--safe-bottom));z-index:40;background:var(--paper-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-ledger);border:1px solid #17314029;gap:.75rem;padding:1rem;display:grid;position:fixed;left:1rem}.pwa-toast p{color:var(--ledger-ink-soft)}.pwa-toast__actions{flex-wrap:wrap;gap:.5rem;display:flex}.login-page,.standalone-page{place-items:center;min-height:100vh;padding:clamp(1rem,4vw,2rem);display:grid}.login-card{background:var(--paper-raised);width:min(100%,960px);box-shadow:var(--shadow-ledger);border:1px solid #17314021;border-radius:34px;display:grid;overflow:hidden}.login-card__cover{min-height:220px;color:var(--paper-raised);background:radial-gradient(circle at 62% 34%,#b98d4373,#0000 10rem),linear-gradient(145deg,#173140 0%,#21495a 52%,#102630 100%);place-items:center;display:grid;position:relative;overflow:hidden}.login-card__cover:before{content:"";background:linear-gradient(to bottom, var(--seal), #d7b46a, var(--seal));border-radius:999px;width:20px;position:absolute;inset:18px auto 18px 18px}.login-card__cover:after{content:"";background-image:repeating-linear-gradient(90deg,#0000 0 22px,#ffffff12 23px);position:absolute;inset:0}.login-card__cover span{z-index:1;color:#ffd9d5;border:.38rem double;border-radius:35% 44% 38% 42%;place-items:center;width:8rem;height:8rem;font-family:Songti SC,STSong,SimSun,serif;font-size:4rem;font-weight:800;display:grid;position:relative;transform:rotate(-7deg)}.login-card__cover small{z-index:1;letter-spacing:.16em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;position:absolute;bottom:1rem;right:1.25rem}.login-card__body{gap:1rem;padding:clamp(1.35rem,6vw,3.3rem);display:grid}.login-card__intro{max-width:52ch;color:var(--ledger-ink-soft)}.login-form{gap:.65rem;margin-top:.5rem;display:grid}.login-form label{font-weight:800}.login-form input{width:100%;min-height:54px;color:var(--ledger-ink);background:#f5faf8;border:1px solid #1731403d;border-radius:16px;padding:0 1rem}.login-form input:disabled{opacity:.7}.form-hint,.form-error,.form-success{font-size:.88rem}.form-hint{color:var(--ledger-ink-soft)}.form-error{color:var(--danger)}.form-success{color:#225a3d;border-radius:var(--radius-sm);background:#2d8b571a;border:1px solid #2d8b573d;padding:.85rem 1rem}.table-skeleton,.insight-placeholder{background:#fbfcf8c7;min-height:180px;padding:1rem}.table-skeleton{gap:.75rem;display:grid}.table-skeleton span{background:linear-gradient(90deg,#b8d6d157,#17314014,#b8d6d157);border-radius:999px;height:2.25rem;display:block}.insight-placeholder{align-items:flex-end;gap:.75rem;display:flex}.insight-placeholder span{background:linear-gradient(#1731403d,#b73b2e38);border:1px solid #1731401a;border-radius:999px 999px 10px 10px;flex:1;min-height:32px}.insight-placeholder span:first-child{height:35%}.insight-placeholder span:nth-child(2){height:68%}.insight-placeholder span:nth-child(3){height:48%}.insight-placeholder span:nth-child(4){height:80%}.insight-placeholder span:nth-child(5){height:54%}@keyframes seal-breathe{0%,to{transform:rotate(-4deg)scale(1)}50%{transform:rotate(4deg)scale(1.04)}}@media (width>=720px){.app-shell{grid-template-columns:232px minmax(0,1fr);gap:clamp(1rem,3vw,2rem);padding:18px}.ledger-spine{height:calc(100vh - 36px);color:var(--paper-raised);background:linear-gradient(90deg, #ffffff14 0 12px, transparent 12px), var(--ledger-ink);box-shadow:var(--shadow-ledger);border-radius:30px;flex-direction:column;padding:1rem;display:flex;position:sticky;top:18px}.brand-lockup{align-items:center;gap:.8rem;padding:.25rem;display:flex}.brand-lockup__seal{color:#ffd9d5;border:.18rem double;border-radius:34% 45% 36% 41%;flex:none;place-items:center;width:3rem;height:3rem;font-family:Songti SC,STSong,SimSun,serif;font-size:1.5rem;font-weight:800;display:grid;transform:rotate(-6deg)}.brand-lockup p{color:#fbfcf89e;letter-spacing:.12em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:800}.brand-lockup strong{margin-top:.2rem;font-family:Songti SC,STSong,SimSun,serif;font-size:1.4rem;display:block}.rail-nav{gap:.35rem;margin-top:2.2rem;display:grid}.rail-nav__item{color:#fbfcf8b8;border-radius:18px;align-items:center;gap:.75rem;min-height:46px;padding:0 .9rem;font-weight:800;text-decoration:none;display:flex}.rail-nav__item.is-active{color:var(--ledger-ink);background:var(--paper-raised)}.spine-note{background:#ffffff14;border:1px solid #ffffff1f;border-radius:20px;gap:.3rem;margin-top:auto;padding:1rem;display:grid}.spine-note span{color:#ffd9d5;font-family:Songti SC,STSong,SimSun,serif;font-size:1.25rem;font-weight:800}.spine-note small{color:#fbfcf8b8;line-height:1.6}.bottom-nav{display:none}.app-surface{width:100%;margin:0}.app-header{padding:.5rem 0 1.25rem}.contract-grid{grid-template-columns:repeat(3,1fr)}.rule-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-ledger>div:nth-child(odd){border-right:1px dashed #17314029}.login-card{grid-template-columns:minmax(260px,.72fr) minmax(0,1fr)}.login-card__cover{min-height:620px}.pwa-toast{width:min(420px,100vw - 2.8rem);bottom:1.4rem;left:auto;right:1.4rem}}@media (width>=1100px){.app-shell{grid-template-columns:260px minmax(0,1fr);padding:24px}.ledger-spine{height:calc(100vh - 48px);top:24px}.ledger-hero{min-height:520px}}.entry-hero{background:linear-gradient(90deg, #17314014 0 18px, transparent 18px), var(--paper-raised);border-radius:var(--radius-lg);min-height:220px;box-shadow:var(--shadow-paper);border:1px solid #17314021;align-items:stretch;display:grid;position:relative;overflow:hidden}.entry-hero:before{pointer-events:none;content:"";opacity:.45;background-image:repeating-linear-gradient(#0000 0 31px,#17314021 32px);position:absolute;inset:0}.entry-hero>div:first-child{z-index:1;flex-direction:column;justify-content:flex-end;gap:.8rem;padding:clamp(1.2rem,5vw,2.6rem);display:flex;position:relative}.entry-hero p:not(.eyebrow){max-width:62ch;color:var(--ledger-ink-soft);font-size:.95rem}.entry-hero h2{margin:.2rem 0 .4rem}.entry-hero__stamp{z-index:2;min-width:7.2rem;color:var(--seal);opacity:.92;border:.35rem double;border-radius:32% 43% 38% 45%;place-items:center;gap:.2rem;padding:.8rem 1rem;display:grid;position:absolute;top:1.35rem;right:1.1rem;transform:rotate(9deg)}.entry-hero__stamp span{font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(1.1rem,4vw,2rem);font-weight:800;line-height:1.05}.entry-hero__stamp small{color:var(--ledger-ink-soft);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;font-weight:800;display:block}.transaction-form{gap:1rem;display:grid}.entry-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8e0;border:1px solid #17314021;padding:clamp(1.1rem,4vw,1.8rem)}.section-heading{margin-bottom:1.2rem}.section-heading h3{letter-spacing:-.035em;margin-top:.25rem;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(1.2rem,5vw,2rem);font-weight:700}.segmented-control{background:#1731400f;border:1px solid #1731401f;border-radius:999px;gap:0;width:100%;margin:0 0 1.2rem;padding:.35rem;display:flex;overflow:hidden}.segmented-control legend{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.segmented-control label{flex:1}.segmented-control input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.segmented-control span{min-height:44px;color:var(--ledger-ink-soft);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-weight:800;transition:background-color .18s,color .18s;display:flex}.segmented-control input:checked+span{color:var(--paper-raised);background:var(--ledger-ink);box-shadow:0 4px 12px #17314029}.form-field{gap:.45rem;display:grid}.form-field label{font-weight:800}.form-field input,.form-field textarea{width:100%;min-height:50px;color:var(--ledger-ink);border-radius:var(--radius-md);background:#f5faf8;border:1px solid #1731403d;padding:0 1rem;transition:border-color .18s,box-shadow .18s}.form-field input:focus,.form-field textarea:focus{border-color:var(--brass);outline:none;box-shadow:0 0 0 4px #b98d431f}.form-field input[aria-invalid=true],.form-field textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 4px #a72d2d14}.form-field textarea{resize:vertical;min-height:110px;padding:.85rem 1rem;line-height:1.7}.amount-input-shell{border-radius:var(--radius-md);background:#f5faf8;border:1px solid #1731403d;align-items:center;transition:border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.amount-input-shell:focus-within{border-color:var(--brass);box-shadow:0 0 0 4px #b98d431f}.amount-input-shell span{min-width:56px;color:var(--ledger-ink-soft);border-right:1px solid #1731401f;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem;font-weight:800;display:grid}.amount-input-shell input{width:100%;min-height:56px;color:var(--ledger-ink);letter-spacing:-.02em;background:0 0;border:0;border-radius:0;outline:none;padding:0 1rem;font-family:SF Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.45rem;font-weight:800}.amount-input-shell input::placeholder{color:#17314040;font-weight:600}.amount-field .form-hint{margin-top:.25rem}.form-grid{gap:1rem;display:grid}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin:0 0 .8rem;padding:0;display:grid}.choice-grid legend{width:100%;color:var(--ledger-ink-soft);margin-bottom:.5rem;font-size:.92rem;font-weight:800}.choice-grid--sub{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));margin-top:.4rem}.choice-grid label{display:flex}.choice-grid input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.choice-grid span{width:100%;min-height:42px;color:var(--ledger-ink-soft);border-radius:var(--radius-sm);cursor:pointer;background:#1731400a;border:1px solid #1731401a;justify-content:center;align-items:center;font-size:.92rem;font-weight:700;transition:background-color .18s,color .18s,border-color .18s;display:flex}.choice-grid input:checked+span{color:var(--paper-raised);background:var(--ledger-ink);border-color:var(--ledger-ink)}.submit-ledger{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.submit-ledger p{max-width:42ch;color:var(--ledger-ink-soft);font-size:.88rem}.notice--warning{color:var(--warning);border-radius:var(--radius-md);background:#fff6dfd1;border:1px solid #9b5c1838;margin-bottom:.9rem;padding:.85rem 1rem;font-size:.92rem}.confirmation-card{border-radius:var(--radius-lg);background:#fbfcf8f0;border:1px solid #17314021;align-items:flex-start;gap:1.2rem;padding:clamp(1.25rem,4vw,2rem);display:flex;box-shadow:0 20px 56px #17314024}.confirmation-card__seal{width:3.6rem;height:3.6rem;color:var(--seal);border:.25rem double;border-radius:34% 44% 36% 42%;flex:none;place-items:center;font-family:Songti SC,STSong,SimSun,serif;font-size:1.8rem;font-weight:800;display:grid;transform:rotate(-6deg)}.confirmation-card__body{gap:.85rem;min-width:0;display:grid}.confirmation-summary{border-radius:var(--radius-sm);background:#17314008;border:1px solid #17314014;gap:.5rem;padding:.85rem;display:grid}.confirmation-summary div{grid-template-columns:auto 1fr;gap:.4rem .8rem;display:grid}.confirmation-summary dt{color:var(--ledger-ink-soft);letter-spacing:.04em;white-space:nowrap;font-size:.82rem;font-weight:800}.confirmation-summary dd{color:var(--ledger-ink);word-break:break-all;font-size:.94rem;font-weight:700}.confirmation-actions{flex-wrap:wrap;gap:.6rem;margin-top:.25rem;display:flex}.operation-state{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8e6;border:1px solid #17314021;align-items:flex-start;gap:1rem;padding:1.15rem;display:flex}.operation-state strong{margin-bottom:.25rem;font-size:1.02rem;display:block}.operation-state p{color:var(--ledger-ink-soft);font-size:.92rem;line-height:1.6}.operation-state small{color:var(--ledger-ink-soft);word-break:break-all;font-size:.78rem;display:block}.operation-state--pending{background:#fff8e6b3;border-color:#b98d4347}.operation-state--success{background:#ebf8f0b3;border-color:#2d8b5747}.operation-state--failure{background:#fff2f2b3;border-color:#a72d2d47}.operation-state--uncertain{background:#fff6dfb3;border-color:#9b5c1847}.recent-ledger{border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);background:#fbfcf8e0;border:1px solid #17314021;padding:clamp(1.1rem,4vw,1.6rem)}.recent-ledger__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.recent-ledger__header h2{margin-top:.15rem;font-size:clamp(1.1rem,4vw,1.6rem)}.recent-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.recent-list li{border-radius:var(--radius-sm);background:#17314008;border:1px solid #1731400f;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.recent-list li>div{gap:.2rem;min-width:0;display:grid}.recent-list strong{font-family:SF Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}.recent-list span{color:var(--ledger-ink-soft);font-size:.82rem}.recent-list time{color:var(--ledger-ink-soft);white-space:nowrap;font-size:.76rem;font-weight:700}@media (width>=720px){.entry-hero{min-height:280px}.entry-hero h2{font-size:clamp(2rem,6vw,3.2rem)}.form-grid{grid-template-columns:1fr 1fr}.amount-input-shell input{min-height:62px;font-size:1.6rem}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.choice-grid--sub{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.confirmation-summary{grid-template-columns:1fr 1fr}.recent-list li{padding:.85rem 1.1rem}}@media (width>=1100px){.entry-hero{min-height:340px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
