:root {
  --primary: #5850ec;
  --primary-hover: #4338ca;
  --accent: #818cf8;
  --accent2: #6366f1;
  --bg: #f8fafc;
  --surface: rgba(255, 255, 255, 0.9);
  --surface2: rgba(17, 24, 39, 0.05);
  --border: rgba(17, 24, 39, 0.08);
  --shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 20px 40px rgba(0, 0, 0, 0.06);
  --text: #111827;
  --text2: #4b5563;
  --text3: #9ca3af;
  --green: #10b981;
  --yellow: #f59e0b;
  --red: #ef4444;
  --blue: #3b82f6;
  --purple: #a855f7;
  --radius: 16px;
  --radius-sm: 10px;
  --font: 'Inter', sans-serif;
}

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

html {
  scroll-behavior: smooth;
  background: var(--bg)
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 14px;
  line-height: 1.6;
  overflow-x: hidden;
}

body::before {
  content: '';
  position: fixed;
  top: -10%;
  left: -10%;
  width: 50vw;
  height: 50vw;
  background: rgba(99, 102, 241, 0.1);
  border-radius: 50%;
  filter: blur(120px);
  z-index: -1;
  animation: blob1 15s infinite alternate ease-in-out;
}

body::after {
  content: '';
  position: fixed;
  bottom: -10%;
  right: -10%;
  width: 45vw;
  height: 45vw;
  background: rgba(168, 85, 247, 0.1);
  border-radius: 50%;
  filter: blur(120px);
  z-index: -1;
  animation: blob1 18s infinite alternate-reverse ease-in-out;
}
@keyframes blob1{from{transform:translate(0,0) scale(1)}to{transform:translate(5%,8%) scale(1.1)}}

.app{display:flex;flex-direction:column;min-height:100vh}

/* SECTION LABELS */
.section-label{font-size:14px;font-weight:600;color:#94a3b8;margin-bottom:12px;letter-spacing:.3px}

/* TOPBAR */
.topbar {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  padding: 0 24px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.03);
}
.logo{display:flex;align-items:center;gap:14px}
.logo-text{font-size:18px;font-weight:800;background:linear-gradient(to right,#818cf8,#c084fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-0.3px;}
.logo-text span{background:linear-gradient(to right,#c084fc,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.back-to-site{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:50px;background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;font-size:12px;font-weight:700;text-decoration:none;box-shadow:0 2px 10px rgba(99,102,241,0.35);transition:all .2s;white-space:nowrap;}
.back-to-site:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(99,102,241,0.5)}
.topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
.month-selector{background:var(--surface2);border:1px solid var(--border);border-radius:50px;padding:7px 14px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text);cursor:pointer;outline:none;backdrop-filter:blur(10px);transition:all 0.2s;}
.month-selector:hover { border-color: var(--primary); background: rgba(0,0,0,0.03); }
.month-selector option{background:#ffffff;color:var(--text)}

#topPointsDisplay {
  animation: pointsFloat 3s ease-in-out infinite;
  cursor: pointer;
  user-select: none;
}
@keyframes pointsFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

/* BUTTONS */
.btn{padding:8px 16px;border-radius:50px;border:none;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;transition:all .2s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.btn-accent{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 4px 12px rgba(99,102,241,0.3);}
.btn-accent:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(99,102,241,0.5)}
.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border);backdrop-filter:blur(8px);}
.btn-ghost:hover{background:rgba(255,255,255,0.08);border-color:var(--primary)}
.dark-toggle{width:38px;height:38px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;transition:all .2s;}
.dark-toggle:hover{border-color:var(--primary);transform:rotate(20deg)}

/* TABS */
.tabs-container {
    position: sticky;
    top: 64px;
    z-index: 90;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
    display: flex;
    overflow: hidden;
}
.tabs {
    padding: 0 16px;
    display: flex;
    gap: 4px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    -ms-overflow-style: none;
    flex: 1;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
    padding: 14px 20px;
    border: none;
    background: none;
    font-family: var(--font);
    font-size: 13px;
    font-weight: 600;
    color: var(--text2);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}
.tab.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    background: rgba(99, 102, 241, 0.05);
}
.tab:hover:not(.active) { color: var(--text); background: rgba(255, 255, 255, 0.03); }

/* MAIN */
.main{padding:24px;flex:1}
.panel{display:none}
.panel.active{display:block}

/* MARQUEE */
.marquee-wrap{background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:var(--radius-sm);padding:10px 20px;margin-bottom:24px;overflow:hidden;}
.marquee-inner{display:flex;animation:marquee 30s linear infinite;white-space:nowrap;}
.marquee-inner span{color:#fff;font-size:13px;font-weight:500;padding-right:80px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* STAT CARDS */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--card-color,var(--primary));}
.stat-label{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.stat-value{font-size:32px;font-weight:800;color:var(--text);line-height:1}
.stat-sub{font-size:12px;color:var(--text2);margin-top:6px}
.stat-bar{height:4px;background:var(--border);border-radius:2px;margin-top:12px;overflow:hidden}
.stat-bar-fill{height:100%;border-radius:2px;background:var(--card-color,var(--primary));transition:width .6s ease}

/* CHARTS */
.charts-row{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:24px}
.chart-card{
    background:var(--surface);
    border-radius:var(--radius);
    padding:24px;
    box-shadow:var(--shadow);
    border:1px solid var(--border);
    backdrop-filter:blur(20px);
    height: 380px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.chart-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.chart-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;letter-spacing:0.2px;line-height:1.3;}
.chart-title span{font-size:11px;font-weight:500;color:var(--text3);text-transform: uppercase;}
.chart-canvas-wrapper { flex: 1; position: relative; min-height: 0; width: 100%; }
.donut-wrap{position:relative;width:180px;height:180px;margin:auto}
.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;}
.donut-pct{font-size:28px;font-weight:800;color:var(--text);line-height: 1;}
.donut-lbl{font-size:11px;color:var(--text3);font-weight:600;margin-top: 4px;text-transform: uppercase;}

/* WEEKLY */
.weekly-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}
.week-card{background:var(--surface);border-radius:var(--radius-sm);padding:16px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);text-align:center;}
.week-label{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.week-ring{position:relative;width:64px;height:64px;margin:0 auto 10px}
.week-ring svg{transform:rotate(-90deg)}
.week-ring-bg{fill:none;stroke:var(--border);stroke-width:6}
.week-ring-fill{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s ease}
.week-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;font-weight:700;color:var(--text);}
.week-dates{font-size:11px;color:var(--text3)}

/* MINI HABITS */
.mini-habits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.mini-habit{background:var(--surface);border-radius:var(--radius-sm);padding:14px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);display:flex;align-items:center;gap:12px;transition:transform .2s,border-color .2s;}
.mini-habit:hover{transform:translateY(-2px);border-color:var(--primary)}
.mini-habit-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.mini-habit-info{flex:1;min-width:0}
.mini-habit-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-habit-pct{font-size:11px;color:var(--text3);margin-top:2px}
.mini-habit-bar{height:3px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}
.mini-habit-fill{height:100%;border-radius:2px;transition:width .4s}
.streak-badge{background:rgba(99,102,241,0.15);border:1px solid rgba(99,102,241,0.3);border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600;color:var(--primary);white-space:nowrap;}

/* TABLE */
.table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.table-title{font-size:16px;font-weight:700;color:var(--text)}
.table-actions{display:flex;gap:8px;align-items:center}
.table-wrap{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);overflow:hidden;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}
table{width:100%;border-collapse:collapse}
thead tr{background:rgba(99,102,241,0.08)}
th{padding:10px 8px;font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;text-align:center;white-space:nowrap;border-bottom:1px solid var(--border);position:sticky;top:0;background:rgba(255,255,255,0.95);z-index:2;}
th.sticky-col{left:0;z-index:3;min-width:150px;text-align:left;padding-left:16px}
th.col-goal{min-width:60px}
th.col-meta{min-width:70px}
td{padding:8px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;}
td.sticky-col{position:sticky;left:0;background:rgba(255,255,255,0.98);z-index:1;text-align:left;padding-left:16px;box-shadow:4px 0 12px rgba(0,0,0,.03);}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(99,102,241,0.06)}
tr:hover td.sticky-col{background:rgba(99,102,241,0.1)}
.habit-name-cell{display:flex;align-items:center;gap:8px}
.habit-emoji{font-size:16px}
.habit-name{font-size:13px;font-weight:500;color:var(--text)}
.habit-cat{font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px;margin-top:2px;display:inline-block}
.cat-health{background:rgba(16,185,129,0.15);color:#10b981}
.cat-study{background:rgba(59,130,246,0.15);color:#3b82f6}
.cat-skill{background:rgba(245,158,11,0.15);color:#f59e0b}
.cat-mindset{background:rgba(168,85,247,0.15);color:#a855f7}
.cat-fitness{background:rgba(20,184,166,0.15);color:#14b8a6}

/* CHECKBOXES */
.day-cell{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;font-weight:800;transition:all .15s;user-select:none;border:1.5px solid var(--border);background:transparent;}
.day-cell.today-cell{border-color:var(--primary);border-width:2px;background:rgba(88,80,236,0.05);box-shadow:0 0 15px rgba(88,80,236,0.1);}
.day-cell.done{background:var(--green) !important;border-color:var(--green) !important;color:#ffffff !important;box-shadow:0 4px 10px rgba(16,185,129,0.3);}
.day-cell.missed{background:var(--red) !important;border-color:var(--red) !important;color:#ffffff !important;box-shadow:0 4px 10px rgba(239,68,68,0.3);}
.day-cell.future, .day-cell.locked:not(.done):not(.missed){opacity:.35;cursor:not-allowed;background:rgba(0,0,0,0.02);}
.day-cell.locked{cursor:not-allowed;}
.day-cell.done, .day-cell.missed { font-size: 20px; font-weight: 900; }
.day-cell:hover:not(.locked):not(.future){transform:scale(1.15);border-color:var(--primary)}

/* PILLS */
.pct-pill{display:inline-block;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700;}
.pct-green{background:rgba(16,185,129,0.15);color:#10b981}
.pct-yellow{background:rgba(245,158,11,0.15);color:#f59e0b}
.pct-red{background:rgba(239,68,68,0.15);color:#ef4444}
.habit-progress-bar{width:60px;height:4px;background:var(--border);border-radius:2px;margin:4px auto 0;overflow:hidden}
.habit-progress-fill{height:100%;border-radius:2px;transition:width .4s}

/* ADD HABIT FORM */
.add-habit-form{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);margin-top:16px;display:none;}
.add-habit-form.open{display:block;animation:slideDown .2s ease}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;align-items:end}
.form-group{display:flex;flex-direction:column;gap:4px}
.form-label{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.form-input{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:rgba(0,0,0,0.02);color:var(--text);font-family:var(--font);font-size:13px;outline:none;transition:border-color .2s;}
.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,0.1)}
.form-select{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:#ffffff;color:var(--text);font-family:var(--font);font-size:13px;outline:none;cursor:pointer;}
.form-select:focus{border-color:var(--primary)}

/* NOTES */
.notes-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.notes-overlay.open{opacity:1;pointer-events:all}
.notes-modal{background:#ffffff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:420px;max-width:90vw;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);transform:scale(.95);transition:transform .2s;}

/* PRELOADER */
#preloader { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: #ffffff; z-index: 9999; display: flex; justify-content: center; align-items: center; transition: opacity 0.6s ease-out, visibility 0.6s ease-out; }
.loader-content { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.glow-orbit { width: 80px; height: 80px; border-radius: 50%; border: 3px solid #f1f5f9; border-top-color: var(--primary); border-bottom-color: #a855f7; animation: spin 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite; position: relative; display: flex; justify-content: center; align-items: center; }
.glow-orbit::before { content: ''; position: absolute; width: 50px; height: 50px; border-radius: 50%; border: 3px solid #f8fafc; border-left-color: #0ea5e9; border-right-color: #ec4899; animation: spin 1s linear infinite reverse; }
.glow-orbit::after { content: ''; position: absolute; width: 15px; height: 15px; background: var(--primary); border-radius: 50%; box-shadow: 0 0 15px var(--primary); animation: pulse 2s ease-in-out infinite; }
.loader-text { font-size: 1.5rem; font-weight: 800; background: linear-gradient(to right, #4f46e5, #9333ea); -webkit-background-clip: text; background-clip: text; color: transparent; }
.loader-subtext { color: var(--text2); font-size: 0.95rem; }
@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes pulse { 50% { transform: scale(1.2); opacity: 0.8; } }
.notes-overlay.open .notes-modal{transform:scale(1)}
.notes-title{font-size:16px;font-weight:700;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.notes-close{cursor:pointer;color:var(--text3);font-size:20px;transition:color .2s}
.notes-close:hover{color:var(--text)}
.notes-textarea{width:100%;height:120px;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:#ffffff;color:var(--text);font-family:var(--font);font-size:13px;resize:vertical;outline:none;transition:border-color .2s;}
.notes-textarea:focus{border-color:var(--primary)}

/* ANALYTICS */
.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.analytics-card{
    background:var(--surface);
    border-radius:var(--radius);
    padding:24px;
    box-shadow:var(--shadow);
    border:1px solid var(--border);
    backdrop-filter:blur(20px);
    min-height: 400px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.analytics-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.cat-card{background:var(--surface);border-radius:var(--radius-sm);padding:16px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);text-align:center;transition:transform .2s,border-color .2s;}
.cat-card:hover{transform:translateY(-2px);border-color:var(--primary)}
.cat-emoji{font-size:28px;margin-bottom:8px}
.cat-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.cat-count{font-size:12px;color:var(--text3);margin-bottom:10px}
.cat-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.cat-bar-fill{height:100%;border-radius:3px;transition:width .6s}

/* RANKINGS */
.podium{display:flex;align-items:flex-end;justify-content:center;gap:16px;margin-bottom:24px;padding:20px}
.podium-item{text-align:center;flex:1;max-width:140px}
.podium-card{background:var(--surface);border-radius:var(--radius-sm);padding:16px 12px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);position:relative;}
.podium-medal{font-size:28px;margin-bottom:8px}
.podium-name{font-size:13px;font-weight:700;color:var(--text)}
.podium-pct{font-size:20px;font-weight:800;margin-top:4px}
.podium-1 .podium-card{background:linear-gradient(135deg,rgba(251,191,36,0.15),rgba(245,158,11,0.1));border-color:rgba(251,191,36,0.4)}
.podium-2 .podium-card{background:linear-gradient(135deg,rgba(148,163,184,0.1),rgba(100,116,139,0.08));border-color:rgba(148,163,184,0.3)}
.podium-3 .podium-card{background:linear-gradient(135deg,rgba(205,127,50,0.15),rgba(180,100,30,0.1));border-color:rgba(205,127,50,0.3)}
.podium-base{height:12px;background:var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
.podium-1 .podium-base{background:rgba(251,191,36,0.4);height:80px}
.podium-2 .podium-base{background:rgba(148,163,184,0.3);height:60px}
.podium-3 .podium-base{background:rgba(205,127,50,0.3);height:40px}
.rank-list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(16px);overflow:hidden;}
.rank-item{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);transition:background .15s;}
.rank-item:last-child{border-bottom:none}
.rank-item:hover{background:rgba(99,102,241,0.06)}
.rank-num{width:28px;height:28px;border-radius:8px;background:rgba(99,102,241,0.15);border:1px solid rgba(99,102,241,0.3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--primary);flex-shrink:0;}
.rank-info{flex:1;min-width:0}
.rank-name{font-size:13px;font-weight:600;color:var(--text)}
.rank-meta{font-size:11px;color:var(--text3);margin-top:2px}
.rank-bar-wrap{width:120px}
.rank-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
.rank-bar-fill{height:100%;border-radius:3px;transition:width .6s}

/* MATRIX */
.matrix-table th,.matrix-table td{padding:10px 14px;font-size:12px}
.matrix-table th{background:rgba(99,102,241,0.08)}

/* USER BOX */
.user-box{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text2);}
.user-name{font-weight:700;font-size:14px;padding:4px 12px;border-radius:20px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;letter-spacing:0.3px;box-shadow:0 2px 8px rgba(99,102,241,0.35);}
.logout-btn{padding:6px 14px;border-radius:20px;border:1px solid rgba(239,68,68,0.4);font-size:12px;font-weight:600;cursor:pointer;background:rgba(239,68,68,0.1);color:#ef4444;transition:all .25s ease;}
.logout-btn:hover{background:rgba(239,68,68,0.25);transform:translateY(-1px)}

/* TOOLTIP */
[data-tip]{position:relative}
[data-tip]::after{content:attr(data-tip);position:absolute;bottom:110%;left:50%;transform:translateX(-50%);background:var(--text);color:#0f172a;font-size:11px;font-weight:500;padding:4px 8px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;z-index:10;}
[data-tip]:hover::after{opacity:1}

/* FOOTER */
footer{text-align:center;padding:20px;font-size:12px;color:var(--text2);border-top:1px solid var(--border);background:rgba(255,255,255,0.8);backdrop-filter:blur(10px);}

.panel > div[style*="font-size:16px"]{color:var(--text) !important}

/* CHAT WIDGET (Matching Home Page) */
.chat-widget {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 15px;
}
.chat-button {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #6366f1, #a855f7);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 25px rgba(99, 102, 241, 0.4);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    color: white;
    position: relative;
    text-decoration: none;
}
.chat-button:hover {
    transform: scale(1.1) translateY(-5px);
    box-shadow: 0 15px 35px rgba(99, 102, 241, 0.6);
}
.chat-button svg { width: 28px; height: 28px; }
.chat-tooltip {
    position: absolute;
    right: 75px;
    background: var(--surface);
    border: 1px solid var(--border);
    backdrop-filter: blur(10px);
    padding: 8px 15px;
    border-radius: 12px;
    color: white;
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0;
    transform: translateX(20px);
    transition: all 0.3s ease;
    pointer-events: none;
    box-shadow: var(--shadow);
}
.chat-button:hover .chat-tooltip { opacity: 1; transform: translateX(0); }
.notification-badge {
    position: absolute;
    top: 0;
    right: 0;
    width: 18px;
    height: 18px;
    background: #ef4444;
    border: 3px solid var(--bg);
    border-radius: 50%;
    animation: pulse-red 2s infinite;
}
@keyframes pulse-red {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* RESPONSIVE */
/* GOALS SECTION */
.goal-card {
    background: var(--surface);
    border-radius: 16px;
    padding: 20px;
    border: 1px solid var(--border);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    overflow: hidden;
}
.goal-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary);
}
.goal-card.completed {
    border-color: var(--green);
    background: rgba(16, 185, 129, 0.05);
}
.add-goal-form {
    background: var(--surface);
    border-radius: var(--radius);
    padding: 24px;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
}

@media(max-width:1024px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .charts-row{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr 1fr auto}
  .goals-container { grid-template-columns: 1fr 1fr; }
}

@media(max-width:768px){
  .topbar-right{flex-wrap:wrap;width:100%;justify-content:flex-start;gap:8px;}
  .topbar{height:auto;padding:12px 16px;flex-direction:column;align-items:flex-start;gap:12px}
  .weekly-grid{grid-template-columns:repeat(2,1fr)}
  .mini-habits{grid-template-columns:1fr}
  .analytics-grid{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr 1fr}
  .podium{gap:8px}
  .main{padding:16px}
  .table-scroll { max-width: 100vw; }
  th.sticky-col { position: relative; left: auto; background: var(--bg); }
  td.sticky-col { position: relative; left: auto; background: var(--bg); box-shadow: none; }
  .add-todo-category-form, .add-todo-form { padding: 12px; }
  .add-todo-category-form input { flex: 1 1 100%; }
  .todo-item { padding: 12px 14px !important; gap: 12px !important; }
  .goals-container { grid-template-columns: 1fr; }
  .add-goal-form { padding: 16px; }
  .add-goal-form > div { grid-template-columns: 1fr !important; }
}

@media(max-width:480px){
  .stat-grid{grid-template-columns:1fr; gap: 12px;}
  .stat-card { 
    padding: 16px; 
    display: grid; 
    grid-template-columns: 1fr auto; 
    align-items: center; 
    gap: 8px;
  }
  .stat-label { margin-bottom: 0; font-size: 10px; }
  .stat-value { font-size: 24px; grid-row: span 2; justify-self: end; }
  .stat-sub { margin-top: 0; font-size: 11px; }
  .stat-bar { grid-column: span 2; margin-top: 8px; }
  .weekly-grid{grid-template-columns:1fr}
  .mini-habits{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .topbar{padding:12px}
  .table-header { flex-direction: column; align-items: flex-start; gap: 16px; }
  .table-title { font-size: 16px; word-break: break-word; }
  .table-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .table-actions .btn:first-child { grid-column: span 2; }
  
  .tabs-container { position: relative; top: 0; background: none; border: none; }
  .tabs { 
    flex-wrap: wrap; 
    padding: 12px; 
    gap: 8px; 
    background: rgba(255, 255, 255, 0.5);
    border-bottom: 1px solid var(--border);
  }
  .tab { 
    flex: 1 1 calc(50% - 8px); 
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 8px;
    justify-content: center;
    padding: 10px 4px;
    font-size: 11px;
    border-bottom: 1px solid var(--border); /* Override default border-bottom */
  }
  .tab.active { 
    background: rgba(99, 102, 241, 0.15); 
    border-color: var(--primary);
    color: var(--primary);
  }
  .tab:hover:not(.active) { background: rgba(255, 255, 255, 0.05); }
  
  .chat-widget { bottom: 20px; right: 20px; }
  .chat-button { width: 50px; height: 50px; }
  .chat-tooltip { display: none; }
  .add-todo-category-form button { width: 100%; }
  .add-todo-form > div { flex-direction: column !important; gap: 8px !important; }
  .add-todo-form select, .add-todo-form input { width: 100% !important; min-width: 0 !important; }
  .add-todo-form button { width: 100%; margin-top: 8px; }
  .chart-card { height: 260px; padding: 16px; }
  .analytics-card { min-height: 280px; padding: 16px; }
  .chart-title { font-size: 13px; margin-bottom: 12px; }
  
  .todo-item { padding: 12px !important; align-items: flex-start !important; }
  .todo-item input[type="checkbox"] { margin-top: 4px; }
  .todo-item > div { word-break: break-word; overflow-wrap: anywhere; }

  .add-goal-form { padding: 12px; }
  .goal-card { padding: 16px; }
}

/* CUSTOM SCROLLBAR FOR FILTERS */
#todoFilterContainer::-webkit-scrollbar {
  height: 4px;
}
#todoFilterContainer::-webkit-scrollbar-track {
  background: transparent;
}
#todoFilterContainer::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 10px;
}
#todoFilterContainer::-webkit-scrollbar-thumb:hover {
  background: var(--text3);
}

#todoFilterContainer {
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
  -webkit-overflow-scrolling: touch;
}

/* EISENHOWER MATRIX */
.todo-matrix-grid { margin-top: 20px; }
.matrix-quadrant { 
    background: var(--surface); 
    border-radius: var(--radius); 
    border: 1px solid var(--border); 
    min-height: 250px; 
    display: flex; 
    flex-direction: column; 
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}
.matrix-quadrant:hover { box-shadow: var(--shadow-lg); }
.matrix-label { 
    padding: 10px 16px; 
    font-size: 13px; 
    font-weight: 800; 
    display: flex; 
    flex-direction: column; 
    gap: 2px;
}
.matrix-label span { font-size: 10px; font-weight: 500; opacity: 0.8; text-transform: uppercase; }
.todo-list-container { 
    flex: 1; 
    padding: 12px; 
    display: flex; 
    flex-direction: column; 
    gap: 10px; 
    max-height: 400px; 
    overflow-y: auto;
}

/* PRIORITY BADGES */
.priority-badge { 
    font-size: 10px; 
    font-weight: 700; 
    text-transform: uppercase; 
    padding: 2px 6px; 
    border-radius: 4px; 
}
.priority-high { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
.priority-medium { background: rgba(245, 158, 11, 0.15); color: #f59e0b; }
.priority-low { background: rgba(16, 185, 129, 0.15); color: #10b981; }

/* DRAG & DROP */
.todo-item { cursor: grab; }
.todo-item:active { cursor: grabbing; }
.todo-item.dragging { opacity: 0.5; transform: scale(0.95); }

/* POMODORO */
#pomodoroContainer { transition: all 0.3s; }
.pomo-running { background: rgba(239, 68, 68, 0.1) !important; border-color: #ef4444 !important; }

/* ANIMATIONS */
@keyframes fadeInSlide {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.todo-item { animation: fadeInSlide 0.3s ease forwards; }

/* PLANNER */
.planner-day { 
    background: rgba(255,255,255,0.03); 
    border: 1px solid var(--border); 
    border-radius: 8px; 
    padding: 10px; 
    min-height: 120px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.planner-date { font-size: 11px; font-weight: 700; color: var(--text3); border-bottom: 1px solid var(--border); padding-bottom: 4px; margin-bottom: 4px; }
.planner-task { font-size: 10px; color: var(--text2); background: rgba(0,0,0,0.1); padding: 4px 6px; border-radius: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media(max-width:768px) {
    .todo-matrix-grid { grid-template-columns: 1fr; }
    .matrix-quadrant { min-height: 200px; }
}

/* GAMIFICATION */
.level-up-notify {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 800;
    box-shadow: 0 10px 25px rgba(88, 80, 236, 0.4);
    z-index: 9999;
    animation: slideDownFade 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes slideDownFade {
    0% { opacity: 0; transform: translate(-50%, -100%); }
    100% { opacity: 1; transform: translate(-50%, 0); }
}

.xp-container {
    transition: all 0.3s;
}
.xp-container:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* CUSTOM HABIT COLORS */
.habit-row-colored {
    border-left: 4px solid var(--habit-color, var(--primary));
}
