:root{--bg: #f6f3ec;--surface: #fffcf7;--surface-2: #f0ebe3;--border: #ddd6cb;--text: #1c1917;--muted: #78716c;--muted-2: #a8a29e;--green: #166534;--red: #991b1b;--blue: #1d4ed8;--amber: #b45309;--accent: #44403c}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font-family:inherit;-webkit-tap-highlight-color:transparent}input,select{font-family:inherit}input[type=date]{color-scheme:light}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30;padding-top:env(safe-area-inset-top)}.header-main{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;max-width:640px;margin:0 auto}.header-text{min-width:0}.sync-meta{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-meta-stale{color:var(--amber);font-weight:500}.brand{font-weight:600;font-size:17px;color:var(--text);letter-spacing:-.01em;margin:0}.refresh-btn{border:none;background:none;color:var(--muted);padding:8px 4px 8px 12px;font-size:13px;font-weight:500;cursor:pointer;min-height:38px;flex-shrink:0}.refresh-btn:disabled{opacity:.5;cursor:default}.refresh-btn:active:not(:disabled){color:var(--text)}.main-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:16px 16px 96px}@media (min-width: 640px){.main-content{padding:20px 20px 48px}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fffcf7f7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:40}.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 0 6px;min-height:54px;background:none;border:none;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.bottom-tab-active{color:var(--accent)}.bottom-tab svg{display:block}.ledger{display:flex;flex-direction:column}.totals{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:8px 2px 28px}.total-label{font-size:13px;color:var(--muted);margin-bottom:4px}.total-value{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.025em;line-height:1.05;color:var(--text)}.ledger-section{margin-bottom:30px}.ledger-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 2px 8px;border-bottom:1px solid var(--text)}.ledger-title{font-size:14px;font-weight:600;color:var(--text);margin:0;letter-spacing:0;text-transform:none}.ledger-total{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.ledger-row-wrap{border-bottom:1px solid var(--border)}.ledger-row-wrap:last-child{border-bottom:none}.ledger-row{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:12px 2px;background:none;border:none;color:var(--text);cursor:pointer;text-align:left;font-size:15px}.ledger-row:active{background:var(--surface-2)}.static-row{cursor:default;border-bottom:1px solid var(--border)}.static-row:last-child{border-bottom:none}.ledger-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ledger-row-name{font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-row-sub{font-size:12px;color:var(--muted)}.ledger-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.ledger-row-amt{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.ledger-row-note{font-size:11px;color:var(--muted-2);line-height:1.35}.ledger-row-name{flex-shrink:0}.stale-note{color:var(--amber);font-weight:500}.source-line{font-size:12px;color:var(--muted);padding:8px 2px 4px}.source-line-stale{color:var(--amber);font-weight:500}.source-error{font-size:12px;color:var(--red);padding:2px 2px 6px;line-height:1.4}.source-error-soft{color:var(--muted)}.link-btn{background:none;border:none;padding:0;color:var(--muted);font-size:13px;cursor:pointer}.link-btn:active{color:var(--red)}.link-btn:disabled{opacity:.5;cursor:default}.connect-wrap{margin-top:8px}.empty-state{color:var(--muted);padding:40px 0;text-align:center;font-size:14px}.drill-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:-4px 0 12px;animation:panelIn .16s ease}.inline-panel{border-top:1px solid var(--border);padding:12px 2px 16px;animation:panelIn .16s ease}@keyframes panelIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tap-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;font-size:14px}.tap-row:last-child{border-bottom:none}.tap-row:active{background:var(--surface-2)}.tap-row-main{flex:1;min-width:0}.row-name{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{font-size:12px;color:var(--muted);margin-top:2px}.row-amt-col{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.row-amt{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.row-pending{font-size:11px;color:var(--muted-2);font-weight:600}.chevron{color:var(--muted-2);flex-shrink:0;transition:transform .15s}.chevron-open{transform:rotate(90deg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px}.card-pad{padding:14px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c191759;z-index:50;animation:fadeIn .15s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;background:var(--surface);border-radius:18px 18px 0 0;border-top:1px solid var(--border);padding:8px 16px calc(20px + env(safe-area-inset-bottom));max-height:85vh;overflow-y:auto;animation:slideUp .22s cubic-bezier(.32,.72,0,1)}@media (min-width: 640px){.sheet{max-width:480px;left:50%;transform:translate(-50%);border-radius:18px;bottom:24px;border:1px solid var(--border)}}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:4px auto 14px}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.period-wrap{margin-bottom:12px}.period-select-wrap{position:relative}.period-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.period-caret{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.period-select{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:12px 38px;font-size:14px;font-weight:600;min-height:44px;cursor:pointer}.custom-dates{display:flex;align-items:center;gap:8px;margin-top:8px}.date-input{flex:1;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 12px;font-size:14px;min-height:44px;min-width:0}.sheet .period-wrap{margin-bottom:0}.sheet .period-select,.sheet .date-input{background:var(--surface-2)}.money-pos{color:var(--green)}.money-neg{color:var(--red)}.section-title{font-size:14px;font-weight:600;color:var(--text)}.page-title{font-size:20px;font-weight:700;margin:0 0 16px}.group-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 8px;gap:8px}.group-subtotal{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
