/* =========================================================
   CUREENCLY — STYLE SHEET
   ========================================================= */

/* =========================================================
   RESET & BASE
   ========================================================= */
:root{
    --bg:#FAF6EC;
    --surface:#FFFFFF;
    --ink:#2A241C;
    --ink-soft:#79705F;
    --ink-faint:#AFA48E;
    --border:#E8E0CC;
    --yellow:#E3B84D;
    --yellow-ink:#5C4A16;
    --yellow-soft:#F4E7BC;
    --green:#66845A;
    --green-soft:#E3EAD9;
    --red:#AE5B41;
    --red-soft:#F1DED3;
    --radius-s:10px;
    --radius-m:16px;
    --radius-l:24px;
    --font-serif:'Fraunces', serif;
    --font-sans:'Inter', sans-serif;
    --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;
    --nav-h:56px;
    color-scheme:light;
  }
  [data-theme="dark"]{
    --bg:#191510;
    --surface:#221D15;
    --ink:#F1EADA;
    --ink-soft:#B3A890;
    --ink-faint:#7D735E;
    --border:#38311F;
    --yellow:#E3B84D;
    --yellow-ink:#2B2210;
    --yellow-soft:#4A3D1B;
    --green:#8BAE7B;
    --green-soft:#2A3323;
    --red:#D08468;
    --red-soft:#3B2A22;
    color-scheme:dark;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--font-sans);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    transition:background .25s ease,color .25s ease;
  }
  .app{
    max-width:480px;
    margin:0 auto;
    min-height:100vh;
    position:relative;
    background:var(--bg);
  }
  @media (min-width:481px){
    body{background:#EFE9DA;}
    .app{
      box-shadow:0 0 0 1px var(--border);
      min-height:100vh;
    }
  }

  /* =========================================================
   HEADER / BRAND
   ========================================================= */
/* ---------- BRAND HEADER ---------- */
  .brand-header{
    padding:calc(var(--sp-4) + env(safe-area-inset-top)) var(--sp-4) var(--sp-2);
  }
  .brand-name{
    font-family:var(--font-serif);
    font-size:20px;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0 0 4px;
  }
  .brand-tagline{
    font-size:13px;
    color:var(--ink-soft);
    margin:0;
    line-height:1.4;
    max-width:34ch;
  }

  /* =========================================================
   FOOTER
   ========================================================= */
/* ---------- FOOTER ---------- */
  .app-footer{
    text-align:center;
    padding:var(--sp-6) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));
  }
  .app-footer p{
    margin:0;
    font-size:12px;
    letter-spacing:.02em;
    color:var(--ink-faint);
  }

  /* =========================================================
   NAVIGATION
   ========================================================= */
/* ---------- NAV ---------- */
  .topbar{
    position:sticky;top:0;z-index:40;
    background:var(--bg);
    padding-top:calc(var(--sp-3) + env(safe-area-inset-top));
  }
  .nav-scroll{
    display:flex;
    gap:var(--sp-2);
    overflow-x:auto;
    scrollbar-width:none;
    padding:0 var(--sp-4) var(--sp-3);
    -webkit-overflow-scrolling:touch;
  }
  .nav-scroll::-webkit-scrollbar{display:none;}
  .nav-item{
    flex:0 0 auto;
    font-family:var(--font-sans);
    font-size:14px;
    font-weight:500;
    color:var(--ink-soft);
    background:transparent;
    border:1px solid var(--border);
    border-radius:999px;
    padding:8px 15px;
    white-space:nowrap;
    cursor:pointer;
    transition:background .15s ease,color .15s ease,border-color .15s ease;
  }
  .nav-item.asisten{color:var(--yellow-ink);}
  [data-theme="dark"] .nav-item.asisten{color:var(--yellow);}
  .nav-item.active{
    background:var(--ink);
    color:var(--bg);
    border-color:var(--ink);
  }
  .nav-item.active.asisten{
    background:var(--yellow);
    color:var(--yellow-ink);
    border-color:var(--yellow);
  }
  .topbar-divider{height:1px;background:var(--border);}

  /* =========================================================
   PAGES
   ========================================================= */
/* ---------- PAGES ---------- */
  main{padding:var(--sp-5) var(--sp-4) var(--sp-7);}
  .page{display:none;animation:fadein .2s ease;}
  .page.active{display:block;}
  @keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

  .page-title{
    font-family:var(--font-serif);
    font-size:24px;
    font-weight:500;
    margin:0 0 var(--sp-1);
  }
  .page-sub{
    font-size:14px;
    color:var(--ink-soft);
    margin:0 0 var(--sp-5);
  }

  .greeting-eyebrow{
    font-size:14px;
    color:var(--ink-soft);
    margin:0 0 2px;
  }
  .greeting-title{
    font-family:var(--font-serif);
    font-size:26px;
    font-weight:500;
    margin:0 0 var(--sp-5);
    line-height:1.3;
  }

  /* =========================================================
   SECTION / DIVIDER
   ========================================================= */
/* ---------- SECTION / DIVIDER STRUCTURE ---------- */
  .section{margin-bottom:var(--sp-6);}
  .section-label{
    font-size:13px;
    color:var(--ink-faint);
    letter-spacing:.02em;
    margin:0 0 var(--sp-3);
  }
  .divider{border:none;border-top:1px solid var(--border);margin:0;}

  /* =========================================================
   BALANCE
   ========================================================= */
/* ---------- BALANCE HERO ---------- */
  .balance-hero{margin-bottom:var(--sp-6);}
  .balance-label{font-size:14px;color:var(--ink-soft);margin:0 0 6px;}
  .balance-amount{
    font-family:var(--font-serif);
    font-size:40px;
    font-weight:500;
    letter-spacing:-0.01em;
    margin:0;
  }

  /* =========================================================
   SUMMARY
   ========================================================= */
/* ---------- SUMMARY GRID ---------- */
  .summary-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid var(--border);
    border-left:1px solid var(--border);
  }
  .summary-cell{
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
    padding:var(--sp-4);
  }
  .summary-cell .label{font-size:13px;color:var(--ink-soft);margin:0 0 4px;}
  .summary-cell .value{font-family:var(--font-serif);font-size:19px;margin:0;}
  .summary-cell .value.positive{color:var(--green);}
  .summary-cell .value.negative{color:var(--red);}

  /* =========================================================
   BUDGET PROGRESS
   ========================================================= */
/* ---------- BUDGET PROGRESS ---------- */
  .progress-track{
    height:8px;
    background:var(--border);
    border-radius:999px;
    overflow:hidden;
    margin:var(--sp-3) 0 var(--sp-2);
  }
  .progress-fill{
    height:100%;
    background:var(--yellow);
    border-radius:999px;
    transition:width .4s ease;
  }
  .progress-fill.over{background:var(--red);}
  .progress-row{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;}
  .progress-row .amounts{font-family:var(--font-serif);font-size:16px;color:var(--ink);}
  .progress-row .percent{color:var(--ink-soft);}

  /* =========================================================
   LIST / ROWS
   ========================================================= */
/* ---------- LIST ROWS (activity, wallets, debts) ---------- */
  .list-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--sp-3);
    padding:var(--sp-4) 0;
    border-bottom:1px solid var(--border);
    cursor:default;
  }
  .list-row:first-child{padding-top:0;}
  .row-left{display:flex;align-items:center;gap:var(--sp-3);min-width:0;}
  .row-icon{
    width:38px;height:38px;flex:0 0 38px;
    border-radius:var(--radius-s);
    background:var(--yellow-soft);
    display:flex;align-items:center;justify-content:center;
    font-size:16px;
  }
  .row-icon.green{background:var(--green-soft);}
  .row-icon.red{background:var(--red-soft);}
  .row-text .title{font-size:15px;font-weight:500;margin:0 0 2px;}
  .row-text .subtitle{font-size:13px;color:var(--ink-soft);margin:0;}
  .row-amount{font-family:var(--font-serif);font-size:16px;white-space:nowrap;}
  .row-amount.positive{color:var(--green);}
  .row-amount.negative{color:var(--ink);}

  /* =========================================================
   BUTTONS
   ========================================================= */
/* ---------- BUTTONS ---------- */
  .btn{
    font-family:var(--font-sans);
    font-size:15px;
    font-weight:600;
    border-radius:var(--radius-s);
    padding:13px 20px;
    border:none;
    cursor:pointer;
    text-align:center;
    transition:opacity .15s ease, transform .1s ease;
  }
  .btn:active{transform:scale(0.98);}
  .btn-primary{background:var(--ink);color:var(--bg);}
  .btn-accent{background:var(--yellow);color:var(--yellow-ink);}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--border);}
  .btn-block{width:100%;}
  .btn-text{
    background:none;border:none;color:var(--ink-soft);
    font-family:var(--font-sans);font-size:14px;font-weight:500;
    padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;
  }

  .add-action{
    display:flex;align-items:center;gap:8px;
    width:100%;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-m);
    padding:var(--sp-4);
    font-family:var(--font-sans);
    font-size:15px;
    font-weight:600;
    color:var(--ink);
    cursor:pointer;
    margin-bottom:var(--sp-5);
  }
  .add-action .plus{
    width:24px;height:24px;border-radius:50%;
    background:var(--yellow);color:var(--yellow-ink);
    display:flex;align-items:center;justify-content:center;
    font-size:16px;flex:0 0 24px;
  }

  /* =========================================================
   SEARCH / FILTER
   ========================================================= */
/* ---------- SEARCH / FILTER (Aktivitas) ---------- */
  .search-input{
    width:100%;
    font-family:var(--font-sans);
    font-size:15px;
    padding:11px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-s);
    background:var(--surface);
    color:var(--ink);
    margin-bottom:var(--sp-3);
  }
  .search-input::placeholder{color:var(--ink-faint);}
  .filter-scroll{display:flex;gap:var(--sp-2);overflow-x:auto;scrollbar-width:none;margin-bottom:var(--sp-4);}
  .filter-scroll::-webkit-scrollbar{display:none;}
  .filter-chip{
    flex:0 0 auto;
    font-size:13px;font-weight:500;
    padding:7px 14px;
    border-radius:999px;
    border:1px solid var(--border);
    background:transparent;
    color:var(--ink-soft);
    cursor:pointer;
  }
  .filter-chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink);}

  .month-label{font-family:var(--font-serif);font-size:19px;margin:0 0 var(--sp-3);}

  .date-group-label{
    font-size:13px;color:var(--ink-faint);
    margin:var(--sp-5) 0 var(--sp-2);
  }
  .date-group-label:first-of-type{margin-top:0;}

  .empty-state{
    text-align:center;
    padding:var(--sp-7) var(--sp-4);
    color:var(--ink-soft);
    font-size:14px;
  }

  /* =========================================================
   ASISTEN
   ========================================================= */
/* ---------- ASISTEN (chat) ---------- */
  .assistant-intro{margin-bottom:var(--sp-5);}
  .assistant-mark{
    width:44px;height:44px;border-radius:var(--radius-s);
    background:var(--yellow-soft);
    display:flex;align-items:center;justify-content:center;
    font-size:20px;color:var(--yellow-ink);
    margin-bottom:var(--sp-3);
  }
  .suggested-q{
    display:block;width:100%;text-align:left;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-m);
    padding:var(--sp-4);
    font-family:var(--font-sans);
    font-size:14px;
    color:var(--ink);
    margin-bottom:var(--sp-2);
    cursor:pointer;
  }
  .chat-thread{display:none;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-5);}
  .chat-thread.active{display:flex;}
  .bubble{
    max-width:85%;
    padding:12px 15px;
    border-radius:var(--radius-m);
    font-size:14px;
    line-height:1.5;
    white-space:pre-wrap;
  }
  .bubble.user{
    align-self:flex-end;
    background:var(--ink);
    color:var(--bg);
    border-bottom-right-radius:4px;
  }
  .bubble.ai{
    align-self:flex-start;
    background:var(--yellow-soft);
    color:var(--yellow-ink);
    border-bottom-left-radius:4px;
  }
  [data-theme="dark"] .bubble.ai{color:var(--ink);}
  .chat-input-row{
    display:flex;gap:var(--sp-2);
    position:sticky;bottom:var(--sp-4);
  }
  .chat-input-row input{
    flex:1;
    font-family:var(--font-sans);
    font-size:15px;
    padding:12px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-s);
    background:var(--surface);
    color:var(--ink);
  }
  .chat-send{
    width:44px;height:44px;flex:0 0 44px;
    border-radius:var(--radius-s);
    background:var(--yellow);
    color:var(--yellow-ink);
    border:none;font-size:16px;cursor:pointer;
  }

  /* =========================================================
   CATATAN
   ========================================================= */
/* ---------- CATATAN blocks ---------- */
  .catatan-link{
    display:flex;align-items:center;justify-content:space-between;
    width:100%;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-m);
    padding:var(--sp-4);
    margin-bottom:var(--sp-3);
    cursor:pointer;
    text-align:left;
  }
  .catatan-link .ct-title{font-family:var(--font-serif);font-size:16px;margin:0 0 2px;}
  .catatan-link .ct-sub{font-size:13px;color:var(--ink-soft);margin:0;}
  .catatan-link .arrow{font-size:18px;color:var(--ink-faint);flex:0 0 auto;margin-left:var(--sp-3);}
  .ai-result{
    display:none;
    background:var(--yellow-soft);
    border-radius:var(--radius-m);
    padding:var(--sp-4);
    margin-bottom:var(--sp-5);
    font-size:14px;
    line-height:1.6;
    color:var(--yellow-ink);
  }
  [data-theme="dark"] .ai-result{color:var(--ink);}
  .ai-result.active{display:block;}
  .ai-result p{margin:0 0 var(--sp-2);}
  .ai-result p:last-child{margin-bottom:0;}
  .ai-result ul{margin:var(--sp-2) 0;padding-left:18px;}
  .ai-result li{margin-bottom:6px;}

  /* =========================================================
   SETTING
   ========================================================= */
/* ---------- SETTING ---------- */
  .setting-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:var(--sp-4) 0;
    border-bottom:1px solid var(--border);
  }
  .setting-row .label{font-size:15px;}
  .setting-row .value{font-size:14px;color:var(--ink-soft);}
  .setting-row.danger .label{color:var(--red);}
  .theme-toggle{display:flex;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px;}
  .theme-toggle button{
    border:none;background:none;font-size:13px;font-weight:500;
    padding:6px 12px;border-radius:999px;color:var(--ink-soft);cursor:pointer;
  }
  .theme-toggle button.active{background:var(--ink);color:var(--bg);}
  .setting-input{
    font-family:var(--font-sans);font-size:14px;
    border:1px solid var(--border);border-radius:var(--radius-s);
    padding:9px 12px;background:var(--surface);color:var(--ink);
    width:150px;text-align:right;
  }

  /* =========================================================
   BOTTOM SHEET / MODAL
   ========================================================= */
/* ---------- BOTTOM SHEET / MODAL ---------- */
  .overlay{
    position:fixed;inset:0;
    background:rgba(20,17,10,.45);
    opacity:0;pointer-events:none;
    transition:opacity .2s ease;
    z-index:90;
  }
  .overlay.active{opacity:1;pointer-events:auto;}
  .sheet{
    position:fixed;left:50%;bottom:0;
    transform:translate(-50%,100%);
    width:100%;max-width:480px;
    max-height:88vh;
    overflow-y:auto;
    background:var(--surface);
    border-radius:22px 22px 0 0;
    padding:var(--sp-3) var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom));
    z-index:100;
    transition:transform .28s cubic-bezier(.32,.72,0,1);
  }
  .sheet.active{transform:translate(-50%,0);}
  .sheet-handle{
    width:36px;height:4px;border-radius:999px;
    background:var(--border);
    margin:6px auto var(--sp-4);
  }
  .sheet-title{font-family:var(--font-serif);font-size:20px;margin:0 0 var(--sp-4);}
  .sheet-tabs{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5);flex-wrap:wrap;}
  .sheet-tab{
    flex:1 1 auto;
    font-size:13px;font-weight:500;
    padding:9px 10px;text-align:center;
    border-radius:var(--radius-s);
    border:1px solid var(--border);
    background:transparent;color:var(--ink-soft);cursor:pointer;
  }
  .sheet-tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink);}

  .field{margin-bottom:var(--sp-4);}
  .field label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px;}
  .field input,.field select,.field textarea{
    width:100%;
    font-family:var(--font-sans);font-size:15px;
    padding:12px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius-s);
    background:var(--bg);
    color:var(--ink);
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:2px solid var(--yellow);outline-offset:1px;
  }
  .form-subform{display:none;}
  .form-subform.active{display:block;}

  .toast{
    position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);
    background:var(--ink);color:var(--bg);
    font-size:14px;font-weight:500;
    padding:12px 20px;border-radius:999px;
    opacity:0;pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    z-index:200;
    max-width:90%;
    text-align:center;
  }
  .toast.active{opacity:1;transform:translate(-50%,0);}

  /* utility */
  .hidden{display:none !important;}
  a{color:inherit;}
  ::selection{background:var(--yellow-soft);}

/* =========================================================
   LOGOUT / PRIVATE APP
   ========================================================= */
.logout-section{
  padding-top:8px;
  border-top:1px solid var(--border);
}
.logout-link{
  width:100%;
  border:0;
  background:transparent;
  color:var(--red);
  font:500 14px var(--font-sans);
  text-align:left;
  padding:16px 0;
  cursor:pointer;
}
.logout-link:disabled{opacity:.55;cursor:wait;}

/* =========================================================
   LOGIN PAGE
   ========================================================= */
.login-page{
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  box-sizing:border-box;
}
.login-card{
  width:100%;
  max-width:390px;
}
.login-brand{
  margin:0 0 34px;
  font:600 38px/1 var(--font-serif);
  letter-spacing:-.025em;
}
.login-card h1{
  margin:0 0 8px;
  font:500 28px/1.15 var(--font-serif);
  letter-spacing:-.02em;
}
.login-tagline{
  margin:0 0 32px;
  color:var(--ink-soft);
  font:14px/1.55 var(--font-sans);
  max-width:34ch;
}
.login-field{margin-bottom:16px;}
.login-field label{
  display:block;
  margin-bottom:7px;
  color:var(--ink-soft);
  font:500 13px/1.2 var(--font-sans);
}
.login-field input{
  width:100%;
  min-height:50px;
  box-sizing:border-box;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  color:var(--ink);
  font:15px var(--font-sans);
}
.login-field input:focus{
  outline:2px solid var(--yellow);
  outline-offset:1px;
}
.login-password-wrap{position:relative;}
.login-password-wrap input{padding-right:50px;}
.login-password-toggle{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ink-faint);
  cursor:pointer;
}
.login-submit{
  width:100%;
  min-height:50px;
  margin-top:6px;
  border:0;
  border-radius:12px;
  background:var(--yellow);
  color:var(--yellow-ink);
  font:600 14px var(--font-sans);
  letter-spacing:.02em;
  cursor:pointer;
}
.login-submit:disabled{opacity:.6;cursor:wait;}
.login-error{
  min-height:18px;
  margin:11px 0 0;
  text-align:center;
  color:var(--red);
  font:12px/1.45 var(--font-sans);
}
.login-private{
  margin:14px 0 0;
  text-align:center;
  color:var(--ink-faint);
  font:12px/1.4 var(--font-sans);
}

/* =========================================================
   CUREENCLY FINAL UI RULES
   ========================================================= */
/* Transaction metadata: day + date + time */
.item-meta .day-date,.activity-meta .day-date,.transaction-meta .day-date{font-size:12px;}
.item-meta .time,.activity-meta .time,.transaction-meta .time{font-size:12px;color:var(--ink-faint);}

/* Category icons */
.category-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;border-radius:9px;background:var(--surface-2,rgba(0,0,0,.035));}

/* Click item -> inline Edit / Hapus */
.item-action-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .18s ease,opacity .18s ease,padding .18s ease;}
.item-action-panel.open{max-height:120px;opacity:1;padding-top:8px;}
.item-actions{display:flex;gap:8px;}
.item-actions button{border:0;padding:7px 9px;border-radius:8px;font:500 12px var(--font-sans);cursor:pointer;}
.item-actions .edit{background:var(--yellow);color:var(--yellow-ink);}
.item-actions .delete{color:var(--red);background:transparent;}

/* Edit/delete modal */
.cureencly-modal-backdrop{position:fixed;inset:0;z-index:600;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:rgba(20,18,14,.25);}
.cureencly-modal{width:min(100%,520px);max-height:88svh;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:0 16px 50px rgba(0,0,0,.12);}
.cureencly-modal h3{margin:0 0 16px;font:600 22px/1.2 var(--font-serif);}
.modal-field{margin-bottom:13px;}
.modal-field label{display:block;margin-bottom:6px;color:var(--ink-soft);font:500 12px var(--font-sans);}
.modal-field input,.modal-field select,.modal-field textarea{width:100%;box-sizing:border-box;min-height:44px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);font:14px var(--font-sans);}
.modal-field textarea{min-height:90px;resize:vertical;}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions button{flex:1;min-height:46px;border-radius:11px;border:1px solid var(--border);background:var(--surface);font:600 13px var(--font-sans);}
.modal-actions .primary{border-color:transparent;background:var(--yellow);color:var(--yellow-ink);}
.modal-actions .danger{border-color:transparent;background:var(--red);color:#fff;}

/* 10 items per page */
.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0 8px;}
.pagination button{min-width:42px;min-height:40px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);font:600 12px var(--font-sans);}
.pagination button:disabled{opacity:.35;cursor:not-allowed;}
.pagination .page-number{font:500 12px var(--font-sans);color:var(--ink-soft);}

/* Custom category */
.custom-category-field{margin-top:12px;}
.custom-category-field label{display:block;margin-bottom:6px;color:var(--ink-soft);font:500 12px var(--font-sans);}
.custom-category-field input{width:100%;min-height:44px;box-sizing:border-box;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);font:14px var(--font-sans);}

/* Logout below theme */
.logout-section{padding-top:8px;border-top:1px solid var(--border);}
.logout-link{width:100%;border:0;background:transparent;color:var(--red);font:500 14px var(--font-sans);text-align:left;padding:16px 0;cursor:pointer;}

/* Gemini model highlight */
.setting-highlight-green{display:inline-block;padding:4px 8px;border-radius:5px;background:rgba(108,173,95,.22);color:var(--ink);font:500 12px var(--font-sans);}

/* =========================================================
   FINAL FIXES — CUREENCLYツ
   ========================================================= */
.brand-name{font-size:28px;}
.nav-scroll{cursor:grab;user-select:none;}
.nav-scroll.dragging{cursor:grabbing;}
.wallet-balance{margin:5px 0 0;font-size:15px;font-weight:600;color:var(--ink);}
.item-actions .transfer{background:var(--green-soft);color:var(--green);}
@media (max-width:480px){
  .item-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;width:100%;}
  .item-actions button{min-width:0;width:100%;padding:9px 6px;}
  .item-actions .delete{background:var(--red-soft);color:var(--red);}
  .activity-item .row-left,.wallet-item .row-left{min-width:0;flex:1;}
  .activity-item .row-text,.wallet-item .row-text{min-width:0;}
  .activity-item .row-amount{white-space:nowrap;}
}
.login-private{border:1px dashed var(--red);background:var(--red-soft);padding:11px 12px;border-radius:10px;color:var(--red);}

/* =========================================================
   FINAL UPDATE — RESPONSIVE / NAV / WALLET ACTIONS
   ========================================================= */
.brand-name{font-size:28px;}
.nav-scroll{cursor:grab;user-select:none;touch-action:pan-x;}
.nav-scroll.dragging{cursor:grabbing;}
.wallet-balance{display:block;margin:6px 0 0;font-size:15px;font-weight:600;color:var(--ink);}
.item-actions .transfer{background:var(--green-soft);color:var(--green);}
@media (max-width:480px){
  .item-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;}
  .item-actions button{width:100%;min-width:0;padding:9px 5px;white-space:nowrap;}
  .activity-item,.wallet-item{min-width:0;}
  .activity-item .row-left,.wallet-item .row-left{min-width:0;flex:1;}
  .activity-item .row-text,.wallet-item .row-text{min-width:0;}
  .activity-item .row-amount{white-space:nowrap;margin-left:8px;}
}


/* =========================================================
   FINAL UPDATE — ACTIVITY / ACTIONS / LOGOUT / BRAND
   ========================================================= */
.brand-name{font-size:32px;}
.logout-section{padding:16px 0 0;border-top:1px solid var(--border);}
.logout-link{
  width:100%;
  display:flex;align-items:center;justify-content:center;
  min-height:48px;
  padding:12px 18px;
  border:1px solid var(--red);
  border-radius:12px;
  background:var(--red-soft);
  color:var(--red);
  font:600 14px var(--font-sans);
  text-align:center;
  cursor:pointer;
  transition:opacity .15s ease,transform .1s ease,background .15s ease;
}
.logout-link:hover{opacity:.9;}
.logout-link:active{transform:scale(.99);}
.logout-link:disabled{opacity:.55;cursor:wait;}

.activity-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;}
.activity-item .row-left{min-width:0;}
.activity-item .row-text{min-width:0;}
.activity-item .row-text .title{font-size:16px;font-weight:600;line-height:1.25;}
.activity-item .row-text .subtitle{font-size:13px;line-height:1.45;overflow-wrap:anywhere;}
.activity-item .row-amount{align-self:center;font-size:18px;text-align:right;}
.dashboard-activity-item{grid-template-columns:minmax(0,1fr) auto;}
.item-action-panel{grid-column:1 / -1;width:100%;}
.wallet-item{display:block;}
.wallet-item > .row-left{display:flex;}
.wallet-item .item-action-panel{width:100%;}
.wallet-item .wallet-balance{font-family:var(--font-serif);font-size:18px;line-height:1.2;}

@media (max-width:480px){
  .brand-name{font-size:32px;}
  .activity-item{gap:8px;padding:16px 0;}
  .activity-item .row-icon{width:40px;height:40px;flex-basis:40px;}
  .activity-item .row-text .title{font-size:15px;}
  .activity-item .row-text .subtitle{font-size:12px;line-height:1.4;}
  .activity-item .row-amount{font-size:16px;max-width:125px;white-space:nowrap;}
  .item-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;}
  .item-actions button{width:100%;min-width:0;padding:10px 6px;white-space:nowrap;}
}


/* Styled Google login button */
.google-login,
#googleLogin,
button[type="button"].google-login,
button.google-login {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  box-sizing: border-box;
  padding: 14px 20px;
  margin: 0;
  border: 1px solid var(--border, #e4dccb);
  border-radius: 14px;
  background: var(--surface, #ffffff);
  color: var(--ink, #2a241c);
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  box-shadow: 0 2px 0 rgba(42,36,28,.06);
  transition: transform .12s ease, box-shadow .12s ease, background .15s ease, border-color .15s ease;
}

.google-login:hover,
#googleLogin:hover {
  border-color: var(--ink-soft, #7b7367);
  box-shadow: 0 3px 8px rgba(42,36,28,.08);
}

.google-login:active,
#googleLogin:active {
  transform: translateY(1px);
  box-shadow: 0 1px 0 rgba(42,36,28,.05);
}

.google-login:focus-visible,
#googleLogin:focus-visible {
  outline: 2px solid var(--yellow, #e6bd4d);
  outline-offset: 3px;
}

.google-login:disabled,
#googleLogin:disabled {
  opacity: .6;
  cursor: wait;
}


.suggested-q:disabled{opacity:.55;cursor:wait;}
.chat-send:disabled{opacity:.6;cursor:wait;}
.chat-input-row input:disabled{opacity:.7;cursor:wait;}
