body{background:#f5f5f5;margin:0}#root{min-height:100svh}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f5;--surface:#fff;--border:#e0e0e0;--accent:#2563eb;--accent-light:#eff6ff;--text:#1a1a1a;--text-muted:#6b7280;--green:#16a34a;--red:#dc2626;--radius:10px;font-size:15px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}.app{max-width:100%;margin:0 auto;padding:1rem 1.5rem 3rem}.day-nav{align-items:center;gap:1rem;margin-bottom:.5rem;padding:1rem 0 .5rem;display:flex}.day-nav>button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-shrink:0;padding:.5rem 1rem;font-size:1.2rem}.day-nav>button:hover{background:var(--accent-light)}.day-title{text-align:center;flex:1}.day-title h1{text-transform:capitalize;font-size:1.2rem;font-weight:600}.btn-today{color:var(--accent);background:var(--surface);border:1px solid var(--accent);cursor:pointer;border-radius:6px;margin-top:.25rem;padding:.2rem .6rem;font-size:.75rem}.save-status{text-align:center;border-radius:4px;margin-bottom:.5rem;padding:.3rem;font-size:.8rem}.save-status--saving{color:var(--text-muted)}.save-status--saved{color:var(--green);font-weight:500}.save-status--error{color:var(--red)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1.25rem}.card h2{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.5rem;font-size:.85rem;font-weight:700}.field{flex-direction:column;gap:.3rem;display:flex}.meal-macros-line{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.75rem}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}.field input,.field textarea{border:1px solid var(--border);resize:vertical;background:#fafafa;border-radius:6px;padding:.45rem .6rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}.field input:focus,.field textarea:focus{border-color:var(--accent);background:var(--surface);outline:none}.fields-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.fields-grid:last-child{margin-bottom:0}.fields-grid--2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.fields-grid--3{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.field--checkbox label,.field--checkboxes label{color:var(--text);text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:.4rem;font-size:.88rem;font-weight:500;display:flex}.field--checkboxes{flex-direction:column;justify-content:center;gap:.5rem;display:flex}.field--checkbox input[type=checkbox],.field--checkboxes input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.loading{text-align:center;color:var(--text-muted);padding:3rem}.view-switcher{border-bottom:2px solid var(--border);gap:.25rem;margin-bottom:1rem;padding:.75rem 0 .25rem;display:flex}.view-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.view-tab:hover{background:var(--accent-light);color:var(--accent)}.view-tab--active{background:var(--accent);color:#fff}.placeholder-view{text-align:center;color:var(--text-muted);padding:4rem;font-size:1.1rem}.cal-scroll{border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.cal-table{border-collapse:collapse;background:var(--surface);width:100%;min-width:700px;font-size:.85rem}.cal-th-label{background:var(--surface);z-index:2;border-bottom:2px solid var(--border);width:160px;min-width:160px;position:sticky;left:0}.cal-th-day{text-align:center;border-bottom:2px solid var(--border);border-left:1px solid var(--border);background:var(--surface);min-width:175px;padding:.5rem .4rem}.cal-th-day--today{background:var(--accent-light);color:var(--accent)}.cal-weekday{text-transform:capitalize;font-size:.8rem;font-weight:700;display:block}.cal-date{color:var(--text-muted);font-size:.75rem;display:block}.cal-th-day--today .cal-date{color:var(--accent)}.cal-section-row td{padding:0}.cal-section-label{text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--section-color,#374151);padding:.4rem .75rem;font-size:.72rem;font-weight:700;position:sticky;left:0}.cal-row:nth-child(2n){background:#fafafa}.cal-row:hover{background:var(--accent-light)}.cal-field-label{color:var(--text-muted);white-space:nowrap;border-right:2px solid var(--border);background:inherit;z-index:1;padding:.4rem .75rem;font-size:.78rem;font-weight:500;position:sticky;left:0}.cal-cell{border-left:1px solid var(--border);cursor:pointer;white-space:pre-wrap;word-break:break-word;vertical-align:top;border-top:1px solid #f0f0f0;max-width:220px;padding:.3rem .5rem;font-size:.82rem;line-height:1.3;transition:background .1s}.cal-cell--food{font-size:.72rem;line-height:1.25}.cal-cell:hover{background:#e8f0fe}.cal-cell--readonly{cursor:default;color:#374151;font-variant-numeric:tabular-nums;background:#fafafa;font-weight:600}.cal-cell--readonly:hover{background:#fafafa}.cal-food-line{white-space:pre-wrap;word-break:break-word}.cal-food-macros{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:.28rem;font-size:.65rem;line-height:1.25}.cal-cell--empty{color:var(--text-muted)}.cal-cell--editing{padding:0}.cal-placeholder{color:#d1d5db}.tray-view{padding:.5rem 0}.tray-title{color:var(--text);margin-bottom:1.25rem;font-size:1.2rem;font-weight:700}.tray-stats{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.tray-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.2rem;min-width:130px;padding:.75rem 1.25rem;display:flex}.tray-stat__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:600}.tray-stat__value{color:var(--text);font-size:1.4rem;font-weight:700}.tray-stat--good{color:var(--green)}.tray-stat--bad{color:var(--red)}.tray-stat--warn{color:#d97706}.tray-stat--highlight{background:#fffbeb;border-color:#d97706}.tray-stat__sub{color:var(--text-muted);margin-top:-.1rem;font-size:.68rem}.tray-stat--obj-jul{color:#fff;background:#3b82f6;border-color:#3b82f6}.tray-stat--obj-jul .tray-stat__label,.tray-stat--obj-jul .tray-stat__sub{color:#bfdbfe}.tray-stat--obj-jul .tray-stat__value{color:#fff}.tray-stat--obj-dic{color:#fff;background:#1e3a8a;border-color:#1e3a8a}.tray-stat--obj-dic .tray-stat__label,.tray-stat--obj-dic .tray-stat__sub{color:#93c5fd}.tray-stat--obj-dic .tray-stat__value{color:#fff}.tray-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.tray-control-group{align-items:center;gap:.4rem;display:flex}.tray-control-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;min-width:4.5rem;font-size:.72rem;font-weight:600}.tray-control-input{border:1px solid var(--border);color:var(--text);background:var(--bg);border-radius:6px;padding:.28rem .45rem;font-size:.82rem;transition:border-color .15s}.tray-control-input:focus{border-color:#3b82f6;outline:none}.tray-control-input--kg{width:64px}.tray-control-unit{color:var(--text-muted);font-size:.75rem}.tray-chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:1.5rem;padding:1.25rem .5rem 1rem;display:flex}.tray-grid{grid-template-columns:minmax(0,3fr) minmax(0,7fr);align-items:start;gap:1rem 1.25rem;display:grid}.tray-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:.65rem .5rem .75rem}.tray-panel--tall{padding-top:.5rem}.tray-panel--stack{flex-direction:column;gap:.2rem;padding-bottom:.35rem;display:flex}.tray-bar-section--compact .tray-bar-title{margin:0 0 .12rem .35rem;font-size:.7rem;line-height:1.1}.tray-panel--stack .tray-bar-section--compact{margin-top:0;padding-top:0}.tray-panel--stack .tray-bar-section--compact+.tray-bar-section--compact{border-top:1px solid #f3f4f6;padding-top:.2rem}.tray-bar-title--inline{margin:0 0 .4rem .35rem}.tray-empty{color:var(--text-muted);text-align:center;padding:2rem .75rem;font-size:.82rem}.tray-empty--inline{text-align:left;padding:.5rem .35rem;font-size:.78rem}@media (width<=960px){.tray-grid{grid-template-columns:1fr}}.tray-bar-section{padding-top:.25rem}.tray-bar-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem .5rem;font-size:.85rem;font-weight:600}.tray-bar-unit{opacity:.7;font-size:.8rem;font-weight:400}.tray-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;font-size:.82rem;box-shadow:0 4px 12px #00000014}.tray-tooltip__date{color:var(--text-muted);margin-bottom:.3rem;font-size:.78rem;font-weight:600}.sw-view{padding:.5rem 0}.sw-view--semanal .sw-th--week,.sw-view--semanal .sw-cell--val,.sw-view--semanal .sw-cell--note{min-width:165px}.sw-view--mensual .sw-th--week,.sw-view--mensual .sw-cell--val,.sw-view--mensual .sw-cell--note{min-width:246px}.sw-header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.sw-note-save-error{color:#991b1b;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-bottom:.75rem;padding:.6rem .75rem;font-size:.85rem;line-height:1.4}.sw-title{color:var(--text);font-size:1.2rem;font-weight:700}.sw-scroll{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.sw-table{border-collapse:collapse;background:var(--surface);white-space:nowrap;font-size:.82rem}.sw-th{color:var(--text-muted);background:var(--surface);border-bottom:2px solid var(--border);border-left:1px solid var(--border);vertical-align:bottom;text-align:center;padding:.45rem .6rem;font-size:.72rem;font-weight:600}.sw-th--label{z-index:3;border-left:none;border-right:2px solid var(--border);text-align:left;min-width:145px;position:sticky;left:0}.sw-th--week{cursor:default;min-width:82px}.sw-th--current{color:var(--accent);border-top:3px solid var(--accent);background:var(--accent-light)!important}.sw-th--future{color:#d1d5db}.sw-week-num{font-size:.78rem;font-weight:700;display:block}.sw-week-dates{opacity:.75;font-size:.65rem;display:block}.sw-week-days{color:var(--accent);margin-top:1px;font-size:.6rem;font-weight:600;display:block}.sw-row{transition:background .1s}.sw-row--alt{background:#fafafa}.sw-row:hover{background:var(--accent-light)}.sw-cell{vertical-align:middle;text-align:right;font-variant-numeric:tabular-nums;border-top:1px solid #f0f0f0;border-left:1px solid #f0f0f0;padding:.35rem .6rem}.sw-cell--label{z-index:1;background:inherit;text-align:left;color:var(--text-muted);border-left:none;border-right:2px solid var(--border);padding-right:.75rem;font-size:.78rem;font-weight:500;position:sticky;left:0}.sw-cell--val{font-size:.82rem}.sw-cell--current-col{background:#f5f9ff;font-weight:600}.sw-cell--future{color:#e5e7eb}.sw-val--good{color:var(--green);font-weight:700}.sw-val--bad{color:var(--red);font-weight:700}.sw-empty{color:#d1d5db}.sw-unit-inline{color:var(--text-muted);font-size:.65rem}.sw-tbody--notes .sw-row--notes:hover{background:var(--surface)}.sw-cell--notes-label{vertical-align:top;white-space:normal;padding-top:.65rem}.sw-notes-title{color:var(--text);margin-bottom:.2rem;font-weight:600;display:block}.sw-notes-hint{color:var(--text-muted);max-width:9rem;font-size:.65rem;font-weight:400;line-height:1.3;display:block}.sw-cell--note{vertical-align:top;text-align:left;white-space:normal;padding:.35rem .45rem}.sw-note-textarea{box-sizing:border-box;width:100%;min-width:4.5rem;min-height:18rem;max-height:48rem;color:var(--text);background:var(--surface);border:1px solid var(--border);resize:vertical;border-radius:6px;padding:.35rem .45rem;font-family:inherit;font-size:.72rem;line-height:1.35}.sw-note-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light);outline:none}.sw-cell--note.sw-cell--future .sw-note-textarea{opacity:.65}.cal-cell--has-semaforo{padding-right:1.4rem;position:relative}.semaforo-btn{cursor:pointer;z-index:1;border:none;border-radius:50%;flex-shrink:0;width:9px;height:9px;padding:0;transition:transform .1s,box-shadow .1s;position:absolute;top:4px;right:4px;box-shadow:0 0 0 1.5px #00000026}.semaforo-btn:hover{transform:scale(1.3);box-shadow:0 0 0 2px #0003}.cal-cell--editing input,.cal-cell--editing select,.cal-cell--editing textarea.cal-food-textarea{border:2px solid var(--accent);background:var(--surface);border-radius:4px;outline:none;width:100%;padding:.3rem .4rem;font-family:inherit;font-size:.85rem}.cal-cell--editing textarea.cal-food-textarea{resize:vertical;min-height:4rem;font-size:.78rem;display:block}.macros-totals-bar{border-radius:var(--radius);background:#fffbeb;border:1px solid #fcd34d;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.macros-totals-bar__item{flex-direction:column;gap:.15rem;min-width:5.5rem;display:flex}.macros-totals-bar__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.65rem;font-weight:700}.macros-totals-bar__val{font-variant-numeric:tabular-nums;font-weight:700}.btn-macros{color:#92400e;cursor:pointer;background:#fffbeb;border:1px solid #d97706;border-radius:6px;margin-top:.5rem;padding:.4rem .75rem;font-size:.8rem}.btn-macros:hover:not(:disabled){background:#fef3c7}.btn-macros:disabled{opacity:.6;cursor:not-allowed}.macro-estimate-err{color:var(--red);margin-top:.35rem;font-size:.78rem}.export-view{flex-direction:column;gap:1rem;max-width:860px;margin:0 auto;padding:1.5rem;display:flex}.export-title{color:var(--text);font-size:1.15rem;font-weight:700}.export-controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.export-label{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:600}.export-select{border:1px solid var(--border);background:var(--surface);min-width:220px;max-width:360px;color:var(--text);cursor:pointer;border-radius:6px;flex:1;padding:.4rem .6rem;font-size:.88rem}.export-actions{gap:.5rem;margin-left:auto;display:flex}.export-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:.4rem .85rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.export-btn:hover:not(:disabled){background:#e5e7eb}.export-btn:disabled{opacity:.4;cursor:default}.export-btn--ok{color:#fff;background:#16a34a;border-color:#16a34a}.export-btn--dl{color:#fff;background:#2563eb;border-color:#2563eb}.export-btn--dl:hover:not(:disabled){background:#1d4ed8}.export-meta{color:var(--text-muted);min-height:1.2em;font-size:.8rem}.export-textarea{border:1px solid var(--border);color:#cdd6f4;resize:vertical;background:#1e1e2e;border-radius:8px;outline:none;width:100%;height:520px;padding:.75rem;font-family:Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1.5}.btn-ai{color:var(--accent);background:var(--surface);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:.25rem .65rem;font-size:.75rem;transition:background .15s,opacity .15s}.btn-ai:disabled{opacity:.55;cursor:not-allowed}.btn-ai-inline{width:auto;color:var(--accent);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;margin-top:.35rem;padding:.1rem .35rem;font-size:.65rem;display:inline-block}.btn-ai-inline:disabled{opacity:.55;cursor:not-allowed}.cal-ai-advice{grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0 .5rem;display:grid}.cal-ai-advice__block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.5rem;padding:.9rem;display:flex}.cal-ai-advice__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:700}.cal-ai-textarea{background:var(--surface);width:100%;min-height:140px;color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:8px;outline:none;padding:.55rem .65rem;font-family:inherit;font-size:.78rem;line-height:1.35}.cal-ai-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.ai-modal-overlay{z-index:9999;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.ai-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:860px;padding:1rem;box-shadow:0 10px 30px #00000040}.ai-modal-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem;font-size:.9rem;font-weight:800}.ai-modal-body{margin-bottom:.2rem}.ai-modal-text{background:var(--accent-light);border:1px solid var(--border);white-space:pre-wrap;border-radius:10px;max-height:60vh;padding:.75rem;font-size:.85rem;overflow:auto}.ai-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}@media (width<=900px){.cal-ai-advice{grid-template-columns:1fr}}.d12-view{--t-bg:#12171b;--t-bg-deep:#0c1013;--t-panel:#1a2126;--t-panel-2:#11161a;--t-line:#2c353c;--t-line-strong:#3c4750;--t-text:#e9ebe6;--t-muted:#8b949b;--t-amber:#e6a23c;--t-olive:#8ea253;--t-tan:#b9946a;--t-go:#8cb63f;--t-alert:#db4d24;--t-display:"Oswald", "Arial Narrow", sans-serif;--t-stencil:"Saira Condensed", "Oswald", sans-serif;color:var(--t-text);background:linear-gradient(180deg, var(--t-bg) 0%, var(--t-bg-deep) 100%);border:1px solid var(--t-line);border-top:3px solid var(--t-amber);border-radius:14px;padding:1.1rem 1.25rem 1.75rem;box-shadow:0 18px 40px -20px #0009}.d12-brand{border-bottom:1px solid var(--t-line);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.25rem;padding-bottom:.85rem;display:flex}.d12-brand__mark{font-family:var(--t-display);letter-spacing:.02em;color:var(--t-amber);text-transform:uppercase;font-size:2rem;font-weight:700;line-height:1}.d12-brand__mark em{color:var(--t-muted);vertical-align:.35em;margin:0 .15rem;font-size:.9rem;font-style:normal;font-weight:600}.d12-brand__motto{font-family:var(--t-stencil);letter-spacing:.04em;color:var(--t-tan);text-transform:uppercase;font-size:.92rem;font-style:italic;font-weight:600}.d12-view .day-nav{padding-top:.75rem}.d12-view .day-nav>button{background:var(--t-panel);border:1px solid var(--t-line-strong);color:var(--t-text)}.d12-view .day-nav>button:hover{background:var(--t-amber);color:#12171b;border-color:var(--t-amber)}.d12-view .day-title h1{font-family:var(--t-display);letter-spacing:.02em;color:var(--t-text);font-weight:600}.d12-view .btn-today{color:var(--t-amber);border-color:var(--t-amber);background:0 0}.d12-datebar{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.d12-date{font-family:var(--t-display);letter-spacing:.03em;color:var(--t-text);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.d12-daychip{font-family:var(--t-display);letter-spacing:.06em;text-transform:uppercase;color:var(--t-muted);background:var(--t-panel-2);border:1px solid var(--t-line-strong);border-radius:999px;align-items:baseline;gap:.35rem;padding:.18rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.d12-daychip b{color:var(--t-olive);font-variant-numeric:tabular-nums;font-weight:700}.d12-daychip--amber{border-color:color-mix(in srgb, var(--t-amber) 45%, var(--t-line-strong))}.d12-daychip--amber b{color:var(--t-amber)}.d12-view .save-status--saved{color:var(--t-go)}.d12-view .save-status--saving{color:var(--t-muted)}.d12-view .card{background:var(--t-panel);border:1px solid var(--t-line);border-radius:10px}.d12-view .card h2{font-family:var(--t-display);letter-spacing:.12em;color:var(--t-amber);border-bottom:1px solid var(--t-line);align-items:center;gap:.55rem;font-size:.95rem;font-weight:700;display:flex}.d12-view .card h2:before{content:"";background:var(--t-amber);flex-shrink:0;width:10px;height:10px;transform:rotate(45deg)}.d12-view .field label{color:var(--t-muted)}.d12-view .field input,.d12-view .field textarea,.d12-view .field select{background:var(--t-panel-2);border:1px solid var(--t-line-strong);color:var(--t-text)}.d12-view .field input:focus,.d12-view .field textarea:focus,.d12-view .field select:focus{border-color:var(--t-amber);background:var(--t-bg-deep)}.d12-view .field input::placeholder,.d12-view .field textarea::placeholder{color:#5f6870}.d12-metrics{grid-template-columns:minmax(160px,240px) 1fr;align-items:start;gap:1.25rem;display:grid}.d12-metrics__fields{margin-bottom:0}.d12-macros{border-top:1px solid var(--t-line);margin-top:1.1rem;padding-top:1rem}.d12-macros__grid{grid-template-columns:4.2rem repeat(3,minmax(2.6rem,3.6rem)) minmax(3.2rem,4.4rem);align-items:center;gap:.35rem .5rem;max-width:26rem;display:grid}.d12-macros__corner{font-family:var(--t-display);letter-spacing:.05em;text-transform:uppercase;color:var(--t-muted);font-size:.66rem}.d12-macros__head{text-align:center;font-family:var(--t-display);color:var(--t-muted);font-size:.82rem;font-weight:600}.d12-macros__head--kcal{letter-spacing:.03em;font-size:.68rem}.d12-macros__tag{font-family:var(--t-display);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:700}.d12-macros__tag--plan{color:var(--t-amber)}.d12-macros__tag--real{color:var(--t-go)}.d12-macros__in{text-align:center;font-variant-numeric:tabular-nums;border:1px solid var(--t-line-strong);background:var(--t-bg-deep);width:100%;color:var(--t-text);border-radius:6px;padding:.35rem .3rem;font-size:.9rem;transition:border-color .15s}.d12-macros__in:focus{border-color:var(--t-amber);outline:none}.d12-macros__val{text-align:center;font-variant-numeric:tabular-nums;color:var(--t-go);font-size:.95rem;font-weight:600}.d12-macros__kcal{text-align:center;font-variant-numeric:tabular-nums;color:var(--t-muted);font-size:.82rem}.d12-photo__wrap{flex-direction:column;gap:.5rem;display:flex}.d12-photo__img{border:1px solid var(--t-line-strong);object-fit:cover;border-radius:8px;width:100%;display:block}.d12-photo__remove{letter-spacing:.04em;text-transform:uppercase;color:var(--t-alert);border:1px solid var(--t-alert);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:.28rem .7rem;font-size:.72rem;font-weight:600}.d12-photo__remove:hover{background:var(--t-alert);color:#fff}.d12-photo__drop{text-align:center;min-height:160px;color:var(--t-muted);font-family:var(--t-display);letter-spacing:.08em;text-transform:uppercase;background:repeating-linear-gradient(45deg, transparent 0 10px, #e6a23c0a 10px 20px), var(--t-panel-2);border:2px dashed var(--t-line-strong);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:1rem;font-size:.9rem;font-weight:600;transition:border-color .15s,background .15s,color .15s;display:flex}.d12-photo__drop:hover{border-color:var(--t-amber);color:var(--t-amber)}.d12-photo__icon{font-size:1.7rem}.d12-musc{border-bottom:1px solid var(--t-line);flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.d12-view .field--checkbox label{color:var(--t-text)}.d12-view .field--checkbox input[type=checkbox]{accent-color:var(--t-amber)}.d12-musc__grupo{min-width:210px}.d12-items{flex-direction:column;gap:.45rem;list-style:none;display:flex}.d12-item{border:1px solid var(--t-line);border-left:4px solid var(--t-olive);background:var(--t-panel-2);border-radius:8px;grid-template-columns:auto 6.5rem 6rem auto 1fr;align-items:center;gap:.6rem;padding:.5rem .65rem;transition:background .15s,opacity .15s,border-color .15s;display:grid}.d12-item--entreno{border-left-color:var(--t-amber)}.d12-item--done{opacity:.72;background:linear-gradient(90deg, #8cb63f1f, transparent 70%), var(--t-panel-2);border-left-color:var(--t-go)}.d12-item__check{width:18px;height:18px;accent-color:var(--t-go);cursor:pointer}.d12-item__label{font-family:var(--t-display);letter-spacing:.03em;text-transform:uppercase;color:var(--t-text);white-space:nowrap;font-size:.86rem;font-weight:600}.d12-item__label--link{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.3rem;padding:0;display:inline-flex}.d12-item__label--link:hover{color:var(--t-amber)}.d12-item__label--link:focus-visible{outline:2px solid var(--t-amber);outline-offset:2px;border-radius:4px}.d12-item__ficha{font-size:.9rem}.d12-item__hora,.d12-item__texto{border:1px solid var(--t-line-strong);background:var(--t-bg-deep);color:var(--t-text);border-radius:6px;padding:.4rem .55rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.d12-item__hora{font-variant-numeric:tabular-nums}.d12-item__texto::placeholder{color:#5f6870}.d12-item__hora:focus,.d12-item__texto:focus{border-color:var(--t-amber);outline:none}.d12-item__macros{gap:.3rem;display:flex}.d12-item__macro{text-align:center;font-variant-numeric:tabular-nums;border:1px solid var(--t-line-strong);background:var(--t-bg-deep);width:3rem;color:var(--t-text);border-radius:6px;padding:.4rem .2rem;font-size:.85rem;transition:border-color .15s}.d12-item__macro::placeholder{color:#5f6870;text-transform:uppercase}.d12-item__macro:focus{border-color:var(--t-go);outline:none}.d12-item__strain{width:5rem}.d12-item__strain::placeholder{text-transform:none}.d12-item__strain:focus{border-color:var(--t-amber)}.d12-item__macro::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.d12-item__macro::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.d12-macros__in::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.d12-macros__in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.d12-item__macro,.d12-macros__in{appearance:textfield}.d12-checklist-nums{max-width:460px;margin-top:1rem;margin-bottom:0}.d12-sups{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.d12-sup{border:1px solid var(--t-line);border-left:4px solid var(--t-olive);background:var(--t-panel-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .65rem;display:flex}.d12-sup--doble{border-left-color:var(--t-amber)}.d12-sup__info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.d12-sup__label{font-family:var(--t-display);letter-spacing:.03em;text-transform:uppercase;color:var(--t-text);font-size:.86rem;font-weight:600}.d12-sup__dosis{color:#8b949d;font-size:.78rem}.d12-sup__checks{flex-wrap:wrap;gap:.9rem;display:flex}.d12-sup__check{color:var(--t-text);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;font-size:.82rem;display:inline-flex}.d12-sup__check input[type=checkbox]{width:18px;height:18px;accent-color:var(--t-go);cursor:pointer}@media (width<=720px){.d12-view{padding:1rem .85rem 1.5rem}.d12-metrics{grid-template-columns:1fr}.d12-item{grid-template-columns:auto 1fr;grid-template-areas:"check label""hora macros""texto texto";row-gap:.4rem}.d12-item__check{grid-area:check}.d12-item__label{grid-area:label}.d12-item__hora{grid-area:hora}.d12-item__macros{grid-area:macros;justify-content:flex-end}.d12-item__texto{grid-area:texto}}.d12-modal{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#06090bb8;justify-content:center;align-items:flex-start;padding:4vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.d12-modal__panel{background:var(--t-bg-deep);border:1px solid var(--t-line-strong);border-top:3px solid var(--t-amber);border-radius:10px;width:100%;max-width:640px;box-shadow:0 20px 60px #00000080}.d12-modal__head{border-bottom:1px solid var(--t-line);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.15rem .75rem;display:flex}.d12-modal__title{font-family:var(--t-display);letter-spacing:.03em;text-transform:uppercase;color:var(--t-amber);margin:0;font-size:1.1rem}.d12-modal__sub{color:var(--t-muted);margin:.15rem 0 0;font-size:.82rem}.d12-modal__close{width:2rem;height:2rem;color:var(--t-muted);border:1px solid var(--t-line-strong);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;font-size:1.4rem;line-height:1;transition:color .15s,border-color .15s}.d12-modal__close:hover{color:var(--t-text);border-color:var(--t-amber)}.d12-modal__meta{color:var(--t-muted);border-bottom:1px solid var(--t-line);flex-wrap:wrap;gap:.4rem 1rem;padding:.65rem 1.15rem;font-size:.8rem;display:flex}.d12-modal__body{padding:.85rem 1.15rem 1.2rem}.d12-ex{margin-bottom:1.1rem}.d12-ex:last-child{margin-bottom:0}.d12-ex__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem;margin-bottom:.4rem;display:flex}.d12-ex__name{font-family:var(--t-display);color:var(--t-text);font-size:.98rem;font-weight:600}.d12-ex__tags{flex-wrap:wrap;gap:.3rem;display:flex}.d12-ex__tag{letter-spacing:.03em;text-transform:uppercase;color:var(--t-olive);border:1px solid var(--t-line-strong);border-radius:999px;padding:.1rem .5rem;font-size:.68rem}.d12-ex__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.d12-ex__table th,.d12-ex__table td{text-align:left;border-bottom:1px solid var(--t-line);padding:.32rem .5rem}.d12-ex__table th{font-family:var(--t-display);letter-spacing:.04em;text-transform:uppercase;color:var(--t-muted);font-size:.7rem;font-weight:600}.d12-ex__table td:first-child{color:var(--t-muted)}.d12-ex__empty{color:var(--t-muted);margin:0;font-size:.85rem;font-style:italic}.d12-ex__note{color:var(--t-muted);margin:.4rem 0 0;font-size:.8rem}.d12-modal__section,.d12-modal__comment{border-top:1px solid var(--t-line);margin-top:1.1rem;padding-top:.9rem}.d12-modal__section h4,.d12-modal__comment h4{font-family:var(--t-display);letter-spacing:.05em;text-transform:uppercase;color:var(--t-muted);margin:0 0 .4rem;font-size:.78rem}.d12-modal__obs{color:var(--t-text);margin:0;padding-left:1.1rem;font-size:.85rem}.d12-modal__obs li{margin-bottom:.25rem}.d12-modal__comment p{color:var(--t-text);border-left:3px solid var(--t-amber);margin:0;padding-left:.7rem;font-size:.88rem}.tw{--t-bg:#12171b;--t-bg-deep:#0c1013;--t-panel:#1a2126;--t-panel-2:#11161a;--t-line:#2c353c;--t-line-strong:#3c4750;--t-text:#e9ebe6;--t-muted:#8b949b;--t-amber:#e6a23c;--t-olive:#8ea253;--t-go:#8cb63f;--t-alert:#db4d24;--t-display:"Oswald", "Arial Narrow", sans-serif;color:var(--t-text);background:linear-gradient(180deg, var(--t-bg) 0%, var(--t-bg-deep) 100%);border:1px solid var(--t-line);border-top:3px solid var(--t-amber);border-radius:14px;padding:1.1rem 1.25rem 1.5rem;box-shadow:0 18px 40px -20px #0009}.tw-header{flex-direction:column;align-items:center;gap:.4rem;margin-bottom:1.1rem;display:flex}.tw-nav{align-items:center;gap:1rem;display:flex}.tw-nav-btn{background:var(--t-panel);border:1px solid var(--t-line-strong);color:var(--t-text);cursor:pointer;border-radius:8px;padding:.35rem .9rem;font-size:1.1rem;line-height:1;transition:background .15s,color .15s,border-color .15s}.tw-nav-btn:hover{background:var(--t-amber);color:var(--t-bg);border-color:var(--t-amber)}.tw-title{text-align:center;flex-direction:column;align-items:center;gap:.3rem;min-width:170px;display:flex}.tw-week-label{font-family:var(--t-display);letter-spacing:.03em;text-transform:capitalize;color:var(--t-text);font-size:1.15rem;font-weight:600}.tw .btn-today{color:var(--t-amber);border:1px solid var(--t-amber);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .6rem;font-size:.72rem;font-weight:600}.tw .btn-today:hover{background:var(--t-amber);color:var(--t-bg)}.tw-stats{color:var(--t-muted);font-variant-numeric:tabular-nums;align-items:center;gap:.6rem;min-height:1.1em;font-size:.8rem;display:flex}.tw-stats--full{color:var(--t-go);font-weight:600}.tw-save{letter-spacing:.02em;font-size:.72rem;font-weight:600}.tw-save--saving{color:var(--t-muted)}.tw-save--saved{color:var(--t-go)}.tw-save--error{color:var(--t-alert)}.tw-layout{align-items:flex-start;gap:.75rem;display:flex}.tw-board{flex:1;grid-template-columns:repeat(7,1fr);gap:.5rem;min-width:0;display:grid}.tw-col{background:var(--t-panel-2);border:1px solid var(--t-line);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.tw-col--today{border-color:var(--t-amber);box-shadow:0 0 0 1px color-mix(in srgb, var(--t-amber) 40%, transparent)}.tw-col-header{border-bottom:1px solid var(--t-line);background:var(--t-panel);flex-direction:column;align-items:center;gap:.05rem;padding:.5rem .25rem;display:flex}.tw-col--today .tw-col-header{background:var(--t-amber);color:var(--t-bg)}.tw-day-abbr{font-family:var(--t-display);text-transform:uppercase;letter-spacing:.08em;color:var(--t-muted);font-size:.62rem;font-weight:600}.tw-col--today .tw-day-abbr{color:color-mix(in srgb, var(--t-bg) 70%, transparent)}.tw-day-num{font-family:var(--t-display);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700;line-height:1}.tw-day-month{color:var(--t-muted);text-transform:uppercase;font-size:.6rem}.tw-col--today .tw-day-month{color:color-mix(in srgb, var(--t-bg) 65%, transparent)}.tw-col-zones{flex-direction:column;flex:1;display:flex}.tw-zone{border-top:1px dashed var(--t-line);flex-direction:column;flex:1;min-height:66px;padding:.3rem;transition:background .15s,box-shadow .15s;display:flex}.tw-zone:first-child{border-top:none}.tw-zone--dragover{background:color-mix(in srgb, var(--t-amber) 14%, transparent);box-shadow:inset 0 0 0 1.5px var(--t-amber);border-radius:6px}.tw-zone-label{font-family:var(--t-display);text-transform:uppercase;letter-spacing:.06em;color:var(--t-muted);text-align:center;margin-bottom:.25rem;font-size:.56rem;font-weight:600}.tw-zone-cards{flex-direction:column;flex:1;gap:.3rem;display:flex}.tw-drop-hint{color:var(--t-line-strong);pointer-events:none;flex:1;justify-content:center;align-items:center;min-height:24px;font-size:1.2rem;font-weight:300;display:flex}.tw-drop-hint--active{color:var(--t-amber);font-size:1.4rem;font-weight:700}.tw-card{background:var(--cc,#9e9e9e);color:var(--ct,#fff);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:.25rem;padding:.3rem .35rem;font-size:.72rem;font-weight:700;transition:opacity .15s,filter .15s;display:flex;box-shadow:0 1px 4px #00000059}.tw-card:active{cursor:grabbing}.tw-card--done{opacity:.5;filter:grayscale(.3)}.tw-card--done .tw-card-label{text-decoration:line-through;text-decoration-thickness:1.5px}.tw-card-check{color:#fff;cursor:pointer;background:#ffffff26;border:1.5px solid #ffffffb3;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.68rem;font-weight:800;line-height:1;display:flex}.tw-card-check:hover{background:#ffffff52}.tw-card-label{text-align:center;letter-spacing:.01em;flex:1}.tw-card-del{color:#ffffffe6;cursor:pointer;opacity:0;background:#00000040;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;padding:0;font-size:.85rem;line-height:1;transition:opacity .12s;display:flex}.tw-card:hover .tw-card-del{opacity:1}.tw-library{flex-direction:column;flex-shrink:0;gap:.35rem;width:92px;display:flex}.tw-library-title{font-family:var(--t-display);text-transform:uppercase;letter-spacing:.08em;color:var(--t-muted);text-align:center;padding:.2rem 0 .4rem;font-size:.62rem;font-weight:600}.tw-lib-card{background:var(--cc,#9e9e9e);color:var(--ct,#fff);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .55rem;font-size:.78rem;font-weight:700;transition:transform .1s,box-shadow .1s;display:flex;box-shadow:0 1px 4px #00000059}.tw-lib-card:hover{transform:translateY(-1px);box-shadow:0 3px 10px #0006}.tw-lib-card:active{cursor:grabbing;transform:scale(.97)}.tw-lib-grip{opacity:.5;font-size:.95rem}.tw-goals{border-top:1px solid var(--t-line);margin-top:1.25rem;padding-top:1rem}.tw-goals-head{justify-content:space-between;align-items:center;margin-bottom:.7rem;display:flex}.tw-goals-title{font-family:var(--t-display);letter-spacing:.12em;text-transform:uppercase;color:var(--t-amber);align-items:center;gap:.55rem;font-size:.9rem;font-weight:700;display:flex}.tw-goals-title:before{content:"";background:var(--t-amber);flex-shrink:0;width:10px;height:10px;transform:rotate(45deg)}.tw-goals-count{font-family:var(--t-display);color:var(--t-muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.tw-goals-count--full{color:var(--t-go)}.tw-goals-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;display:grid}.tw-goal{background:var(--t-panel-2);border:1px solid var(--t-line-strong);border-radius:8px;align-items:center;gap:.6rem;padding:.55rem .7rem;transition:border-color .15s,background .15s;display:flex}.tw-goal--met{border-color:color-mix(in srgb, var(--t-go) 55%, var(--t-line-strong));background:color-mix(in srgb, var(--t-go) 10%, var(--t-panel-2))}.tw-goal-check{border:1.5px solid var(--t-line-strong);background:var(--t-bg-deep);width:20px;height:20px;color:var(--t-bg);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:800;line-height:1;display:flex}.tw-goal--met .tw-goal-check{background:var(--t-go);border-color:var(--t-go)}.tw-goal-label{color:var(--t-text);flex:1;font-size:.82rem;font-weight:600}.tw-goal-progress{font-family:var(--t-display);color:var(--t-muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.tw-goal--met .tw-goal-progress{color:var(--t-go)}.tw-goal-progress em{color:var(--t-olive);font-size:.7rem;font-style:normal}.tw-goals-note{color:var(--t-muted);text-align:center;margin:.7rem 0 0;font-size:.72rem}@media (width<=860px){.tw{padding:1rem .85rem 1.25rem}.tw-layout{flex-direction:column-reverse}.tw-library{flex-flow:wrap;gap:.35rem;width:100%}.tw-library-title{width:100%}.tw-lib-card{flex:70px;justify-content:center;gap:.3rem;min-width:70px}.tw-lib-grip{display:none}.tw-board{flex-direction:column;gap:.5rem;display:flex}.tw-col{flex-direction:column}.tw-col-header{flex-direction:row;justify-content:center;align-items:baseline;gap:.45rem;padding:.4rem .6rem}.tw-day-abbr{font-size:.72rem}.tw-day-num{font-size:1.05rem}.tw-day-month{font-size:.62rem}.tw-col-zones{flex-direction:row}.tw-zone{border-top:none;border-left:1px dashed var(--t-line);min-height:62px}.tw-zone:first-child{border-left:none}}
