:root{--bg: #0f1115;--surface: #1a1d24;--surface-2: #232732;--border: #2e3340;--text: #e8eaed;--muted: #9aa0ab;--accent: #4ade80;--accent-ink: #052e16;--danger: #f87171}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.page{max-width:560px;margin:0 auto;padding:2rem 1.25rem 4rem}header{text-align:center;margin-bottom:1.75rem}h1{margin:0;font-size:2.25rem;letter-spacing:-.02em}.tagline{margin:.25rem 0 0;color:var(--muted)}.preview{position:relative;width:100%;line-height:0}.preview img{width:100%;height:auto;display:block}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.overlay .contour{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;filter:drop-shadow(0 0 1px rgba(0,0,0,.4));animation:pop .4s ease-out forwards}.overlay .mask-label{position:absolute;transform:translateY(-100%);color:#0b0f14;font-size:.75rem;font-weight:800;line-height:1;padding:.2rem .45rem;border-radius:6px 6px 6px 0;white-space:nowrap;opacity:0;animation:pop-label .4s ease-out forwards}.overlay .weight-badge{position:absolute;transform:translate(-50%,-50%);background:var(--accent);color:#0b0f14;font-size:.7rem;font-weight:800;line-height:1;padding:.15rem .3rem;border-radius:5px;white-space:nowrap;box-shadow:0 1px 3px #00000080;opacity:0;animation:pop-label .4s ease-out forwards}@keyframes pop{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes pop-label{0%{opacity:0}to{opacity:1}}.progress{display:flex;flex-direction:column;gap:.6rem;margin-top:1.25rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.step{display:flex;align-items:center;gap:.7rem;font-size:.95rem;color:var(--muted)}.step svg{flex:0 0 auto}.step.pending{opacity:.5}.step.active{color:var(--text)}.step.active svg{color:var(--accent)}.step.done{color:var(--text)}.step.done svg{color:var(--accent)}.step.error{color:var(--danger)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.legend-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;font-size:.85rem;font-weight:600;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;transition:opacity .15s,border-color .15s}.legend-chip:hover{border-color:var(--c)}.legend-chip .swatch{width:12px;height:12px;border-radius:50%;background:var(--c);flex:0 0 auto}.legend-chip .legend-count{font-size:.72rem;color:var(--accent-ink);background:var(--c);padding:0 .35rem;border-radius:999px;line-height:1.5}.legend-chip svg{color:var(--muted)}.legend-chip.off{opacity:.45}.legend-chip.off .swatch{background:var(--muted)}.dropzone{border:2px dashed var(--border);border-radius:16px;background:var(--surface);min-height:240px;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--accent)}.dropzone.has-image{padding:0;border-style:solid;min-height:0}.dropzone-hint{text-align:center;color:var(--muted);padding:2rem}.dropzone-hint .hint-icon{color:var(--muted);opacity:.7}.dropzone-hint p{margin:.75rem 0 0}.actions{display:flex;gap:.75rem;margin-top:1.25rem}button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;background:var(--accent);color:var(--accent-ink);cursor:pointer;transition:opacity .15s,transform .05s}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{flex:0 0 auto;background:var(--surface-2);color:var(--text)}.error{margin-top:1.25rem;padding:.85rem 1rem;border-radius:12px;background:#f871711f;color:var(--danger);border:1px solid rgba(248,113,113,.3)}.notice{margin-top:1.25rem;padding:.9rem 1rem;border-radius:12px;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--text);display:flex;align-items:center;gap:.85rem}.notice>svg{color:#fbbf24;flex:0 0 auto}.notice div{flex:1}.notice strong{font-size:.95rem}.notice p{margin:.15rem 0 0;font-size:.85rem;color:var(--muted)}.notice .notice-btn{flex:0 0 auto;padding:.55rem .8rem;font-size:.85rem}.result{margin-top:2rem;display:flex;flex-direction:column;gap:2rem}h2{font-size:1.1rem;margin:0 0 .85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface-2);border:1px solid var(--border);padding:.4rem .75rem;border-radius:999px;font-size:.9rem}.chip .confidence{font-size:.75rem;color:var(--accent)}.workout h2{color:var(--text);text-transform:none;letter-spacing:-.01em;font-size:1.5rem;display:flex;align-items:center;gap:.55rem}.workout h2 svg{color:var(--accent);flex:0 0 auto}.summary{color:var(--muted);margin-top:-.4rem}.exercises{list-style:none;margin:1.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem;counter-reset:ex}.exercise{display:flex;gap:.85rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem;cursor:pointer;counter-increment:ex;transition:opacity .15s,border-color .15s}.exercise:hover{border-color:var(--surface-2)}.exercise-check{flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.exercise-check:before{content:counter(ex)}.exercise.done{opacity:.55}.exercise.done .exercise-check:before{content:""}.exercise.done .exercise-name{text-decoration:line-through}.exercise-body{flex:1;min-width:0}.exercise-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.exercise-name{font-weight:600}.exercise-equipment{font-size:.8rem;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.eq-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.exercise-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.4rem;font-size:.9rem;color:var(--accent)}.exercise-stats span{display:inline-flex;align-items:center;gap:.3rem}.exercise-notes{margin:.5rem 0 0;font-size:.875rem;color:var(--muted);line-height:1.4}
