:root{--bg:#0f172a;--surface:#1e293b;--border:#334155;--text:#f1f5f9;--muted:#94a3b8;--accent:#e94560;--green:#22c55e;--orange:#f97316;--red:#ef4444;--yellow:#eab308;--protein:#a78bfa;--blue:#38bdf8;--radius:12px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.screen{min-height:100vh;padding:24px 16px 48px}input,select,textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:15px;padding:10px 12px;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}.btn-primary{width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:14px;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .15s;margin-bottom:8px}.btn-primary:hover{opacity:.88}.btn-primary:active{opacity:.75}.btn-secondary{width:100%;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:12px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;margin-bottom:8px}.btn-secondary:hover{background:rgba(233,69,96,.08)}.pin-dots{display:flex;gap:16px;margin-bottom:24px}.pin-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);background:transparent;transition:background .15s,border-color .15s}.pin-dot.filled{background:var(--accent);border-color:var(--accent)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;width:264px}.pin-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:22px;font-weight:600;height:64px;cursor:pointer;transition:background .12s}.pin-btn:hover{background:#2d3f55}.pin-btn:active{background:var(--accent)}.progress-bar{width:100%;height:6px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .4s ease}.meal-item{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:8px}.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.05em}.badge-high{background:rgba(34,197,94,.15);color:var(--green)}.badge-medium{background:rgba(249,115,22,.15);color:var(--orange)}.badge-low{background:rgba(239,68,68,.15);color:var(--red)}.warning-box{background:rgba(234,179,8,.1);border:1px solid var(--yellow);border-radius:var(--radius);padding:12px;margin-bottom:12px;font-size:13px;color:var(--yellow)}.field-warn input{border-color:var(--orange)!important}.label{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(1turn)}}.photo-preview{width:100%;max-height:260px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:12px}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .15s;margin-bottom:12px}.upload-zone:hover{border-color:var(--accent)}.section-header{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;margin-top:20px}.divider{height:1px;background:var(--border);margin:20px 0}