:root{color-scheme:dark;--bg: #0f172a;--surface: #1e293b;--text: #e2e8f0;--muted: #94a3b8;--accent: #22c55e;--danger: #ef4444}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;border:none;border-radius:10px;padding:.6rem 1rem;background:var(--surface);color:var(--text);cursor:pointer}button.active{background:var(--accent);color:#0f172a}input{font:inherit;padding:.6rem;border-radius:8px;border:1px solid var(--surface);background:var(--surface);color:var(--text)}.link-button{background:transparent;color:var(--muted);text-decoration:underline}.form-error,.camera-error{color:var(--danger)}.auth-page{max-width:360px;margin:4rem auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.auth-page form{display:flex;flex-direction:column;gap:.5rem}.dashboard{max-width:480px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.dashboard header{display:flex;justify-content:space-between;align-items:center}.dashboard nav{display:flex;gap:.75rem}.dashboard nav a{color:var(--text);text-decoration:none;background:var(--surface);padding:.5rem .75rem;border-radius:8px}.rings-row{display:flex;justify-content:space-around}.macro-ring{position:relative;width:80px;text-align:center}.macro-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.7rem}.macro-ring-label strong{font-size:1rem}.macro-ring-label em{font-style:normal;color:var(--muted)}.calories-summary{text-align:center;font-size:1.1rem}.meal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.meal-list li{display:flex;justify-content:space-between;background:var(--surface);padding:.6rem .8rem;border-radius:8px}.meal-list li.empty{justify-content:center;color:var(--muted)}.camera-capture,.barcode-scanner{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem}.camera-preview{width:100%;max-width:480px;aspect-ratio:3 / 4;object-fit:cover;border-radius:12px;background:#000}.camera-toggle{display:flex;gap:.5rem}.shutter{width:64px;height:64px;border-radius:50%;font-size:1.5rem;background:var(--accent)}.scan-reticle{position:absolute;top:35%;left:10%;right:10%;height:30%;border:3px solid var(--accent);border-radius:8px;pointer-events:none}.manual-barcode{display:flex;gap:.5rem}.fasting-timer{display:flex;flex-direction:column;align-items:center;gap:.75rem}.fasting-ring{width:140px;height:140px}.ring-track{fill:none;stroke:var(--surface);stroke-width:8}.ring-progress{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transform-origin:60px 60px;transform:rotate(-90deg);transition:stroke-dashoffset 1s linear}.fasting-readout{display:flex;flex-direction:column;align-items:center}.fasting-readout .elapsed{font-size:1.5rem;font-variant-numeric:tabular-nums}.fasting-readout .target{color:var(--muted);font-size:.85rem}.protocol-picker{display:flex;gap:.5rem}
