:root{--bg: #fff5f2;--surface: #ffffff;--blush: #ffe3e6;--ink: #2b1a20;--muted: #8b6f76;--line: #f2dcdc;--rose: #d9466f;--rose-deep: #b8325a;--mint: #2fb383;--mint-soft: #dcf5ea;--honey: #f4b23e;--honey-soft: #fff0d2;--danger: #c2413a;--font-display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--font-body: "Nunito Sans", "Segoe UI", system-ui, sans-serif;--radius: 22px;--shadow: 0 6px 20px rgba(185, 70, 100, .08);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.01em}h1{font-size:1.85rem;font-weight:800}h2{font-size:1.15rem;font-weight:700}h3{font-size:1rem;font-weight:700}.app{display:flex;flex-direction:column;min-height:100%;max-width:520px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 14px) max(20px,env(safe-area-inset-right,0px)) 4px max(20px,env(safe-area-inset-left,0px))}.wordmark{font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--rose);letter-spacing:-.02em}.status{font-size:.72rem;font-weight:700;color:var(--muted);background:var(--surface);border-radius:999px;padding:4px 10px}.status.ok{color:var(--mint)}.screen{flex:1;padding:8px max(20px,env(safe-area-inset-right,0px)) 110px max(20px,env(safe-area-inset-left,0px))}.stack{display:flex;flex-direction:column;gap:16px}.greeting{display:flex;flex-direction:column;gap:2px;padding:8px 0 4px}.greeting .date{font-size:.85rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.card{background:var(--surface);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0;box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.card.rose{background:var(--rose);color:#fff;box-shadow:0 10px 28px #d9466f47}.card.rose .muted{color:#ffffffd1}.pill{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 10px;background:var(--blush);color:var(--rose-deep)}.card.rose .pill{background:#fff3;color:#fff}.eyebrow{margin:0;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.muted{margin:0;color:var(--muted);font-size:.9rem}.error{color:var(--danger);font-weight:700}.plain{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.wins-score{display:flex;align-items:baseline;gap:6px}.wins-score strong{font-family:var(--font-display);font-size:2.6rem;font-weight:800;line-height:1}.wins{display:flex;flex-direction:column;gap:8px}.wins-row{display:grid;grid-template-columns:64px repeat(7,1fr);gap:6px;align-items:center}.wins-day{font-size:.72rem;font-weight:800;text-align:center;opacity:.85}.wins-day.today{background:#fff;color:var(--rose);border-radius:999px;padding:1px 0;opacity:1}.wins-label{font-size:.8rem;font-weight:700}.tick{aspect-ratio:1;max-width:100%;border-radius:50%;background:#ffffff2e;display:grid;place-items:center}.tick svg{width:62%;height:62%}.tick.on{background:#fff;color:var(--mint)}.rings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ring{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.ring svg{width:100%;max-width:150px;height:auto}.ring .ring-track{stroke:var(--blush)}.ring .ring-fill{stroke:var(--rose);transition:stroke-dashoffset .6s ease}.ring.protein .ring-track{stroke:var(--honey-soft)}.ring.protein .ring-fill{stroke:var(--honey)}.ring-big{font-family:var(--font-display);font-weight:800;font-size:26px;fill:var(--ink)}.ring-small{font-size:11px;font-weight:700;fill:var(--muted)}.ring-label{font-size:.85rem;font-weight:800}.card.row-card{flex-direction:row;align-items:center;gap:14px;text-align:left;width:100%}.row-icon{flex:none;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--blush);color:var(--rose)}.row-icon.mint{background:var(--mint-soft);color:var(--mint)}.row-icon.honey{background:var(--honey-soft);color:#b77a0c}.row-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chev{color:var(--muted);font-size:1.4rem}.streak{display:flex;align-items:center;gap:10px;background:var(--honey-soft);border-radius:18px;padding:12px 16px;font-weight:800;color:#8a5a06}.streak svg{flex:none;width:22px;height:22px;color:var(--honey)}.quote{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.35;margin:0}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:15px 18px;background:var(--rose);color:#fff;font:800 1rem var(--font-display);cursor:pointer;box-shadow:0 8px 20px #d9466f40}.button.ghost{background:var(--surface);color:var(--rose);box-shadow:var(--shadow)}.button:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--honey);outline-offset:2px}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:800;color:var(--muted)}.form input,.form select{font:700 1rem var(--font-body);color:var(--ink);background:var(--bg);border:2px solid transparent;border-radius:14px;padding:12px;width:100%}.form input:focus,.form select:focus{border-color:var(--blush)}.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:999px;padding:4px;gap:4px}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;border-radius:999px;padding:10px;font:800 .9rem var(--font-display);color:var(--muted);cursor:pointer}.segmented button.on{background:var(--surface);color:var(--rose);box-shadow:var(--shadow)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat{background:var(--surface);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.stat-label{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.stat.feature{background:var(--rose);color:#fff}.stat.feature .stat-label{color:#ffffffd9}.chart{width:100%;height:auto}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font-size:10px;font-weight:700;font-family:var(--font-body)}.chart .line{fill:none;stroke:var(--rose);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--blush)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-weight:800;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.num{text-align:right;font-variant-numeric:tabular-nums}.phase{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:800}.phase.FAT_LOSS{background:var(--blush);color:var(--rose-deep)}.phase.MAINTENANCE{background:var(--mint-soft);color:#1d7a57}.phase.REVERSE_DIET{background:var(--honey-soft);color:#8a5a06}.soon-hero{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.soon-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.soon-list li{display:flex;gap:10px;align-items:center;font-weight:700}.soon-list li:before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--rose)}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 max(12px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 10px) max(12px,env(safe-area-inset-left,0px));pointer-events:none}.tabbar-inner{pointer-events:auto;display:flex;width:100%;max-width:496px;background:var(--surface);border-radius:26px;padding:6px;box-shadow:0 10px 30px #2b1a2024}.tab{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:20px;font:800 .68rem var(--font-display);cursor:pointer}.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tab.active{color:var(--rose);background:var(--blush)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.screen.bare{padding-top:calc(env(safe-area-inset-top,0px) + 24px);padding-bottom:32px}.button:disabled{opacity:.6;cursor:default}.button.ghost{flex:none}.link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--rose);font:800 .9rem var(--font-display);cursor:pointer;padding:6px}.notice{margin:0;color:#1d7a57;font-weight:700}.notice-card{background:var(--mint-soft);box-shadow:none}.field{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:800;color:var(--muted)}.field input{font:700 1rem var(--font-body);color:var(--ink);background:var(--bg);border:2px solid transparent;border-radius:14px;padding:13px;width:100%}.field input:focus{border-color:var(--blush);outline:none}.auth{display:flex;flex-direction:column;gap:24px;padding-top:24px}.auth-hero{display:flex;flex-direction:column;gap:10px}.wordmark.big{font-size:1.4rem}.auth-hero h1{font-size:2.3rem}.auth-form{gap:16px}.onboarding{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 80px)}.progress{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.progress span{height:6px;border-radius:999px;background:var(--blush)}.progress span.on{background:var(--rose)}.onboarding-actions{display:flex;gap:10px;margin-top:auto;padding-top:8px}.onboarding-actions .button:not(.ghost){flex:1}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice-col{display:flex;flex-direction:column;gap:12px}.choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;border:2px solid transparent;background:var(--surface);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:4px;cursor:pointer;box-shadow:var(--shadow);font:inherit;color:var(--ink)}.card .choice{background:var(--bg);box-shadow:none}.choice strong{font-family:var(--font-display);font-size:1.05rem}.choice span{color:var(--muted);font-size:.88rem}.choice.on{border-color:var(--rose);background:var(--surface)}.choice.on strong{color:var(--rose)}.mini-weeks{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;align-items:end;height:84px}.mini-week{display:flex;flex-direction:column;align-items:center;gap:4px}.mini-bar{width:100%;max-width:18px;border-radius:6px 6px 3px 3px;background:var(--rose)}.mini-label{font-size:.65rem;font-weight:800;color:var(--muted)}.tick.future{background:#ffffff14}.ring.over .ring-fill{stroke:var(--rose-deep)}.card.tap{border:0;font:inherit;color:inherit;cursor:pointer}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#2b1a2066;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;background:var(--surface);border-radius:28px 28px 0 0;padding:20px max(20px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 24px) max(20px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:16px;animation:rise .18s ease-out}@keyframes rise{0%{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:center;justify-content:space-between}.icon-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--bg);width:36px;height:36px;border-radius:50%;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--bg);color:var(--muted);border-radius:999px;padding:9px 14px;font:800 .85rem var(--font-display);cursor:pointer}.chip.on{background:var(--rose);color:#fff}.details{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0}.details dt{color:var(--muted);font-weight:700;font-size:.88rem}.details dd{margin:0;font-weight:800}.loading{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:700;padding:40px 0}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--blush);border-top-color:var(--rose);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.demo-cta{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.demo-cta .button{width:100%}.muted.small{font-size:.78rem}.demo-badge{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;background:var(--honey-soft);color:#8a5a06;border-radius:999px;padding:6px 12px;font:800 .75rem var(--font-display)}.day-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}.day-switch h1{font-size:1.6rem;text-align:center;flex:1}.icon-button:disabled{opacity:.35;cursor:default}.icon-button.small{width:30px;height:30px;font-size:1.1rem;flex:none}.icon-button.big{width:50px;height:50px;border-radius:16px;background:var(--rose);color:#fff;display:grid;place-items:center;flex:none}.icon-button.big svg{width:26px;height:26px}.food-summary{flex-direction:row;align-items:center;gap:18px}.food-summary-main{display:flex;flex-direction:column;gap:2px;min-width:0}.food-summary-main strong{font-family:var(--font-display);font-size:2.6rem;font-weight:800;line-height:1}.food-summary-side{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.bar{display:flex;flex-direction:column;gap:6px}.bar-head{display:flex;justify-content:space-between;font-size:.8rem;font-weight:800}.bar-track{height:10px;border-radius:999px;background:#ffffff40;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:999px;background:#fff}.mini-macros{display:flex;gap:12px;font-size:.78rem;font-weight:700;opacity:.9;flex-wrap:wrap}.meal{gap:10px}.meal-cal{font-weight:800;color:var(--muted);font-size:.9rem}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.entry-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.entry-text{flex:1;min-width:0;display:flex;flex-direction:column}.entry-cal{font-weight:800;font-variant-numeric:tabular-nums}.food-name{font-weight:700;overflow-wrap:anywhere}.food-meta{font-size:.8rem;color:var(--muted)}.meal-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.chip-sub{opacity:.75;font-weight:700;margin-left:4px}.chip.small{padding:7px 12px;font-size:.8rem}.stack.tight{gap:10px}.link.left{align-self:flex-start;padding-left:0}.button.small{padding:10px 16px;font-size:.9rem;box-shadow:none;flex:none}.sheet.tall{height:min(92vh,92dvh)}.sheet-body{flex:1;overflow-y:auto;margin:0 -4px;padding:0 4px 8px}.search-row{display:flex;gap:10px}.search-row input,.inline-form input{flex:1;min-width:0;font:700 1rem var(--font-body);color:var(--ink);background:var(--bg);border:2px solid transparent;border-radius:16px;padding:13px 14px}.search-row input:focus,.inline-form input:focus{border-color:var(--blush);outline:none}.inline-form{display:flex;gap:8px;align-items:center}.empty{display:flex;flex-direction:column;gap:10px;padding:8px 0}.food-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.food-list button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;width:100%;text-align:left;padding:12px 4px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px;cursor:pointer;font:inherit;color:inherit}.food-list button:disabled{opacity:.5}.macro-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:var(--bg);border-radius:18px;padding:12px;text-align:center}.macro-strip div{display:flex;flex-direction:column}.macro-strip strong{font-family:var(--font-display);font-size:1.3rem;font-variant-numeric:tabular-nums}.macro-strip span{font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase}.check{display:flex;align-items:center;gap:10px;font-weight:700}.check input{width:22px;height:22px;accent-color:var(--rose)}.scanner{position:relative;border-radius:22px;overflow:hidden;background:#000;aspect-ratio:4 / 3;max-width:100%}.scanner video{width:100%;height:100%;object-fit:cover;display:block}.scanner-frame{position:absolute;top:30%;right:12%;bottom:30%;left:12%;border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 999px #00000059}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:30;background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-weight:800;font-size:.9rem;max-width:calc(100vw - 40px);text-align:center}.credit{text-align:center}.form.three{grid-template-columns:repeat(3,1fr)}.card.due{outline:3px solid var(--rose);outline-offset:-3px}.card.tap:disabled{cursor:default}.checkin{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 80px)}.checkin-head{display:flex;align-items:center;gap:12px}.checkin-head .progress{flex:1}.stat-value.small{font-size:1.15rem}.textarea{width:100%;font:600 1rem var(--font-body);color:var(--ink);background:var(--bg);border:2px solid transparent;border-radius:16px;padding:12px;resize:vertical}.textarea:focus{border-color:var(--blush);outline:none}.photo-pick{display:grid;place-items:center;min-height:180px;border:2px dashed var(--blush);border-radius:18px;cursor:pointer;color:var(--rose);font-weight:800;overflow:hidden;text-align:center;padding:12px}.photo-pick input{position:absolute;width:1px;height:1px;opacity:0}.photo-pick img{max-width:100%;max-height:320px;border-radius:12px}.plan-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plan-numbers div{display:flex;flex-direction:column}.plan-numbers strong{font-family:var(--font-display);font-size:2.2rem;font-weight:800;line-height:1.05}.plan-numbers span{font-size:.85rem;font-weight:700;opacity:.85}.confirm{background:var(--bg);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.confirm p{margin:0}.chip:disabled{cursor:default}.next-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.next-list li{display:flex;justify-content:space-between;gap:12px;font-weight:700;font-size:.92rem}.next-list li span:last-child{opacity:.85;white-space:nowrap;font-variant-numeric:tabular-nums}.card.rose .button.ghost{color:var(--rose)}.workout-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.session{padding-bottom:110px}.session-title{display:flex;flex-direction:column;min-width:0}.exercise{gap:8px}.exercise-links{display:flex;gap:16px;align-items:center}.exercise-links a{color:var(--rose);font:800 .9rem var(--font-display);text-decoration:none}.exercise-links .link{padding:0}.last-time{margin:0;font-size:.82rem;font-weight:700;color:#1d7a57;background:var(--mint-soft);border-radius:10px;padding:6px 10px}.set-head,.set-row{display:grid;grid-template-columns:34px 1fr 1fr 48px;gap:8px;align-items:center}.set-head{font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.set-head.timed,.set-row.timed{grid-template-columns:34px 1fr 48px}.set-row input{width:100%;min-width:0;font:800 1.05rem var(--font-body);color:var(--ink);background:var(--bg);border:2px solid transparent;border-radius:12px;padding:10px;text-align:center;font-variant-numeric:tabular-nums}.set-row input:focus{border-color:var(--blush);outline:none}.set-num{font-weight:800;color:var(--muted);text-align:center}.set-check{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:48px;height:44px;border-radius:12px;background:var(--bg);color:var(--muted);font-size:1.2rem;font-weight:800;cursor:pointer}.set-check.on{background:var(--mint);color:#fff}.set-row.done input{background:var(--mint-soft)}.rest-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);z-index:25;width:min(480px,calc(100vw - 24px));display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:22px;padding:10px 12px 10px 18px;box-shadow:0 10px 30px #2b1a204d}.rest-bar .eyebrow{color:#ffffffb3}.rest-bar strong{flex:1;font-family:var(--font-display);font-size:1.6rem;font-variant-numeric:tabular-nums}.set-row input::placeholder{color:var(--muted);opacity:.45;font-weight:700}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-stats div{background:var(--bg);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.mini-stats span{font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.mini-stats strong{font-family:var(--font-display);font-size:1.1rem;font-variant-numeric:tabular-nums;white-space:nowrap}.down{color:#1d7a57}.up{color:#b5781a}.chart .dot{fill:var(--rose);opacity:.28}.chart .marker{fill:var(--surface);stroke:var(--rose);stroke-width:2.5}.chart .end{fill:var(--rose);stroke:var(--surface);stroke-width:2.5}.legend{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.78rem;font-weight:700;color:var(--muted)}.legend .key{display:inline-block;flex:none}.legend .key.dot{width:8px;height:8px;border-radius:50%;background:var(--rose);opacity:.35}.legend .key.line{width:16px;height:3px;border-radius:2px;background:var(--rose);margin-left:10px}.small{font-size:.82rem}.span2{grid-column:1 / -1}.details dd.wrap{overflow-wrap:anywhere}.measure-table{width:100%;border-collapse:collapse;font-size:.88rem}.measure-table th{text-align:left;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 4px}.measure-table td{padding:8px 4px;border-top:1px solid var(--line);font-weight:700}.measure-table .num{text-align:right;font-variant-numeric:tabular-nums}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-add,.photo-thumb{position:relative;aspect-ratio:3 / 4;border-radius:14px;overflow:hidden;border:0;padding:0;cursor:pointer}.photo-add{background:var(--bg);border:2px dashed var(--blush);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--rose);font:800 .82rem var(--font-display)}.photo-add .plus{font-size:1.8rem;line-height:1}.photo-add.busy{opacity:.6}.photo-add input{position:absolute;width:1px;height:1px;opacity:0}.photo-thumb{background:var(--blush)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb span{position:absolute;left:6px;bottom:6px;background:#2b1a209e;color:#fff;font:800 .7rem var(--font-display);padding:3px 8px;border-radius:999px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compare-side{display:flex;flex-direction:column;gap:6px}.compare-side img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:14px;background:var(--blush)}.compare-side select{border:2px solid var(--line);border-radius:12px;padding:8px;font:700 .85rem var(--font-body);background:var(--surface);color:var(--ink)}.compare .link{grid-column:1 / -1}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#1c1014f0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px}.viewer-head{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px;color:#fff;font-family:var(--font-display)}.viewer img{max-width:100%;max-height:72vh;border-radius:16px}.link.danger{color:#ff9a92}.chip.danger{background:var(--danger);color:#fff}.history{list-style:none;margin:0;padding:0}.history li{border-top:1px solid var(--line)}.history li:first-child{border-top:0}.history summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;cursor:pointer}.history summary::-webkit-details-marker{display:none}.history summary:after{content:"›";color:var(--muted);font-size:1.3rem;transition:transform .15s}.history details[open] summary:after{transform:rotate(90deg)}.history-when,.history-weight{display:flex;flex-direction:column}.history-weight{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}.history-weight span{font-size:.8rem;font-weight:800}.history-body{padding:0 0 12px;display:flex;flex-direction:column;gap:6px;font-size:.9rem}.history-body p{margin:0}.history-note{font-style:italic;color:var(--ink)}
