:root {
  color-scheme: light dark;
  --ink:#20453e; --ink-strong:#153a34; --muted:#66847e;
  --page:#ddf4ea; --paper:#fbfffb; --card:#fff; --line:#d9ebe4;
  --accent:#e96863; --accent-dark:#bc4e4a; --green:#398b72;
  --yellow:#f5c65b; --sky:#8dd8f3;
  --shadow:0 18px 45px rgba(43,112,91,.16);
}
* { box-sizing:border-box; }
html { min-height:100%; background:var(--page); }
body { min-height:100%; margin:0; color:var(--ink); background:var(--page); font-family:ui-rounded,"SF Pro Rounded","PingFang SC","Microsoft YaHei",system-ui,sans-serif; }
button,input { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid rgba(233,104,99,.3); outline-offset:2px; }

.ledger-shell { min-height:100dvh; background:linear-gradient(180deg,#bcebf7 0,#dff5ec 56%,#eff8f1 100%); }
.ledger-app { position:relative; width:min(100%,760px); min-height:100dvh; margin:0 auto; background:var(--paper); box-shadow:0 0 70px rgba(42,111,89,.16); }
.illustrated-hero { position:relative; min-height:535px; overflow:hidden; padding:0 18px; background-color:var(--sky); background-image:linear-gradient(180deg,rgba(78,182,231,.05),rgba(58,143,115,.03)),url("cloud-island-ledger.png"); background-size:cover; background-position:center 68%; isolation:isolate; }
.illustrated-hero::after { content:""; position:absolute; z-index:-1; inset:auto 0 0; height:52%; background:linear-gradient(180deg,transparent,rgba(33,119,88,.16)); }
.topbar { height:76px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:11px; }
.brand-mark,.icon-button { width:42px; height:42px; display:grid; place-items:center; border:2px solid rgba(255,255,255,.72); border-radius:15px; background:rgba(255,255,255,.8); color:var(--green); box-shadow:0 8px 24px rgba(34,103,85,.15),inset 0 1px rgba(255,255,255,.8); backdrop-filter:blur(12px); }
.brand-copy { display:flex; flex-direction:column; gap:1px; color:#234f47; text-shadow:0 1px rgba(255,255,255,.48); }
.brand-copy span { font-size:18px; font-weight:850; letter-spacing:-.02em; }
.brand-copy small { font-size:11px; color:#3d6f68; }
.icon-button { text-decoration:none; cursor:pointer; }
.month-switcher { width:min(100%,315px); display:grid; grid-template-columns:40px 1fr 40px; align-items:center; margin:9px auto 14px; padding:6px; border:1px solid rgba(255,255,255,.7); border-radius:18px; background:rgba(247,255,252,.72); box-shadow:0 8px 26px rgba(30,108,86,.12),inset 0 1px rgba(255,255,255,.9); backdrop-filter:blur(14px); }
.month-switcher>div { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1px; }
.month-switcher small { font-size:9px; color:#5e8178; }
.month-switcher strong { font-size:14px; letter-spacing:.01em; }
.month-switcher button { width:36px; height:36px; border:0; display:grid; place-items:center; border-radius:13px; background:rgba(255,255,255,.5); color:var(--green); cursor:pointer; transition:transform .18s ease,background-color .18s ease; }
.month-switcher button:hover { background:#fff; }
.month-switcher button:active { transform:scale(.94); }
.month-switcher button:disabled { opacity:.28; }

.balance-card { position:relative; min-height:226px; overflow:hidden; margin:0 auto; padding:25px 23px 20px; color:#17453d; border:1px solid rgba(255,255,255,.75); border-radius:28px; background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(235,255,246,.7)); box-shadow:0 24px 48px rgba(26,99,79,.2),inset 0 1px rgba(255,255,255,.95); backdrop-filter:blur(22px) saturate(135%); }
.balance-card::before { content:""; position:absolute; width:190px; height:190px; right:-95px; top:-95px; border-radius:50%; background:repeating-radial-gradient(circle,rgba(245,198,91,.28) 0 7px,transparent 8px 19px); }
.balance-card::after { content:""; position:absolute; width:115px; height:115px; left:-55px; bottom:-62px; border-radius:50%; background:rgba(105,203,167,.18); }
.balance-heading { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; font-size:13px; color:#416d65; }
.private-pill { padding:6px 9px; border:1px solid rgba(57,139,114,.18); border-radius:999px; color:#3f7267; font-size:10px; background:rgba(255,255,255,.45); }
.balance-number { position:relative; z-index:1; margin:12px 0 24px; font-variant-numeric:tabular-nums; font-size:clamp(38px,10vw,53px); line-height:1.05; font-weight:850; letter-spacing:-.05em; color:var(--ink-strong); }
.balance-meta { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:14px; padding-top:17px; border-top:1px solid rgba(57,139,114,.14); }
.balance-meta>div { display:flex; align-items:center; gap:10px; min-width:0; }
.meta-icon { width:34px; height:34px; border-radius:12px; display:grid; place-items:center; flex:0 0 auto; font-weight:900; }
.meta-icon.income { color:#207256; background:#cff2df; }
.meta-icon.expense { color:#b44e48; background:#ffe0d8; }
.balance-meta p { display:flex; flex-direction:column; min-width:0; margin:0; }
.balance-meta small { color:#6c8b83; font-size:10px; margin-bottom:2px; }
.balance-meta strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.content-deck { position:relative; z-index:2; margin-top:-43px; padding:0 18px; background:var(--paper); border-radius:34px 34px 0 0; box-shadow:0 -12px 34px rgba(44,116,92,.1); }
.mascot-note { position:relative; top:-25px; display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:11px; min-height:82px; padding:12px 14px; border:1px solid rgba(255,255,255,.8); border-radius:24px; background:linear-gradient(135deg,#f8fff9,#e7f8ef); box-shadow:var(--shadow); }
.mascot-avatar { width:54px; height:54px; display:grid; place-items:center; border:3px solid #fff; border-radius:19px; background:linear-gradient(145deg,#dff6b5,#a7e4a2); box-shadow:0 7px 16px rgba(74,146,102,.2); font-size:28px; }
.mascot-note>div:nth-child(2) { min-width:0; }
.mascot-note>div:nth-child(2) strong { display:block; overflow:hidden; font-size:13px; white-space:nowrap; text-overflow:ellipsis; }
.mascot-note p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.record-badge { display:flex; align-items:center; flex-direction:column; min-width:54px; padding-left:10px; border-left:1px solid var(--line); }
.record-badge strong { font-size:22px; line-height:1; color:var(--accent); }
.record-badge span { margin-top:4px; color:var(--muted); font-size:8px; }
.quick-section { margin-top:-7px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:12px; }
.section-heading span { color:var(--accent-dark); font-size:10px; font-weight:800; letter-spacing:.08em; }
.section-heading h2 { margin:2px 0 0; color:var(--ink-strong); font-size:20px; letter-spacing:-.02em; }
.text-action { height:34px; display:flex; align-items:center; gap:5px; padding:0 12px; border:1px solid var(--line); border-radius:12px; background:#f1faf5; color:var(--green); font-size:11px; font-weight:750; cursor:pointer; }
.text-action:disabled { opacity:.38; }
.quick-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.quick-grid button { display:flex; align-items:center; flex-direction:column; gap:7px; padding:11px 5px 10px; border:0; border-radius:18px; background:#fff; box-shadow:0 7px 20px rgba(47,120,96,.09); cursor:pointer; transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease; }
.quick-grid button:hover { transform:translateY(-2px); box-shadow:0 11px 24px rgba(47,120,96,.14); }
.quick-grid button:active { transform:translateY(1px) scale(.97); }
.quick-grid strong { font-size:11px; }
.quick-icon { width:43px; height:43px; display:grid; place-items:center; border-radius:15px; font-size:21px; }
.quick-餐饮 { background:#fff0c7; } .quick-交通 { background:#ddecff; } .quick-购物 { background:#ffe2e1; } .quick-其他 { background:#e5f4d0; }

.segmented { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:5px; margin:22px 0 16px; padding:4px; border-radius:17px; background:#e8f2ed; }
.segmented button { height:41px; display:flex; align-items:center; justify-content:center; gap:6px; border:0; border-radius:13px; background:transparent; color:var(--muted); font-size:13px; font-weight:750; cursor:pointer; }
.segmented button.active { color:var(--ink-strong); background:var(--card); box-shadow:0 4px 14px rgba(42,111,89,.12); }
.entries { display:flex; flex-direction:column; gap:18px; }
.day-group,.report-panel { animation:soft-in .42s cubic-bezier(.16,1,.3,1) both; }
@keyframes soft-in { from { opacity:0; transform:translateY(12px); } }
.day-heading { display:flex; align-items:center; justify-content:space-between; padding:0 4px 8px; }
.day-heading strong { font-size:13px; }
.day-heading span { padding:4px 8px; border-radius:9px; background:#edf7f2; color:var(--muted); font-size:9px; }
.entry-card { padding:3px 14px; background:var(--card); border:1px solid #e3f0ea; border-radius:22px; box-shadow:0 9px 26px rgba(43,112,91,.08); }
.entry-row { position:relative; display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:11px; min-height:80px; border-bottom:1px solid #edf4f0; }
.entry-row:last-child { border-bottom:0; }
.category-icon { width:44px; height:44px; border-radius:15px; display:grid; place-items:center; background:#f0f7f3; font-size:21px; box-shadow:inset 0 0 0 1px #e2eee8; }
.entry-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.entry-copy strong { font-size:14px; }
.entry-copy span { overflow:hidden; color:var(--muted); font-size:11px; white-space:nowrap; text-overflow:ellipsis; }
.entry-amount { display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.entry-amount strong { font-variant-numeric:tabular-nums; font-size:14px; }
.entry-amount span { color:var(--muted); font-size:9px; }
.entry-amount.income strong { color:var(--green); }
.delete-button { position:absolute; right:-7px; top:4px; width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:10px; background:var(--card); color:var(--accent-dark); opacity:0; cursor:pointer; transition:opacity .18s ease,transform .18s ease; }
.entry-row:hover .delete-button,.delete-button:focus-visible { opacity:1; }
.delete-button:active { transform:scale(.93); }
.fab { position:fixed; z-index:8; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); transform:translateX(-50%); height:58px; min-width:148px; display:flex; align-items:center; justify-content:center; gap:8px; border:3px solid rgba(255,255,255,.86); border-radius:20px; background:linear-gradient(145deg,#f47c73,var(--accent)); color:#fff; font-weight:800; box-shadow:0 15px 32px rgba(190,78,74,.38),inset 0 1px rgba(255,255,255,.35); cursor:pointer; transition:transform .2s cubic-bezier(.2,.8,.2,1); }
.fab:hover { transform:translateX(-50%) translateY(-2px); }
.fab:active { transform:translateX(-50%) translateY(1px) scale(.97); }
.bottom-safe { height:102px; }

.empty-state,.state-card { min-height:270px; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; }
.empty-illustration { position:relative; width:84px; height:72px; display:grid; place-items:center; color:#d59135; background:linear-gradient(145deg,#fff4b8,#c8f0c0); border:3px solid #fff; border-radius:27px; transform:rotate(-3deg); box-shadow:0 13px 28px rgba(48,127,98,.14); }
.empty-illustration::before,.empty-illustration::after { content:""; position:absolute; top:-7px; width:18px; height:22px; border-radius:12px 12px 4px 4px; background:#d7f1b3; }
.empty-illustration::before { left:15px; transform:rotate(-18deg); } .empty-illustration::after { right:15px; transform:rotate(18deg); }
.empty-illustration svg { position:relative; z-index:1; transform:rotate(3deg); }
.empty-state h2 { margin:20px 0 6px; font-size:18px; }
.empty-state p { max-width:270px; margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.empty-state button { display:inline-flex; align-items:center; gap:5px; margin-top:17px; padding:10px 15px; border:1px solid var(--line); border-radius:13px; background:var(--card); font-size:12px; font-weight:750; box-shadow:0 7px 18px rgba(46,115,91,.1); }
.state-card { gap:9px; color:var(--muted); font-size:13px; }
.state-card.error { width:100%; border:0; background:transparent; }
.state-card.error small { text-decoration:underline; }
.spin { animation:spin .9s linear infinite; } @keyframes spin { to { transform:rotate(360deg); } }

.report-panel { display:flex; flex-direction:column; gap:14px; }
.report-title,.category-report { background:var(--card); border:1px solid #e3f0ea; border-radius:22px; box-shadow:0 9px 26px rgba(43,112,91,.08); }
.report-title { position:relative; min-height:155px; overflow:hidden; display:flex; justify-content:space-between; align-items:center; padding:22px 24px; background:linear-gradient(135deg,#fff 35%,#e8f7ef); }
.report-title::after { content:""; position:absolute; right:-30px; bottom:-50px; width:135px; height:135px; border-radius:50%; background:rgba(245,198,91,.19); }
.report-title>div:first-child { display:flex; flex-direction:column; gap:7px; }
.report-title small { color:var(--muted); font-size:11px; }
.report-title strong { font-variant-numeric:tabular-nums; font-size:27px; letter-spacing:-.03em; }
.donut { position:relative; z-index:1; width:82px; height:82px; display:grid; place-content:center; text-align:center; border-radius:50%; background:radial-gradient(circle at center,var(--card) 50%,transparent 52%),conic-gradient(var(--accent) 0 var(--donut-percent,72%),#d9eee5 var(--donut-percent,72%) 100%); box-shadow:0 8px 20px rgba(43,112,91,.13); }
.donut span { font-size:18px; font-weight:850; }
.donut small { font-size:9px; color:var(--muted); }
.category-report { padding:21px 18px; }
.category-report h2 { margin:0 0 14px; font-size:15px; }
.category-line { display:grid; grid-template-columns:38px 1fr auto; gap:11px; align-items:center; margin-top:16px; }
.category-icon.small { width:38px; height:38px; border-radius:13px; font-size:17px; }
.category-line>div { min-width:0; }
.category-line>div>div:first-child { display:flex; justify-content:space-between; margin-bottom:7px; }
.category-line>div strong,.category-line>strong { font-size:12px; }
.category-line>div span { color:var(--muted); font-size:10px; }
.mini-bar { display:block; height:5px; min-width:8px; max-width:100%; border-radius:999px; background:linear-gradient(90deg,var(--accent),#f5b06d); }
.income-only { color:var(--muted); font-size:12px; }

.sheet-backdrop { position:fixed; z-index:20; inset:0; display:flex; align-items:flex-end; justify-content:center; background:rgba(19,56,48,.58); backdrop-filter:blur(7px); }
.add-sheet { width:min(100%,610px); max-height:94dvh; overflow-y:auto; padding:10px 20px max(24px,env(safe-area-inset-bottom)); background:var(--paper); border-radius:29px 29px 0 0; box-shadow:0 -20px 55px rgba(16,50,42,.25); animation:rise .32s cubic-bezier(.16,1,.3,1); }
@keyframes rise { from { transform:translateY(42px); opacity:.45; } }
.sheet-handle { width:40px; height:5px; margin:0 auto 9px; border-radius:999px; background:#c9ddd5; }
.add-sheet header { display:flex; align-items:center; justify-content:space-between; }
.add-sheet header small { color:var(--accent-dark); font-size:10px; font-weight:800; letter-spacing:.08em; }
.add-sheet h2 { margin:1px 0 0; font-size:23px; }
.add-sheet header button { width:40px; height:40px; display:grid; place-items:center; border:0; border-radius:14px; background:#eaf4ef; cursor:pointer; }
.type-toggle { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:17px 0; padding:4px; background:#e8f1ed; border-radius:15px; }
.type-toggle button { height:41px; border:0; border-radius:11px; background:transparent; font-size:13px; font-weight:800; }
.type-toggle .active { background:var(--card); box-shadow:0 3px 10px rgba(42,111,89,.12); }
.type-toggle .active.expense { color:var(--accent-dark); } .type-toggle .active.income { color:var(--green); }
.amount-field>span,fieldset legend,.form-row label>span { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; }
.amount-field>div { display:flex; align-items:center; gap:8px; height:76px; padding:0 16px; border:1.5px solid #cfe2da; border-radius:19px; background:var(--card); }
.amount-field b { font-size:22px; }
.amount-field input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--ink); font-size:34px; font-weight:850; }
.amount-field input::placeholder { color:#91a9a1; }
fieldset { margin:18px 0; padding:0; border:0; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.category-grid button { height:64px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:3px; border:1px solid #dfede7; border-radius:15px; background:var(--card); color:var(--muted); font-size:10px; cursor:pointer; }
.category-grid button span { font-size:20px; }
.category-grid button.selected { color:var(--ink); border-color:#8ac7b2; background:#dcf3e7; box-shadow:inset 0 0 0 1px #a8d7c7; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.form-row label input { width:100%; height:47px; padding:0 11px; border:1px solid #d5e5df; border-radius:13px; outline:none; background:var(--card); color:var(--ink); font-size:12px; }
.form-error { min-height:14px; margin:8px 0 0; color:var(--accent-dark); font-size:11px; }
.save-button { width:100%; height:52px; display:flex; align-items:center; justify-content:center; gap:7px; margin-top:13px; border:0; border-radius:16px; background:var(--green); color:#fff; font-weight:800; box-shadow:0 9px 22px rgba(43,126,98,.24); cursor:pointer; }
.save-button:disabled { opacity:.65; }

@media (min-width:700px) {
  .illustrated-hero { min-height:555px; padding-inline:28px; background-position:center 72%; }
  .content-deck { padding-inline:28px; }
  .balance-card { min-height:238px; padding:30px; }
  .balance-meta { max-width:450px; }
  .fab { bottom:27px; }
}
@media (max-width:390px) {
  .illustrated-hero,.content-deck { padding-inline:14px; }
  .balance-card { padding-inline:19px; }
  .balance-meta { gap:7px; }
  .quick-grid { gap:6px; }
  .quick-grid button { padding-inline:2px; }
  .mascot-note { grid-template-columns:50px 1fr auto; padding-inline:10px; }
  .mascot-avatar { width:50px; height:50px; }
  .category-grid { gap:6px; }
}
@media (hover:none) {
  .delete-button { position:static; opacity:.55; width:24px; background:transparent; }
  .entry-row { grid-template-columns:45px 1fr auto 24px; }
}
@media (prefers-reduced-transparency:reduce) {
  .month-switcher,.balance-card,.brand-mark,.icon-button { background:#f5fff9; backdrop-filter:none; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
@media (prefers-color-scheme:dark) {
  :root { --ink:#d8f3e9; --ink-strong:#effdf8; --muted:#9bbab0; --page:#102b25; --paper:#14352e; --card:#1b4239; --line:#2b554a; --shadow:0 18px 45px rgba(2,18,14,.28); }
  html,.ledger-shell { background:#102b25; }
  .ledger-shell { background:linear-gradient(180deg,#133f48,#102b25 58%); }
  .ledger-app { box-shadow:0 0 70px rgba(0,0,0,.25); }
  .illustrated-hero { background-image:linear-gradient(180deg,rgba(7,37,44,.2),rgba(9,46,37,.45)),url("cloud-island-ledger.png"); filter:saturate(.88); }
  .balance-card { color:#dff8ee; border-color:rgba(255,255,255,.18); background:linear-gradient(145deg,rgba(23,70,61,.88),rgba(15,55,47,.79)); }
  .balance-heading,.balance-meta small { color:#a9cfc2; }
  .private-pill { color:#c8e8de; border-color:rgba(255,255,255,.15); }
  .balance-number { color:#f2fff9; }
  .balance-meta { border-color:rgba(255,255,255,.13); }
  .content-deck { background:var(--paper); box-shadow:0 -12px 34px rgba(4,26,20,.24); }
  .mascot-note { border-color:#315d51; background:linear-gradient(135deg,#1b463b,#173c34); }
  .quick-grid button,.entry-card,.report-title,.category-report,.amount-field>div,.category-grid button,.form-row label input { background:var(--card); }
  .segmented,.type-toggle { background:#102c26; }
  .segmented button.active,.type-toggle .active { background:#245044; }
  .text-action,.day-heading span { background:#1d443a; }
  .entry-row { border-color:#285046; }
  .category-icon { background:#224b40; box-shadow:inset 0 0 0 1px #315c51; }
  .report-title { background:linear-gradient(135deg,#1b4239 35%,#1e5043); }
  .donut { background:radial-gradient(circle at center,var(--card) 50%,transparent 52%),conic-gradient(var(--accent) 0 var(--donut-percent,72%),#315c51 var(--donut-percent,72%) 100%); }
  .add-sheet { background:var(--paper); }
  .add-sheet header button { background:#1c473c; }
  .category-grid button.selected { background:#245849; color:#e7fff6; }
}


.hidden { display:none!important; }
#content { display:flex; flex-direction:column; gap:18px; }
.backup-tip { margin:22px 0; padding:15px; border-radius:15px; background:#e8f7ef; color:var(--muted); font-size:12px; line-height:1.75; }
.backup-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.backup-actions button,.backup-actions label { height:50px; display:grid; place-items:center; border:1px solid var(--line); border-radius:15px; background:var(--card); font-size:12px; font-weight:750; cursor:pointer; }
.backup-actions button { background:var(--green); color:#fff; }
.backup-actions input { display:none; }
.backup-count { text-align:center; color:var(--muted); font-size:11px; margin:16px 0 0; }

.install-shortcut { display:flex; align-items:center; gap:11px; width:100%; margin-top:22px; padding:14px; border:1px dashed var(--line); border-radius:19px; background:var(--card); text-align:left; cursor:pointer; }
.install-shortcut img { border-radius:10px; }
.install-shortcut span { display:grid; gap:4px; flex:1; }
.install-shortcut strong { font-size:12px; }
.install-shortcut small { color:var(--muted); font-size:11px; }
.install-shortcut b { color:var(--green); font-size:19px; }
.install-sheet { max-height:90dvh; overflow:auto; padding-bottom:max(24px,env(safe-area-inset-bottom)); }
.install-app { display:flex; align-items:center; gap:14px; margin:24px 0; }
.install-app img { border-radius:20px; box-shadow:0 8px 20px rgba(42,111,89,.15); }
.install-app strong { font-size:19px; }
.install-app p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.install-guide { border:1px solid var(--line); border-radius:17px; padding:15px 17px; background:var(--card); }
.install-guide h3 { margin:0 0 9px; font-size:13px; }
.install-guide ol { margin:0; padding-left:20px; color:var(--muted); font-size:12px; line-height:1.9; }
.install-guide p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.install-state { color:var(--green); font-size:12px; line-height:1.7; }
.install-state:empty { display:none; }
.install-offline,.install-privacy { color:var(--muted); font-size:11px; line-height:1.8; }
.install-offline { margin:16px 0; }
.share-ledger { width:100%; min-height:46px; border:1px solid var(--line); border-radius:14px; background:var(--card); cursor:pointer; font-size:13px; font-weight:700; }
.topbar { padding-top:env(safe-area-inset-top); height:calc(76px + env(safe-area-inset-top)); }
@media (display-mode:standalone) { .install-shortcut { display:none; } }

