*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── THEMES ── */
body.theme-default{--bg:#e8f4ff;--bg2:#d0eaff;--panel:#fff;--border:#5b9bd5;--blue:#2176c7;--blue-dark:#0d4f8c;--blue-light:#a8d4f5;--accent:#7ecf2b;--accent-dark:#4a8a0a;--accent-light:#d4f5a0;--orange:#ff8c00;--orange-light:#ffe0a0;--red:#e63030;--red-light:#ffd0d0;--purple:#8b30d0;--yellow:#ffd700;--yellow-light:#fff8cc;--ink:#1a1a2e;--ink-muted:#7a7a9a;--night-bg:#0d1b3e;--night-border:#3a5a9a;--green-on:#3dbb3d;--header-bg:linear-gradient(135deg,#0d4f8c,#1a4a8a,#0a3070);--header-border:#7ecf2b;--stripe:linear-gradient(90deg,#7ecf2b,#2176c7,#ff8c00,#8b30d0,#7ecf2b);--font:'Fredoka One',cursive;}
body.theme-pixel{--bg:#0f380f;--bg2:#306230;--panel:#1a4a1a;--border:#8bac0f;--blue:#9bbc0f;--blue-dark:#8bac0f;--blue-light:#306230;--accent:#9bbc0f;--accent-dark:#8bac0f;--accent-light:#306230;--orange:#9bbc0f;--orange-light:#306230;--red:#9bbc0f;--red-light:#306230;--purple:#9bbc0f;--yellow:#9bbc0f;--yellow-light:#306230;--ink:#9bbc0f;--ink-muted:#8bac0f;--night-bg:#0f380f;--night-border:#306230;--green-on:#9bbc0f;--header-bg:linear-gradient(135deg,#0f380f,#306230,#0f380f);--header-border:#9bbc0f;--stripe:linear-gradient(90deg,#9bbc0f,#8bac0f,#9bbc0f);--font:'Press Start 2P',monospace;}
body.theme-cowboy{--bg:#f5e6c8;--bg2:#e8d5a8;--panel:#fdf6e8;--border:#8b6030;--blue:#6b4020;--blue-dark:#4a2800;--blue-light:#d4b878;--accent:#c8780a;--accent-dark:#8b5000;--accent-light:#fae8c0;--orange:#c8780a;--orange-light:#fae8c0;--red:#8b2020;--red-light:#f8d8c0;--purple:#6b3060;--yellow:#d4a020;--yellow-light:#faf0c0;--ink:#2a1800;--ink-muted:#8b6840;--night-bg:#1a0e00;--night-border:#4a3010;--green-on:#4a7820;--header-bg:linear-gradient(135deg,#2a1800,#4a3010,#1a0e00);--header-border:#c8780a;--stripe:linear-gradient(90deg,#c8780a,#8b6030,#d4a020,#8b2020,#c8780a);--font:'Fredoka One',cursive;}
body.theme-sunrise{--bg:#fff8ee;--bg2:#ffeedd;--panel:#fff;--border:#e8a040;--blue:#d06010;--blue-dark:#a04000;--blue-light:#ffd090;--accent:#f0800a;--accent-dark:#c05000;--accent-light:#ffe8c0;--orange:#f0800a;--orange-light:#ffe8c0;--red:#e03020;--red-light:#ffd8d0;--purple:#9040a0;--yellow:#f0c000;--yellow-light:#fff8c0;--ink:#1a0800;--ink-muted:#906040;--night-bg:#180800;--night-border:#503020;--green-on:#40a020;--header-bg:linear-gradient(135deg,#c04000,#e07000,#f0a000);--header-border:#f0c000;--stripe:linear-gradient(90deg,#f0800a,#f0c000,#e03020,#f0800a);--font:'Fredoka One',cursive;}
body.theme-space{--bg:#05080f;--bg2:#0a1020;--panel:#0d1428;--border:#1a3a6a;--blue:#00c8ff;--blue-dark:#0088bb;--blue-light:#003355;--accent:#7b2fff;--accent-dark:#5500cc;--accent-light:#1a0044;--orange:#ff6600;--orange-light:#331500;--red:#ff3355;--red-light:#330011;--purple:#cc44ff;--yellow:#ffe066;--yellow-light:#221a00;--ink:#c8e8ff;--ink-muted:#446688;--night-bg:#020510;--night-border:#1a2a4a;--green-on:#00ffaa;--header-bg:linear-gradient(135deg,#020510,#050d20,#000308);--header-border:#7b2fff;--stripe:linear-gradient(90deg,#00c8ff,#7b2fff,#ff3355,#00ffaa,#00c8ff);--font:'Fredoka One',cursive;}
body.theme-night{--bg:#080c14;--bg2:#0f1520;--panel:#111827;--border:#2a3a5a;--blue:#6a9aee;--blue-dark:#3a5aaa;--blue-light:#1a2a4a;--accent:#8888ff;--accent-dark:#5555cc;--accent-light:#1a1a44;--orange:#ffaa44;--orange-light:#332200;--red:#ff6677;--red-light:#330011;--purple:#bb88ff;--yellow:#ffee88;--yellow-light:#221a00;--ink:#c8d8f0;--ink-muted:#445566;--night-bg:#04070f;--night-border:#1a2a3a;--green-on:#44dd88;--header-bg:linear-gradient(135deg,#04070f,#080c14,#020408);--header-border:#8888ff;--stripe:linear-gradient(90deg,#6a9aee,#8888ff,#bb88ff,#6a9aee);--font:'Fredoka One',cursive;}
body.theme-gold{--bg:#0a0800;--bg2:#150e00;--panel:#1a1200;--border:#8a6000;--blue:#d4a000;--blue-dark:#8a6000;--blue-light:#2a1800;--accent:#ffd700;--accent-dark:#aa8800;--accent-light:#332200;--orange:#ff8800;--orange-light:#331a00;--red:#ff4444;--red-light:#330000;--purple:#cc88ff;--yellow:#ffd700;--yellow-light:#221500;--ink:#f0d888;--ink-muted:#806030;--night-bg:#050400;--night-border:#4a3000;--green-on:#88cc44;--header-bg:linear-gradient(135deg,#0a0800,#1a1200,#050400);--header-border:#ffd700;--stripe:linear-gradient(90deg,#ffd700,#d4a000,#ff8800,#ffd700);--font:'Fredoka One',cursive;}
body.theme-neon{--bg:#0a000f;--bg2:#120018;--panel:#180022;--border:#660088;--blue:#00ffcc;--blue-dark:#009966;--blue-light:#001a22;--accent:#ff00aa;--accent-dark:#aa0066;--accent-light:#220011;--orange:#ff8800;--orange-light:#221100;--red:#ff2244;--red-light:#220008;--purple:#cc00ff;--yellow:#ffff00;--yellow-light:#111100;--ink:#ffccff;--ink-muted:#884488;--night-bg:#050008;--night-border:#330044;--green-on:#00ff88;--header-bg:linear-gradient(135deg,#050008,#0a000f,#030005);--header-border:#ff00aa;--stripe:linear-gradient(90deg,#ff00aa,#00ffcc,#ff8800,#cc00ff,#ff00aa);--font:'Fredoka One',cursive;}
body.theme-cyberpunk{--bg:#0a0015;--bg2:#120025;--panel:#0f001e;--border:#aa00ff;--blue:#00eeff;--blue-dark:#0099aa;--blue-light:#001a20;--accent:#ff0077;--accent-dark:#aa0044;--accent-light:#1a0011;--orange:#ff8800;--orange-light:#1a0800;--red:#ff0044;--red-light:#1a0008;--purple:#aa00ff;--yellow:#ffee00;--yellow-light:#111000;--ink:#ff88ff;--ink-muted:#664466;--night-bg:#040008;--night-border:#440066;--green-on:#00ff44;--header-bg:linear-gradient(135deg,#040008,#0a0015,#02000a);--header-border:#ff0077;--stripe:linear-gradient(90deg,#ff0077,#00eeff,#aa00ff,#ffee00,#ff0077);--font:'Fredoka One',cursive;}
body.theme-ocean{--bg:#e8f8ff;--bg2:#c8eeff;--panel:#fff;--border:#2299cc;--blue:#0077aa;--blue-dark:#005577;--blue-light:#aaddee;--accent:#00bbaa;--accent-dark:#008877;--accent-light:#cceeee;--orange:#ff8844;--orange-light:#ffe8cc;--red:#ee3355;--red-light:#ffccdd;--purple:#7744cc;--yellow:#ffcc00;--yellow-light:#fff8cc;--ink:#001a22;--ink-muted:#448899;--night-bg:#001122;--night-border:#114466;--green-on:#00ddaa;--header-bg:linear-gradient(135deg,#003355,#0055aa,#006688);--header-border:#00bbaa;--stripe:linear-gradient(90deg,#0077aa,#00bbaa,#2299cc,#0077aa);--font:'Fredoka One',cursive;}
body.theme-fantasy{--bg:#1a1008;--bg2:#2a1c0e;--panel:#1e1408;--border:#8b6820;--blue:#d4a030;--blue-dark:#8b6820;--blue-light:#3a2810;--accent:#c87820;--accent-dark:#8b5000;--accent-light:#3a2008;--orange:#e09030;--orange-light:#3a2808;--red:#c03020;--red-light:#3a1008;--purple:#8b3080;--yellow:#d4a820;--yellow-light:#2a1e08;--ink:#f0d8a0;--ink-muted:#8b7840;--night-bg:#0a0800;--night-border:#3a2808;--green-on:#70a830;--header-bg:linear-gradient(135deg,#0a0800,#1a1008,#050400);--header-border:#d4a030;--stripe:linear-gradient(90deg,#d4a030,#c87820,#8b3080,#c03020,#d4a030);--font:'Fredoka One',cursive;}
body.theme-rex{--bg:#0a1a05;--bg2:#112208;--panel:#0d1e08;--border:#2d6e10;--blue:#7ecf2b;--blue-dark:#4a8a0a;--blue-light:#1a3a08;--accent:#5aaa20;--accent-dark:#2d6e10;--accent-light:#1a3008;--orange:#c8780a;--orange-light:#2a1800;--red:#cc3a2a;--red-light:#2a0808;--purple:#6a4a8a;--yellow:#d4c040;--yellow-light:#221e00;--ink:#c8f0a0;--ink-muted:#4a7a2a;--night-bg:#040a02;--night-border:#1a3008;--green-on:#7ecf2b;--header-bg:linear-gradient(135deg,#040a02,#0a1a05,#020802);--header-border:#7ecf2b;--stripe:linear-gradient(90deg,#7ecf2b,#5aaa20,#c8780a,#d4c040,#7ecf2b);--font:'Fredoka One',cursive;}
body.theme-industrial{--bg:#111008;--bg2:#1a1808;--panel:#141208;--border:#5a4a08;--blue:#e8720a;--blue-dark:#a04800;--blue-light:#2a1a00;--accent:#e8720a;--accent-dark:#a04800;--accent-light:#221000;--orange:#e8a010;--orange-light:#221800;--red:#cc2a10;--red-light:#220808;--purple:#8a6a20;--yellow:#e8c010;--yellow-light:#221a00;--ink:#d0c8a0;--ink-muted:#7a6a40;--night-bg:#080600;--night-border:#2a2008;--green-on:#80c020;--header-bg:linear-gradient(135deg,#080600,#141208,#040400);--header-border:#e8720a;--stripe:linear-gradient(90deg,#e8720a,#e8c010,#cc2a10,#8a6a20,#e8720a);--font:'Fredoka One',cursive;}
body.theme-grunge{--bg:#100e0c;--bg2:#181410;--panel:#141010;--border:#4a3a2a;--blue:#9a8a7a;--blue-dark:#6a5a4a;--blue-light:#2a2018;--accent:#8a7a6a;--accent-dark:#5a4a3a;--accent-light:#221a14;--orange:#aa6a30;--orange-light:#2a1808;--red:#aa3a2a;--red-light:#221008;--purple:#6a4a5a;--yellow:#aaa040;--yellow-light:#1a1a00;--ink:#d0c8b8;--ink-muted:#6a5a4a;--night-bg:#060404;--night-border:#2a1a14;--green-on:#6a9a40;--header-bg:linear-gradient(135deg,#060404,#100e0c,#040202);--header-border:#8a7a6a;--stripe:linear-gradient(90deg,#8a7a6a,#aa6a30,#aa3a2a,#6a4a5a,#8a7a6a);--font:'Fredoka One',cursive;}
body.theme-forest{--bg:#0e1a0e;--bg2:#162416;--panel:#111e11;--border:#2d5c2d;--blue:#5baa5b;--blue-dark:#2d6e2d;--blue-light:#1a3a1a;--accent:#3a8c3a;--accent-dark:#1a5a1a;--accent-light:#1e3c1e;--orange:#c8780a;--orange-light:#2a1800;--red:#cc3a2a;--red-light:#2a1008;--purple:#6a3a8a;--yellow:#c8b040;--yellow-light:#221c00;--ink:#c8f0c8;--ink-muted:#4a7a4a;--night-bg:#050e05;--night-border:#1a2e1a;--green-on:#44ee88;--header-bg:linear-gradient(135deg,#050e05,#0e1a0e,#030803);--header-border:#3a8c3a;--stripe:linear-gradient(90deg,#3a8c3a,#5baa5b,#c8780a,#c8b040,#3a8c3a);--font:'Fredoka One',cursive;}

/* ── BASE ── */
body{font-family:'Nunito',sans-serif;font-weight:600;background:var(--bg);color:var(--ink);min-height:100vh;transition:background .3s,color .3s}
.d{font-family:var(--font)}
.space-stars{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;display:none}
.star{position:absolute;border-radius:50%;background:white;animation:twinkle var(--d,3s) infinite alternate}
@keyframes twinkle{from{opacity:.2}to{opacity:1}}
#confettiCanvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998}

/* ── PIN ── */
#pinGate{position:fixed;inset:0;background:linear-gradient(135deg,#0d4f8c,#0a3070);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.1rem}
#pinGate.hidden{display:none}
.pin-logo{font-family:'Fredoka One',cursive;font-size:2rem;color:#fff;text-align:center;text-shadow:3px 3px 0 #0a3070}
.pin-logo span{color:#7ecf2b}
.pin-sub{font-family:'Fredoka One',cursive;font-size:11px;color:#a8d4f5;letter-spacing:.15em;text-transform:uppercase}
.pin-dots{display:flex;gap:.8rem}
.pin-dot{width:15px;height:15px;border-radius:50%;border:3px solid rgba(255,255,255,.4);background:transparent;transition:background .2s}
.pin-dot.filled{background:#7ecf2b;border-color:#7ecf2b}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:230px;width:100%}
.pin-btn{font-family:'Fredoka One',cursive;font-size:1.3rem;color:white;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.2);border-radius:10px;padding:.85rem;cursor:pointer;transition:all .15s;text-align:center}
.pin-btn:hover{background:rgba(255,255,255,.22);transform:scale(1.05)}
.pin-btn:active{transform:scale(.95)}
.pin-error{font-family:'Fredoka One',cursive;font-size:13px;color:#ff6677;display:none}
.pin-error.show{display:block;animation:shake .4s ease}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}

/* ── LAYOUT ── */
.bg-deco{position:fixed;pointer-events:none;z-index:0;top:0;left:0;right:0;bottom:0;overflow:hidden}
.masthead{background:var(--header-bg);padding:1.4rem 2rem;border-bottom:5px solid var(--header-border);position:relative;overflow:hidden;box-shadow:0 4px 0 var(--accent-dark);z-index:2}
.masthead::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 10% 80%,rgba(126,207,43,.1) 0%,transparent 30%),radial-gradient(circle at 90% 20%,rgba(255,140,0,.08) 0%,transparent 30%);pointer-events:none}
.masthead-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;z-index:1}
.masthead-eyebrow{font-family:var(--font);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.25rem}
.masthead h1{font-family:var(--font);font-size:2.3rem;color:#fff;line-height:1;text-shadow:3px 3px 0 rgba(0,0,0,.4)}
.masthead h1 .ac{color:var(--accent)}
.masthead-sub{font-size:11px;color:var(--blue-light);margin-top:.3rem;font-weight:700}
.masthead-right{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.theme-picker{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end;max-width:200px}
.tbtn{width:19px;height:19px;border-radius:50%;border:2px solid rgba(255,255,255,.3);cursor:pointer;transition:all .2s;position:relative;flex-shrink:0}
.tbtn:hover{transform:scale(1.25);border-color:white}
.tbtn.active{border-color:white;box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.tbtn.locked{opacity:.3;cursor:not-allowed}
.tbtn.locked::after{content:'🔒';position:absolute;font-size:7px;top:-3px;right:-3px}
.masthead-deco{display:flex;gap:.4rem;align-items:flex-end;flex-shrink:0}
.container{max-width:960px;margin:0 auto;padding:1.4rem 2rem;position:relative;z-index:1}

/* ── STATS ── */
.stats-bar{display:flex;gap:.5rem;margin-bottom:1.4rem;flex-wrap:wrap}
.stat-item{flex:1;min-width:80px;background:var(--panel);border:3px solid var(--blue);border-radius:12px;padding:.65rem .8rem;box-shadow:3px 3px 0 rgba(0,0,0,.15);text-align:center;position:relative;overflow:hidden}
.stat-item::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--accent)}
.stat-val{font-family:var(--font);font-size:1.6rem;color:var(--blue);line-height:1;margin-bottom:.15rem}
.stat-lbl{font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}

/* ── SECTION HEADERS ── */
.sec-hdr{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem;margin-top:.4rem}
.sec-title{font-family:var(--font);font-size:1.05rem;color:var(--blue);white-space:nowrap}
.sec-line{flex:1;height:3px;background:repeating-linear-gradient(90deg,var(--blue) 0,var(--blue) 8px,transparent 8px,transparent 14px);opacity:.3;border-radius:2px}
.sec-btn{font-family:var(--font);font-size:11px;color:var(--blue);background:var(--yellow-light);border:2px solid var(--blue);border-radius:8px;padding:.25rem .7rem;cursor:pointer;transition:all .15s;box-shadow:2px 2px 0 var(--blue);white-space:nowrap}
.sec-btn:hover{background:var(--yellow);transform:translate(-1px,-1px)}

/* ── PANELS ── */
.panel{background:var(--panel);border:3px solid var(--blue);border-radius:16px;padding:1.2rem;margin-bottom:1.4rem;box-shadow:5px 5px 0 rgba(0,0,0,.15);position:relative;overflow:hidden}
.panel::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:var(--stripe)}
.p-night{background:var(--night-bg);border-color:var(--night-border)}.p-night::before{background:linear-gradient(90deg,#3a5a9a,#6a4aaa,#3a5a9a)}
.p-cycle{border-color:var(--green-on)}.p-cycle::before{background:linear-gradient(90deg,var(--green-on),var(--accent),var(--green-on))}
.p-trophy{border-color:var(--yellow)}.p-trophy::before{background:linear-gradient(90deg,var(--yellow),var(--orange),var(--yellow))}
.p-challenge{border-color:var(--red)}.p-challenge::before{background:linear-gradient(90deg,var(--red),var(--orange),var(--purple),var(--red))}
.p-tips{border-color:var(--accent)}.p-tips::before{background:linear-gradient(90deg,var(--accent),var(--blue),var(--accent))}
.p-journal{border-color:var(--purple)}.p-journal::before{background:linear-gradient(90deg,var(--purple),var(--blue),var(--purple))}
.p-goals{border-color:var(--orange)}.p-goals::before{background:linear-gradient(90deg,var(--orange),var(--yellow),var(--orange))}
.p-settings{border-color:var(--ink-muted)}
.p-xp{border-color:var(--yellow)}.p-xp::before{background:linear-gradient(90deg,var(--yellow),var(--orange),var(--accent),var(--yellow))}
.p-mirror{border-color:var(--purple)}.p-mirror::before{background:linear-gradient(90deg,var(--purple),var(--blue),var(--purple))}
.p-mantras{border-color:var(--accent)}

/* ── FORMS ── */
.fg{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.flbl{font-family:var(--font);font-size:12px;color:var(--blue)}
.p-night .flbl{color:var(--blue-light)}
textarea,input[type="text"],input[type="number"]{font-family:'Nunito',sans-serif;font-size:14px;font-weight:600;color:var(--ink);background:var(--bg);border:2px solid var(--border);border-radius:10px;padding:.55rem .75rem;outline:none;transition:border-color .2s;width:100%}
textarea{resize:vertical;min-height:70px;line-height:1.6}
textarea:focus,input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px rgba(126,207,43,.12)}
select{font-family:var(--font);font-size:11px;color:var(--ink);background:var(--panel);border:2px solid var(--border);border-radius:8px;padding:.35rem .5rem;outline:none;cursor:pointer}
select:focus{border-color:var(--accent)}
.date-display{font-family:var(--font);font-size:1.2rem;color:var(--blue);padding:.4rem 0;border-bottom:3px dashed var(--blue-light);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}
.date-badge{font-family:var(--font);font-size:10px;background:var(--blue);color:white;padding:.15rem .6rem;border-radius:20px}

/* ── BUTTONS ── */
.btn-main{font-family:var(--font);font-size:15px;color:white;background:linear-gradient(135deg,var(--accent),var(--accent-dark));border:3px solid var(--accent-dark);border-radius:12px;padding:.8rem 2rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.5rem;width:100%;justify-content:center;box-shadow:0 4px 0 var(--accent-dark)}
.btn-main:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--accent-dark)}
.btn-main:active{transform:translateY(2px);box-shadow:0 2px 0 var(--accent-dark)}
.btn{font-family:var(--font);font-size:11px;color:white;background:var(--blue);border:2px solid var(--blue-dark);border-radius:8px;padding:.5rem 1rem;cursor:pointer;white-space:nowrap;transition:all .15s;box-shadow:0 3px 0 var(--blue-dark)}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px)}
.btn-red{background:var(--red);border-color:#a02020;box-shadow:0 3px 0 #a02020}
.btn-green{background:var(--green-on);border-color:var(--accent-dark);box-shadow:0 3px 0 var(--accent-dark)}
.btn-purple{background:var(--purple);border-color:#6600aa;box-shadow:0 3px 0 #6600aa}
.btn-timer{font-family:var(--font);font-size:12px;color:white;background:var(--green-on);border:2px solid var(--accent-dark);border-radius:10px;padding:.5rem 1rem;cursor:pointer;box-shadow:0 3px 0 var(--accent-dark);transition:all .15s}
.btn-timer.stop{background:var(--red);border-color:#a02020;box-shadow:0 3px 0 #a02020}
.mbtn{font-family:var(--font);font-size:9px;color:var(--blue);background:var(--blue-light);border:1px solid var(--blue);border-radius:6px;padding:.12rem .45rem;cursor:pointer;transition:all .15s}
.mbtn:hover{background:var(--blue);color:white}
.mbtn.del{color:var(--red);background:var(--red-light);border-color:var(--red)}.mbtn.del:hover{background:var(--red);color:white}

/* ── TOGGLE ROWS ── */
.trow{display:grid;border:2px solid var(--border);border-radius:10px;overflow:hidden}
.trow.c6{grid-template-columns:repeat(6,1fr)}.trow.c5{grid-template-columns:repeat(5,1fr)}.trow.c4{grid-template-columns:repeat(4,1fr)}.trow.c3{grid-template-columns:repeat(3,1fr)}.trow.c2{grid-template-columns:repeat(2,1fr)}.trow.c1{grid-template-columns:1fr}
.topt{position:relative}
.topt input[type="radio"]{position:absolute;opacity:0;width:0;height:0}
.topt label{display:block;text-align:center;padding:.55rem .25rem;cursor:pointer;font-family:var(--font);font-size:10px;border-right:2px solid var(--border);transition:background .15s,color .15s;background:var(--bg);color:var(--ink-muted);line-height:1.5}
.topt:last-child label{border-right:none}
.topt input[type="radio"]:checked+label{background:var(--blue);color:white}
.brand-sub{display:block;font-family:'Nunito',sans-serif;font-size:9px;font-style:italic;opacity:.8;margin-top:1px}

/* ── CONTEXT / EXTRAS / FEELING ── */
.ctx-tags{display:flex;gap:.4rem;flex-wrap:wrap}
.ctx-tag{font-family:var(--font);font-size:11px;padding:.35rem .8rem;border:2px solid var(--border);border-radius:20px;background:var(--bg);color:var(--ink-muted);cursor:pointer;transition:all .15s;box-shadow:2px 2px 0 var(--border)}
.ctx-tag:hover{transform:translate(-1px,-1px)}
.ctx-tag.active{background:var(--accent);color:var(--ink);border-color:var(--accent-dark)}
.cond-extras{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.xtoggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem .8rem;border:2px solid var(--border);border-radius:10px;background:var(--bg);transition:all .15s;user-select:none;box-shadow:2px 2px 0 var(--border)}
.xcheck{width:14px;height:14px;border:2px solid var(--border);border-radius:3px;background:var(--panel);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}
.xcheck::after{content:'';display:none;width:7px;height:7px;border-radius:2px}
.xtoggle.xmessy.on{background:#f5e6d8;border-color:#8B4513}.xtoggle.xmessy.on .xcheck{border-color:#8B4513;background:#8B4513}.xtoggle.xmessy.on .xcheck::after{display:block;background:#fff}.xtoggle.xmessy.on .xtxt{color:#8B4513}
.xtoggle.xleak.on{background:var(--orange-light);border-color:var(--orange)}.xtoggle.xleak.on .xcheck{border-color:var(--orange);background:var(--orange)}.xtoggle.xleak.on .xcheck::after{display:block;background:#fff}.xtoggle.xleak.on .xtxt{color:var(--orange)}
.xtoggle.xsquirt.on{background:var(--accent-light);border-color:var(--accent)}.xtoggle.xsquirt.on .xcheck{border-color:var(--accent);background:var(--accent)}.xtoggle.xsquirt.on .xcheck::after{display:block;background:#fff}.xtoggle.xsquirt.on .xtxt{color:var(--accent-dark)}
.xtxt{font-family:var(--font);font-size:11px;color:var(--ink-muted)}
.xtoggle.xmessy.on .xtxt{color:#8B4513}.xtoggle.xsquirt.on .xtxt{color:var(--accent-dark)}
.feeling-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}
.ftag{font-size:12px;padding:.3rem .65rem;border:2px solid var(--border);border-radius:20px;background:var(--bg);cursor:pointer;transition:all .15s;font-weight:700}
.ftag:hover{transform:scale(1.05)}
.ftag.active{background:var(--blue);color:white;border-color:var(--blue-dark)}

/* ── TIMER ── */
.timer-box{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem 1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.timer-val{font-family:var(--font);font-size:1.7rem;color:var(--blue);line-height:1;min-width:88px}
.timer-lbl{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.timer-brand{font-family:var(--font);font-size:11px;color:var(--accent);margin-top:.15rem}
.timer-btns{display:flex;gap:.5rem;margin-left:auto;flex-wrap:wrap}

/* ── MESSAGE POPS ── */
.msg-pop{display:none;padding:.9rem 1rem;margin-bottom:.9rem;border:3px solid var(--accent);border-radius:12px;background:var(--accent-light);box-shadow:3px 3px 0 rgba(0,0,0,.1)}
.msg-pop.show{display:block;animation:bouncein .4s cubic-bezier(.175,.885,.32,1.275)}
.msg-pop.celebrate{border-color:var(--orange)}.msg-pop.milestone{border-color:var(--purple);background:var(--bg2)}.msg-pop.leak{border-color:var(--red)}
.msg-text{font-family:var(--font);font-size:1rem;color:var(--ink);line-height:1.5}
.msg-sub{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-top:.3rem}
@keyframes bouncein{from{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}

/* ── TODAY SUMMARY ── */
.today-box{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.9rem 1rem;margin-bottom:1rem;display:flex;align-items:flex-start;gap:1rem}
.today-num{font-family:var(--font);font-size:2.8rem;color:var(--blue);line-height:1}
.today-numlbl{font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-muted);margin-top:.15rem}
.today-icons{display:flex;gap:3px;flex-wrap:wrap;margin-top:.4rem;align-items:center}
.today-changes{flex:1}
.today-row{font-size:12px;padding:.3rem 0;border-bottom:2px dashed var(--bg2);display:flex;gap:.5rem;align-items:center}
.today-row:last-child{border-bottom:none}
.today-time{font-family:var(--font);font-size:13px;color:var(--blue);min-width:48px}
.today-empty{font-family:var(--font);font-size:13px;color:var(--ink-muted)}
.row-actions{margin-left:auto;display:flex;gap:.3rem}

/* ── OVERNIGHT ── */
.night-hdr{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}
.night-title{font-family:var(--font);font-size:1.1rem;color:var(--blue-light)}
.night-date{font-family:var(--font);font-size:10px;color:var(--ink-muted);margin-left:auto;background:rgba(255,255,255,.06);padding:.2rem .5rem;border-radius:8px}
.night-tip{background:rgba(255,255,255,.05);border:2px solid var(--night-border);border-left:4px solid var(--blue);border-radius:10px;padding:.8rem .9rem;margin-bottom:.9rem}
.night-tip-lbl{font-family:var(--font);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:.2rem}
.night-tip-txt{font-family:var(--font);font-size:.9rem;color:var(--blue-light);line-height:1.5}
.wet-opts{display:flex;gap:.5rem;margin-bottom:.9rem;flex-wrap:wrap}
.wopt{flex:1;min-width:65px;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.8rem .3rem;border:2px solid var(--night-border);border-radius:12px;cursor:pointer;transition:all .2s;background:rgba(255,255,255,.04)}
.wopt:hover{border-color:var(--blue);background:rgba(255,255,255,.08);transform:translateY(-2px)}
.wopt.sel{border-color:var(--blue);background:rgba(106,138,238,.12)}
.wopt-icon{font-size:1.5rem}
.wopt-lbl{font-family:var(--font);font-size:9px;color:var(--ink-muted);text-align:center;line-height:1.3}
.wopt.sel .wopt-lbl{color:var(--blue-light)}
.morn-msg{display:none;padding:.8rem .9rem;border:2px solid var(--blue);border-radius:10px;background:rgba(106,138,238,.1);margin-top:.7rem}
.morn-msg.show{display:block;animation:bouncein .4s ease}
.morn-txt{font-family:var(--font);font-size:.9rem;color:var(--blue-light);line-height:1.5}
.morn-sub{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:.3rem}
.bw-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.8rem}
.bw-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;background:rgba(255,255,255,.04);border:1px solid var(--night-border);border-radius:8px;cursor:pointer;user-select:none;transition:all .15s}
.bw-item.done{background:rgba(0,200,120,.08);border-color:var(--green-on)}
.bw-box{width:15px;height:15px;border:2px solid var(--ink-muted);border-radius:3px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .15s}
.bw-item.done .bw-box{background:var(--green-on);border-color:var(--green-on);color:white}
.bw-txt{font-family:var(--font);font-size:11px;color:var(--blue-light)}
.bw-stats{display:flex;gap:1.2rem;margin-bottom:.8rem;padding:.65rem .8rem;background:rgba(255,255,255,.04);border-radius:10px;border:1px solid var(--night-border)}
.bw-sv{font-family:var(--font);font-size:1.5rem;color:var(--blue);line-height:1}
.bw-sl{font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:.2rem}
.tip-acc{background:rgba(255,255,255,.04);border:1px solid var(--night-border);border-radius:8px;overflow:hidden;margin-bottom:.35rem}
.tip-acc-hdr{font-family:var(--font);font-size:11px;color:var(--blue-light);padding:.55rem .8rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.tip-acc-hdr:hover{background:rgba(255,255,255,.04)}
.tip-acc-body{font-size:12px;color:var(--ink-muted);padding:0 .8rem .65rem;line-height:1.6;display:none;font-weight:600}
.tip-acc-body.open{display:block}

/* ── CYCLE / DEP ── */
.cycle-row{display:flex;align-items:center;gap:1.2rem;margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:2px dashed rgba(61,187,61,.2);flex-wrap:wrap}
.cycle-badge{display:flex;flex-direction:column;align-items:center;gap:.35rem}
.cycle-dot{width:21px;height:21px;border-radius:50%;background:#555;transition:all .3s;border:3px solid rgba(0,0,0,.2)}
.cycle-dot.on{background:var(--green-on);box-shadow:0 0 14px rgba(61,187,61,.5)}
.cycle-dot.off{background:var(--ink-muted)}
.cycle-lbl{font-family:var(--font);font-size:9px;color:var(--ink-muted);text-align:center}
.cycle-stats{flex:1;display:flex;gap:1.1rem;flex-wrap:wrap}
.csval{font-family:var(--font);font-size:1.5rem;color:var(--blue);line-height:1}
.cslbl{font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:.15rem}
.cycle-btn{font-family:var(--font);font-size:11px;padding:.5rem 1rem;border-radius:10px;cursor:pointer;transition:all .2s;border:2px solid}
.cycle-btn.on{background:var(--green-on);border-color:var(--accent-dark);color:white;box-shadow:0 3px 0 var(--accent-dark)}
.cycle-btn.off{background:var(--blue);border-color:var(--blue-dark);color:white;box-shadow:0 3px 0 var(--blue-dark)}
.cycle-btn:hover{transform:translateY(-2px)}
.dep-bar{height:14px;background:var(--bg2);border:2px solid var(--border);border-radius:20px;overflow:hidden;margin:.4rem 0}
.dep-fill{height:100%;border-radius:20px;transition:width .8s ease;background:linear-gradient(90deg,var(--blue),var(--accent),var(--orange),var(--purple))}
.dep-lbl{font-family:var(--font);font-size:11px;color:var(--blue);margin-top:.25rem}
.dep-stages{display:flex;justify-content:space-between;font-size:7px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin-top:.15rem}

/* ── XP / LEVEL ── */
.xp-bar-wrap{background:rgba(0,0,0,.2);border-radius:20px;height:8px;margin-top:.4rem;overflow:hidden}
.xp-bar-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,var(--accent),var(--yellow));transition:width .6s ease}
.level-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--yellow);color:#1a1a2e;font-family:var(--font);font-size:10px;padding:.2rem .6rem;border-radius:20px;font-weight:800}
.quest-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.8rem}
.quest-card.done{border-color:var(--green-on);opacity:.7}
.quest-icon{font-size:1.4rem;flex-shrink:0}
.quest-info{flex:1}
.quest-title{font-family:var(--font);font-size:.85rem;color:var(--blue);line-height:1.3}
.quest-xp{font-family:var(--font);font-size:10px;color:var(--yellow);margin-top:.2rem}
.quest-check{font-size:1.2rem;flex-shrink:0}

/* ── TROPHY ── */
.trophy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.6rem;margin-bottom:.7rem}
.tcrd{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.65rem;text-align:center;transition:all .2s;position:relative}
.tcrd.unlocked{border-color:var(--yellow);background:var(--panel);box-shadow:3px 3px 0 rgba(0,0,0,.1)}
.tcrd.locked{opacity:.38;filter:grayscale(.7)}
.tcrd.secret.locked{filter:grayscale(1) blur(2px)}
.tcrd.self-claim{border-style:dashed}
.ticon{font-size:1.5rem;margin-bottom:.2rem}
.tname{font-family:var(--font);font-size:9px;color:var(--ink);line-height:1.3;margin-bottom:.12rem}
.tdesc{font-size:8px;color:var(--ink-muted);font-weight:600;line-height:1.3}
.tcrd.unlocked .tname{color:var(--yellow)}
.tprog{font-size:8px;color:var(--ink-muted);margin-top:.2rem;font-weight:700}
.tcat-hdr{font-family:var(--font);font-size:11px;color:var(--blue);margin:.65rem 0 .3rem;padding-bottom:.2rem;border-bottom:2px dashed var(--border)}
.claim-btn{font-family:var(--font);font-size:10px;color:white;background:var(--purple);border:2px solid #6600aa;border-radius:8px;padding:.35rem .8rem;cursor:pointer;margin-top:.35rem;box-shadow:0 2px 0 #6600aa;transition:all .15s;width:100%}
.claim-btn:hover{transform:translateY(-1px)}

/* ── CHALLENGES ── */
.ch-card{background:var(--bg2);border:2px solid var(--border);border-radius:14px;padding:.9rem;margin-bottom:.65rem;position:relative}
.ch-card.attempting{border-color:var(--orange);background:var(--panel)}.ch-card.completed{border-color:var(--yellow);opacity:.7}
.ch-hdr{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:.4rem}
.ch-icon{font-size:1.7rem;flex-shrink:0}
.ch-title{font-family:var(--font);font-size:.95rem;color:var(--blue);line-height:1.2}
.ch-stars{font-size:.85rem;margin-top:.15rem}
.ch-desc{font-size:12px;color:var(--ink-muted);font-weight:600;line-height:1.5;margin-bottom:.65rem}
.ch-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.ch-badge{font-family:var(--font);font-size:9px;padding:.15rem .55rem;border-radius:10px;border:1px solid}
.ch-badge.att{background:var(--orange-light);border-color:var(--orange);color:var(--orange)}.ch-badge.done{background:var(--yellow-light);border-color:var(--yellow);color:#886600}

/* ── GOALS ── */
.goal-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem;margin-bottom:.6rem;position:relative}
.goal-card.complete{border-color:var(--yellow)}
.goal-title{font-family:var(--font);font-size:.9rem;color:var(--blue);margin-bottom:.35rem}
.goal-bar{height:11px;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:.25rem 0}
.goal-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,var(--accent),var(--blue));transition:width .5s ease}
.goal-prog-txt{font-size:10px;font-weight:700;color:var(--ink-muted)}
.goal-add{background:var(--bg2);border:2px dashed var(--border);border-radius:12px;padding:.8rem;margin-top:.7rem}

/* ── JOURNAL ── */
.j-entry{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem;margin-bottom:.55rem}
.j-date{font-family:var(--font);font-size:10px;color:var(--blue);margin-bottom:.35rem}
.j-text{font-size:13px;color:var(--ink-muted);font-weight:600;line-height:1.6;font-style:italic}

/* ── MIRROR / AFFIRMATION ── */
.mirror-stat{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:1rem;text-align:center;margin-bottom:.6rem}
.mirror-big{font-family:var(--font);font-size:2.5rem;color:var(--blue);line-height:1}
.mirror-lbl{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:.25rem}
.mirror-sub{font-family:var(--font);font-size:.85rem;color:var(--ink-muted);margin-top:.3rem;line-height:1.5}
.mirror-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:.6rem}
.affirmation-box{background:var(--night-bg);border:3px solid var(--purple);border-radius:16px;padding:1.5rem;text-align:center;margin-bottom:.8rem}
.affirmation-text{font-family:var(--font);font-size:1rem;color:var(--blue-light);line-height:1.8;margin-bottom:.8rem}
.affirmation-sub{font-size:11px;color:var(--ink-muted);font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* ── RECORDS ── */
.records-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.rec-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem;text-align:center}
.rec-val{font-family:var(--font);font-size:1.6rem;color:var(--blue);line-height:1}
.rec-lbl{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:.2rem}
.rec-pb{font-size:10px;color:var(--yellow);margin-top:.15rem;font-weight:700}

/* ── YEAR GRAPH ── */
.year-graph{display:grid;grid-template-columns:repeat(53,1fr);gap:2px;margin:.5rem 0}
.yg-cell{aspect-ratio:1;border-radius:2px;background:var(--bg2)}
.yg-cell.padded{background:var(--accent)}.yg-cell.padded-wet{background:var(--blue)}.yg-cell.padded-wetmessy{background:var(--purple)}
.yg-months{display:flex;justify-content:space-between;font-family:var(--font);font-size:8px;color:var(--ink-muted);margin-bottom:.2rem}
.yg-legend{display:flex;gap:.8rem;margin-top:.5rem;flex-wrap:wrap}
.yg-li{display:flex;align-items:center;gap:.3rem;font-family:var(--font);font-size:9px;color:var(--ink-muted)}
.yg-dot{width:10px;height:10px;border-radius:2px}

/* ── REPORT CARD ── */
.report-card{background:var(--panel);border:3px solid var(--blue);border-radius:16px;padding:1.2rem;font-family:var(--font)}
.report-header{font-size:1.1rem;color:var(--blue);margin-bottom:.8rem;padding-bottom:.5rem;border-bottom:2px dashed var(--border);display:flex;justify-content:space-between;align-items:center}
.report-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed var(--bg2)}
.report-row:last-child{border-bottom:none}
.report-category{font-size:.85rem;color:var(--ink)}
.report-grade{font-size:1.3rem;font-weight:800}
.grade-a{color:var(--green-on)}.grade-b{color:var(--blue)}.grade-c{color:var(--orange)}.grade-d{color:var(--red)}
.report-comment{font-size:10px;color:var(--ink-muted);margin-top:.1rem}

/* ── TRENDS / RECAP ── */
.trends-blurb{background:var(--bg2);border:2px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;padding:.75rem .9rem;margin-bottom:.9rem;font-family:var(--font);font-size:.85rem;color:var(--ink-muted);line-height:1.6}
.trends-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:.9rem}
.tcard{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem}
.tval{font-family:var(--font);font-size:1.7rem;color:var(--blue);line-height:1}
.tlbl{font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-top:.2rem}
.tsub{font-size:10px;color:var(--ink-muted);margin-top:.15rem;font-style:italic}
.encourage{background:var(--accent-light);border:2px solid var(--accent);border-radius:12px;padding:.8rem .9rem;margin-top:.65rem;box-shadow:3px 3px 0 rgba(0,0,0,.08)}
.encourage-txt{font-family:var(--font);font-size:.9rem;color:var(--accent-dark);line-height:1.5}
.recap-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.9rem;margin-bottom:.65rem}
.recap-title{font-family:var(--font);font-size:.95rem;color:var(--blue);margin-bottom:.65rem;padding-bottom:.4rem;border-bottom:2px dashed var(--border)}
.recap-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-bottom:.65rem}
.rstat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.45rem;text-align:center}
.rval{font-family:var(--font);font-size:1.3rem;color:var(--blue);line-height:1}
.rlbl{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-top:.15rem}
.recap-summary{font-family:var(--font);font-size:.82rem;color:var(--ink-muted);line-height:1.6;padding:.55rem .75rem;background:var(--panel);border-radius:8px;border-left:3px solid var(--accent)}

/* ── CALENDAR ── */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.cal-month{font-family:var(--font);font-size:1.2rem;color:var(--blue)}
.cal-nav-btn{font-family:var(--font);font-size:11px;background:var(--blue);color:white;border:2px solid var(--blue-dark);border-radius:8px;padding:.35rem .8rem;cursor:pointer;box-shadow:0 3px 0 var(--blue-dark);transition:all .15s}
.cal-nav-btn:hover{transform:translateY(-1px)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-wd{font-family:var(--font);font-size:9px;color:var(--blue);text-align:center;padding:.35rem 0}
.cal-day{background:var(--bg);border:2px solid var(--bg2);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative;min-height:48px;cursor:pointer;transition:all .15s;padding:3px 2px}
.cal-day:hover:not(.empty){transform:scale(1.05);border-color:var(--blue);z-index:2;box-shadow:3px 3px 0 rgba(0,0,0,.1)}
.cal-day.empty{background:transparent;border-color:transparent;cursor:default}
.cal-day.on-day{background:var(--accent-light);border-color:var(--accent)}
.cal-day.today{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange-light)}
.cal-day.has-ch{border-color:var(--blue)}
.cal-dnum{font-family:var(--font);font-size:12px;color:var(--ink);line-height:1}
.cal-day.today .cal-dnum{color:var(--orange)}
.cal-cnt{font-family:var(--font);font-size:10px;color:var(--blue);background:var(--blue-light);border-radius:4px;padding:0 3px;line-height:1.4}
.cal-wdot{width:5px;height:5px;border-radius:50%;background:#5080e0;position:absolute;top:2px;right:2px}
.cal-wmdot{width:5px;height:5px;border-radius:50%;background:#8B4513;position:absolute;top:2px;right:2px}
.cal-tdot{position:absolute;top:1px;left:2px;font-size:7px;line-height:1}
.cal-legend{display:flex;gap:.8rem;margin-top:.7rem;flex-wrap:wrap}
.cl-item{display:flex;align-items:center;gap:.3rem;font-family:var(--font);font-size:9px;color:var(--ink-muted)}
.cl-sw{width:11px;height:11px;border-radius:3px;border:2px solid var(--bg2)}
.cl-dot{width:7px;height:7px;border-radius:50%}
.day-detail{display:none;background:var(--panel);border:3px solid var(--blue);border-radius:14px;padding:1rem;margin-top:.7rem;box-shadow:5px 5px 0 rgba(0,0,0,.12)}
.day-detail.open{display:block;animation:bouncein .3s ease}
.dd-hdr{font-family:var(--font);font-size:1rem;color:var(--blue);margin-bottom:.65rem;padding-bottom:.4rem;border-bottom:2px dashed var(--border);display:flex;justify-content:space-between;align-items:center}
.dd-close{font-family:var(--font);font-size:11px;background:var(--red-light);color:var(--red);border:2px solid var(--red);border-radius:7px;padding:.12rem .55rem;cursor:pointer}
.dd-changes{display:flex;flex-direction:column;gap:.4rem}
.dd-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem;background:var(--bg2);border-radius:8px;font-size:12px;font-weight:700}
.dd-time{font-family:var(--font);font-size:13px;color:var(--blue);min-width:46px}
.dd-acts{margin-left:auto;display:flex;gap:.3rem}
.dd-night{margin-top:.65rem;padding:.5rem .7rem;background:var(--night-bg);border-radius:8px;font-family:var(--font);font-size:12px;color:var(--blue-light)}
.dd-none{font-family:var(--font);font-size:12px;color:var(--ink-muted);text-align:center;padding:.75rem 0}

/* ── STASH ── */
.brand-mgr{background:var(--panel);border:3px solid var(--accent);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1.4rem;display:none;box-shadow:3px 3px 0 rgba(0,0,0,.1)}
.brand-mgr.open{display:block}
.stash-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.8rem;margin-bottom:.65rem}
.stash-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem;flex-wrap:wrap;gap:.35rem}
.stash-name{font-family:var(--font);font-size:.9rem;color:var(--blue)}
.stash-sub{font-size:11px;color:var(--ink-muted);font-style:italic}
.brand-tags{display:flex;gap:.3rem;flex-wrap:wrap;margin:.3rem 0}
.btag{font-family:var(--font);font-size:8px;padding:.12rem .4rem;border-radius:10px;border:1px solid}
.btag.thick{background:#fff0cc;border-color:#c8a000;color:#8a6000}.btag.medium{background:#e8f8e8;border-color:#60a060;color:#306030}.btag.thin{background:#e8f0ff;border-color:#6080c0;color:#304080}.btag.obvious{background:#ffe8e8;border-color:#c06060;color:#803030}.btag.moderate-d{background:#f0e8ff;border-color:#9060c0;color:#503080}.btag.discrete{background:#e8fff0;border-color:#60c080;color:#308050}.btag.character{background:#fff0f8;border-color:#c060a0;color:#803060}.btag.printed{background:#f8f0e8;border-color:#c0a060;color:#806030}.btag.plain{background:#f0f0f0;border-color:#a0a0a0;color:#505050}
.inv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.45rem;margin:.5rem 0}
.inv-item{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.45rem .65rem}
.inv-lbl{font-family:var(--font);font-size:8px;color:var(--ink-muted);margin-bottom:.2rem}
.inv-row{display:flex;align-items:center;gap:.35rem}
.inv-val{font-family:var(--font);font-size:1.1rem;color:var(--blue);min-width:25px}
.inv-sub{font-size:10px;color:var(--ink-muted);font-weight:700}
.inv-btns{display:flex;gap:.25rem;margin-left:auto}
.ivbtn{font-family:var(--font);font-size:13px;width:22px;height:22px;border-radius:5px;border:1px solid var(--border);background:var(--bg);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.ivbtn:hover{background:var(--blue);color:white;border-color:var(--blue)}
.supply-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.65rem}
.sstat{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.5rem;text-align:center}
.ssval{font-family:var(--font);font-size:1.2rem;color:var(--blue);line-height:1}
.sslbl{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-top:.12rem}
.brand-edit-form{background:var(--bg2);border:2px dashed var(--border);border-radius:10px;padding:.65rem;margin-top:.45rem;display:none}
.brand-edit-form.open{display:block;animation:bouncein .25s ease}
.edit-cats{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.45rem}
.ecat{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:88px}
.ecat-lbl{font-family:var(--font);font-size:9px;color:var(--blue)}
.brand-add{background:var(--bg2);border:2px dashed var(--border);border-radius:12px;padding:.8rem;margin-top:.65rem}
.brand-add-title{font-family:var(--font);font-size:11px;color:var(--blue);margin-bottom:.6rem}
.add-row{display:flex;gap:.5rem;align-items:flex-end;margin-bottom:.6rem;flex-wrap:wrap}
.add-row input{flex:1;min-width:100px}
.add-cats{display:flex;gap:.45rem;flex-wrap:wrap}
.reorder-alert{background:var(--orange-light);border:2px solid var(--orange);border-radius:10px;padding:.7rem .9rem;margin-bottom:.6rem;display:flex;align-items:center;gap:.7rem}
.reorder-alert-txt{font-family:var(--font);font-size:.85rem;color:var(--orange);line-height:1.4;flex:1}

/* ── TRIP PLANNER ── */
.trip-result{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:1rem;margin-top:.8rem}
.trip-result-title{font-family:var(--font);font-size:.95rem;color:var(--blue);margin-bottom:.6rem}
.trip-item{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px dashed var(--border);font-size:13px;font-weight:700}
.trip-item:last-child{border-bottom:none}
.trip-item-val{font-family:var(--font);font-size:1rem;color:var(--blue)}
.trip-warn{background:var(--orange-light);border:2px solid var(--orange);border-radius:8px;padding:.6rem .8rem;margin-top:.6rem;font-family:var(--font);font-size:11px;color:var(--orange)}
.trip-tip{background:var(--accent-light);border:2px solid var(--accent);border-radius:8px;padding:.6rem .8rem;margin-top:.5rem;font-family:var(--font);font-size:11px;color:var(--accent-dark)}

/* ── MANTRAS / SCRIPTS ── */
.mantra-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.9rem;margin-bottom:.5rem}
.mantra-text{font-family:var(--font);font-size:.95rem;color:var(--blue);line-height:1.5;margin-bottom:.3rem}
.mantra-use{font-size:11px;color:var(--ink-muted);font-weight:600;font-style:italic}
.script-card{background:var(--panel);border:2px solid var(--purple);border-radius:12px;padding:.9rem;margin-bottom:.5rem}
.script-situation{font-family:var(--font);font-size:.8rem;color:var(--purple);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.08em}
.script-line{font-size:13px;font-weight:700;color:var(--ink);padding:.3rem 0;border-bottom:1px dashed var(--border);line-height:1.5}
.script-line:last-child{border-bottom:none}
.script-note{font-size:11px;color:var(--ink-muted);font-style:italic;margin-top:.4rem}

/* ── LETTERS ── */
.letter-card{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.9rem;margin-bottom:.6rem;position:relative;overflow:hidden}
.letter-locked-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);flex-direction:column;gap:.4rem;border-radius:12px}
.letter-date{font-family:var(--font);font-size:10px;color:var(--blue);margin-bottom:.3rem}
.letter-preview{font-size:13px;color:var(--ink-muted);font-style:italic;line-height:1.5;filter:blur(3px);user-select:none}
.letter-unlock-date{font-family:var(--font);font-size:11px;color:var(--yellow)}

/* ── DIFFICULT SITUATIONS ── */
.situation-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:.4rem}
.situation-hdr{font-family:var(--font);font-size:12px;color:var(--blue);padding:.6rem .9rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.situation-hdr:hover{background:rgba(255,255,255,.04)}
.situation-body{font-size:12px;color:var(--ink-muted);padding:0 .9rem .8rem;line-height:1.7;display:none;font-weight:600}
.situation-body.open{display:block}
.situation-body h4{font-family:var(--font);font-size:11px;color:var(--blue);margin:.5rem 0 .2rem}

/* ── CONFESSION PREP ── */
.confession-step{background:var(--bg2);border:2px solid var(--border);border-radius:12px;padding:.9rem;margin-bottom:.6rem}
.confession-step-num{font-family:var(--font);font-size:.75rem;color:var(--purple);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.1em}
.confession-step-title{font-family:var(--font);font-size:.95rem;color:var(--blue);margin-bottom:.4rem}
.confession-step-body{font-size:13px;color:var(--ink-muted);font-weight:600;line-height:1.6}

/* ── TIPS ── */
.tip-cat{margin-bottom:.9rem}
.tip-cat-hdr{font-family:var(--font);font-size:.95rem;color:var(--accent);margin-bottom:.4rem;padding-bottom:.25rem;border-bottom:2px dashed var(--border)}
.tip-item{background:var(--bg2);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:.35rem}
.tip-hdr{font-family:var(--font);font-size:11px;color:var(--blue);padding:.55rem .8rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.tip-hdr:hover{background:rgba(255,255,255,.04)}
.tip-body{font-size:12px;color:var(--ink-muted);padding:0 .8rem .65rem;line-height:1.6;display:none;font-weight:600}
.tip-body.open{display:block}

/* ── SETTINGS ── */
.settings-sec{margin-bottom:1rem;padding-bottom:.9rem;border-bottom:2px dashed var(--border)}
.settings-sec:last-child{border-bottom:none;margin-bottom:0}
.settings-title{font-family:var(--font);font-size:.95rem;color:var(--blue);margin-bottom:.6rem}
.notif-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.7rem}
.ncard{background:var(--bg2);border:2px solid var(--border);border-radius:10px;padding:.65rem .8rem}
.ncard-title{font-family:var(--font);font-size:11px;color:var(--blue);margin-bottom:.3rem}
.ntrow{display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.ntime{font-size:10px;color:var(--ink-muted);font-weight:700}
.notif-status{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem;padding:.65rem .8rem;background:var(--bg2);border:2px solid var(--border);border-radius:10px}
.ndot{width:10px;height:10px;border-radius:50%;background:#555;flex-shrink:0}
.ndot.granted{background:var(--green-on)}.ndot.denied{background:var(--red)}.ndot.default{background:var(--orange)}
.ntxt{font-family:var(--font);font-size:11px;color:var(--blue)}
.sw{position:relative;display:inline-block;width:38px;height:20px;flex-shrink:0}
.sw input{opacity:0;width:0;height:0}
.sw-s{position:absolute;cursor:pointer;inset:0;background:#555;border-radius:20px;transition:.3s}
.sw-s:before{content:'';position:absolute;height:14px;width:14px;left:3px;bottom:3px;background:white;border-radius:50%;transition:.3s}
.sw input:checked+.sw-s{background:var(--accent)}
.sw input:checked+.sw-s:before{transform:translateX(18px)}
.rewards-pool{background:var(--bg2);border:2px dashed var(--border);border-radius:10px;padding:.75rem}
.ritem{display:flex;align-items:center;gap:.4rem;padding:.3rem 0;border-bottom:1px dashed var(--border)}
.ritem:last-child{border-bottom:none}
.ritem-txt{flex:1;font-size:12px;font-weight:700;color:var(--ink)}
.radd{display:flex;gap:.4rem;margin-top:.55rem}
.radd input{flex:1}
.danger-zone{background:var(--red-light);border:2px solid var(--red);border-radius:10px;padding:.8rem;margin-top:.45rem}
.dz-title{font-family:var(--font);font-size:11px;color:var(--red);margin-bottom:.4rem}
.dz-desc{font-size:12px;color:var(--ink-muted);font-weight:600;margin-bottom:.6rem;line-height:1.5}

/* ── ACHIEVEMENT / REWARD POPS ── */
.ach-pop{display:none;position:fixed;top:16px;right:16px;z-index:5000;background:var(--panel);border:4px solid var(--yellow);border-radius:18px;padding:1rem 1.2rem;max-width:290px;box-shadow:6px 6px 0 rgba(0,0,0,.3)}
.ach-pop.show{display:flex;gap:.8rem;align-items:center;animation:slideIn .5s cubic-bezier(.175,.885,.32,1.275)}
@keyframes slideIn{from{opacity:0;transform:translateX(120px)}to{opacity:1;transform:translateX(0)}}
.ach-icon{font-size:2rem;flex-shrink:0}
.ach-title{font-family:var(--font);font-size:.75rem;color:var(--yellow);margin-bottom:.15rem}
.ach-name{font-family:var(--font);font-size:.95rem;color:var(--ink);line-height:1.3}
.ach-reward{font-size:10px;color:var(--accent);font-weight:800;margin-top:.2rem}
.reward-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:5001}
.reward-overlay.show{display:block}
.reward-pop{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5002;background:var(--panel);border:5px solid var(--yellow);border-radius:22px;padding:1.7rem;max-width:370px;width:90%;text-align:center;box-shadow:10px 10px 0 rgba(0,0,0,.4)}
.reward-pop.show{display:block;animation:bouncein .5s cubic-bezier(.175,.885,.32,1.275)}
.reward-title{font-family:var(--font);font-size:1.5rem;color:var(--yellow);margin-bottom:.4rem}
.reward-item-big{font-family:var(--font);font-size:1.2rem;color:var(--accent);margin:.6rem 0;padding:.8rem;background:var(--bg2);border-radius:10px;border:2px solid var(--accent)}
.reward-msg{font-family:var(--font);font-size:.8rem;color:var(--ink-muted);line-height:1.5;margin:.4rem 0 .8rem}

/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1000;align-items:center;justify-content:center;padding:2rem}
.modal-overlay.open{display:flex;animation:fadein .2s ease}
.modal{background:var(--panel);border:4px solid var(--blue);border-radius:20px;padding:1.7rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:8px 8px 0 var(--blue-dark)}
.modal-title{font-family:var(--font);font-size:1.2rem;color:var(--blue);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:3px dashed var(--border)}
.modal-footer{display:flex;gap:.6rem;margin-top:1rem;padding-top:.8rem;border-top:2px dashed var(--bg2);flex-wrap:wrap}
.modal-cancel{font-family:var(--font);font-size:11px;background:var(--bg);border:2px solid var(--border);border-radius:8px;color:var(--ink-muted);padding:.45rem .9rem;cursor:pointer}
@keyframes fadein{from{opacity:0}to{opacity:1}}


/* ── UNDERWEAR ── */
.uw-option{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border:2px solid var(--red);border-radius:10px;background:var(--red-light);cursor:pointer;margin-bottom:.4rem;opacity:.85}
.uw-option:hover{opacity:1}
.uw-option-icon{font-size:1.3rem}
.uw-option-txt{font-family:var(--font);font-size:.8rem;color:var(--red)}
.uw-option-sub{font-size:11px;color:var(--ink-muted);font-weight:700}
.into-section{margin-top:.5rem}
.into-diaper{border:2px solid var(--accent);border-radius:10px;padding:.5rem;margin-top:.4rem}


/* ── TABS ── */
.tab-nav{display:flex;gap:.3rem;margin-bottom:1.1rem;background:var(--panel);border:3px solid var(--border);border-radius:14px;padding:.35rem;box-shadow:3px 3px 0 rgba(0,0,0,.12);flex-wrap:wrap}
.tab-btn{font-family:var(--font);font-size:.72rem;background:transparent;border:none;border-radius:10px;padding:.45rem .7rem;cursor:pointer;color:var(--ink-muted);transition:all .18s;white-space:nowrap;flex:1;min-width:60px}
.tab-btn:hover{background:var(--bg2);color:var(--ink)}
.tab-btn.active{background:var(--blue);color:#fff;box-shadow:0 2px 0 var(--blue-dark)}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* ── THEME OVERRIDE ── */
body.theme-pixel .tab-btn{border-radius:0}
body.theme-pixel .tab-nav{border-radius:0}

/* ── THEME OVERRIDES ── */
body.theme-pixel .panel,body.theme-pixel .btn,body.theme-pixel .btn-main,body.theme-pixel .mbtn{border-radius:0}

/* ── REWARD HISTORY ── */
.rhist-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .5rem;border-bottom:1px dashed var(--border)}
.rhist-item:last-child{border-bottom:none}
.rhist-item.claimed{opacity:.45}
.rhist-main{flex:1}
.rhist-reward{font-family:var(--font);font-size:.85rem;color:var(--accent);margin-bottom:.15rem}
.rhist-meta{font-size:11px;color:var(--ink-muted);font-weight:700}
.rhist-btn{font-family:var(--font);font-size:10px;background:var(--bg2);border:2px solid var(--border);border-radius:8px;color:var(--ink);padding:.3rem .6rem;cursor:pointer;white-space:nowrap;flex-shrink:0}
.rhist-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent-dark)}

/* ── JOURNAL MONTH GROUPING ── */
.j-month{margin-bottom:.5rem}
.j-month-hdr{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:.5rem .7rem;background:var(--bg2);border-radius:8px;border:2px solid var(--border);margin-bottom:.3rem}
.j-month-hdr:hover{background:var(--border)}
.j-arrow{font-size:.75rem;color:var(--ink-muted);margin-left:.5rem}

/* ── SETTINGS SUBTABS ── */
.settings-subtabs{display:flex;gap:.3rem;margin-bottom:1rem;flex-wrap:wrap}
.settings-stab{font-family:var(--font);font-size:.7rem;background:var(--bg2);border:2px solid var(--border);border-radius:8px;padding:.35rem .7rem;cursor:pointer;color:var(--ink-muted);transition:all .15s}
.settings-stab.active{background:var(--blue);border-color:var(--blue-dark);color:#fff}
.settings-subpane{display:none}.settings-subpane.active{display:block}

/* ── PROFILE TAB ── */
.shelf-slot{width:80px;height:80px;border:2px dashed var(--border);border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--bg2);transition:all .15s;flex-shrink:0}
.shelf-slot:hover{border-color:var(--accent);background:var(--accent-light)}
.shelf-slot-inner{font-size:1.4rem;color:var(--ink-muted)}
.shelf-slot.filled{border-style:solid;border-color:var(--accent)}
.title-option{display:flex;align-items:center;justify-content:space-between;padding:.5rem .7rem;border-radius:8px;border:2px solid var(--border);margin-bottom:.4rem;cursor:pointer;transition:all .15s}
.title-option.active{border-color:var(--accent);background:var(--accent-light)}
.title-option.locked{opacity:.45;cursor:default}
.collectible-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.6rem}
.collectible-card{border:2px solid var(--border);border-radius:10px;padding:.5rem;text-align:center;background:var(--bg2);transition:all .15s}
.collectible-card.legendary{border-color:#ffd700;background:rgba(255,215,0,.07)}
.collectible-card.epic{border-color:#a855f7;background:rgba(168,85,247,.07)}
.collectible-card.rare{border-color:#3b82f6;background:rgba(59,130,246,.07)}
.collectible-icon{font-size:1.8rem;margin-bottom:.2rem}
.collectible-name{font-family:var(--font);font-size:9px;color:var(--ink-muted)}
.collectible-rarity{font-family:var(--font);font-size:8px;opacity:.6;text-transform:uppercase}
.profile-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.profile-stat{background:var(--bg2);border-radius:8px;padding:.5rem .7rem;border:1px solid var(--border)}
.profile-stat-val{font-family:var(--font);font-size:1.2rem;font-weight:700;color:var(--ink)}
.profile-stat-lbl{font-family:var(--font);font-size:10px;color:var(--ink-muted)}

/* ── RESPONSIVE ── */
@media(max-width:680px){
  .container{padding:.9rem}.masthead{padding:1rem}.masthead h1{font-size:1.8rem}.masthead-deco{display:none}
  .trow.c5{grid-template-columns:repeat(3,1fr)}.trends-grid{grid-template-columns:repeat(2,1fr)}
  .stats-bar{gap:.35rem}.stat-item{min-width:70px}.wet-opts{flex-direction:column}
  .cycle-row{flex-direction:column;align-items:flex-start;gap:.6rem}
  .modal-overlay{padding:0;align-items:flex-end}.modal{max-height:88vh;border-radius:20px 20px 0 0}
  .add-row{flex-direction:column}.add-cats{flex-direction:column}
  .notif-grid{grid-template-columns:1fr}.trophy-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  .recap-stats{grid-template-columns:repeat(2,1fr)}.supply-grid{grid-template-columns:repeat(2,1fr)}
  .ach-pop{right:8px;max-width:260px}.theme-picker{max-width:160px}
  .records-grid{grid-template-columns:1fr}.mirror-grid{grid-template-columns:1fr}
  .year-graph{grid-template-columns:repeat(26,1fr)}
}
