/* Centro Personal V0.3.1 · motor espacial común Cocina/Entrenamiento */
.spatial-area-page{height:100dvh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden;background:var(--bg)}
.spatial-area-page .area-topbar{position:relative}
.spatial-tools{display:flex;align-items:center;gap:6px;margin-left:auto;overflow-x:auto;max-width:min(58vw,760px);padding-bottom:2px}
.spatial-tools button,.spatial-zoom-label{flex:0 0 auto}
.spatial-zoom-label{font-size:12px;color:var(--muted);min-width:44px;text-align:center}
.spatial-module-strip{display:flex;gap:7px;overflow-x:auto;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg-2);scrollbar-width:thin}
.spatial-module-strip .module-btn{flex:0 0 auto;min-height:42px}
.spatial-window-tabs{display:flex;gap:6px;overflow-x:auto;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--bg);min-height:48px}
.spatial-window-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:7px 10px;cursor:pointer;color:var(--muted);display:flex;align-items:center;gap:7px}
.spatial-window-tab.active{color:var(--text);background:var(--panel-3);border-color:var(--accent)}
.spatial-window-tab .dirty-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2)}
.spatial-workspace-viewport{position:relative;overflow:auto;min-height:0;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),var(--bg);background-size:32px 32px;overscroll-behavior:contain}
.spatial-workspace-canvas{position:relative;width:2200px;height:1500px;min-width:100%;min-height:100%;transform-origin:0 0}
.spatial-window{position:absolute;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:340px;min-height:300px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:hidden;resize:both}
.spatial-window.focused{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));box-shadow:0 22px 75px rgba(0,0,0,.38)}
.spatial-window.maximized{position:sticky!important;left:10px!important;top:10px!important;width:calc(var(--spatial-viewport-width,100vw) - 20px)!important;height:calc(var(--spatial-viewport-height,100vh) - 20px)!important;resize:none;z-index:4000!important}
.spatial-window-header{min-height:52px;display:flex;align-items:center;gap:9px;padding:8px 9px 8px 12px;border-bottom:1px solid var(--line);background:var(--panel-2);cursor:grab;user-select:none;touch-action:none}
.spatial-window-header:active{cursor:grabbing}
.spatial-window-title{min-width:0;flex:1;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spatial-window-subtitle{display:block;color:var(--muted);font-size:11px;font-weight:600}
.spatial-window-actions{display:flex;gap:5px}
.spatial-window-actions button{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;display:grid;place-items:center}
.spatial-window-body{overflow:auto;padding:16px;min-height:0;overscroll-behavior:contain}
.spatial-window-body.frame-body{padding:0;overflow:hidden}
.spatial-window-dock{min-height:46px;display:flex;gap:7px;align-items:center;overflow-x:auto;padding:6px 12px calc(6px + var(--safe-bottom));border-top:1px solid var(--line);background:var(--bg-2)}
.spatial-dock-item{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:7px 10px;cursor:pointer;white-space:nowrap}
.spatial-module-frame{width:100%;height:100%;min-height:560px;border:0;background:var(--bg)}
.spatial-dashboard-hero{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--panel)),var(--panel));margin-bottom:16px}
.spatial-dashboard-hero h2{margin:0 0 7px;font-size:clamp(24px,3vw,38px)}
.spatial-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:14px 0}
.spatial-kpi{border:1px solid var(--line);border-radius:15px;background:var(--panel-2);padding:13px;display:grid;gap:5px}
.spatial-kpi span{color:var(--muted);font-size:12px}.spatial-kpi strong{font-size:24px}
.training-planner-grid{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}
.training-day-card{border:1px solid var(--line);border-radius:15px;background:var(--panel-2);padding:12px;min-height:210px;display:flex;flex-direction:column;gap:9px}
.training-day-card.today{border-color:var(--accent)}
.training-day-card h3{margin:0}.training-day-card small{color:var(--muted)}
.training-plan-item{border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:9px;display:grid;gap:5px}
.training-status{font-size:11px;border-radius:999px;padding:3px 7px;width:max-content;background:var(--accent-soft);color:var(--accent)}
.training-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.training-form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.training-form-grid .field.full{grid-column:1/-1}
.training-list{display:grid;gap:10px}.training-list-item{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:13px;display:grid;gap:8px}
.training-list-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.training-tag-row{display:flex;flex-wrap:wrap;gap:6px}.training-tag{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:var(--panel)}
.training-active-exercise{border:1px solid var(--line);border-radius:15px;background:var(--panel-2);margin-bottom:10px;overflow:hidden}
.training-active-exercise summary{padding:13px;font-weight:850;cursor:pointer}.training-active-exercise .exercise-inside{padding:0 13px 13px}
.training-set-row{display:grid;grid-template-columns:42px 1fr 1fr 1fr 48px;gap:7px;align-items:center;margin:7px 0}
.training-set-row input{min-width:0}
.training-timer-card{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:13px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.training-timer-value{font-size:28px;font-variant-numeric:tabular-nums;font-weight:900}
.training-import-preview{display:grid;gap:8px;margin-top:12px}.training-import-row{display:grid;grid-template-columns:1.4fr repeat(5,minmax(80px,.6fr));gap:7px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:9px;background:var(--panel-2)}
.training-empty-photo{height:120px;border:1px dashed var(--line-strong);border-radius:12px;display:grid;place-items:center;color:var(--muted);background:var(--panel-2)}
.training-photo-preview{max-width:220px;max-height:160px;border-radius:12px;border:1px solid var(--line);object-fit:cover}
.spatial-recovery-banner{border:1px solid color-mix(in srgb,var(--warn) 50%,var(--line));background:color-mix(in srgb,var(--warn) 10%,var(--panel));border-radius:14px;padding:12px}
.spatial-rescue-menu{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.spatial-engine-note{font-size:12px;color:var(--muted)}
@media(max-width:1150px){.spatial-kpi-grid{grid-template-columns:repeat(2,1fr)}.training-form-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){
 .spatial-area-page{grid-template-rows:auto auto auto minmax(0,1fr) auto}
 .spatial-tools .desktop-only{display:none}
 .spatial-module-strip{padding:6px 8px}.spatial-module-strip .module-btn{min-height:40px;padding:7px 9px}
 .spatial-workspace-viewport{overflow:hidden}.spatial-workspace-canvas{width:100%!important;height:100%!important;min-width:0;min-height:0;transform:none!important}
 .spatial-window{display:none;position:absolute;inset:0!important;width:100%!important;height:100%!important;min-width:0;min-height:0;border-radius:0;resize:none}
 .spatial-window.focused{display:grid}.spatial-window.maximized{inset:0!important;width:100%!important;height:100%!important}
 .spatial-window-header{cursor:default}.spatial-window-actions .maximize-action{display:none}.spatial-window-body{padding:12px}
 .spatial-window-body.frame-body{padding:0}.spatial-module-frame{min-height:100%}
 .spatial-kpi-grid{grid-template-columns:repeat(2,1fr)}.training-form-grid,.training-form-grid.cols-3{grid-template-columns:1fr}.training-form-grid .field.full{grid-column:auto}
 .training-set-row{grid-template-columns:34px 1fr 1fr 44px}.training-set-row .set-rir{display:none}
 .training-import-row{grid-template-columns:1fr 1fr}.training-import-row>*:first-child{grid-column:1/-1}
 .spatial-window-dock{min-height:50px}
}

.spatial-frame-cache{position:fixed!important;width:1px!important;height:1px!important;overflow:hidden!important;left:-9999px!important;top:-9999px!important;opacity:0!important;pointer-events:none!important}.spatial-training-frame-slot{height:100%;min-height:0}.spatial-training-frame-slot>.spatial-module-frame{width:100%;height:100%;border:0;display:block}.spatial-window-body.frame-body{overflow:hidden}.spatial-window-body.frame-body>.spatial-training-frame-slot{height:100%}

.training-set-row-extended{grid-template-columns:34px repeat(7,minmax(64px,1fr)) 38px;min-width:760px}.training-active-exercise .exercise-inside{overflow-x:auto}@media(max-width:700px){.training-set-row-extended{grid-template-columns:30px repeat(7,76px) 38px}.training-import-row{overflow-x:auto}}
