.header-actions,.button-row{display:flex;gap:9px}.voice-button{width:43px;height:43px;border:0;border-radius:50%;background:#ff695f;color:#fff;box-shadow:0 0 0 6px #ff695f1c;cursor:pointer}.secondary{border:1px solid var(--line);background:var(--card2);color:var(--text);padding:9px 13px;border-radius:12px;cursor:pointer}.text-button{border:0;background:none;color:var(--accent);font-weight:800;cursor:pointer}.chart-card{margin-top:28px;background:var(--card);border:1px solid var(--line);padding:20px;border-radius:22px}.chart-card canvas{width:100%;display:block}.chart-empty{text-align:center;color:var(--muted);margin:-110px 0 90px}.modal textarea{width:100%;resize:vertical;background:#101714;border:1px solid #35433d;color:var(--text);border-radius:14px;padding:13px;font:inherit}.record{border:1px solid #6c3733;background:#30201f;color:#ffc0bb;font-weight:800;padding:13px;border-radius:14px;margin-top:12px;cursor:pointer}.record.active{background:#ff695f;color:#fff}.helper{font-size:.82rem;color:var(--muted)}.parsed-item{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:10px 0}.parsed-item span{color:var(--muted);font-size:.82rem}.api-box{margin-top:18px;background:#101714;padding:14px;border-radius:14px}.api-box b,.api-box code,.api-box small{display:block}.api-box code{overflow-wrap:anywhere;color:var(--accent);font-size:.76rem;margin:8px 0}.api-box small{color:var(--muted)}.auth-page{display:grid;place-items:center;padding:20px}.auth-wrap{width:min(430px,100%);padding:0}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}.brand-mark{width:52px;height:52px;border-radius:17px;background:var(--accent);color:#172008;font-size:1.7rem;font-weight:900;display:grid;place-items:center}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:24px}.auth-card>p{color:var(--muted)}.auth-card label{display:block;color:var(--muted);font-size:.85rem;margin:14px 0}.auth-card input{width:100%;display:block;margin-top:6px;background:#101714;border:1px solid #35433d;color:var(--text);border-radius:12px;padding:13px}.auth-switch{display:block;text-align:center;color:var(--accent);text-decoration:none;margin-top:17px;font-size:.9rem}

/* v1.17 subscriptions */
.subscription-bar{max-width:760px;margin:10px auto 0;padding:10px 14px;border:1px solid rgba(255,255,255,.09);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.035)}.subscription-bar div{display:flex;flex-direction:column;gap:2px}.subscription-bar span{font-size:12px;opacity:.72}.compact{padding:8px 12px}.subscription-alert{max-width:760px;margin:10px auto;padding:11px 14px;border-radius:14px;background:rgba(220,90,80,.15);border:1px solid rgba(220,90,80,.35)}.plan-card{padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:18px;margin:10px 0;background:rgba(255,255,255,.025)}.plan-card h3{margin:5px 0}.plan-card>b{font-size:22px}.plan-card p{opacity:.78;line-height:1.45}.plan-card.accent{border-color:rgba(100,210,150,.35)}

/* v1.18 admin */
.admin-users{display:grid;gap:12px}.admin-user{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--card)}.admin-user-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.admin-user-head div{display:flex;flex-direction:column;gap:4px}.admin-user-head span{font-size:12px;color:var(--muted)}.admin-user-head>b{font-size:12px;color:var(--accent)}.admin-plan{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:14px}.admin-plan select,.admin-plan input{background:#101714;border:1px solid #35433d;color:var(--text);border-radius:12px;padding:10px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.admin-actions form{margin:0}@media(max-width:600px){.admin-plan{grid-template-columns:1fr}.admin-plan button{width:100%}}
/* v1.19 assistant live status */
.assistant-status{min-height:22px;margin:8px 0 10px;color:var(--muted,#9aa7a1);font-size:13px;display:flex;align-items:center;gap:8px}.assistant-status.busy:before{content:"";width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:assistant-spin .7s linear infinite}@keyframes assistant-spin{to{transform:rotate(360deg)}}#assistantMic.recording{outline:2px solid currentColor;outline-offset:2px}
/* v1.21 unified vector icon system */
.ui-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex:0 0 auto;color:currentColor}
.icon-btn .ui-icon,.photo-button .ui-icon,.voice-button .ui-icon,.fav .ui-icon,.water-undo .ui-icon{width:22px;height:22px}
.meal-icon .ui-icon{width:24px;height:24px}
.water-add .ui-icon{width:18px;height:18px;margin-right:2px}
.secondary .ui-icon{width:18px;height:18px;margin-right:6px}
.locked-feature{position:relative;opacity:.82}
.locked-feature .feature-lock{position:absolute;width:12px;height:12px;right:2px;bottom:2px;stroke-width:2.2}


/* v1.73 legal / consent / payment */
.registration-consents{display:grid;gap:10px;margin:14px 0}.consent-row{display:flex!important;align-items:flex-start;gap:10px;line-height:1.35;font-size:14px}.consent-row input{width:18px!important;height:18px!important;min-width:18px;margin-top:1px}.consent-row a{text-decoration:underline}.consent-row.optional{opacity:.86}.pay-consent{margin:14px 0}.legal-page{max-width:860px;margin:0 auto;padding:28px 16px 60px}.legal-card{margin-top:16px;padding:24px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(255,255,255,.025)}.legal-card h1{margin:8px 0 22px}.legal-card h2{margin-top:24px;font-size:19px}.legal-card p{line-height:1.62;opacity:.9}.legal-date{margin-top:30px;opacity:.6!important}

/* v1.74 subscription center and tariff comparison */
.plan-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-features{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}.plan-features li{position:relative;padding-left:27px;line-height:1.35}.plan-features li:before{content:"✓";position:absolute;left:0;top:-1px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#36c878;color:#07130d;font-size:13px;font-weight:900}.plan-features li.no{opacity:.55}.plan-features li.no:before{content:"—";background:rgba(255,255,255,.12);color:var(--muted)}.subscription-summary{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card2)}.subscription-summary h3{font-size:24px;margin:6px 0}.subscription-summary p{margin:8px 0;color:var(--muted)}.payment-history{margin-top:20px}.payment-list{display:grid;gap:8px}.payment-row{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:14px}.payment-row>div{display:flex;flex-direction:column;gap:3px}.payment-row>div:last-child{text-align:right}.payment-row span,.muted{color:var(--muted);font-size:12px}@media(max-width:720px){.plan-compare{grid-template-columns:1fr}.plans-modal{max-height:88dvh;overflow:auto}.subscription-summary .button-row{flex-direction:column;align-items:stretch}.subscription-summary .button-row button{width:100%}}

/* v1.78 desktop tariff comparison */
.plans-modal{width:min(1040px,calc(100vw - 48px));max-width:1040px;max-height:calc(100dvh - 48px);overflow:auto;padding:24px}.plan-compare{grid-template-columns:repeat(3,minmax(250px,1fr));gap:18px;align-items:stretch}.plan-card{margin:0;padding:22px;display:flex;flex-direction:column;min-width:0}.plan-card-head{min-height:112px}.plan-card h3{font-size:22px;margin:7px 0 8px}.plan-price{display:block;font-size:25px;line-height:1.15;white-space:nowrap}.plan-price small{font-size:15px;font-weight:700;color:var(--muted)}.plan-features{margin:18px 0 22px;grid-template-rows:repeat(6,minmax(44px,auto));gap:4px}.plan-features li{display:flex;align-items:flex-start;padding-top:4px;padding-bottom:4px}.plan-features li:before{top:4px}.plan-card-foot{margin-top:auto;display:flex;flex-direction:column;gap:14px;min-height:132px;justify-content:flex-end}.plan-note{font-size:13px;line-height:1.4;color:var(--muted);min-height:48px}.pay-consent{min-height:62px;margin:0}.plan-card-foot .wide{min-height:52px}.plan-card.accent{box-shadow:0 0 0 1px rgba(100,210,150,.08) inset}
@media(max-width:900px){.plans-modal{width:min(720px,calc(100vw - 32px))}.plan-compare{grid-template-columns:1fr}.plan-card-head{min-height:0}.plan-features{grid-template-rows:none}.plan-card-foot{min-height:0}.pay-consent{min-height:0}}
@media(max-width:520px){.plans-modal{width:calc(100vw - 20px);padding:16px;max-height:92dvh}.plan-card{padding:18px}.plan-price{font-size:23px}}

/* v1.79: promotional pricing through 2026-12-31 */
.promo-price{display:flex;align-items:center;gap:9px;min-height:24px;margin:2px 0 5px}.old-price{font-size:16px;font-weight:800;color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px;opacity:.85}.promo-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;background:rgba(181,255,67,.12);border:1px solid rgba(181,255,67,.24);color:#b5ff43;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.plan-card-head{min-height:142px}@media(max-width:900px){.plan-card-head{min-height:0}}

/* v1.85 AI retry */
.assistant-retry{align-self:flex-start;margin:0 24px 8px;padding:8px 14px;border:1px solid #4c6258;border-radius:999px;background:#1a2822;color:#d9ff61;font-weight:700;cursor:pointer}

/* v1.85 — tariff dialog owns its width; no horizontal scrolling on desktop. */
dialog#plans{width:min(1120px,calc(100vw - 48px));max-width:1120px;margin:auto;overflow:visible;}
dialog#plans .plans-modal{width:100%;max-width:none;max-height:calc(100dvh - 48px);overflow-y:auto;overflow-x:hidden;}
dialog#plans .plan-compare{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:900px){dialog#plans{width:min(720px,calc(100vw - 24px));max-width:720px;}dialog#plans .plan-compare{grid-template-columns:1fr;}dialog#plans .plans-modal{max-height:92dvh;}}
@media(max-width:520px){dialog#plans{width:calc(100vw - 12px);max-width:calc(100vw - 12px);}dialog#plans .plans-modal{padding:16px;}}

/* v1.88 payment diagnostics */
.payment-diagnostics{margin:24px 0}.payment-diagnostics-result{display:grid;gap:10px;margin-top:12px}.payment-diag-card{padding:12px;border:1px solid var(--border,#33413b);border-radius:14px;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.payment-diag-card code{font-size:12px}.diag-error{margin-top:6px;color:#ff9d9d}
