  :root{
    --paper:#F3EBE0; --paper-deep:#E5D5C0; --rule:#DECBB2;
    --card:#FDFAF6; --card-edge:#EBDCC8;
    --ink:#3B2A1D; --ink-soft:#7B6350; --ink-faint:#A9927C;
    --seal:#5E1A21; --seal-soft:#7A2A30;
    --gold:#8B5A0D; --tan:#D3A878; --tan-soft:#EFE0C8; --tan-deep:#C79A63;
    --danger:#A63A2A; --cream:#FBF3E6;
    --grid-line:rgba(139,90,13,.08);
    --sh:0 1px 3px rgba(59,42,29,.07), 0 4px 14px rgba(59,42,29,.06);
    --r:11px;
    --navh:calc(58px + env(safe-area-inset-bottom));
    --font-body:'Zen Kaku Gothic New',-apple-system,'Hiragino Sans',sans-serif;
  }
  /* フォント選択（設定画面）：標準／丸ゴシック／見やすさ重視UD */
  body.font-maru{--font-body:'Zen Maru Gothic',-apple-system,'Hiragino Sans',sans-serif;}
  body.font-ud{--font-body:'BIZ UDPGothic',-apple-system,'Hiragino Sans',sans-serif;}

  /* 配色テーマ（設定画面）：標準／ダーク／パステル／モノトーン */
  body.theme-dark{
    --paper:#1E1B18; --paper-deep:#141210; --rule:#3A342E;
    --card:#26221E; --card-edge:#3A342E;
    --ink:#EDE3D6; --ink-soft:#B8AA98; --ink-faint:#8A7B69;
    --seal:#B0463B; --seal-soft:#C65A4C;
    --gold:#D9A34A; --tan:#8A6A42; --tan-soft:#3A2F22; --tan-deep:#B98B4E;
    --danger:#E06456; --cream:#F5EDE2;
    --grid-line:rgba(255,255,255,.04);
    --sh:0 1px 3px rgba(0,0,0,.3), 0 4px 14px rgba(0,0,0,.25);
  }
  body.theme-pastel{
    --paper:#F5F2FA; --paper-deep:#EAE3F5; --rule:#DCD3EE;
    --card:#FFFFFF; --card-edge:#E8E1F5;
    --ink:#4A4458; --ink-soft:#8B84A0; --ink-faint:#B7B0CC;
    --seal:#C97B94; --seal-soft:#D98FA6;
    --gold:#7DA37C; --tan:#D8C6E8; --tan-soft:#F0E8F8; --tan-deep:#C7AEDC;
    --danger:#D97862; --cream:#FFFBF5;
    --grid-line:rgba(140,120,180,.05);
    --sh:0 1px 3px rgba(120,100,160,.08), 0 4px 14px rgba(120,100,160,.07);
  }
  body.theme-mono{
    --paper:#EFF1F4; --paper-deep:#E2E5EA; --rule:#CDD3DB;
    --card:#FFFFFF; --card-edge:#DEE2E8;
    --ink:#20242C; --ink-soft:#5B6472; --ink-faint:#8D95A2;
    --seal:#1F3A5F; --seal-soft:#2B4D7A;
    --gold:#3B6E5E; --tan:#B8C4D2; --tan-soft:#E7ECF1; --tan-deep:#9FB0C2;
    --danger:#B23A3A; --cream:#F5F7FA;
    --grid-line:rgba(30,50,80,.05);
    --sh:0 1px 3px rgba(20,30,50,.07), 0 4px 14px rgba(20,30,50,.06);
  }

  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html{-webkit-text-size-adjust:100%;}
  html,body{margin:0;padding:0;overscroll-behavior-y:contain;}
  body{
    background:var(--paper);
    background-image:linear-gradient(var(--grid-line) 1px, transparent 1px);
    background-size:100% 36px;
    font-family:var(--font-body);
    color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;
    touch-action:manipulation;
    -webkit-user-select:none;user-select:none;
    transition:background-color .2s ease,color .2s ease;
  }
  input,textarea,select{-webkit-user-select:text;user-select:text;font-size:16px;}
  /* 金額表示はコピーできるように選択を許可する */
  .num{-webkit-user-select:text;user-select:text;}
  #app{max-width:480px;margin:0 auto;padding-bottom:calc(var(--navh) + 12px);min-height:100vh;position:relative;}
  /* PCなど画面の広い端末では、縦一列のまま少し幅を広げて余白を活かす */
  @media (min-width:700px){#app{max-width:640px;}nav .in{max-width:640px;}}
  @media (min-width:1000px){#app{max-width:760px;}nav .in{max-width:760px;}}
  /* 封筒カードなど、横並びにできる一覧は広い画面で2列にする */
  @media (min-width:700px){
    .pad.stack{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;align-items:start;}
  }
  .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}
  .mincho{font-family:var(--font-body);}

  /* ---- screens ---- */
  .screen{display:none;}
  .screen.on{display:block;}
  .screen.anim{animation:scrIn .22s cubic-bezier(.22,.9,.3,1);}
  @keyframes scrIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

  .press{transition:transform .09s ease, background-color .12s ease, opacity .12s ease;}
  .press:active{transform:scale(.965);}

  .top{padding:calc(16px + env(safe-area-inset-top)) 18px 6px;}
  .brand{font-family:var(--font-body);font-size:19px;font-weight:700;letter-spacing:.08em;
    display:flex;align-items:center;gap:8px;}
  .brand .sb{width:23px;height:23px;border-radius:6px;background:var(--seal);color:var(--cream);
    font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .month-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
  .month-row .ml{font-family:var(--font-body);font-size:14px;color:var(--ink-soft);letter-spacing:.05em;
    padding:5px 9px;border-radius:8px;border:1px solid transparent;}
  .month-row .ml:active{background:var(--card);border-color:var(--card-edge);}
  .month-nav{display:flex;gap:6px;}
  .month-nav button{width:31px;height:31px;border-radius:50%;border:1px solid var(--rule);
    background:var(--card);color:var(--ink-soft);font-size:15px;line-height:1;}

  .assets{margin:12px 18px 0;border-radius:var(--r);box-shadow:var(--sh);
    background:linear-gradient(160deg,#FBF1E0 0%,#F2E1C6 100%);
    border:1px solid #E4CFAC;padding:17px 18px 14px;position:relative;overflow:hidden;}
  .assets::after{content:"資";position:absolute;right:-6px;bottom:-18px;font-family:var(--font-body);
    font-size:86px;color:rgba(139,90,13,.08);font-weight:800;line-height:1;}
  .assets .k{font-size:11px;letter-spacing:.16em;color:var(--gold);}
  .assets .v{font-family:var(--font-body);font-size:35px;font-weight:800;line-height:1.06;
    margin-top:2px;color:#4A3418;}
  .assets .dl{font-size:11.5px;margin-top:4px;color:var(--ink-soft);}
  .assets .dl b.up{color:var(--gold);} .assets .dl b.dn{color:var(--danger);}
  .assets ul{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px solid rgba(139,90,13,.18);
    position:relative;z-index:1;}
  .assets li{display:flex;justify-content:space-between;font-size:12px;padding:3.5px 0;color:var(--ink-soft);}
  .assets li b{font-family:var(--font-body);font-weight:700;color:var(--ink);}
  .assets .eye{position:absolute;top:12px;right:12px;z-index:2;padding:5px 10px;border-radius:14px;
    border:1px solid var(--tan-deep);background:rgba(255,255,255,.65);color:#6B4E1E;font-size:10.5px;
    font-family:inherit;}
  .assets .v.masked{letter-spacing:.08em;color:#8A7048;}
  .assets .more{margin-top:10px;position:relative;z-index:1;width:100%;padding:10px;border-radius:8px;
    border:1px solid var(--tan-deep);background:rgba(255,255,255,.6);color:#6B4E1E;font-size:12px;font-family:inherit;}

  .pace{margin:12px 18px 0;background:var(--card);border:1px solid var(--card-edge);
    border-radius:var(--r);box-shadow:var(--sh);padding:17px 18px 15px;}
  .pace .eb{font-size:11px;letter-spacing:.14em;color:var(--ink-faint);}
  .pace .big{font-family:var(--font-body);font-size:35px;font-weight:800;line-height:1.05;margin-top:3px;}
  .pace .big.over{color:var(--danger);} .pace .big.good{color:var(--gold);}
  .pace .cap{font-size:12px;color:var(--ink-soft);margin-top:5px;line-height:1.6;}
  .track{margin-top:15px;height:24px;border-radius:6px;background:var(--paper-deep);position:relative;overflow:hidden;}
  .track i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;
    transition:width .55s cubic-bezier(.22,.9,.3,1);}
  .track .mk{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);}
  .track .mk::after{content:"今日";position:absolute;top:-15px;left:50%;transform:translateX(-50%);
    font-size:9px;color:var(--ink);white-space:nowrap;letter-spacing:.05em;}
  .tl{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-faint);margin-top:17px;}

  .strip{margin:12px 18px 0;display:flex;gap:10px;}
  .strip .cell{flex:1;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    padding:11px 12px;box-shadow:var(--sh);}
  .strip .cell .k{font-size:10.5px;color:var(--ink-faint);letter-spacing:.06em;}
  .strip .cell .v{font-family:var(--font-body);font-size:19px;font-weight:700;margin-top:3px;}
  .strip .cell .v.neg{color:var(--danger);}

  .sec{padding:0 18px;margin:20px 0 9px;font-family:var(--font-body);font-size:13.5px;
    color:var(--ink-soft);display:flex;align-items:center;gap:10px;letter-spacing:.06em;}
  .sec::after{content:"";flex:1;height:1px;background:var(--rule);}
  .pad{padding:0 18px;} .stack{display:flex;flex-direction:column;gap:7px;}

  .undo{margin:10px 18px 0;padding:10px 13px;border-radius:9px;background:var(--tan-soft);
    border:1px solid #E0CBA9;display:flex;align-items:center;gap:10px;font-size:11.5px;color:#6B4E1E;}
  .undo .t{flex:1;line-height:1.5;}
  .undo button{flex-shrink:0;padding:7px 12px;border-radius:7px;border:1px solid var(--gold);
    background:#fff;color:var(--gold);font-size:11px;font-family:inherit;font-weight:700;}

  .env{background:var(--card);border:1px solid var(--card-edge);border-radius:4px 4px var(--r) var(--r);
    box-shadow:var(--sh);padding:11px 15px 10px;position:relative;}
  .env::before{content:"";position:absolute;top:0;left:16px;right:16px;height:7px;
    background:linear-gradient(135deg,transparent 49.5%,var(--card-edge) 50%) top left/9px 7px repeat-x;opacity:.6;}
  .env .r1{display:flex;align-items:center;gap:10px;}
  .env .cp{width:27px;height:27px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;
    justify-content:center;color:#FDF6EA;font-size:12px;font-weight:700;font-family:var(--font-body);}
  .env .nm{font-size:14px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .env .bal{font-family:var(--font-body);font-size:17px;font-weight:700;}
  .env .bal.low{color:var(--danger);}
  .env .mt{margin-top:9px;height:5px;border-radius:3px;background:var(--paper-deep);overflow:hidden;}
  .env .mt i{display:block;height:100%;border-radius:3px;transition:width .5s cubic-bezier(.22,.9,.3,1);}
  .env .r2{margin-top:6px;display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-faint);}
  .env .fg{font-size:10px;color:var(--gold);margin-top:5px;}

  .btn{width:100%;padding:14px;border:none;border-radius:10px;background:var(--seal);color:var(--cream);
    font-family:var(--font-body);font-size:15.5px;font-weight:700;letter-spacing:.1em;box-shadow:var(--sh);}
  .btn:active{background:var(--seal-soft);}
  .btn.ghost{background:none;border:1.5px solid var(--rule);color:var(--ink-soft);box-shadow:none;
    font-size:13.5px;letter-spacing:.04em;}
  .btn.gold{background:var(--gold);color:#FDF6EA;}
  .btn[disabled]{opacity:.4;pointer-events:none;}
  .tiny{padding:9px 10px;border-radius:8px;border:1px solid var(--rule);background:var(--paper);
    font-size:11.5px;color:var(--ink-soft);font-family:inherit;}
  .tiny.warn{border-color:var(--danger);color:var(--danger);}
  .tiny.gold{border-color:var(--gold);color:var(--gold);font-weight:700;}

  /* ---- record ---- */
  .rh{padding:calc(12px + env(safe-area-inset-top)) 18px 0;display:flex;align-items:center;
    justify-content:space-between;gap:10px;}
  .rh .t{font-family:var(--font-body);font-size:17px;font-weight:700;letter-spacing:.05em;}
  .rh .bl{font-size:11px;color:var(--ink-soft);text-align:right;line-height:1.45;}
  .rh .bl b{font-family:var(--font-body);font-size:14px;}

  .db{margin:9px 18px 0;border-radius:10px;position:relative;border:1px solid var(--card-edge);
    background:var(--card);padding:6px 7px;display:flex;align-items:center;gap:6px;box-shadow:var(--sh);
    transition:background-color .18s ease;}
  .db.held{background:var(--tan-soft);border-color:#E0CBA9;}
  .db .arw{width:31px;height:31px;border-radius:8px;border:1px solid var(--rule);background:var(--paper);
    color:var(--ink-soft);font-size:15px;flex-shrink:0;line-height:1;}
  .db .mid{flex:1;text-align:center;min-width:0;}
  .db .d{font-family:var(--font-body);font-size:15.5px;font-weight:700;}
  .db .hint{font-size:9.5px;color:var(--ink-faint);}
  .db.held .hint{color:var(--gold);}
  .db input[type=date]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;left:50%;bottom:0;}
  .db .tdy{flex-shrink:0;padding:6px 9px;border-radius:7px;border:1px solid var(--gold);
    background:#fff;color:var(--gold);font-size:10px;font-family:inherit;line-height:1.3;}

  .amt{margin:9px 18px 0;background:var(--card);border:1px solid var(--card-edge);border-radius:10px;
    box-shadow:var(--sh);padding:9px 16px;display:flex;align-items:baseline;justify-content:space-between;}
  .amt .y{font-family:var(--font-body);font-size:17px;color:var(--ink-faint);}
  .amt .v{font-family:var(--font-body);font-size:34px;font-weight:800;line-height:1.1;
    transition:color .15s ease;}
  .amt .v.zero{color:var(--ink-faint);}
  .amt .v.bump{animation:bump .16s ease;}
  @keyframes bump{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}

  .hrow{padding:9px 18px 0;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch;scroll-behavior:smooth;}
  .hrow::-webkit-scrollbar{display:none;}
  .hrow > *{flex-shrink:0;}
  /* マウス操作の端末（PC）は横スクロールしづらいので、折り返して全部見せる */
  @media (hover:hover) and (pointer:fine){
    .hrow{flex-wrap:wrap;overflow-x:visible;}
  }
  .pill{padding:8px 12px;border-radius:17px;border:1px solid var(--rule);background:var(--card);
    font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;white-space:nowrap;
    transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .09s ease;}
  .pill:active{transform:scale(.94);}
  .pill .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .pill.on{background:var(--seal);border-color:var(--seal);color:var(--cream);}
  .pill b{color:inherit;font-size:12px;}

  .mrow{padding:9px 18px 0;display:flex;gap:7px;}
  .mrow input{flex:1;padding:10px 11px;border:1px solid var(--rule);border-radius:9px;
    background:var(--card);font-family:inherit;font-size:14px;color:var(--ink);}
  .mrow select{flex:0 0 108px;padding:10px 6px;border:1px solid var(--rule);border-radius:9px;
    background:var(--card);font-family:inherit;font-size:13px;color:var(--ink-soft);}

  .kp{padding:9px 18px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
  .kp button{padding:14px 0;border-radius:10px;border:1px solid var(--card-edge);background:var(--card);
    font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--ink);box-shadow:var(--sh);
    transition:transform .07s ease,background-color .1s ease;}
  .kp button:active{background:var(--paper-deep);transform:scale(.93);}
  .kp button.u{font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-soft);}
  .kp button.go{grid-column:4;grid-row:1 / span 4;background:var(--seal);color:var(--cream);
    border-color:var(--seal);font-size:19px;letter-spacing:.14em;writing-mode:vertical-rl;
    display:flex;align-items:center;justify-content:center;}
  .kp button.go:active{background:var(--seal-soft);transform:scale(.97);}
  .kp button.go[disabled]{opacity:.32;pointer-events:none;}

  .js{margin:10px 18px 0;border:1px dashed var(--rule);border-radius:10px;padding:9px 12px;
    background:rgba(255,255,255,.55);animation:scrIn .2s ease;}
  .js .h{font-size:10.5px;color:var(--ink-faint);letter-spacing:.06em;margin-bottom:5px;}
  .js .li{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);padding:2.5px 0;}

  .dh{font-size:11.5px;color:var(--ink-soft);margin:16px 0 8px;font-family:var(--font-body);
    display:flex;justify-content:space-between;letter-spacing:.04em;}
  .rec{background:var(--card);border:1px solid var(--card-edge);border-radius:10px;padding:11px 12px;
    display:flex;align-items:center;gap:10px;margin-bottom:7px;box-shadow:var(--sh);}
  .rec .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
  .rec .mid{flex:1;min-width:0;}
  .rec .c{font-size:13px;font-weight:700;}
  .rec .m{font-size:11px;color:var(--ink-faint);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .rec .a{font-family:var(--font-body);font-weight:700;font-size:15px;flex-shrink:0;}
  .rec .x{background:none;border:none;color:var(--ink-faint);font-size:15px;padding:6px 2px;flex-shrink:0;}

  .subtabs{display:flex;gap:7px;padding:12px 18px 0;}
  .subtabs button{flex:1;padding:10px 4px;border-radius:9px;border:1px solid var(--rule);background:var(--card);
    font-size:12.5px;color:var(--ink-soft);font-family:inherit;transition:background-color .16s ease,color .16s ease;}
  .subtabs button.on{background:var(--seal);border-color:var(--seal);color:var(--cream);font-weight:700;}
  .acct{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);box-shadow:var(--sh);
    padding:13px 15px;margin-bottom:9px;display:flex;align-items:center;gap:11px;}
  .acct .bg{width:31px;height:31px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;
    justify-content:center;font-family:var(--font-body);font-size:12px;font-weight:700;color:#FDF6EA;}
  .acct .mid{flex:1;min-width:0;}
  .acct .n{font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .acct .t{font-size:10.5px;color:var(--ink-faint);margin-top:1px;}
  .acct .b{font-family:var(--font-body);font-size:17px;font-weight:700;flex-shrink:0;}
  .acct.grp{background:var(--tan-soft);border-color:#E0CBA9;margin-bottom:0;border-radius:var(--r) var(--r) 0 0;}
  .acct.sub{margin-left:16px;margin-bottom:5px;border-radius:8px;padding:11px 13px;}
  .acct.sub .tick{width:9px;height:9px;border-radius:3px;background:var(--tan-deep);flex-shrink:0;}
  .acct.sub .n{font-size:12.5px;} .acct.sub .b{font-size:15px;}
  .dash.sm{margin:2px 0 14px 16px;width:calc(100% - 16px);padding:9px;font-size:11.5px;border-width:1px;}
  .tot{background:var(--card);border:1px dashed var(--rule);border-radius:var(--r);padding:13px 15px;
    display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;}
  .tot span{font-size:13px;font-weight:700;}
  .tot b{font-family:var(--font-body);font-size:20px;}

  .hero{margin:0 0 12px;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);padding:15px 16px;}
  .hero .k{font-size:11px;color:var(--ink-faint);letter-spacing:.1em;}
  .hero .v{font-family:var(--font-body);font-size:30px;font-weight:800;margin-top:2px;}
  .hero .pg{font-size:11.5px;color:var(--ink-soft);margin-top:5px;}
  .pb{display:flex;height:20px;border-radius:6px;overflow:hidden;margin-top:12px;background:var(--paper-deep);}
  .pb i{display:block;height:100%;transition:width .5s cubic-bezier(.22,.9,.3,1);}
  .pl{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px;}
  .pl span{font-size:10.5px;color:var(--ink-soft);display:flex;align-items:center;gap:4px;}
  .pl i{width:8px;height:8px;border-radius:2px;display:block;}

  .dc{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);margin-bottom:10px;overflow:hidden;display:flex;transition:opacity .2s ease;}
  .dc .bar{width:6px;flex-shrink:0;}
  .dc .body{flex:1;min-width:0;padding:13px 14px;}
  .dc.done{opacity:.6;}
  .dc .hd{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
  .dc .hd .n{font-size:13.5px;font-weight:700;}
  .dc .hd .am{font-family:var(--font-body);font-size:22px;font-weight:800;}
  .dc ul{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px dashed var(--rule);}
  .dc li{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);padding:2.5px 0;}
  .dc .chk{margin-top:10px;width:100%;padding:10px;border-radius:8px;border:1px solid var(--rule);
    background:var(--paper);font-size:12px;color:var(--ink-soft);font-family:inherit;}
  .dc.done .chk{background:var(--tan-soft);border-color:var(--tan-deep);color:#6B4E1E;font-weight:700;}
  .dc.auto .chk{display:none;}
  .dc.tr{border-color:#E3C0B7;}
  .dc.tr .hd .am{color:#8C2F26;}

  .ad{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);padding:13px 15px;margin-bottom:10px;}
  .ad .h{display:flex;justify-content:space-between;align-items:baseline;}
  .ad .h .n{font-size:13.5px;font-weight:700;}
  .ad .h .t{font-family:var(--font-body);font-size:17px;font-weight:700;}
  .ad ul{list-style:none;margin:9px 0 0;padding:8px 0 0;border-top:1px dashed var(--rule);}
  .ad li{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;
    color:var(--ink-soft);padding:3px 0;}
  .ad li input{width:92px;padding:6px 8px;border:1px solid var(--card-edge);border-radius:6px;
    text-align:right;font-family:inherit;font-size:12px;background:var(--paper);}
  .ad .hd2{display:flex;align-items:center;gap:6px;}
  .ad .dn{flex:1;min-width:0;border:none;border-bottom:1px solid var(--rule);background:none;
    font-size:13.5px;font-weight:700;padding:5px 2px;font-family:inherit;color:var(--ink);}
  .ad .dn:focus{outline:none;border-bottom-color:var(--gold);}
  .ad .ib{width:29px;height:29px;border-radius:8px;border:1px solid var(--rule);background:var(--paper);
    color:var(--ink-faint);font-size:13px;flex-shrink:0;line-height:1;font-family:inherit;}
  .ad .ib.dl{border-color:#E0BDB6;color:var(--danger);}
  .ad li{gap:6px;}
  .ad li .kd{flex:0 0 78px;padding:5px 4px;border:1px solid var(--card-edge);border-radius:6px;
    font-family:inherit;font-size:10.5px;background:var(--paper);color:var(--ink-soft);}
  .ad li .lockamt{width:92px;text-align:right;font-size:12px;color:var(--gold);font-weight:700;
    padding:6px 8px;border:1px dashed var(--tan-deep);border-radius:6px;background:var(--tan-soft);}
  .ad li.lnk{justify-content:flex-start;font-size:10.5px;color:var(--ink-faint);
    padding:2px 2px 7px;border-bottom:1px dotted var(--rule);}
  .ad li.lnk.on{color:var(--gold);font-weight:700;}
  .ad li.lnk:active{opacity:.6;}
  .ad li.lnk2{display:flex;align-items:center;gap:7px;padding:2px 2px 7px;
    border-bottom:1px dotted var(--rule);}
  .ad li.lnk2 .lk{flex:1;min-width:0;font-size:10.5px;color:var(--ink-faint);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ad li.lnk2 .lk.on{color:var(--gold);font-weight:700;}
  .ad li.lnk2 .lk:active{opacity:.6;}
  .ad li.lnk2 .iacct{flex:0 0 132px;padding:5px 4px;border:1px solid var(--card-edge);
    border-radius:6px;font-family:inherit;font-size:10.5px;background:var(--paper);color:var(--ink-soft);}
  .ad li .inm{flex:1;min-width:0;border:none;border-bottom:1px dotted var(--rule);background:none;
    font-size:12px;padding:5px 2px;font-family:inherit;color:var(--ink);text-align:left;}
  .ad li .inm:focus{outline:none;border-bottom-color:var(--gold);}
  .ad .foot{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:9px;
    border-top:1px dashed var(--rule);}
  .ad .foot .tiny{flex:1;}
  .ad .foot .sum{font-family:var(--font-body);font-size:15px;font-weight:700;}

  .kv{display:flex;gap:10px;margin-bottom:12px;}
  .kv > div{flex:1;}
  .kv label{display:block;font-size:11px;color:var(--ink-faint);margin-bottom:4px;}
  .kv input,.kv select{width:100%;padding:11px;border:1px solid var(--rule);border-radius:9px;
    font-family:var(--font-body);font-size:16px;font-weight:700;background:var(--card);color:var(--ink);}
  .kv input{text-align:right;}
  .kv select{font-size:14px;}

  .sc{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);padding:14px 15px;margin-bottom:10px;}
  .sc .tr{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
  .sc .ni{flex:1;min-width:0;width:100%;border:none;border-bottom:1px solid var(--rule);background:none;
    font-size:14px;font-weight:700;padding:5px 2px;font-family:inherit;color:var(--ink);}
  .sc .ni:focus{outline:none;border-bottom-color:var(--gold);}
  .m2{display:flex;gap:9px;margin-bottom:10px;}
  .m2 > div{flex:1;}
  .m2 label{display:block;font-size:10px;color:var(--ink-faint);margin-bottom:4px;}
  .m2 input,.m2 select{width:100%;padding:9px;border:1px solid var(--rule);border-radius:7px;
    font-family:inherit;font-size:13px;text-align:right;background:var(--paper);color:var(--ink);}
  .m2 select{text-align:left;}
  select.spill{padding:8px 9px;border:1px solid var(--rule);border-radius:16px;background:var(--card);
    font-family:inherit;font-size:12px;color:var(--ink-soft);max-width:100%;}
  .br{display:flex;gap:8px;} .br > *{flex:1;}
  .dash{margin:4px 18px 22px;padding:13px;width:calc(100% - 36px);border-radius:10px;
    border:1.5px dashed var(--ink-faint);background:none;color:var(--ink-soft);font-size:13px;font-family:inherit;}

  .gd{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);padding:16px 17px;margin-bottom:10px;}
  .gd h4{margin:0 0 8px;font-family:var(--font-body);font-size:14.5px;font-weight:700;
    display:flex;align-items:center;gap:8px;}
  .gd h4 .n{width:21px;height:21px;border-radius:6px;background:var(--seal);color:var(--cream);
    font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .gd p{margin:0 0 8px;font-size:12.5px;line-height:1.85;color:var(--ink-soft);}
  .gd p:last-child{margin-bottom:0;}
  .gd b{color:var(--ink);}
  .gd ol{margin:0;padding-left:1.3em;font-size:12.5px;line-height:1.9;color:var(--ink-soft);}

  .toc{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);margin-bottom:16px;overflow:hidden;}
  .toc button{width:100%;display:flex;align-items:center;gap:11px;padding:12px 15px;
    border:none;border-bottom:1px solid var(--rule);background:none;font-family:inherit;
    font-size:12.5px;color:var(--ink-soft);text-align:left;transition:background-color .12s ease;}
  .toc button:last-child{border-bottom:none;}
  .toc button:active{background:var(--paper-deep);}
  .toc .n{width:21px;height:21px;border-radius:6px;background:var(--seal);color:var(--cream);
    font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

  /* 月まとめ */
  .cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:8px;}
  .cal .wd{font-size:9.5px;color:var(--ink-faint);text-align:center;padding:2px 0;letter-spacing:.04em;}
  .cal .cell{background:var(--card);border:1px solid var(--card-edge);border-radius:6px;
    min-height:44px;padding:3px 4px;display:flex;flex-direction:column;justify-content:space-between;}
  .cal .cell.blank{background:none;border:none;}
  .cal .cell .dn{font-size:9.5px;color:var(--ink-faint);}
  .cal .cell .am{font-size:9.5px;font-weight:700;text-align:right;line-height:1.2;word-break:break-all;}
  .cal .cell.sun .dn{color:#B0736A;} .cal .cell.sat .dn{color:#7C8AA0;}
  .cal .cell.hi{background:var(--tan-soft);border-color:#E0CBA9;}
  .wk{overflow-x:auto;scrollbar-width:none;margin-top:8px;-webkit-overflow-scrolling:touch;}
  .wk::-webkit-scrollbar{display:none;}
  .wk table{border-collapse:collapse;font-size:11px;min-width:100%;}
  .wk th,.wk td{padding:6px 8px;white-space:nowrap;border-bottom:1px solid var(--card-edge);text-align:right;}
  .wk th:first-child,.wk td:first-child{text-align:left;position:sticky;left:0;background:var(--card);
    max-width:104px;overflow:hidden;text-overflow:ellipsis;}
  .wk thead th{color:var(--ink-faint);font-weight:500;font-size:10px;}
  .wk tbody td.tt{font-weight:700;}
  .wk tfoot td{font-weight:700;border-top:1px solid var(--rule);border-bottom:none;}
  .mnav{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--card-edge);
    border-radius:var(--r);box-shadow:var(--sh);padding:9px 10px;margin-bottom:10px;}
  .mnav button.nv{width:36px;height:36px;border-radius:10px;border:1px solid var(--rule);
    background:var(--paper);color:var(--ink-soft);font-size:17px;line-height:1;flex-shrink:0;}
  .mnav .lbl{flex:1;text-align:center;min-width:0;padding:4px 2px;border-radius:8px;}
  .mnav .lbl:active{background:var(--paper-deep);}
  .mnav .lbl b{display:block;font-family:var(--font-body);font-size:16px;font-weight:700;}
  .mnav .lbl span{font-size:10.5px;color:var(--ink-faint);}
  .mnav .tdb{flex-shrink:0;padding:7px 10px;border-radius:8px;border:1px solid var(--gold);
    background:#fff;color:var(--gold);font-size:10.5px;font-family:inherit;line-height:1.3;}
  .blk{background:var(--card);border:1px solid var(--card-edge);border-radius:var(--r);
    box-shadow:var(--sh);padding:14px 15px;margin-bottom:10px;}
  .blk .bh{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;}
  .blk .bh .n{font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;}
  .blk .bh .n i{width:19px;height:19px;border-radius:5px;background:var(--tan-soft);color:var(--gold);
    font-size:10px;font-style:normal;display:flex;align-items:center;justify-content:center;font-weight:700;}
  .blk .bh .s{font-family:var(--font-body);font-size:19px;font-weight:800;}
  .blk ul{list-style:none;margin:0;padding:8px 0 0;border-top:1px dashed var(--rule);}
  .blk li{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-soft);padding:2.5px 0;gap:10px;}
  .blk li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .fin{background:linear-gradient(160deg,#FBF1E0 0%,#F2E1C6 100%);border:1px solid #E4CFAC;
    border-radius:var(--r);box-shadow:var(--sh);padding:16px 17px;margin-bottom:10px;}
  .fin .eq{font-size:11px;color:var(--ink-soft);line-height:1.9;}
  .fin .big{font-family:var(--font-body);font-size:31px;font-weight:800;margin-top:4px;color:#4A3418;}
  .fin .big.neg{color:var(--danger);}
  .fin .sub{font-size:11.5px;color:var(--ink-soft);margin-top:6px;line-height:1.7;}
  .empty{padding:32px 24px;text-align:center;color:var(--ink-faint);font-size:13px;line-height:1.8;}
  .sh{padding:calc(18px + env(safe-area-inset-top)) 18px 4px;font-family:var(--font-body);
    font-size:19px;font-weight:700;letter-spacing:.05em;}
  .ss{padding:0 18px;font-size:11.5px;color:var(--ink-faint);margin-top:2px;line-height:1.6;}

  /* ---- nav ---- */
  nav{position:fixed;bottom:0;left:0;right:0;background:rgba(253,250,246,.94);
    -webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);
    border-top:1px solid var(--card-edge);box-shadow:0 -1px 12px rgba(59,42,29,.07);
    padding-bottom:env(safe-area-inset-bottom);z-index:30;}
  nav .in{max-width:480px;margin:0 auto;display:flex;position:relative;}
  nav .ind{position:absolute;top:0;height:2.5px;background:var(--seal);border-radius:0 0 3px 3px;
    transition:left .26s cubic-bezier(.3,1.2,.4,1),width .26s cubic-bezier(.3,1.2,.4,1);}
  nav button{flex:1;background:none;border:none;padding:9px 2px 7px;display:flex;flex-direction:column;
    align-items:center;gap:3px;color:var(--ink-faint);font-family:inherit;font-size:10px;
    transition:color .18s ease;}
  nav button .ic{width:22px;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;
    font-family:var(--font-body);font-weight:700;font-size:13px;
    transition:background-color .2s ease,color .2s ease,transform .2s cubic-bezier(.3,1.3,.4,1);}
  nav button.on{color:var(--seal);}
  nav button.on .ic{background:var(--seal);color:var(--cream);transform:translateY(-1px);}

  /* ---- sheet ---- */
  #sr{position:fixed;inset:0;z-index:60;display:none;}
  #sr.open{display:block;}
  #sr .bd{position:absolute;inset:0;background:rgba(40,28,18,.42);opacity:0;transition:opacity .24s ease;}
  #sr.in .bd{opacity:1;}
  #sr .pn{position:absolute;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;
    background:var(--card);border-radius:18px 18px 0 0;padding:8px 18px calc(18px + env(safe-area-inset-bottom));
    transform:translateY(101%);transition:transform .28s cubic-bezier(.22,.9,.3,1);
    max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 -6px 30px rgba(40,28,18,.2);}
  #sr.in .pn{transform:none;}
  #sr .grab{width:38px;height:4px;border-radius:3px;background:var(--rule);margin:4px auto 12px;}
  #sr h3{margin:0 0 4px;font-family:var(--font-body);font-size:17px;font-weight:700;}
  #sr .desc{font-size:12px;color:var(--ink-soft);line-height:1.7;margin-bottom:12px;}
  #sr .fl{margin-bottom:12px;}
  #sr .fl label{display:block;font-size:11px;color:var(--ink-faint);margin-bottom:5px;}
  #sr .fl input,#sr .fl select,#sr .fl textarea{width:100%;padding:12px;border:1px solid var(--rule);
    border-radius:10px;background:var(--paper);font-family:inherit;font-size:15px;color:var(--ink);}
  #sr .fl input.n{text-align:right;font-family:var(--font-body);font-size:20px;font-weight:700;}
  #sr .fl textarea{min-height:110px;font-size:11px;font-family:monospace;line-height:1.6;}
  #sr .chklist{margin-top:10px;border:1px solid var(--card-edge);border-radius:9px;
    background:var(--paper);max-height:190px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  #sr .chkrow{display:flex;justify-content:space-between;gap:10px;padding:6px 11px;font-size:11.5px;
    color:var(--ink-soft);border-bottom:1px solid var(--card-edge);}
  #sr .chkrow:last-child{border-bottom:none;}
  #sr .chkrow span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #sr .chkrow.tt{position:sticky;bottom:0;background:var(--tan-soft);font-weight:700;color:var(--ink);}
  #sr .livebox{background:var(--paper);border:1px solid var(--card-edge);border-radius:10px;
    padding:11px 13px;margin-bottom:14px;}
  #sr .livebox .lr{display:flex;justify-content:space-between;align-items:baseline;
    font-size:12px;color:var(--ink-soft);padding:3px 0;}
  #sr .livebox .lr b{font-family:var(--font-body);font-size:15px;font-weight:700;color:var(--ink);}
  #sr .livebox .lr.diff{border-top:1px dashed var(--rule);margin-top:5px;padding-top:7px;}
  #sr .livebox .lr.diff b{font-size:19px;}
  #sr .livebox .lr.diff b.up{color:var(--gold);} #sr .livebox .lr.diff b.dn{color:var(--danger);}
  #sr .livebox .note{font-size:10.5px;color:var(--ink-faint);margin-top:6px;line-height:1.6;}
  #sr .acts{display:flex;gap:9px;margin-top:4px;}
  #sr .acts button{flex:1;padding:14px;border-radius:10px;border:none;font-family:inherit;
    font-size:14px;font-weight:700;}
  #sr .acts .cancel{background:var(--paper-deep);color:var(--ink-soft);}
  #sr .acts .ok{background:var(--seal);color:var(--cream);}
  #sr .acts .ok.danger{background:var(--danger);}
  #sr .acts .ok.gold{background:var(--gold);}

  .stw{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:70;}
  .stm{width:104px;height:104px;border-radius:10px;border:4px solid var(--seal);color:var(--seal);
    display:flex;align-items:center;justify-content:center;font-family:var(--font-body);
    font-size:24px;font-weight:800;background:rgba(253,250,246,.93);letter-spacing:.06em;
    transform:scale(2.4) rotate(-11deg);opacity:0;animation:st .5s cubic-bezier(.2,1.4,.5,1) forwards;}
  @keyframes st{0%{transform:scale(2.5) rotate(-11deg);opacity:0}
    55%{transform:scale(.93) rotate(-11deg);opacity:1}100%{transform:scale(1) rotate(-11deg);opacity:1}}
  #tst{position:fixed;bottom:calc(var(--navh) + 14px);left:50%;transform:translate(-50%,8px);
    background:var(--ink);color:var(--cream);padding:10px 18px;border-radius:22px;font-size:12.5px;
    opacity:0;transition:opacity .22s ease,transform .22s ease;pointer-events:none;z-index:75;
    white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--sh);}
  #tst.show{opacity:1;transform:translate(-50%,0);}

  /* ===== 印刷・PDF用の1枚 ===== */
  #pv{display:none;}
  #pv.on{display:block;position:fixed;inset:0;background:#fff;z-index:100;overflow:auto;
    -webkit-overflow-scrolling:touch;}
  #pv .pvbar{position:sticky;top:0;display:flex;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
    background:#fff;border-bottom:1px solid #EAE2D6;z-index:2;}
  #pv .pvbar button{flex:1;padding:12px;border-radius:9px;border:1px solid var(--rule);
    background:var(--paper);font-family:inherit;font-size:13px;color:var(--ink);}
  #pv .pvbar button.main{background:var(--seal);color:var(--cream);border-color:var(--seal);font-weight:700;}
  #pv .hint{font-size:11px;color:var(--ink-soft);line-height:1.7;padding:10px 14px 0;}
  #pv .wrap{padding:10px 0 40px;overflow:hidden;}
  #pv .scaler{transform-origin:top left;}

  .sheet{width:190mm;background:#fff;color:#3B2A1D;padding:2mm 0 4mm;
    font-family:'Zen Kaku Gothic New',sans-serif;font-size:8.6pt;line-height:1.45;}
  .sheet .sh1{display:flex;align-items:flex-end;justify-content:space-between;
    border-bottom:1.6pt solid #C79A63;padding-bottom:2mm;margin-bottom:3mm;}
  .sheet .sh1 h1{margin:0;font-family:var(--font-body);font-size:17pt;font-weight:800;letter-spacing:.08em;}
  .sheet .sh1 .mo{font-family:var(--font-body);font-size:22pt;font-weight:800;color:#8B5A0D;
    line-height:1;margin-right:3mm;}
  .sheet .sh1 .rt{text-align:right;font-size:8pt;color:#7B6350;}
  .pcal{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:3mm;}
  .pcal th{font-family:var(--font-body);font-size:8pt;font-weight:700;color:#7B6350;
    padding:1mm 0;border-bottom:.6pt solid #DECBB2;}
  .pcal th.s6{color:#B0736A;} .pcal th.s5{color:#7C8AA0;}
  .pcal td{border:.5pt solid #E4D9C6;height:16mm;vertical-align:top;padding:.8mm 1mm;}
  .pcal td .d{font-size:7pt;color:#A9927C;}
  .pcal td .v{display:block;text-align:right;font-weight:700;font-size:8.4pt;margin-top:1mm;}
  .pcal td.blank{border:none;}
  .pwk{width:100%;border-collapse:collapse;margin-bottom:3mm;font-size:8pt;}
  .pwk th,.pwk td{border:.5pt solid #E4D9C6;padding:1.2mm 1.5mm;text-align:right;}
  .pwk th{background:#F6EFE3;color:#7B6350;font-weight:500;font-size:7.6pt;}
  .pwk th:first-child,.pwk td:first-child{text-align:left;}
  .pcols{display:flex;gap:3mm;margin-bottom:3mm;align-items:stretch;}
  .pcol{flex:1;min-width:0;display:flex;flex-direction:column;}
  .pcol.stack{gap:2.5mm;}
  .pblock{display:flex;flex-direction:column;}
  .pblock.grow{flex:1;}
  .page2{page-break-before:always;break-before:page;padding-top:4mm;}
  .pcol h2{margin:0 0 1.5mm;font-family:var(--font-body);font-size:9.4pt;font-weight:700;
    text-align:center;letter-spacing:.04em;}
  .pcol h2 b{color:#8B5A0D;}
  .plist{flex:1;border-top:.8pt solid #C79A63;}
  .plist .r{display:flex;justify-content:space-between;gap:2mm;border-bottom:.5pt solid #E4D9C6;
    padding:1.1mm .5mm;font-size:8.2pt;}
  .plist .r span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5A4634;}
  .plist .r span:last-child{white-space:nowrap;}
  .plist .r.empty{color:#A9927C;justify-content:center;}
  .plist .r.pad{color:#fff;}
  .plist .r.pad span{visibility:hidden;}
  .psum{background:#EFE3D0;border:.5pt solid #DEC9A9;margin-top:1mm;padding:1.3mm 2mm;
    display:flex;justify-content:space-between;font-weight:700;font-size:8.6pt;}
  .pcalc{border-top:1.2pt solid #C79A63;padding-top:3mm;}
  .prow{display:flex;align-items:center;gap:2mm;flex-wrap:nowrap;margin-bottom:3mm;}
  .pbox{flex:1;min-width:0;border:.8pt solid #C7B294;border-radius:1.5mm;padding:1.5mm 2mm;text-align:center;}
  .pbox .lb{font-size:7.2pt;color:#7B6350;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pbox .vl{font-family:var(--font-body);font-size:12pt;font-weight:800;margin-top:.6mm;}
  .pbox.big{background:#F6EFE3;border-width:1.2pt;}
  .pbox.big .vl{font-size:15pt;color:#7A5410;}
  .pbox.neg .vl{color:#A63A2A;}
  .pop{font-family:var(--font-body);font-size:13pt;font-weight:800;color:#8B5A0D;flex:0 0 auto;}
  .sheet .ft{margin-top:3mm;text-align:right;font-size:7pt;color:#A9927C;}

  @media print{
    html,body{background:#fff !important;}
    body{background-image:none !important;}
    #app,#sr,#tst,.stw{display:none !important;}
    #pv{display:block !important;position:static !important;overflow:visible !important;}
    #pv .pvbar,#pv .hint{display:none !important;}
    #pv .wrap{padding:0 !important;overflow:visible !important;}
    #pv .scaler{transform:none !important;width:auto !important;height:auto !important;}
    .sheet{width:auto !important;}
    @page{size:A4 portrait;margin:9mm;}
    .pcols,.pcal,.pwk,.pcalc{page-break-inside:avoid;}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}

  /* ---- アイコン（Material Symbols） ---- */
  .ms{font-family:'Material Symbols Outlined';font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;
    text-transform:none;display:inline-block;white-space:nowrap;font-feature-settings:'liga';
    -webkit-font-feature-settings:'liga';width:1em;height:1em;overflow:hidden;font-size:18px;flex-shrink:0;}
  .env .cp .ms{font-size:17px;}
  .pill .ms{font-size:16px;margin-right:-1px;}
  .igrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:6px;}
  .igrid button{aspect-ratio:1;border-radius:10px;border:1px solid var(--rule);background:var(--paper);
    color:var(--ink-soft);display:flex;align-items:center;justify-content:center;padding:0;}
  .igrid button.on{background:var(--seal);border-color:var(--seal);color:var(--cream);}
  .igrid button .ms{font-size:24px;}
  .iconbtn{display:inline-flex;align-items:center;gap:6px;}

  .sc .tr .tiny{flex:0 0 auto;padding:7px 9px;white-space:nowrap;}
