/* ── DESIGN TOKENS ── */
:root {
  --bg:#f3f8f7; --card:#fff; --border:#d9ebe7; --text:#17333a; --muted:#6f8484;
  --teal:#2f9e9b; --teal-dark:#1a6b68; --teal-soft:#e8f4f2;
  --gold:#bf9450; --shadow:0 8px 24px rgba(26,65,64,.09);
  --danger:#e53e3e; --warn:#c05621; --success:#276749;
  --nav-h:60px; --radius:20px;
}
[data-theme="dark"] {
  --bg:#0f1e1d; --card:#1a2e2d; --border:#2a4442; --text:#e0f0ef; --muted:#7aacaa;
  --teal:#3bbfbc; --teal-dark:#5dd4d1; --teal-soft:#1e3533;
  --shadow:0 8px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:'Poppins',sans-serif;min-height:100vh;transition:background .3s,color .3s}

/* ── AUTH ── */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#f0f9f8,#e0f0ef)}
[data-theme="dark"] .auth-screen{background:linear-gradient(160deg,#0f1e1d,#0a1514)}
.auth-card{background:var(--card);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow);padding:32px 28px;width:100%;max-width:400px;text-align:center}
.auth-logo{width:140px;height:140px;object-fit:contain;border-radius:16px;margin-bottom:10px}
.auth-subtitle{color:var(--muted);font-size:.85rem;margin-bottom:20px}
.auth-heading{font-size:1.4rem;margin-bottom:18px}
.form-group{text-align:left;margin-bottom:13px}
.form-group label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:5px;font-weight:500}
.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid var(--border);border-radius:13px;padding:11px 13px;font:inherit;font-size:.9rem;outline:none;transition:border-color .2s;background:var(--card);color:var(--text)}
.form-group input:focus,.form-group select:focus{border-color:var(--teal)}
.auth-error{border-radius:12px;padding:9px 13px;font-size:.83rem;margin-bottom:14px;text-align:left;display:none}
.auth-error.error{background:#fff5f5;border:1px solid #fed7d7;color:var(--danger)}
.auth-error.success{background:#f0fff4;border:1px solid #9ae6b4;color:var(--success)}
.auth-links{display:flex;justify-content:space-between;margin-top:14px;font-size:.83rem}
.auth-links a{color:var(--teal);text-decoration:none;font-weight:500}

/* ── TOP NAV ── */
.top-nav{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--border);height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.nav-logo{height:40px;width:auto;border-radius:8px;object-fit:contain}
.nav-right{display:flex;align-items:center;gap:10px}
.user-email{font-size:.75rem;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon-btn{background:none;border:1px solid var(--border);border-radius:10px;padding:6px 9px;cursor:pointer;font-size:.9rem;color:var(--text);transition:background .2s}
.icon-btn:hover{background:var(--teal-soft)}
.hamburger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:6px}
.hamburger span{display:block;width:22px;height:2px;background:var(--teal-dark);border-radius:2px;transition:all .3s}

/* ── SIDE MENU ── */
.menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199;display:none}
.menu-overlay.open{display:block}
.side-menu{position:fixed;top:0;right:-290px;width:290px;height:100vh;background:var(--card);z-index:200;box-shadow:-4px 0 24px rgba(0,0,0,.15);transition:right .3s ease;display:flex;flex-direction:column}
.side-menu.open{right:0}
.side-menu-header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--border)}
.side-logo{height:44px;border-radius:8px;object-fit:contain}
.close-menu{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--muted);padding:4px 8px}
.menu-items{list-style:none;padding:12px 0;flex:1;overflow-y:auto}
.menu-item{display:block;padding:14px 22px;color:var(--text);text-decoration:none;font-weight:500;font-size:.92rem;transition:background .2s,color .2s;border-right:3px solid transparent}
.menu-item:hover,.menu-item.active{background:var(--teal-soft);color:var(--teal-dark);border-right-color:var(--teal)}
.side-menu-footer{padding:16px;border-top:1px solid var(--border)}
.side-user-email{display:block;font-size:.75rem;color:var(--muted);margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-signout{width:100%}

/* ── LAYOUT ── */
.app-shell{display:flex;flex-direction:column;min-height:100vh}
.main-content{flex:1;max-width:880px;width:100%;margin:0 auto;padding:18px 14px 32px}
.page{display:none}
.page.active{display:block}

/* ── CARDS ── */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:18px}
.card-header,.records-header,.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}
.card h2,.card-header h2,.records-header h2,.profile-header h2{font-size:1.4rem}

/* ── SUMMARY GRID ── */
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.summary-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}
.summary-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;border-radius:4px 0 0 4px}
.bp-card::before{background:var(--teal)}
.sugar-card::before{background:var(--gold)}
.bmi-card::before{background:#805ad5}
.trend-card::before{background:#38a169}
.summary-label{display:block;color:var(--muted);font-size:.8rem;margin-bottom:4px}
.summary-card strong{font-size:1.3rem;display:block;margin-bottom:2px}
.summary-date{font-size:.72rem;color:var(--muted)}
.summary-status{display:inline-block;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;margin-top:4px}

/* ── QUICK ACTIONS ── */
.quick-actions h2{margin-bottom:14px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.action-btn{background:var(--teal-soft);border:1px solid var(--border);border-radius:16px;padding:15px;font:inherit;font-weight:600;color:var(--teal-dark);cursor:pointer;font-size:.88rem;transition:background .2s,transform .1s}
.action-btn:active{transform:scale(.97)}

/* ── MODE TOGGLE ── */
.mode-toggle{display:inline-flex;background:var(--teal-soft);padding:4px;border-radius:999px;gap:4px}
.mode-btn{border:0;background:transparent;color:var(--teal-dark);padding:7px 14px;border-radius:999px;font:inherit;font-weight:600;cursor:pointer;font-size:.83rem;transition:background .2s,color .2s}
.mode-btn.active{background:var(--teal);color:#fff}

/* ── SCAN ── */
.guide-text{color:var(--muted);font-size:.85rem;margin-bottom:14px;padding:10px 14px;background:var(--teal-soft);border-radius:12px}
.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.preview-label{font-size:.82rem;color:var(--muted);margin-bottom:7px;font-weight:600}
.image-frame{aspect-ratio:4/3;border-radius:14px;border:1px solid var(--border);background:#0f1416;overflow:hidden;display:flex;align-items:center;justify-content:center}
.analysis-frame{background:var(--teal-soft);border-color:var(--teal)}
#originalPreview{width:100%;height:100%;object-fit:contain}
.analysis-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--teal-dark);opacity:.5;padding:14px;text-align:center;font-size:.78rem}
.analysis-result{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;text-align:center;gap:5px;width:100%}
.ai-value{font-size:1.9rem;font-weight:700;color:var(--teal-dark);line-height:1.1}
.ai-unit{font-size:.85rem;color:var(--muted);font-weight:500}
.ai-badge{padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;margin-top:2px}
.confidence-high{background:#c6f6d5;color:#1a6035}
.confidence-medium{background:#fefcbf;color:#7b4f00}
.confidence-low{background:#fed7d7;color:#9b2c2c}
.health-status-badge{font-size:.8rem;font-weight:700;padding:4px 12px}
.status-normal{background:#c6f6d5;color:#1a6035}
.status-moderate,.status-elevated,.status-stage1{background:#feebc8;color:#7b4f00}
.status-high,.status-stage2,.status-crisis{background:#fed7d7;color:#9b2c2c}
.status-low{background:#bee3f8;color:#1a4a6e}
.unit-convert-box{background:#fffbf0;border:1px solid #ffe082;border-radius:14px;padding:12px 14px;margin-bottom:14px}
.unit-convert-box p{font-size:.82rem;color:#7b4f00;margin-bottom:8px}
.upload-field{display:grid;gap:7px;margin-bottom:14px;font-weight:500;font-size:.87rem}
.upload-field input{border:1px solid var(--border);border-radius:13px;padding:11px;font:inherit;background:var(--card);color:var(--text)}
.scan-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:13px}
.feedback{padding:11px 13px;border-radius:14px;background:var(--teal-soft);color:var(--teal-dark);font-weight:500;font-size:.85rem;margin-bottom:13px}
.result-panel{background:var(--bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:12px}
.result-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 16px}
.result-row+.result-row{border-top:1px solid var(--border)}
.result-row strong{font-size:1rem}
.manual-toggle-btn{width:100%;margin-top:4px}
.manual-edit-box{background:#fffbf0;border:1px solid #ffe082;border-radius:14px;padding:14px;margin-top:10px}
.manual-edit-title{font-size:.83rem;font-weight:600;color:#7b4f00;margin-bottom:10px}
.manual-edit-row{display:flex;gap:10px;align-items:center}
.manual-edit-input{flex:1;border:1px solid var(--border);border-radius:11px;padding:9px 13px;font:inherit;font-size:.9rem;background:var(--card);color:var(--text)}
.manual-hint{font-size:.75rem;color:var(--muted);margin-top:6px}

/* ── RECORDS ── */
.records-filter{display:flex;gap:7px}
.filter-btn{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:5px 13px;font:inherit;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .2s}
.filter-btn.active{background:var(--teal);color:#fff;border-color:var(--teal)}
.trends-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.trend-item{background:var(--teal-soft);border-radius:12px;padding:10px 14px;font-size:.82rem;color:var(--teal-dark);font-weight:500}
.chart-container{margin:14px 0;height:200px}
.records-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.records-list{display:grid;gap:11px}
.record-item{border:1px solid var(--border);border-radius:16px;padding:13px 15px;background:var(--card)}
.record-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:7px}
.record-type{font-weight:700;color:var(--teal-dark);font-size:.85rem}
.record-value{font-size:1.15rem;font-weight:700;white-space:nowrap}
.record-meta{color:var(--muted);font-size:.74rem;margin-top:2px}
.record-note-text{color:var(--muted);font-size:.76rem;font-style:italic;margin-top:3px}
.record-footer{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}
.confidence-chip{padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:600}
.record-delete-btn{margin-left:auto}

/* ── MEDICATIONS ── */
.meds-list{display:grid;gap:11px}
.med-item{border:1px solid var(--border);border-radius:16px;padding:13px 15px;background:var(--card)}
.med-name{font-weight:700;font-size:.95rem;margin-bottom:3px}
.med-detail{font-size:.8rem;color:var(--muted);margin-bottom:3px}
.med-actions{display:flex;gap:7px;align-items:center;margin-top:8px;flex-wrap:wrap}
.med-badge{padding:2px 9px;border-radius:999px;font-size:.73rem;font-weight:600}
.med-ongoing{background:#c6f6d5;color:#1a6035}
.med-fixed{background:#bee3f8;color:#1a4a6e}
.med-expired{background:#fed7d7;color:#9b2c2c}
.notif-banner{border-radius:13px;padding:10px 14px;margin-bottom:13px;font-size:.83rem}
.notif-ok{background:var(--teal-soft);border:1px solid var(--teal);color:var(--teal-dark)}
.notif-denied{background:#fff5f5;border:1px solid #fed7d7;color:var(--danger)}
.notif-prompt{background:#fffbf0;border:1px solid #ffe082;color:#7b4f00;display:flex;justify-content:space-between;align-items:center;gap:10px}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:300;display:flex;align-items:flex-end;justify-content:center}
.modal-card{background:var(--card);border-radius:24px 24px 0 0;padding:26px 22px;width:100%;max-width:500px;max-height:92vh;overflow-y:auto}
.modal-card h3{font-size:1.2rem;margin-bottom:18px}
.modal-actions{display:flex;gap:12px;margin-top:18px}
.modal-actions .btn{flex:1}
.checkbox-label{display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:500;font-size:.9rem}
.checkbox-label input{width:17px;height:17px;cursor:pointer;accent-color:var(--teal)}
.reminder-header{font-weight:600;font-size:.85rem;color:var(--teal-dark);padding:8px 12px;background:var(--teal-soft);border-radius:10px;margin-bottom:10px}
.reminder-dose-block{border:1px solid var(--border);border-radius:13px;padding:13px;margin-bottom:9px;background:var(--bg)}
.reminder-dose-title{font-weight:600;font-size:.82rem;color:var(--text);margin-bottom:9px}
.reminder-field{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:7px}
.reminder-field label{display:grid;gap:4px;font-size:.78rem;color:var(--muted)}
.reminder-field select,.reminder-field input[type=time]{border:1px solid var(--border);border-radius:10px;padding:8px 10px;font:inherit;font-size:.85rem;background:var(--card);color:var(--text)}

/* ── PROFILE ── */
.profile-view{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.profile-field{background:var(--teal-soft);border-radius:13px;padding:13px 15px}
.profile-field-label{font-size:.75rem;color:var(--muted);margin-bottom:3px}
.profile-field-value{font-weight:600;font-size:.95rem}
.bmi-display{grid-column:1/-1;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:13px 15px;display:flex;justify-content:space-between;align-items:center}
.bmi-number{font-size:1.6rem;font-weight:700;color:var(--teal-dark)}
.bmi-info{text-align:right}
.bmi-category{font-weight:600;font-size:.9rem}
.bmi-desc{font-size:.75rem;color:var(--muted)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.form-row label{display:grid;gap:5px}
.form-row label span{font-size:.8rem;color:var(--muted);font-weight:500}
.form-row input,.form-row select{border:1px solid var(--border);border-radius:11px;padding:10px 12px;font:inherit;background:var(--card);color:var(--text)}
.form-actions{display:flex;gap:12px;margin-top:6px}
.form-actions .btn{flex:1}
.save-status{padding:9px 13px;border-radius:11px;font-size:.85rem;font-weight:500;margin-bottom:13px}
.save-success{background:#c6f6d5;color:#1a6035}
.save-error{background:#fed7d7;color:#9b2c2c}

/* ── BUTTONS ── */
.btn{border:0;border-radius:15px;padding:12px 18px;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:opacity .2s,transform .1s;font-size:.87rem}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primary{background:linear-gradient(135deg,var(--teal),#287b91);color:#fff}
.btn-secondary{background:var(--card);color:var(--teal-dark);border:1px solid var(--border)}
.btn-danger{background:#fff5f5;color:var(--danger);border:1px solid #fed7d7}
.btn-google{background:var(--card);color:#444;border:1px solid #ddd;margin-top:9px;font-size:.85rem}
.btn-small{padding:7px 13px;border-radius:11px;font-size:.78rem}
.full-width{width:100%;margin-top:7px}
.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── FOOTER ── */
.app-footer{background:var(--card);border-top:1px solid var(--border);padding:14px;text-align:center;font-size:.75rem;color:var(--muted)}
.app-footer strong{color:var(--teal-dark)}

/* ── EMPTY STATE ── */
.empty-state{color:var(--muted);padding:20px;border:1px dashed var(--border);border-radius:14px;text-align:center;font-size:.88rem}

/* ── RESPONSIVE ── */
@media(max-width:580px){
  .summary-grid,.preview-grid,.action-grid,.form-row,.profile-view,.trends-summary{grid-template-columns:1fr}
  .card{padding:16px}
  .auth-card{padding:22px 16px}
  .ai-value{font-size:1.6rem}
  .bmi-display{flex-direction:column;gap:8px;text-align:center}
  .bmi-info{text-align:center}
}

/* ── UPLOAD OPTIONS ── */
.upload-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.upload-btn-label { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; border:1px solid var(--border); border-radius:14px; padding:14px 10px; cursor:pointer; font-weight:600; font-size:.85rem; color:var(--teal-dark); background:var(--teal-soft); text-align:center; transition:background .2s; }
.upload-btn-label:hover { background:#d0eeeb; }
.upload-btn-label input[type=file] { display:none; }
.image-file-name { font-size:.78rem; color:var(--muted); padding:6px 10px; background:var(--bg); border-radius:10px; margin-bottom:10px; }
