:root{
  --bg1:#fff7fb;
  --bg2:#fdf6ef;
  --ink:#402f39;
  --muted:#8f7b86;
  --line:#eedfe8;
  --rose:#eaa2ba;
  --shadow:0 12px 28px rgba(186,123,151,.12);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,var(--bg1),var(--bg2)) fixed;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,var(--bg1),var(--bg2)) fixed}
a{color:inherit}
.top{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:rgba(255,255,255,.78);backdrop-filter:blur(14px);border-bottom:1px solid rgba(234,162,186,.18);box-shadow:0 4px 18px rgba(222,177,195,.08)}
.brand{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:900;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.brand-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,#ffdbe8,#f7e8c8);color:#cc6d90;font-size:16px;box-shadow:0 6px 14px rgba(229,141,174,.18)}
.topnav{display:flex;gap:8px}
.small-btn{font-size:18px;font-weight:900;color:var(--ink);text-decoration:none;background:linear-gradient(180deg,#fff,#fff7fb);border:1px solid var(--line);padding:10px 14px;border-radius:18px;box-shadow:var(--shadow)}
.wrap{max-width:680px;margin:auto;padding:20px 16px 80px}
h1{font-size:34px;margin:8px 0 2px;letter-spacing:-.04em}
h2{font-size:26px;margin:28px 0 12px;letter-spacing:-.03em}.sub{font-size:18px;color:var(--muted);margin-top:0}
.grid3{display:grid;grid-template-columns:1fr;gap:12px}
.bigcard{position:relative;overflow:hidden;min-height:136px;border-radius:28px;padding:22px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(234,162,186,.25);box-shadow:var(--shadow)}
.bigcard::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.35),transparent 55%);pointer-events:none}
.bigcard span{font-size:28px;font-weight:900}
.bigcard b{font-size:32px}
.sale{background:linear-gradient(180deg,#f0fbf5,#dbf3e9)}
.purchase{background:linear-gradient(180deg,#fff4ef,#ffe7da)}
.personal{background:linear-gradient(180deg,#f6f1ff,#ece9ff)}
.balance{margin-top:14px;background:linear-gradient(135deg,#7f5465,#402f39);color:#fff;border-radius:28px;padding:24px;display:flex;flex-direction:column;gap:7px;box-shadow:0 20px 34px rgba(105,66,82,.18)}
.balance span{font-size:20px}.balance strong{font-size:34px}.balance small{font-size:15px;color:#efe5ea}
.summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary>div{background:rgba(255,255,255,.86);padding:17px;border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow)}.summary span{display:block;font-size:16px;color:var(--muted)}.summary b{display:block;font-size:22px;margin-top:6px}.summary .wide{grid-column:1/-1}
.list{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:20px;padding:17px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}.row b{font-size:19px}.row span{display:block;color:var(--muted);margin-top:4px;font-size:14px}.row strong{font-size:20px;white-space:nowrap}.empty{background:rgba(255,255,255,.82);padding:24px;border-radius:20px;color:var(--muted);text-align:center;border:1px solid var(--line);box-shadow:var(--shadow)}
.form{display:flex;flex-direction:column;gap:15px}.form>label{font-size:20px;font-weight:800}.form input,.form select{width:100%;font-size:22px;padding:16px;border-radius:18px;border:2px solid var(--line);background:rgba(255,255,255,.95);margin-top:7px;color:var(--ink);box-shadow:0 6px 12px rgba(235,206,219,.12) inset}.form input:focus,.form select:focus{outline:none;border-color:#e7a1b9;box-shadow:0 0 0 4px rgba(232,159,183,.16)}.amount{font-size:30px!important;font-weight:900}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice input{display:none}.choice span{display:flex;min-height:64px;align-items:center;justify-content:center;text-align:center;background:rgba(255,255,255,.92);border:2px solid var(--line);border-radius:18px;font-size:19px;font-weight:800;padding:8px;box-shadow:var(--shadow)}.choice input:checked+span{border-color:#df86a6;background:linear-gradient(135deg,#e78eac,#d97698);color:#fff;box-shadow:0 14px 24px rgba(214,118,152,.22)}
.save,.danger,.cancel,.export,.monthpick button{width:100%;border:0;border-radius:20px;padding:18px;font-size:23px;font-weight:900;text-align:center;text-decoration:none;box-shadow:var(--shadow)}.save{background:linear-gradient(135deg,#db789d,#bd5f83);color:white;margin-top:8px}.danger{background:#fff0f2;color:#be496d;margin-top:18px;border:1px solid #f5c9d6}.cancel,.export{display:block;background:rgba(255,255,255,.82);color:var(--ink);margin-top:8px;border:1px solid var(--line)}
.monthpick{display:flex;gap:8px;margin:14px 0}.monthpick input{flex:1;font-size:20px;padding:13px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.95)}.monthpick button{width:auto;background:linear-gradient(135deg,#db789d,#bd5f83);color:white;padding:12px 20px}
.flash{background:linear-gradient(180deg,#fffaf1,#ffe8f1);padding:16px;border-radius:16px;font-size:19px;font-weight:800;margin-bottom:14px;border:1px solid #f7d6e1;color:#93556f;box-shadow:var(--shadow)}
.loginbox{margin-top:12vh;padding:28px;background:rgba(255,255,255,.74);border:1px solid var(--line);border-radius:30px;box-shadow:0 20px 38px rgba(220,170,190,.18)}.loginbox h1{margin-top:0}.loginbox p{font-size:19px;color:var(--muted)}
.back-btn{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;margin-bottom:12px;border-radius:16px;background:linear-gradient(180deg,#fff,#fff7fb);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:20px;font-weight:900;box-shadow:var(--shadow)}
.date-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.yesterday{height:62px;padding:0 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#fff7fb);font-size:18px;font-weight:900;color:var(--ink);box-shadow:var(--shadow)}
.amount-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.amount-shortcuts button{padding:13px 8px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#fff7fb);font-size:18px;font-weight:900;color:var(--ink);box-shadow:var(--shadow)}
.quick-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}.quick-actions form{margin:0}.action{display:flex;width:100%;min-height:58px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:20px;font-size:20px;font-weight:900;text-decoration:none;box-shadow:var(--shadow)}.settlement-btn{background:linear-gradient(135deg,#eef4ff,#f9ecf5);color:var(--ink)}.undo{background:linear-gradient(180deg,#fff,#fff7fb);color:var(--ink)}
.breakdown{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:20px;margin-top:12px;padding:0 16px;box-shadow:var(--shadow)}.breakdown summary{cursor:pointer;font-size:21px;font-weight:900;padding:16px 0}.breakdown>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid #f1e6ec;font-size:18px}
.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.preset-row a{display:flex;min-height:52px;align-items:center;justify-content:center;background:linear-gradient(180deg,#fff,#fff7fb);border:1px solid var(--line);border-radius:16px;color:var(--ink);text-decoration:none;font-size:17px;font-weight:900;box-shadow:var(--shadow)}
.period-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.period-form label{font-size:17px;font-weight:800}.period-form input{width:100%;margin-top:6px;font-size:18px;padding:13px;border:2px solid var(--line);border-radius:16px;background:rgba(255,255,255,.95)}.period-form .save{grid-column:1/-1}.period-title{margin:20px 0 10px;font-size:20px;font-weight:900}.settlement-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settle-card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.settle-card span{display:block;color:var(--muted);font-size:16px}.settle-card b{display:block;font-size:25px;margin-top:8px}.settle-card small{display:block;color:var(--muted);margin-top:6px}.settle-card.dark{background:linear-gradient(135deg,#7f5465,#402f39);color:#fff}.settle-card.dark span,.settle-card.dark small{color:#f3e9ee}.settle-card.wide{grid-column:1/-1}
@media(min-width:640px){.grid3{grid-template-columns:repeat(3,1fr)}.bigcard{min-height:165px}.bigcard span{font-size:24px}.bigcard b{font-size:26px}.quick-actions{grid-template-columns:1fr 1fr}}


/* === V5 Galaxy Z Fold8 responsive tuning === */
body{
  padding-left:env(safe-area-inset-left);
  padding-right:env(safe-area-inset-right);
}
.top{
  padding-top:max(14px,env(safe-area-inset-top));
  padding-left:max(16px,env(safe-area-inset-left));
  padding-right:max(16px,env(safe-area-inset-right));
}
.wrap{
  padding-bottom:max(80px,calc(56px + env(safe-area-inset-bottom)));
}

/* Fold8 cover / narrow-phone mode: one big action per row, easiest for older users */
@media (max-width:479px){
  .top{padding:13px 12px}
  .brand{font-size:21px;gap:6px}
  .brand-mark{width:25px;height:25px}
  .topnav{gap:5px}
  .small-btn{font-size:16px;padding:9px 11px;border-radius:15px}
  .wrap{padding:16px 12px 72px}
  h1{font-size:31px}
  h2{font-size:24px}
  .sub{font-size:17px}

  .grid3{grid-template-columns:1fr;gap:10px}
  .bigcard{
    min-height:108px;
    padding:18px 20px;
    border-radius:24px;
  }
  .bigcard span{font-size:25px}
  .bigcard b{font-size:29px}

  .balance{padding:20px;border-radius:24px}
  .balance strong{font-size:31px}

  .choices{grid-template-columns:1fr 1fr;gap:8px}
  .choice span{min-height:60px;font-size:18px;padding:7px}
  .date-row{grid-template-columns:minmax(0,1fr) auto}
  .yesterday{padding:0 14px}
  .amount-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .amount-shortcuts button{font-size:16px;padding:12px 4px}

  .summary{grid-template-columns:1fr 1fr}
  .summary>div{padding:15px}
  .summary b{font-size:20px}

  .preset-row{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .preset-row a{min-height:50px;font-size:18px}

  .period-form{grid-template-columns:1fr}
  .period-form .save{grid-column:1}
  .settlement-grid{grid-template-columns:1fr 1fr}
  .settle-card{padding:16px}
  .settle-card b{font-size:22px}
  .settle-card.wide{grid-column:1/-1}

  .row{align-items:flex-start;padding:15px}
  .row strong{font-size:18px}
}

/* Fold8 opened main-display mode: use the extra width without making text tiny */
@media (min-width:700px) and (max-width:1100px){
  .wrap{
    max-width:940px;
    padding-left:28px;
    padding-right:28px;
  }
  .top{
    padding-left:28px;
    padding-right:28px;
  }
  .brand{font-size:27px}
  .small-btn{font-size:19px;padding:11px 16px}

  .grid3{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
  }
  .bigcard{
    min-height:170px;
    padding:24px;
  }
  .bigcard span{font-size:26px}
  .bigcard b{font-size:30px}

  .quick-actions{grid-template-columns:1fr 1fr}
  .summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
  }
  .summary .wide{grid-column:1/-1}
  .choices{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .choice span{min-height:70px;font-size:21px}

  .settlement-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
  }
  .settle-card.wide{grid-column:1/-1}
  .settle-card{padding:20px}
  .settle-card b{font-size:27px}
}

/* Large tablet/desktop: cap line length but keep comfortable scale */
@media (min-width:1101px){
  .wrap{max-width:980px}
}

/* Short-height / landscape-friendly spacing for foldables */
@media (max-height:600px) and (orientation:landscape){
  .wrap{padding-top:12px}
  .bigcard{min-height:104px}
  .balance{padding:18px 22px}
}
