:root {
  --bg:#f6f8fb; --card:#fff; --text:#0f172a; --muted:#64748b; --line:#e2e8f0;
  --accent:#2563eb; --accent-soft:#eff6ff; --good:#0f9d68; --good-soft:#ecfdf3;
  --warn:#b45309; --warn-soft:#fff7ed; --danger:#b91c1c; --danger-soft:#fef2f2; --shadow:0 12px 30px rgba(15,23,42,.06);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}
.topbar{background:#0f172a;color:#fff;padding:18px max(18px,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;gap:18px;align-items:center}.brand-block{display:flex;align-items:center}.ai-usage-pill{border:1px solid #334155;background:#111827;color:#fff;border-radius:999px;padding:8px 12px;font-weight:750;font-size:12px;white-space:nowrap}.ai-usage-pill:hover{background:#1e293b}
.brand{font-size:28px;font-weight:800;letter-spacing:-.035em;line-height:1;color:#fff}.header-right{display:flex;align-items:center;gap:10px;margin-left:auto}.date-nav{display:flex;align-items:center;gap:7px}.date-nav input{background:#fff;border:0;border-radius:10px;padding:9px 11px;color:#0f172a}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid #334155;background:#111827;color:#fff}
.tabs{position:sticky;top:0;z-index:10;display:flex;gap:4px;overflow:auto;padding:8px max(12px,calc((100vw - 1200px)/2));background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.tab{border:0;background:transparent;color:#475569;border-radius:9px;padding:10px 13px;white-space:nowrap}.tab.active{background:#0f172a;color:#fff}
.container{max-width:1200px;margin:0 auto;padding:22px 18px 44px}.panel{display:none}.panel.active{display:block}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:17px}.card h2,.card h3{margin:0 0 6px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.muted{color:var(--muted);font-size:13px}.subtle{color:#94a3b8;font-size:12px}.metric-label{font-size:13px;color:var(--muted)}.big{font-size:30px;font-weight:850;letter-spacing:-.03em}.section-title{font-size:15px;font-weight:800;margin:5px 0 12px}
.metric-card .small-line{display:flex;justify-content:space-between;margin-top:7px;font-size:12px;color:#475569}.progress{height:7px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-top:10px}.progress>span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:9px 12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.soft{background:#f8fafc}.btn.danger{color:var(--danger)}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;font-weight:750;color:#475569}.field input,.field select,.field textarea{border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;background:#fff;color:var(--text);min-width:0}.full{grid-column:1/-1}
.food-row,.workout-row,.log-row{border:1px solid var(--line);border-radius:13px;background:#fff;padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.row-main{min-width:0}.row-title{font-weight:780}.row-meta{font-size:12px;color:var(--muted);margin-top:4px}.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.badge{display:inline-flex;align-items:center;gap:4px;background:#f1f5f9;color:#475569;border-radius:999px;padding:4px 8px;font-size:11px}.badge.blue{background:#eff6ff;color:#1d4ed8}.badge.green{background:var(--good-soft);color:#067647}.badge.orange{background:var(--warn-soft);color:#b45309}.badge.red{background:var(--danger-soft);color:#991b1b}
.delete{border:0;background:transparent;color:#94a3b8;font-size:18px}.search-row{display:flex;gap:8px}.search-row input{flex:1;border:1px solid #cbd5e1;border-radius:10px;padding:10px}.food-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.food-option{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px}.food-option strong{display:block}.food-option span{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.micro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.micro{background:#f8fafc;border-radius:11px;padding:10px}.micro .v{font-weight:820;margin-top:4px}.source-note{font-size:11px;color:#64748b;margin-top:4px}
.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed #cbd5e1;border-radius:13px}.callout{border:1px solid #bfdbfe;background:var(--accent-soft);border-radius:13px;padding:12px;font-size:13px}.callout.good{border-color:#a7f3d0;background:var(--good-soft)}.callout.warn{border-color:#fed7aa;background:var(--warn-soft)}.callout.danger{border-color:#fecaca;background:var(--danger-soft);color:#991b1b}
.mini-stat{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.mini-stat:last-child{border-bottom:0}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-box{background:#f8fafc;border-radius:11px;padding:10px}.stat-box .n{font-weight:850;font-size:20px;margin-top:3px}
.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:72px 1fr 80px;gap:9px;align-items:center;font-size:12px}.bar-track{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden}.bar-fill{height:100%;background:#0f172a;border-radius:inherit}
.ai-textarea{width:100%;min-height:125px;resize:vertical}.ai-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ai-result{margin-top:12px}.ai-answer{white-space:normal;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;line-height:1.55}.loading{padding:12px;background:#f8fafc;border-radius:10px;color:var(--muted)}
.verification{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.verification-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkline{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.checkline:last-child{border-bottom:0}
.footer{border-top:1px solid var(--line);padding:15px 18px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#94a3b8;font-size:12px}.link-btn{border:0;background:none;color:#475569;margin-left:8px}.link-btn.danger{color:var(--danger)}.file-label{cursor:pointer}.toast{position:fixed;right:20px;bottom:20px;background:#0f172a;color:#fff;padding:11px 14px;border-radius:11px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:none}
.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.table th{color:#475569}.nowrap{white-space:nowrap}.action-row{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-block;border-radius:999px;padding:4px 8px;background:#f1f5f9;font-size:11px}
@media(max-width:940px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.micro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.topbar{flex-direction:column;align-items:flex-start}.header-right{width:100%;margin-left:0;justify-content:space-between;flex-wrap:wrap}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.food-results{grid-template-columns:1fr}.micro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.verification-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:58px 1fr 62px}}
.hp-track{height:7px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-top:7px}.hp-track>span{display:block;height:100%;border-radius:inherit;background:var(--good)}.micro.low .hp-track>span{background:var(--warn)}.micro.progressing .hp-track>span{background:var(--accent)}.micro.reached .hp-track>span{background:var(--good)}.micro.missing .hp-track>span{background:#cbd5e1}.hp-label{font-size:10px;color:#64748b;margin-top:4px;text-align:right}

.ai-usage-popover{position:fixed;top:72px;right:max(18px,calc((100vw - 1200px)/2));width:min(360px,calc(100vw - 36px));background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 45px rgba(15,23,42,.18);z-index:25;padding:14px}.ai-usage-popover .usage-total{font-size:24px;font-weight:850}.usage-user{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:12px}.usage-user:last-child{border-bottom:0}.usage-muted{color:var(--muted);font-size:11px}.usage-wrap{margin-top:8px}.usage-track{height:7px;background:#eef2f7;border-radius:999px;overflow:hidden}.usage-track>span{display:block;height:100%;background:var(--accent);border-radius:inherit}


.hidden{display:none !important}
#authGate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#eef2f8}
.auth-gate[hidden]{display:none!important}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid #dbe2ee;border-radius:24px;padding:28px;box-shadow:0 20px 60px rgba(15,23,42,.12)}
.auth-brand{font-size:34px;font-weight:800;letter-spacing:-.04em;margin-bottom:4px}
.auth-subtitle{color:#64748b;margin-bottom:22px}
.auth-field{display:grid;gap:7px;margin-bottom:14px}
.auth-field label{font-size:14px;font-weight:700;color:#334155}
.auth-field input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;color:#0f172a}
.auth-submit{width:100%;margin-top:4px}
.auth-switch{width:100%;margin-top:8px}
.auth-message{min-height:22px;margin-top:12px;font-size:14px}
.auth-message.error{color:#b91c1c}.auth-message.success{color:#166534}
.auth-note{margin-top:16px;color:#64748b;font-size:12px;line-height:1.5}
.auth-account{position:fixed;right:20px;bottom:18px;z-index:50;display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #dbe2ee;border-radius:999px;padding:8px 12px;box-shadow:0 8px 24px rgba(15,23,42,.1);font-size:13px}
