@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500&display=swap');

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Jost',sans-serif;background:#f5f0ff;color:#3d1a6e;min-height:100vh}

/* HEADER */
header{background:linear-gradient(135deg,#2d1b69,#5b2d8e);border-bottom:2px solid #f0c060;padding:28px 20px 0;text-align:center;position:relative}
header h1{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:400;color:#e8d5ff;letter-spacing:0.02em}
header h1 span{color:#f0c060;font-style:italic}
header p{font-size:0.78rem;color:#c4a8e8;letter-spacing:0.18em;text-transform:uppercase;margin-top:4px;font-weight:300}

/* LOGOUT */
.logout-btn{position:absolute;top:16px;right:16px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.3);color:#e8d5ff;padding:6px 14px;border-radius:20px;font-family:'Jost',sans-serif;font-size:0.75rem;cursor:pointer;transition:background 0.2s}
.logout-btn:hover{background:rgba(255,255,255,0.25)}

/* TABS */
.tabs{display:flex;gap:2px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.tab{background:transparent;border:none;padding:10px 12px;font-family:'Jost',sans-serif;font-size:0.78rem;color:#c4a8e8;cursor:pointer;border-bottom:2px solid transparent;transition:all 0.2s}
.tab.active{color:#f0c060;border-bottom:2px solid #f0c060;font-weight:500}
.tab:hover{color:#e8d5ff}
.tab-content{display:none}
.tab-content.active{display:block}

/* MAIN */
main{max-width:700px;margin:24px auto;padding:0 20px;display:flex;flex-direction:column;gap:16px}

/* CARDS */
.card{background:#fff;border:1px solid #d4b8f0;border-radius:18px;padding:22px 24px}
.affirmation-card{background:linear-gradient(135deg,#f0e8ff,#e8d5ff);border-color:#c4a0e0}
.card h2{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:500;color:#5b2d8e;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.card h2::before{content:'';width:6px;height:6px;border-radius:50%;background:#f0c060;display:inline-block;flex-shrink:0}

/* INPUTS */
textarea,select{width:100%;background:#f5f0ff;color:#3d1a6e;border:1px solid #d4b8f0;border-radius:10px;padding:12px 14px;font-family:'Jost',sans-serif;font-size:0.9rem;transition:border-color 0.2s;min-height:90px;resize:vertical}
textarea:focus,select:focus,input:focus{outline:none;border-color:#9b5dd4;box-shadow:0 0 0 3px rgba(155,93,212,0.1)}
.affirmation-card textarea{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-style:italic;color:#5b2d8e;background:transparent;border-color:#c4a0e0}
.text-input,.number-input{width:100%;background:#f5f0ff;color:#3d1a6e;border:1px solid #d4b8f0;border-radius:10px;padding:10px 14px;font-family:'Jost',sans-serif;font-size:0.9rem}
.number-input{width:120px}
.field-label{font-size:0.75rem;color:#9b5dd4;letter-spacing:0.08em;text-transform:uppercase;margin:10px 0 6px;display:block;font-weight:500}

/* BUTTONS */
.save-btn{background:linear-gradient(135deg,#5b2d8e,#9b5dd4);color:white;border:none;padding:16px;border-radius:14px;font-family:'Jost',sans-serif;font-size:0.95rem;font-weight:500;letter-spacing:0.08em;cursor:pointer;width:100%;margin-bottom:40px;transition:opacity 0.2s}
.save-btn:hover{opacity:0.88}
.small-btn{background:linear-gradient(135deg,#5b2d8e,#9b5dd4);color:white;border:none;padding:10px 16px;border-radius:10px;font-family:'Jost',sans-serif;font-size:0.85rem;cursor:pointer;white-space:nowrap;transition:opacity 0.2s}
.small-btn:hover{opacity:0.88}

/* MOOD */
.mood-grid{display:flex;gap:8px;flex-wrap:wrap}
.mood-btn{flex:1;min-width:56px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:12px;padding:10px 6px;text-align:center;cursor:pointer;font-size:1.4rem;transition:all 0.15s}
.mood-btn span{display:block;font-size:0.7rem;color:#9b5dd4;margin-top:4px}
.mood-btn.selected{background:#e8d5ff;border-color:#9b5dd4;box-shadow:0 0 0 2px rgba(155,93,212,0.2)}

/* PROGRESS */
.progress-bar-wrap{background:#e8d5ff;border-radius:10px;height:8px;margin:8px 0 4px;overflow:hidden}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,#5b2d8e,#9b5dd4);border-radius:10px;transition:width 0.4s}
.steps-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.steps-badge{background:#e8d5ff;color:#5b2d8e;font-size:0.8rem;padding:4px 12px;border-radius:20px;white-space:nowrap;font-weight:500}

/* WATER */
.water-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.water-glass{width:36px;height:36px;border-radius:8px;border:1px solid #d4b8f0;background:#f5f0ff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all 0.2s}
.water-glass.filled{background:#a8d8f0;border-color:#5ab0e0}

/* HYGIENE */
.hygiene-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #ede0ff;cursor:pointer;font-size:0.9rem;transition:color 0.2s}
.hygiene-item:last-child{border-bottom:none}
.hygiene-item.done{color:#5b2d8e}
.hygiene-item.done .hygiene-check{color:#f0c060}
.hygiene-freq{margin-left:auto;font-size:0.75rem;color:#9b5dd4}

/* CALENDAR */
.cal-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:#5b2d8e;text-align:center;margin-bottom:10px;font-weight:500}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.cal-day-name{font-size:0.68rem;color:#9b5dd4;padding:3px 0;font-weight:500}
.cal-day{font-size:0.8rem;color:#5b2d8e;padding:5px 2px;border-radius:6px;cursor:pointer;position:relative;transition:background 0.15s}
.cal-day:hover{background:#e8d5ff}
.cal-today{background:#e8d5ff;font-weight:500}
.cal-selected{background:#5b2d8e !important;color:white !important}
.cal-dot{display:block;width:4px;height:4px;border-radius:50%;background:#f0c060;margin:2px auto 0}
.entry-date{text-align:center;font-size:0.75rem;color:#9b5dd4;letter-spacing:0.1em;text-transform:uppercase;margin:4px 0 -8px}

/* FLOW */
.flow-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.flow-btn{flex:1;min-width:64px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:12px;padding:8px 4px;text-align:center;cursor:pointer;font-size:0.85rem;transition:all 0.15s}
.flow-btn span{display:block;font-size:0.7rem;color:#9b5dd4;margin-top:3px}
.flow-btn.selected{background:#e8d5ff;border-color:#9b5dd4}
.pain-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.pain-slider{flex:1;accent-color:#9b5dd4}

/* BMI */
.bmi-box{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.bmi-stat{background:#f5f0ff;border:1px solid #d4b8f0;border-radius:10px;padding:10px;text-align:center}
.bmi-label{display:block;font-size:0.68rem;color:#9b5dd4;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px}
.bmi-value{font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:#5b2d8e;font-weight:500}
.exercise-rec{background:#f0e8ff;border:1px solid #d4b8f0;border-left:4px solid #f0c060;border-radius:10px;padding:12px;font-size:0.85rem;color:#3d1a6e;line-height:1.6}

/* TIMER */
.timer-box{background:linear-gradient(135deg,#2d1b69,#5b2d8e);border-radius:16px;padding:24px;text-align:center;margin:8px 0}
.timer-display{font-family:'Cormorant Garamond',serif;font-size:3.2rem;color:#f0c060;letter-spacing:0.12em;margin-bottom:16px}
.timer-controls{display:flex;gap:10px;justify-content:center;margin-bottom:10px}
.timer-btn{border:none;padding:10px 20px;border-radius:10px;font-family:'Jost',sans-serif;font-size:0.85rem;cursor:pointer;transition:opacity 0.2s;font-weight:500}
.timer-btn.start{background:#f0c060;color:#2d1b69}
.timer-btn.stop,.timer-btn.reset{background:rgba(255,255,255,0.15);color:#e8d5ff}
.timer-btn:hover{opacity:0.85}

/* BOOK */
.book-year-goal{display:flex;align-items:center;gap:12px;margin:16px 0 8px;font-size:0.88rem;color:#5b2d8e;flex-wrap:wrap}
.book-counter{display:flex;align-items:center;gap:8px}
.book-counter button{background:#e8d5ff;border:none;color:#5b2d8e;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:1rem;transition:background 0.2s}
.book-counter span{font-weight:500;font-size:1.1rem;min-width:24px;text-align:center}

/* CERTS */
.cert-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:12px;margin-bottom:8px}
.cert-badge{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#f0c060,#e8a020);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.cert-info{flex:1}
.cert-name{font-size:0.9rem;color:#3d1a6e;font-weight:500}
.cert-org{font-size:0.75rem;color:#9b5dd4;margin-top:2px}
.cert-year{font-size:0.72rem;color:#b898e0;margin-top:2px}
.cert-status-badge{font-size:0.7rem;padding:4px 10px;border-radius:20px;white-space:nowrap;font-weight:500}
.cert-status-badge.completed{background:#d4f0e0;color:#1a6e3a}
.cert-status-badge.progress{background:#e8d5ff;color:#5b2d8e}
.cert-delete{background:none;border:none;color:#b898e0;cursor:pointer;font-size:1rem;margin-left:8px}
.add-cert-form{background:#f5f0ff;border:1px dashed #d4b8f0;border-radius:12px;padding:14px;margin-top:10px}
.cert-form-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}

/* EVENTS */
.event-form{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.events-list{display:flex;flex-direction:column;gap:8px}
.event-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:10px;font-size:0.88rem}
.event-date-badge{background:#e8d5ff;color:#5b2d8e;font-size:0.75rem;padding:3px 10px;border-radius:20px;white-space:nowrap;font-weight:500}
.event-delete{margin-left:auto;background:none;border:none;color:#b898e0;cursor:pointer;font-size:1rem}

/* CHAT TAB */
.chat-tab-card{display:flex;flex-direction:column;min-height:70vh}
.compass-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.compass-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#2d1b69,#9b5dd4);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;border:2px solid #f0c060}
.quick-prompts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.quick-btn{background:#f5f0ff;border:1px solid #d4b8f0;color:#5b2d8e;padding:6px 12px;border-radius:20px;font-family:'Jost',sans-serif;font-size:0.78rem;cursor:pointer;transition:all 0.2s;white-space:nowrap}
.quick-btn:hover{background:#e8d5ff;border-color:#9b5dd4}
.chat-intro{font-size:0.88rem;color:#9b5dd4;margin-bottom:12px;font-style:italic}
.chat-messages{min-height:200px;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding:4px 0;flex:1}
.chat-msg{padding:10px 14px;border-radius:14px;font-size:0.88rem;max-width:85%;line-height:1.5}
.chat-msg.user{background:#e8d5ff;color:#3d1a6e;align-self:flex-end;border-bottom-right-radius:4px}
.chat-msg.ai{background:#f0e8ff;color:#3d1a6e;align-self:flex-start;border-bottom-left-radius:4px;border-left:3px solid #f0c060}
.chat-msg.thinking{color:#9b5dd4;font-style:italic}
.chat-input-row{display:flex;gap:10px;align-items:flex-end}
.chat-send{background:linear-gradient(135deg,#5b2d8e,#9b5dd4);color:white;border:none;padding:12px 20px;border-radius:10px;font-family:'Jost',sans-serif;cursor:pointer;white-space:nowrap;transition:opacity 0.2s}
.chat-send:hover{opacity:0.88}

/* STATS */
.stat-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #ede0ff;font-size:0.9rem}
.stat-row:last-child{border-bottom:none}
.stat-val{font-weight:500;color:#5b2d8e;font-family:'Cormorant Garamond',serif;font-size:1.1rem}
.chart-block{margin-top:24px;width:100%}
.chart-wrap{position:relative;height:180px;width:100%}
.score-circle{width:130px;height:130px;border-radius:50%;border:4px solid #f0c060;background:linear-gradient(135deg,#f0e8ff,#e8d5ff);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:20px auto}
.score-circle span{font-family:'Cormorant Garamond',serif;font-size:2.8rem;color:#5b2d8e;line-height:1}
.score-circle small{font-size:0.75rem;color:#9b5dd4}
.score-desc{text-align:center;font-size:0.88rem;color:#9b5dd4;font-style:italic;margin-top:10px}

/* FINANCE */
.finance-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-height:4px}
.finance-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:10px;font-size:0.88rem}
.finance-amount{margin-left:auto;font-weight:500;color:#5b2d8e;font-family:'Cormorant Garamond',serif;font-size:1rem}
.finance-delete{background:none;border:none;color:#b898e0;cursor:pointer}
.finance-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.equity-box{background:linear-gradient(135deg,#2d1b69,#5b2d8e);border-radius:16px;padding:18px;margin-top:20px}
.equity-row{display:flex;justify-content:space-between;padding:8px 0;font-size:0.9rem;border-bottom:1px solid rgba(255,255,255,0.1);color:#e8d5ff}
.equity-row:last-child{border-bottom:none}
.equity-positive{color:#a0e8c0;font-weight:500}
.equity-negative{color:#f0a0a0;font-weight:500}
.equity-divider{height:1px;background:#f0c060;margin:8px 0;opacity:0.5}
.equity-total{font-weight:500;font-size:1rem;color:white !important}
.equity-total span:last-child{color:#f0c060 !important;font-family:'Cormorant Garamond',serif;font-size:1.3rem}

/* PREDICTION */
.prediction-box{background:#f0e8ff;border:1px solid #d4b8f0;border-radius:10px;padding:12px;margin-top:12px;font-size:0.85rem;color:#5b2d8e;display:none;line-height:1.6}

/* PROJECT */
.project-dates{display:flex;gap:12px;margin-top:8px}
.project-dates>div{flex:1}

/* FLOATING CHAT */
.float-bubble{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#5b2d8e,#9b5dd4);display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 20px rgba(91,45,142,0.4);z-index:1000;transition:transform 0.2s;border:2px solid #f0c060}
.float-bubble:hover{transform:scale(1.1)}
.float-chat{position:fixed;bottom:90px;right:24px;width:320px;max-height:480px;background:white;border-radius:20px;border:1px solid #d4b8f0;box-shadow:0 8px 40px rgba(91,45,142,0.2);z-index:1000;display:none;flex-direction:column;overflow:hidden}
.float-chat.open{display:flex}
.float-chat-header{background:linear-gradient(135deg,#2d1b69,#5b2d8e);padding:14px 16px;display:flex;align-items:center;justify-content:space-between}
.float-chat-title{color:#e8d5ff;font-size:0.9rem;font-weight:500;display:flex;align-items:center;gap:8px}
.compass-dot{width:8px;height:8px;border-radius:50%;background:#f0c060;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.float-close{background:none;border:none;color:#c4a8e8;cursor:pointer;font-size:1rem;padding:0}
.float-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#f5f0ff}
.float-input-row{display:flex;gap:8px;padding:10px;background:white;border-top:1px solid #ede0ff}
.float-input-row input{flex:1;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:20px;padding:8px 14px;font-family:'Jost',sans-serif;font-size:0.85rem;color:#3d1a6e}
.float-input-row input:focus{outline:none;border-color:#9b5dd4}
.float-send{background:linear-gradient(135deg,#5b2d8e,#9b5dd4);color:white;border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:0.9rem;display:flex;align-items:center;justify-content:center}

/* TOAST */
#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#5b2d8e,#9b5dd4);color:white;padding:12px 28px;border-radius:30px;font-family:'Jost',sans-serif;font-size:0.9rem;opacity:0;transition:opacity 0.4s;pointer-events:none;z-index:999;border:1px solid #f0c060}

/* MOBILE */
@media(max-width:600px){
  header h1{font-size:1.8rem}
  .tab{padding:8px 9px;font-size:0.7rem}
  main{padding:0 12px;margin:16px auto}
  .card{padding:16px;border-radius:14px}
  .bmi-box{grid-template-columns:repeat(2,1fr)}
  .mood-btn{min-width:44px;font-size:1.2rem}
  .timer-display{font-size:2.4rem}
  .book-year-goal{flex-wrap:wrap;gap:8px}
  .project-dates{flex-direction:column}
  .chat-input-row{flex-direction:column}
  .chat-send{width:100%}
  .cert-form-row{flex-direction:column}
  .finance-form{flex-direction:column}
  .float-chat{width:calc(100vw - 32px);right:16px}
  .float-bubble{bottom:16px;right:16px}
  .logout-btn{top:10px;right:10px;font-size:0.68rem;padding:5px 10px}
}
@media(max-width:380px){
  .tab{padding:7px 6px;font-size:0.65rem}
  header h1{font-size:1.4rem}
}
/* Book Library */
.book-library-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.lib-tab{background:#f5f0ff;border:1px solid #d4b8f0;color:#5b2d8e;padding:6px 14px;border-radius:20px;font-family:'Jost',sans-serif;font-size:0.78rem;cursor:pointer;transition:all 0.2s}
.lib-tab.active{background:#5b2d8e;color:white;border-color:#5b2d8e}
.book-lib-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f5f0ff;border:1px solid #d4b8f0;border-radius:12px;margin-bottom:8px}
.book-lib-cover{width:36px;height:48px;border-radius:4px;background:linear-gradient(135deg,#5b2d8e,#9b5dd4);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.book-lib-info{flex:1}
.book-lib-title{font-size:0.9rem;color:#3d1a6e;font-weight:500}
.book-lib-author{font-size:0.75rem;color:#9b5dd4;margin-top:2px}
.book-lib-meta{font-size:0.72rem;color:#b898e0;margin-top:2px}
.book-lib-status{font-size:0.7rem;padding:3px 8px;border-radius:12px;white-space:nowrap;cursor:pointer;font-weight:500}
.book-lib-status.completed{background:#d4f0e0;color:#1a6e3a}
.book-lib-status.reading{background:#e8d5ff;color:#5b2d8e}
.book-lib-status.wishlist{background:#fff3d4;color:#8b6000}
.add-book-form{background:#f5f0ff;border:1px dashed #d4b8f0;border-radius:12px;padding:14px;margin-top:10px}
.cert-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cert-status-badge{cursor:pointer;transition:all 0.2s}
.cert-status-badge:hover{opacity:0.8;transform:scale(1.05)}
/* Analytics */
.analytics-loading { text-align:center; color:#9b5dd4; font-style:italic; padding:20px; }
.analytics-stat-box { text-align:center; padding:10px 0; }
.analytics-big-number { font-family:'Cormorant Garamond',serif; font-size:3.5rem; color:#5b2d8e; line-height:1; }
.analytics-label { font-size:0.82rem; color:#9b5dd4; text-transform:uppercase; letter-spacing:0.1em; margin-top:4px; }
.analytics-stat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:8px; }
.analytics-mini-stat { background:#f5f0ff; border:1px solid #d4b8f0; border-radius:12px; padding:14px; text-align:center; }
.analytics-mini-number { font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:#5b2d8e; font-weight:500; }
.analytics-mini-label { font-size:0.72rem; color:#9b5dd4; margin-top:4px; text-transform:uppercase; letter-spacing:0.06em; }
.mood-day-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #ede0ff; font-size:0.88rem; }
.mood-day-row:last-child { border-bottom:none; }
.mood-day-name { width:36px; color:#5b2d8e; font-weight:500; }
.mood-day-bar-wrap { flex:1; background:#e8d5ff; border-radius:6px; height:8px; overflow:hidden; }
.mood-day-bar-good { height:100%; background:linear-gradient(90deg,#5b2d8e,#9b5dd4); border-radius:6px; }
.mood-day-bar-stress { height:100%; background:linear-gradient(90deg,#c85a5a,#e88080); border-radius:6px; }
.mood-day-count { font-size:0.75rem; color:#9b5dd4; width:50px; text-align:right; }