:root{--bg: #0f0f0f;--surface: #1a1a1a;--surface2: #242424;--border: #2e2e2e;--text: #f0f0f0;--text-muted: #888;--accent: #c8ff3c;--accent-dim: rgba(200, 255, 60, .12);--danger: #ff4d4d;--success: #4dff91;--chart-protein: #4da6ff;--chart-fat: #ffb84d;--chart-carbs: #c084fc;--radius: 10px;--nav-h: 64px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;position:relative}.main-content{flex:1;overflow-y:auto;padding-bottom:calc(var(--nav-h) + 8px);padding-top:38px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:var(--nav-h);background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:100}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--text-muted);cursor:pointer;position:relative;padding:8px 0;transition:color .15s}.nav-btn.active{color:var(--accent)}.nav-icon{font-size:20px;line-height:1}.nav-label{font-size:11px;font-weight:600;letter-spacing:.02em}.pulse-dot{position:absolute;top:8px;right:calc(50% - 16px);width:7px;height:7px;background:var(--accent);border-radius:50%}.screen{padding:16px}.screen-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.screen-title{font-size:22px;font-weight:700;line-height:1.1}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.card+.card{margin-top:10px}.card-header{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px}.card-title{font-size:16px;font-weight:600}.card-subtitle{color:var(--text-muted);font-size:13px;margin-top:2px}.card-body{padding:0 16px 14px}.btn{padding:12px 20px;border-radius:8px;border:none;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:opacity .15s;white-space:nowrap}.btn:active{opacity:.8}.btn-primary{background:var(--accent);color:#0f0f0f}.btn-ghost{background:var(--surface2);color:var(--text)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-sm{padding:8px 14px;font-size:13px}.btn-full{width:100%}.tag{display:inline-block;padding:4px 9px;border-radius:20px;font-size:11px;font-weight:600;background:var(--surface2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border:none;cursor:pointer;transition:background .12s,color .12s}.tag.selected{background:var(--accent-dim);color:var(--accent)}.input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:16px;padding:12px 14px;width:100%;outline:none;font-family:inherit;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}textarea.input{resize:none}.sets-header{display:grid;grid-template-columns:28px 1fr 1fr 40px;gap:8px;padding:0 0 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.sets-header span{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;text-align:center}.set-row{display:grid;grid-template-columns:28px 1fr 1fr 40px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.set-row:last-child{border-bottom:none}.set-num{color:var(--text-muted);font-size:13px;font-weight:600;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.set-input{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:20px;font-weight:700;padding:10px 6px;text-align:center;outline:none;width:100%;font-family:inherit;transition:border-color .15s;-moz-appearance:textfield}.set-input::-webkit-inner-spin-button,.set-input::-webkit-outer-spin-button{-webkit-appearance:none}.set-input:focus{border-color:var(--accent)}.set-input.done-input{border-color:var(--success);color:var(--success)}.tick-btn{width:40px;height:40px;border-radius:50%;border:2px solid var(--border);background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;transition:border-color .15s,background .15s,color .15s}.tick-btn.ticked{border-color:var(--success);background:#4dff911a;color:var(--success)}.prev-ref{background:var(--surface2);border-radius:8px;padding:10px 12px;margin-bottom:12px}.prev-ref-title{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}.prev-ref-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;gap:8px}.prev-ref-name{color:var(--text-muted);font-size:13px}.prev-ref-value{font-weight:700;font-size:13px;color:var(--accent);white-space:nowrap}.prev-ref-date{font-size:11px;color:var(--text-muted)}.ex-item{padding:11px 0;border-bottom:1px solid var(--border)}.ex-item:last-child{border-bottom:none}.ex-name{font-weight:600;font-size:15px}.ex-meta{color:var(--text-muted);font-size:13px;margin-top:2px}.ex-notes{color:var(--text-muted);font-size:12px;margin-top:4px;font-style:italic;line-height:1.4}.muscle-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.progress-bar-track{height:4px;background:var(--surface2);border-radius:2px;margin-bottom:20px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.section-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.divider{height:1px;background:var(--border);margin:16px 0}.empty-state{text-align:center;padding:56px 24px;color:var(--text-muted);line-height:1.6}.empty-icon{font-size:44px;margin-bottom:14px}.muscle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.muscle-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;text-align:left;transition:border-color .15s;width:100%}.muscle-card:hover,.muscle-card:active{border-color:var(--accent)}.muscle-card-name{font-weight:600;font-size:15px;text-transform:capitalize;margin-bottom:4px}.muscle-card-count{color:var(--text-muted);font-size:13px}.auth-wrap{display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px 16px}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px 24px}.auth-logo{font-size:44px;text-align:center;margin-bottom:12px}.auth-title{font-size:24px;font-weight:700;text-align:center;margin-bottom:6px}.auth-sub{color:var(--text-muted);font-size:14px;text-align:center;margin-bottom:28px}.auth-tabs{display:flex;gap:4px;background:var(--surface2);border-radius:8px;padding:4px;margin-bottom:24px}.auth-tab{flex:1;padding:9px;border:none;border-radius:6px;background:none;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.auth-tab.active{background:var(--surface);color:var(--text)}.auth-error{background:#ff4d4d1f;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:13px;padding:10px 14px;margin-bottom:16px;text-align:center}.log-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.log-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;gap:12px}.log-card-name{font-size:16px;font-weight:600;flex:1;min-width:0}.log-card-target{font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-dim);padding:3px 9px;border-radius:12px;white-space:nowrap;flex-shrink:0}.log-inputs{display:flex;align-items:flex-end;gap:8px;padding:0 16px 14px}.log-input-group{display:flex;flex-direction:column;gap:6px;flex:1}.log-label{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.log-input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:24px;font-weight:700;padding:10px 6px;text-align:center;outline:none;width:100%;font-family:inherit;transition:border-color .15s;-moz-appearance:textfield}.log-input::-webkit-inner-spin-button,.log-input::-webkit-outer-spin-button{-webkit-appearance:none}.log-input:focus{border-color:var(--accent)}.log-input::placeholder{color:var(--text-muted);font-size:16px;font-weight:400}.log-date-row{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px}.log-date-input{padding:10px 12px;font-size:15px;color-scheme:dark}.log-date-hint{font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-dim);padding:6px 10px;border-radius:12px;white-space:nowrap;margin-bottom:6px}.history-chips{display:flex;gap:6px;padding:0 16px 14px;flex-wrap:wrap}.history-chip{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface2);border-radius:8px;padding:6px 10px;min-width:54px}.chip-date{font-size:10px;color:var(--text-muted);font-weight:600}.chip-val{font-size:13px;font-weight:700;color:var(--accent)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:24px}.log-table{border-collapse:collapse;min-width:100%;font-size:13px}.log-table thead{background:var(--surface2)}.log-table th{padding:10px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap}.log-table td{padding:10px 12px;border-top:1px solid var(--border);white-space:nowrap}.table-ex-col{position:sticky;left:0;background:var(--surface);z-index:2;border-right:1px solid var(--border);font-weight:600;min-width:120px;max-width:160px;white-space:normal;word-break:break-word}thead .table-ex-col{background:var(--surface2)}.table-sess-col{text-align:center;min-width:80px}.table-cell{text-align:center;font-weight:600;color:var(--accent)}.user-badge{position:fixed;top:8px;right:8px;display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:4px 10px 4px 12px;font-size:12px;color:var(--text-muted);z-index:101;max-width:calc(50% - 16px);overflow:hidden}.logout-btn{background:none;border:none;color:var(--danger);font-size:11px;font-weight:700;cursor:pointer;padding:0;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.export-btn{background:none;border:none;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer;padding:0;flex-shrink:0;line-height:1}.week-summary-card{background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:16px;text-align:center;margin-bottom:20px}.week-summary-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.week-summary-value{font-size:32px;font-weight:800;color:var(--accent);line-height:1}.week-summary-sub{color:var(--text-muted);font-size:12px;margin-top:6px}.macro-input-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:16px}.macro-total-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center}.macro-total-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.macro-total-value{font-size:40px;font-weight:800;color:var(--accent);line-height:1}.macro-total-unit{font-size:16px;font-weight:700;color:var(--text-muted);margin-left:6px}.macro-chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:20px}.macro-chart-svg{width:100%;height:120px;display:block}.chart-axis{stroke:var(--border);stroke-width:1}.chart-line-calories,.chart-line-weight{stroke:var(--accent);stroke-width:2.5}.chart-line-protein{stroke:var(--chart-protein);stroke-width:2}.chart-line-fat{stroke:var(--chart-fat);stroke-width:2}.chart-line-carbs{stroke:var(--chart-carbs);stroke-width:2}.chart-x-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-top:4px}.chart-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.chart-legend-item{display:flex;align-items:center;gap:6px;font-size:12px}.chart-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.chart-dot.chart-line-calories{background:var(--accent)}.chart-dot.chart-line-protein{background:var(--chart-protein)}.chart-dot.chart-line-fat{background:var(--chart-fat)}.chart-dot.chart-line-carbs{background:var(--chart-carbs)}.chart-dot.chart-line-weight{background:var(--accent)}.chart-legend-label{color:var(--text-muted)}.chart-legend-val{font-weight:700}.ex-pick-list{max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px}.ex-pick-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:none;border-left:none;border-right:none;border-top:none;width:100%;color:var(--text)}.ex-pick-row:last-child{border-bottom:none}.ex-pick-row:active{background:var(--surface2)}.ex-pick-name{font-weight:600;font-size:14px}.ex-pick-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.ex-pick-add{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--accent-dim);color:var(--accent);border:none;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}.ex-pick-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}.share-toggle-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.share-switch{width:46px;height:26px;border-radius:13px;background:var(--surface2);border:1px solid var(--border);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s}.share-switch.on{background:var(--accent-dim);border-color:var(--accent)}.share-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--text-muted);transition:transform .15s,background .15s}.share-switch.on .share-switch-knob{background:var(--accent);transform:translate(20px)}
