/* ============================================================
   RAVI RUDRA v4.0 PRO — styles
   ============================================================ */
:root, [data-theme="dark"]{
  --bg:#0a0a14; --bg2:#11101d; --card:#171628; --card2:#1e1c33; --border:#2a2745;
  --text:#eceaf6; --muted:#8f8bb0; --accent:#ff8a1e; --accent2:#f5b942; --blue:#4da3ff;
  --green:#3ddc84; --red:#ff5470; --shadow:0 10px 30px rgba(0,0,0,.45);
  --glow:0 0 24px rgba(255,138,30,.25);
}
[data-theme="light"]{
  --bg:#f4f5fa; --bg2:#ffffff; --card:#ffffff; --card2:#f0f1f8; --border:#e2e4f0;
  --text:#1c1b2e; --muted:#6a6890; --accent:#e86f00; --accent2:#c98a00; --blue:#1a73e8;
  --green:#0f9d58; --red:#d93054; --shadow:0 8px 24px rgba(30,30,60,.10);
  --glow:0 0 20px rgba(232,111,0,.12);
}
/* life-area accents */
body[data-area="work"]{--accent:#4da3ff;--accent2:#7cc0ff;--glow:0 0 24px rgba(77,163,255,.25)}
body[data-area="business"]{--accent:#3ddc84;--accent2:#7ce6ab;--glow:0 0 24px rgba(61,220,132,.25)}
[data-theme="light"] body[data-area="work"], body[data-area="work"][data-theme="light"]{--accent:#1a73e8;--accent2:#5a9cf0}
[data-theme="light"] body[data-area="business"], body[data-area="business"][data-theme="light"]{--accent:#0f9d58;--accent2:#4dbd85}

*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;min-height:100vh;transition:background .3s,color .3s}
h1,h2,h3,.brand{font-family:'Rajdhani',sans-serif;letter-spacing:.5px}
button{font-family:inherit;cursor:pointer;border:none}
input,select,textarea{font-family:inherit;background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
::placeholder{color:var(--muted)}
a{color:var(--blue);text-decoration:none}

/* landing — v6 pro */
#landing{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(1200px 700px at 50% -10%,rgba(255,138,30,.16),transparent 60%),radial-gradient(900px 500px at 85% 110%,rgba(77,163,255,.10),transparent 60%),var(--bg);z-index:50;text-align:center;padding:24px;overflow:hidden}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.35;pointer-events:none;animation:float 9s ease-in-out infinite}
.orb-1{width:340px;height:340px;background:var(--accent);top:-120px;left:-100px}
.orb-2{width:280px;height:280px;background:var(--blue);bottom:-100px;right:-80px;animation-delay:-4.5s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(26px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes breathe{0%,100%{box-shadow:0 0 26px rgba(255,138,30,.28)}50%{box-shadow:0 0 52px rgba(255,138,30,.55)}}
.logo-ring{width:118px;height:118px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(from 180deg,var(--accent),var(--accent2),var(--blue),var(--accent));padding:3px;animation:breathe 4s ease-in-out infinite,fadeUp .7s ease both;position:relative;z-index:1}
.logo-inner{width:100%;height:100%;border-radius:50%;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-family:'Rajdhani';font-size:46px;font-weight:700;color:var(--accent);text-shadow:0 0 22px rgba(255,138,30,.55)}
#landing h1{font-size:clamp(40px,7vw,68px);font-weight:700;margin-top:20px;letter-spacing:3px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent;animation:fadeUp .7s .12s ease both;position:relative;z-index:1}
#landing .tagline{font-size:clamp(13px,2.4vw,18px);color:var(--muted);letter-spacing:5px;text-transform:uppercase;margin-top:8px;animation:fadeUp .7s .22s ease both;position:relative;z-index:1}
.land-strip{display:flex;gap:18px;margin-top:22px;flex-wrap:wrap;justify-content:center;animation:fadeUp .7s .32s ease both;position:relative;z-index:1}
.land-strip span{font-family:'Rajdhani';font-weight:700;font-size:15px;color:var(--text);display:flex;align-items:center;gap:7px}
.land-strip span b{color:var(--accent);font-size:19px}
.land-strip .sep{width:1px;background:var(--border)}
.land-feats{display:flex;gap:9px;margin-top:26px;flex-wrap:wrap;justify-content:center;max-width:620px;animation:fadeUp .7s .42s ease both;position:relative;z-index:1}
.land-feats span{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:7px 15px;font-size:12.5px;font-weight:600;color:var(--muted);transition:.2s}
.land-feats span:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.landing-btns{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;justify-content:center;animation:fadeUp .7s .52s ease both;position:relative;z-index:1}
.btn{padding:13px 26px;border-radius:12px;font-size:15px;font-weight:600;transition:transform .15s,box-shadow .15s;display:inline-flex;align-items:center;gap:9px}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#14101c;box-shadow:var(--glow)}
.btn-ghost{background:var(--card);color:var(--text);border:1px solid var(--border)}
.btn-sm{padding:8px 14px;border-radius:9px;font-size:13px}
.landing-note{margin-top:24px;color:var(--muted);font-size:13px;max-width:480px;line-height:1.7;animation:fadeUp .7s .62s ease both;position:relative;z-index:1}
.land-foot{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:var(--muted);font-size:11.5px;letter-spacing:2px;text-transform:uppercase;opacity:.7;animation:fadeUp .7s .75s ease both}

/* shell */
#app{display:none;min-height:100vh}
#app.active{display:flex}
aside{width:230px;min-height:100vh;background:var(--bg2);border-right:1px solid var(--border);padding:22px 14px;position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:20;overflow-y:auto}
.side-brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px;border-bottom:1px solid var(--border);margin-bottom:16px}
.side-brand .mini-logo{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--blue));display:flex;align-items:center;justify-content:center;font-family:'Rajdhani';font-weight:700;color:#fff;font-size:17px}
.side-brand div b{font-family:'Rajdhani';font-size:18px;display:block;line-height:1}
.side-brand div span{font-size:9.5px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase}
.nav-head{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);opacity:.75;padding:14px 14px 5px;font-weight:700;display:flex;align-items:center;gap:8px}
.nav-head::after{content:'';flex:1;height:1px;background:var(--border)}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:11px;color:var(--muted);font-size:14.5px;font-weight:500;margin-bottom:3px;background:transparent;width:100%;text-align:left;transition:.15s}
.nav-item .em{font-size:17px;width:22px;text-align:center;flex-shrink:0}
.nav-item:hover{background:var(--card);color:var(--text)}
.nav-item.active{background:linear-gradient(90deg,rgba(255,138,30,.18),rgba(77,163,255,.10));color:var(--accent);border:1px solid rgba(255,138,30,.3)}
.side-foot{margin-top:auto;padding:12px 8px;font-size:11px;color:var(--muted)}
main{flex:1;margin-left:230px;padding:26px 32px 60px;max-width:1200px}

/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:14px;flex-wrap:wrap}
.topbar .greet h2{font-size:26px}
.topbar .greet p{color:var(--muted);font-size:13.5px;margin-top:2px}
.top-actions{display:flex;align-items:center;gap:10px}
.icon-btn{width:40px;height:40px;border-radius:11px;background:var(--card);border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:17px;transition:.15s}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--blue));display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}

/* life-area switcher — centered in topbar between greeting and user actions */
.topbar{position:relative}
.area-switch{display:flex;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:5px;width:fit-content;max-width:100%;margin:0 auto;order:0}
.area-b{padding:9px 20px;border-radius:10px;background:transparent;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap;transition:.2s}
.area-b.on{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#14101c;box-shadow:var(--glow)}
@media(max-width:1100px){
  .topbar .area-switch{order:3;flex-basis:100%;justify-content:center;margin-top:4px}
  .topbar .area-b{flex:1;text-align:center}
}

/* sections & cards */
.section{display:none;animation:fade .25s}
.section.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow)}
.card h3{font-size:17px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.stat{position:relative;overflow:hidden}
.stat .num{font-family:'Rajdhani';font-size:28px;font-weight:700;color:var(--accent);white-space:nowrap}
.stat .lbl{color:var(--muted);font-size:12.5px;margin-top:2px}
.stat .ico{position:absolute;right:14px;top:14px;font-size:22px;opacity:.5}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:10px}
.section-head h2{font-size:24px}
.muted{color:var(--muted);font-size:13.5px}
.empty{color:var(--muted);text-align:center;padding:30px 10px;font-size:14px;line-height:1.6}

/* list items */
.item{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:12px;background:var(--card2);border:1px solid var(--border);margin-bottom:9px}
.item .grow{flex:1;min-width:0}
.item .t{font-weight:600;font-size:14.5px;word-break:break-word}
.item .s{color:var(--muted);font-size:12.5px;margin-top:2px}
.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.chip{font-size:11px;padding:3px 10px;border-radius:20px;background:rgba(77,163,255,.15);color:var(--blue);font-weight:600;white-space:nowrap}
.chip.orange{background:rgba(255,138,30,.15);color:var(--accent)}
.chip.green{background:rgba(61,220,132,.15);color:var(--green)}
.chip.red{background:rgba(255,84,112,.15);color:var(--red)}
.done .t{text-decoration:line-through;color:var(--muted)}
.check{width:22px;height:22px;border-radius:7px;border:2px solid var(--muted);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px}
.check.on{background:var(--green);border-color:var(--green)}
.del{background:none;color:var(--muted);font-size:16px;padding:4px}
.del:hover{color:var(--red)}

/* bars */
.bar-row{margin-bottom:12px}
.bar-row .bar-lbl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px;gap:8px}
.bar{height:9px;border-radius:6px;background:var(--card2);overflow:hidden}
.bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.month-nav{display:flex;align-items:center;gap:10px}
.month-nav b{min-width:110px;text-align:center;font-family:'Rajdhani';font-size:16px}
.trend{display:flex;align-items:flex-end;gap:10px;height:120px;padding-top:10px}
.trend .tcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.trend .tbar{width:70%;max-width:44px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--blue),var(--accent));min-height:3px}
.trend .tlbl{font-size:10.5px;color:var(--muted)}
.trend .tval{font-size:10.5px;color:var(--text);font-weight:600}

/* ideas */
.idea-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.idea{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:14px;padding:16px}
.idea p{font-size:14px;line-height:1.55;margin:8px 0;word-break:break-word}
.idea .meta{display:flex;justify-content:space-between;align-items:center}

/* habits */
.habit{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.habit .h-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.habit .h-em{font-size:26px}
.habit .h-name{font-weight:700;font-size:15.5px;flex:1}
.h-em{font-size:20px}
.streak{font-family:'Rajdhani';font-weight:700;color:var(--accent);font-size:16px;white-space:nowrap}
.week{display:flex;gap:7px;margin:10px 0 14px}
.dayc{flex:1;text-align:center}
.dayc .c{width:100%;aspect-ratio:1;max-width:34px;margin:0 auto;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}
.dayc .c.on{background:var(--green);border-color:var(--green);color:#fff}
.dayc .dl{font-size:9.5px;color:var(--muted);margin-top:4px;text-transform:uppercase}
.h-btn{width:100%;padding:10px;border-radius:10px;font-weight:600;font-size:14px;background:var(--card2);border:1px solid var(--border);color:var(--text)}
.h-btn.on{background:rgba(61,220,132,.15);border-color:var(--green);color:var(--green)}

/* goals */
.goal{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.goal .g-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.goal .g-title{font-weight:700;font-size:15.5px}
.goal .g-nums{font-family:'Rajdhani';font-size:15px;color:var(--muted);margin-bottom:8px}
.goal .g-nums b{color:var(--accent);font-size:19px}
.gbar{height:12px;border-radius:8px;background:var(--card2);overflow:hidden;margin-bottom:12px}
.gbar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--green),var(--blue));transition:width .4s}
.g-actions{display:flex;gap:8px;flex-wrap:wrap}

/* focus */
.focus-wrap{display:flex;flex-direction:column;align-items:center;padding:30px 20px}
.f-ring{width:230px;height:230px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent) 0deg,var(--card2) 0deg);transition:background .5s}
.f-inner{width:200px;height:200px;border-radius:50%;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center}
.f-time{font-family:'Rajdhani';font-size:52px;font-weight:700}
.f-mode{color:var(--muted);font-size:13px;letter-spacing:2px;text-transform:uppercase}
.f-btns{display:flex;gap:12px;margin-top:24px}
.f-presets{display:flex;gap:8px;margin-top:16px}
.preset{padding:7px 14px;border-radius:20px;background:var(--card2);border:1px solid var(--border);color:var(--muted);font-size:13px;font-weight:600}
.preset.on{border-color:var(--accent);color:var(--accent)}

/* journal */
.mood-b{font-size:24px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;transition:.15s}
.mood-b.on{border-color:var(--accent);background:rgba(255,138,30,.15);transform:scale(1.1)}

/* growth (learned & earned) */
.wp-item{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px}
.wp-item .k{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.wp-item .v{font-weight:700;font-size:15.5px;margin-top:4px;word-break:break-word}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(5,5,15,.7);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;padding:18px}
.modal-bg.open{display:flex}
.modal{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:26px;width:100%;max-width:440px;box-shadow:var(--shadow);max-height:90vh;overflow-y:auto}
.modal h3{font-size:20px;margin-bottom:18px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px;font-weight:600}
.modal .row{display:flex;gap:10px}
.modal .row .field{flex:1}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick-grid button{padding:16px 10px;border-radius:12px;background:var(--card2);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:14px}
.quick-grid button:hover{border-color:var(--accent)}

/* achievements */
.lvl-chip{display:flex;align-items:center;gap:6px;padding:0 14px;height:40px;border-radius:11px;background:var(--card);border:1px solid var(--accent);color:var(--accent);font-weight:700;font-family:'Rajdhani';font-size:15px;white-space:nowrap;transition:.15s}
.lvl-chip:hover{box-shadow:var(--glow)}
.xp-bar{height:14px;border-radius:8px;background:var(--card2);overflow:hidden;margin:10px 0}
.xp-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .6s}
.badge{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center}
.badge .b-em{font-size:34px}
.badge .b-name{font-weight:700;margin-top:8px;font-size:14px}
.badge .b-desc{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.4}
.badge.locked{opacity:.35;filter:grayscale(1)}

/* money flow */
.flow{display:flex;align-items:flex-end;gap:12px;height:150px;padding-top:10px}
.flow .fcol{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:5px}
.flow .fpair{display:flex;gap:4px;align-items:flex-end;height:100%;width:100%;justify-content:center}
.flow .fbar{width:15px;border-radius:5px 5px 0 0;min-height:3px}
.flow .fe{background:linear-gradient(180deg,var(--green),#1f8f55)}
.flow .fs{background:linear-gradient(180deg,var(--red),#b33049)}
.flow .flbl{font-size:10.5px;color:var(--muted)}

/* ============ COMPACT MODE ============ */
body[data-density="compact"] aside{width:200px;padding:14px 10px}
body[data-density="compact"] main{margin-left:200px;padding:16px 20px 40px;max-width:1250px}
body[data-density="compact"] .side-brand{padding:0 6px 12px;margin-bottom:10px}
body[data-density="compact"] .nav-item{padding:7px 12px;font-size:13.5px;margin-bottom:2px;border-radius:9px}
body[data-density="compact"] .nav-head{padding:9px 12px 3px;font-size:9px}
body[data-density="compact"] .nav-item .em{font-size:15px;width:20px}
body[data-density="compact"] .topbar{margin-bottom:10px;gap:10px}
body[data-density="compact"] .topbar .greet h2{font-size:20px}
body[data-density="compact"] .topbar .greet p{font-size:12px}
body[data-density="compact"] .icon-btn{width:34px;height:34px;font-size:15px;border-radius:9px}
body[data-density="compact"] .avatar{width:34px;height:34px}
body[data-density="compact"] .lvl-chip{height:34px;padding:0 10px;font-size:13.5px}
body[data-density="compact"] .area-b{padding:6px 14px;font-size:13px}
body[data-density="compact"] .area-switch{padding:4px;border-radius:11px}
body[data-density="compact"] .section-head{margin-bottom:10px}
body[data-density="compact"] .section-head h2{font-size:19px}
body[data-density="compact"] .grid{gap:10px}
body[data-density="compact"] .grid-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
body[data-density="compact"] .card{padding:13px 14px;border-radius:12px}
body[data-density="compact"] .card h3{font-size:14.5px;margin-bottom:9px}
body[data-density="compact"] .stat .num{font-size:21px}
body[data-density="compact"] .stat .lbl{font-size:11px}
body[data-density="compact"] .stat .ico{font-size:16px;right:10px;top:10px}
body[data-density="compact"] .item{padding:8px 10px;margin-bottom:6px;gap:9px;border-radius:9px}
body[data-density="compact"] .item .t{font-size:13px}
body[data-density="compact"] .item .s{font-size:11px}
body[data-density="compact"] .chip{font-size:10px;padding:2px 8px}
body[data-density="compact"] .btn{padding:9px 16px;font-size:13.5px;border-radius:9px}
body[data-density="compact"] .btn-sm{padding:6px 11px;font-size:12px}
body[data-density="compact"] .empty{padding:14px 8px;font-size:12.5px}
body[data-density="compact"] .habit,body[data-density="compact"] .goal{padding:12px;border-radius:12px}
body[data-density="compact"] .habit .h-em{font-size:20px}
body[data-density="compact"] .habit .h-name,body[data-density="compact"] .goal .g-title{font-size:13.5px}
body[data-density="compact"] .week{gap:5px;margin:7px 0 9px}
body[data-density="compact"] .dayc .c{max-width:27px;font-size:10px}
body[data-density="compact"] .h-btn{padding:7px;font-size:12.5px}
body[data-density="compact"] .bar-row{margin-bottom:8px}
body[data-density="compact"] .bar-row .bar-lbl{font-size:11.5px;margin-bottom:3px}
body[data-density="compact"] .bar{height:7px}
body[data-density="compact"] .trend{height:90px}
body[data-density="compact"] .flow{height:110px}
body[data-density="compact"] .idea-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
body[data-density="compact"] .idea{padding:11px;border-radius:11px}
body[data-density="compact"] .idea p{font-size:12.5px;margin:6px 0}
body[data-density="compact"] .badge{padding:11px}
body[data-density="compact"] .badge .b-em{font-size:26px}
body[data-density="compact"] .badge .b-name{font-size:12.5px;margin-top:5px}
body[data-density="compact"] .badge .b-desc{font-size:10.5px}
body[data-density="compact"] .wp-item{padding:9px 11px}
body[data-density="compact"] .wp-item .v{font-size:13.5px}
body[data-density="compact"] .mood-b{font-size:19px;padding:6px 9px}
body[data-density="compact"] .field{margin-bottom:9px}
body[data-density="compact"] input,body[data-density="compact"] select,body[data-density="compact"] textarea{padding:8px 10px;font-size:13px}
body[data-density="compact"] .modal{padding:18px;border-radius:14px}
body[data-density="compact"] .modal h3{font-size:17px;margin-bottom:12px}
body[data-density="compact"] .f-ring{width:190px;height:190px}
body[data-density="compact"] .f-inner{width:164px;height:164px}
body[data-density="compact"] .f-time{font-size:42px}
body[data-density="compact"] .focus-wrap{padding:16px 12px}
body[data-density="compact"] .quick-grid button{padding:11px 8px;font-size:13px}
body[data-density="compact"] .side-foot{font-size:10px;padding:8px 6px}
@media(max-width:860px){
  body[data-density="compact"] aside{width:56px;padding:12px 6px}
  body[data-density="compact"] main{margin-left:56px;padding:14px 10px 40px}
}

/* bell badge */
.bellb{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:10px;border-radius:10px;padding:1px 5px;font-weight:700;line-height:1.4}

/* month calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px}
.cal-h{text-align:center;font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;padding:4px 0}
.cal-d{aspect-ratio:1;border-radius:10px;background:var(--card2);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;gap:2px}
.cal-d:hover{border-color:var(--accent)}
.cal-d.today{border-color:var(--accent);color:var(--accent);box-shadow:var(--glow)}
.cal-d.sel{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#14101c;border-color:var(--accent)}
.cal-dot{font-size:9px;color:var(--accent);line-height:.5;letter-spacing:1px}
.cal-d.sel .cal-dot{color:#14101c}

/* voice mic */
@keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,84,112,.5)}50%{box-shadow:0 0 0 14px rgba(255,84,112,0)}}
#voice-mic.on{border-color:var(--red);color:var(--red);animation:micpulse 1.2s infinite}

/* mobile bottom bar */
#bottbar{display:none}
@media(max-width:640px){
  #bottbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg2);border-top:1px solid var(--border);z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;align-items:center}
  #bottbar button{background:none;font-size:22px;padding:7px 15px;border-radius:13px}
  #bottbar .bb-main{background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:var(--glow)}
  main{padding-bottom:110px !important}
}

/* income consistency grid */
.ic-grid{display:grid;grid-template-columns:repeat(15,1fr);gap:5px}
.ic-c{aspect-ratio:1;border-radius:5px;background:var(--card2);border:1px solid var(--border)}
.ic-c.on{background:linear-gradient(135deg,var(--green),#1f8f55);border-color:var(--green)}
.ic-c.tod{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:640px){.ic-grid{grid-template-columns:repeat(10,1fr)}}

/* pin lock */
#pinlock{position:fixed;inset:0;z-index:500;background:radial-gradient(900px 500px at 50% -10%,rgba(255,138,30,.14),transparent 60%),var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px}
#pin-in{background:var(--card);border:1px solid var(--border);border-radius:14px}
#pin-in:focus{border-color:var(--accent)}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
#pin-in.bad{animation:shake .3s;border-color:var(--red)}

/* V35 privacy veil */
body.priv .stat .num,body.priv .g-nums b,body.priv .g-nums,body.priv #exp-total,body.priv #earned-total,
body.priv #fin-today,body.priv #fin-week,body.priv #fin-month,body.priv #fin-all,
body.priv #nw-assets,body.priv #nw-liab,body.priv #nw-net,body.priv #nw-loans,
body.priv .item b{filter:blur(7px)}
body.priv .item b:hover,body.priv .stat .num:hover{filter:none}

/* V33 nav search on mobile */
@media(max-width:860px){#nav-search{display:none}}

/* V39 print mode */
@media print{
  aside,.topbar,.area-switch,#bottbar,.btn,.icon-btn,.del,.check,#toast,#landing,.modal-bg{display:none !important}
  main{margin-left:0 !important;padding:10px !important;max-width:100% !important}
  body{background:#fff !important;color:#000 !important}
  .card,.goal,.habit,.item,.idea,.badge{box-shadow:none !important;border:1px solid #bbb !important;background:#fff !important;color:#000 !important}
  .muted,.s,.lbl{color:#444 !important}
  .num,.t,h2,h3,b{color:#000 !important}
  .section{display:none !important}
  .section.active{display:block !important}
}

/* toast */
#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--card);border:1px solid var(--accent);color:var(--text);padding:13px 22px;border-radius:12px;font-size:14px;box-shadow:var(--shadow);transition:transform .3s;z-index:200;max-width:90vw}
#toast.show{transform:translateX(-50%) translateY(0)}

@media(max-width:860px){
  aside{width:64px;padding:18px 8px}
  .side-brand div,.nav-item span.nl,.side-foot{display:none}
  .nav-head{padding:8px 4px 2px;font-size:0}
  .nav-head::after{height:1px}
  .nav-item{justify-content:center;padding:11px}
  main{margin-left:64px;padding:20px 14px 50px}
  .area-b{padding:9px 12px;font-size:13px}
}
