/* css/photo.css: тест ИИ-разбора фото (js/photo.js, 2026-10-26, ветка foto-analiz) и строка «Сборка …» в профиле.
   Префикс ph-. Размеры: кнопки и поля не ниже 44 px, шрифты не меньше 12 px (AC-НФ-2, AC-НФ-3). */
.ph-box{margin-top:12px;background:var(--surface);border-radius:var(--r-lg);padding:12px}
.ph-tag{display:inline-block;background:var(--warn-soft);color:var(--warn-ink);border:1px solid var(--warn-line);border-radius:9px;font-size:12px;font-weight:600;line-height:18px;padding:0 8px;margin-bottom:8px}
.ph-wide{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:48px;margin-top:8px}
.ph-busy{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px}
.ph-spin{width:18px;height:18px;flex:none;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:ph-spin 0.9s linear infinite}
@keyframes ph-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ph-spin{animation:none}}
.ph-err{margin:0;padding:10px 12px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r-md);color:var(--warn-ink);font-size:14px;line-height:1.35}
.ph-warn{margin:0 0 8px;font-size:13px;color:var(--warn-ink)}
.ph-h{margin:4px 0 8px;font-size:17px}
.ph-dish{background:var(--bg);border-radius:var(--r-md);padding:10px 12px;margin-bottom:8px}
.ph-dish b{display:block;font-size:15px;line-height:1.3}
.ph-dish small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.ph-dish-btns{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ph-dish-btns .btn{min-height:44px;width:100%;text-align:center;white-space:normal}
.ph-rows{display:flex;flex-direction:column;gap:8px}
.ph-row{background:var(--bg);border-radius:var(--r-md);padding:8px 10px}
.ph-r1{display:flex;align-items:flex-start;gap:6px}
.ph-nm{flex:1;min-width:0;font-size:15px;line-height:1.3;padding-top:10px;overflow-wrap:anywhere}
.ph-x{flex:none;width:44px;height:44px}
.ph-sub{display:block;color:var(--muted);font-size:12px;margin:-2px 0 4px}
.ph-r2{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ph-step{display:flex;align-items:center;gap:2px;flex:none}
.ph-step button{width:44px;height:44px;border-radius:12px;background:var(--tile);display:grid;place-items:center;font-size:18px}
.ph-step input.ph-g{width:72px;height:44px;text-align:center;font-size:16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:0 4px;-moz-appearance:textfield}
.ph-step input.ph-g::-webkit-outer-spin-button,.ph-step input.ph-g::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ph-step span{font-size:14px;color:var(--muted);padding:0 2px}
.ph-k{text-align:right;font-size:14px;font-weight:600;min-width:0;flex:1}
.ph-k small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.ph-nob{font-weight:400;color:var(--muted);font-size:13px}
.ph-total{margin-top:10px;background:var(--accent-soft);border-radius:var(--r-md);padding:10px 12px}
.ph-total b{display:block;font-size:16px}
.ph-total small{display:block;font-size:13px;color:var(--text);margin-top:2px}
.ph-acts{margin-top:4px}
/* строка «Сборка …» внизу профиля: выглядит как подпись, но нажимается (скрытый вход в тест: пять нажатий) */
.pf-build{margin:4px 0 0;text-align:center}
.pf-build-btn{min-height:44px;padding:0 12px;font-size:12px;color:var(--muted);background:none;border:0;font-family:inherit;cursor:pointer}
.pf-build-btn:active{color:var(--text)}
@media (max-width:359px){.ph-k{text-align:left;flex-basis:100%}}
