:root{
  --bg:oklch(97.5% 0.006 255);
  --surface:oklch(100% 0 0);
  --surface-sunken:oklch(96% 0.007 255);
  --border:oklch(90% 0.01 255);
  --border-strong:oklch(82% 0.014 255);
  --text:oklch(22% 0.02 255);
  --text-2:oklch(46% 0.018 255);
  --text-3:oklch(62% 0.014 255);
  --accent:oklch(51% 0.15 258);
  --accent-hover:oklch(45% 0.15 258);
  --accent-soft:oklch(94% 0.03 258);
  --accent-soft-text:oklch(40% 0.13 258);
  --success:oklch(56% 0.14 152);
  --success-soft:oklch(94% 0.045 152);
  --success-soft-text:oklch(38% 0.10 152);
  --warning:oklch(72% 0.15 78);
  --warning-soft:oklch(95% 0.05 85);
  --warning-soft-text:oklch(42% 0.12 70);
  --neutral-soft:oklch(94% 0.006 255);
  --neutral-soft-text:oklch(42% 0.015 255);
  --danger:oklch(55% 0.19 25);
  --danger-soft:oklch(95% 0.04 25);
  --danger-soft-text:oklch(42% 0.15 25);
  --cat-groceries:oklch(60% 0.13 145);
  --cat-dining:oklch(62% 0.15 40);
  --cat-transport:oklch(58% 0.13 255);
  --cat-utilities:oklch(58% 0.12 300);
  --cat-other:oklch(60% 0.02 255);
  --font-ui:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:'IBM Plex Mono',"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;}
body{margin:0;font-family:var(--font-ui);color:var(--text);background:var(--bg);}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-hover);}
.frame{width:100%;max-width:480px;min-height:100vh;margin:0 auto;display:flex;flex-direction:column;background:var(--bg);position:relative;}
.topbar{flex:0 0 auto;display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);}
.topbar h1{font-size:17px;font-weight:800;margin:0;line-height:1.2;}
.topbar .sub{font-size:12px;color:var(--text-3);font-weight:500;}
.titleblock{flex:1;display:flex;flex-direction:column;gap:1px;}
.icon-btn{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--text-2);background:transparent;border:none;flex:0 0 auto;}
.content{flex:1 1 auto;padding:20px 16px 28px;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:10px;font-family:var(--font-ui);font-weight:700;font-size:15px;border:1px solid transparent;cursor:pointer;}
.btn-sm{height:36px;padding:0 14px;font-size:13px;border-radius:8px;font-weight:700;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text);}
.btn-danger-outline{background:var(--surface);border-color:var(--danger);color:var(--danger);}
.btn-full{width:100%;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.field label{font-size:13px;font-weight:700;color:var(--text-2);}
.input,select.input,input.input{min-height:48px;border:1px solid var(--border-strong);border-radius:10px;padding:0 14px;font-family:var(--font-ui);font-size:15px;color:var(--text);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px;}
.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);font-size:13px;font-weight:700;color:var(--text-2);background:var(--surface);cursor:pointer;}
.chip.selected{background:var(--accent);border-color:var(--accent);color:#fff;}
.chip.soft{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-soft-text);}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:0.01em;}
.badge-success{background:var(--success-soft);color:var(--success-soft-text);}
.badge-warning{background:var(--warning-soft);color:var(--warning-soft-text);}
.badge-neutral{background:var(--neutral-soft);color:var(--neutral-soft-text);}
.badge-accent{background:var(--accent-soft);color:var(--accent-soft-text);}
.bottomnav{flex:0 0 auto;display:flex;border-top:1px solid var(--border);background:var(--surface);padding:8px 8px 14px;}
.navitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text-3);font-size:11px;font-weight:700;padding:6px 0;}
.navitem.active{color:var(--accent);}
.fab{position:fixed;right:max(16px, calc(50% - 240px + 16px));bottom:86px;width:56px;height:56px;border-radius:16px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px oklch(51% 0.15 258 / 0.32);}
.mono{font-family:var(--font-mono);}
.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
.list-row:last-child{border-bottom:none;}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-soft-text);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:0 0 auto;}
.dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.section-title{font-size:12px;font-weight:800;color:var(--text-2);text-transform:uppercase;letter-spacing:0.05em;margin:0 0 12px;}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.bar-row:last-child{margin-bottom:0;}
.bar-track{flex:1;height:8px;border-radius:999px;background:var(--neutral-soft);overflow:hidden;}
.bar-fill{height:100%;border-radius:999px;background:var(--accent);}
.cat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.segmented{display:flex;background:var(--neutral-soft);border-radius:10px;padding:4px;gap:4px;margin-bottom:20px;}
.segmented .seg{flex:1;text-align:center;padding:9px 0;border-radius:8px;font-size:13px;font-weight:700;color:var(--text-2);}
.segmented .seg.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,0.06);}
.detail-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px;}
.detail-row:last-child{border-bottom:none;}
.rc-card{border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;}
.rc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.rc-meta{font-size:11px;color:var(--text-3);margin-bottom:10px;}
.rc-match{background:var(--surface-sunken);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--text-2);margin-bottom:10px;}
.chip-input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;}
.chip-input:checked + .chip{background:var(--accent);border-color:var(--accent);color:#fff;}
.chip-input:focus-visible + .chip{outline:2px solid var(--accent);outline-offset:2px;}
