:root{--ppf-bg:#06080a;--ppf-bg-deep:#000;--ppf-surface:#0d1014;--ppf-surface-elev:#14181d;--ppf-line:#ffffff14;--ppf-line-strong:#ffffff29;--ppf-text:#edebe6;--ppf-text-strong:#f5f3ef;--ppf-text-muted:#8b8b8b;--ppf-red:#c7222a;--ppf-red-hover:#e2333c;--ppf-amber:#d4a72c;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--bg:#141927;--surface:#1d2331e6;--surface-strong:#222838f5;--surface-soft:#282f40d1;--line:#ffffff14;--text-primary:#f2f4f8;--text-secondary:#b9c1cf;--accent:#c7222a;--accent-soft:#c7222a24;--shadow-soft:0 22px 48px #070a126b, 0 6px 18px #070a123d;--font-sans:"DM Sans", "Manrope", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-display:"Outfit", "Manrope", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;font-family:var(--font-sans);color:var(--text-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#c7222a1f,#0000 18%),radial-gradient(circle at 100% 0,#57627a14,#0000 24%),linear-gradient(#141927,#111522);font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}body,button,input,select,textarea{font-family:var(--font-sans)}img{max-width:100%;display:block}h1,h2,h3,h4{color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.03em;margin:0;line-height:1.08}h1{font-size:clamp(2.5rem,5.2vw,4.2rem)}h2{font-size:clamp(1.7rem,4vw,2.5rem)}h3{font-size:clamp(1.2rem,2.4vw,1.55rem)}p{margin:0}a{color:inherit}#root{min-height:100vh}.eyebrow{color:#ffffff8f;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:700}.landing-shell,.login-shell{min-height:100vh;padding:clamp(1rem,2vw,2rem)}.landing-shell{max-width:1360px;margin:0 auto}.landing-hero{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:1.75rem;margin-bottom:1.75rem;display:grid}.landing-copy,.hero-card,.surface-card,.login-card,.main-panel,.app-sidebar,.metric-card,.food-card,.workspace-empty-state{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:28px}.landing-copy,.hero-card,.surface-card,.main-panel,.login-card,.workspace-empty-state{padding:1.5rem}.surface-card,.main-panel,.login-card,.workspace-empty-state{position:relative;overflow:hidden}.landing-copy{background:linear-gradient(90deg,#c7222af2 0 6px,#0000 6px),radial-gradient(circle at 100% 0,#c7222a29,#0000 24%),linear-gradient(#212736fa,#1a202efa);flex-direction:column;justify-content:center;min-height:28rem;display:flex;position:relative;overflow:hidden}.hero-card{background:radial-gradient(circle at 0 0,#c7222a1a,#0000 28%),linear-gradient(#212736fa,#1a202efa);flex-direction:column;justify-content:flex-start;gap:1.1rem;display:flex}.brand-logo,.sidebar-brand-logo,.dashboard-brand-logo,.report-logo-mark{object-fit:contain;width:4rem;height:4rem}.brand-logo{width:5rem;height:5rem}.feature-list,.food-card ul{margin:0;padding-left:1.15rem}.feature-list li,.food-card li{color:var(--text-secondary);margin-top:.55rem}.hero-actions,.portal-actions,.plan-history-actions,.trainer-hero-actions,.nav-actions,.sidebar-actions{flex-wrap:wrap;gap:.75rem;display:flex}.app-shell{grid-template-columns:minmax(320px,360px) minmax(0,1fr);align-items:start;gap:1.25rem;min-height:100vh;padding:1.25rem;display:grid}.app-sidebar{background:linear-gradient(90deg,#c7222af2 0 5px,#0000 5px),radial-gradient(circle at 0 0,#c7222a1f,#0000 24%),linear-gradient(#212736fa,#1a1f2dfa);border-radius:32px;gap:1rem;max-height:calc(100vh - 2.5rem);padding:1.4rem;display:grid;position:sticky;top:1.25rem;overflow:auto}.sidebar-brand-block,.dashboard-brand-lockup,.report-brand-lockup{align-items:center;gap:.9rem;display:flex}.sidebar-brand-block{margin-bottom:.4rem}.sidebar-brand-title{color:var(--text-primary);font-size:1.2rem;font-weight:700}.sidebar-intro{gap:.65rem;display:grid}.sidebar-dashboard-title{letter-spacing:-.05em;text-wrap:balance;max-width:7.1ch;font-size:clamp(2.2rem,3.1vw,3.25rem);line-height:.94}.sidebar-intro .lede{max-width:19rem;font-size:.99rem;line-height:1.5}.sidebar-card,.clients-panel{border:1px solid var(--line);background:#272e3fd6;border-radius:24px;padding:1.15rem}.sidebar-card{background:#272e3fdb}.clients-panel{margin-top:1rem}.clients-panel-header{margin-bottom:.9rem}.clients-panel-header h3,.athlete-form-section-heading h3,.metric-card h3,.food-card h4,.plan-history-title,.request-mini-card strong{margin:0}.client-list,.request-mini-list,.section-stack,.results-stack{gap:.85rem;display:grid}.client-card,.request-mini-card{border:1px solid var(--line);color:inherit;text-align:left;background:#262c3df5;border-radius:20px;gap:.4rem;padding:1rem;display:grid}.client-card.active,.saved-plan-item.active,.request-mini-card:hover,.client-card:hover{border-color:#c7222a80;box-shadow:0 16px 34px #070a1259}.app-main{gap:1.25rem;padding:.25rem 0 2rem;display:grid}.app-main>*{width:min(100%,1120px);margin-inline:auto}.portal-notice,.login-error{border-radius:16px;margin:0 0 1rem;padding:.85rem 1rem;font-size:.95rem}.portal-notice{color:#ffd2d6;background:#c7222a1f;border:1px solid #c7222a3d}.login-error{color:#ffd2d6;background:#b81c1c1f;border:1px solid #b81c1c3d}.trainer-dashboard-panel-wide,.step-card,.plan-report,.trainer-hero-card{gap:1rem;display:grid}.trainer-hero-card{background:linear-gradient(90deg,#c7222af2 0 5px,#0000 5px),radial-gradient(circle at 100% 0,#c7222a1f,#0000 25%),linear-gradient(#232939fa,#1d2331fa);margin-bottom:1rem;padding:1.65rem}.trainer-hero-stats,.metrics-grid,.workspace-overview-grid,.results-detail-grid,.food-grid{gap:1rem;display:grid}.trainer-hero-stats,.workspace-overview-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metrics-grid.three-up{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.metrics-grid.four-up,.food-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.results-detail-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.trainer-hero-top{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1.25rem;display:grid}.dashboard-brand-lockup{align-items:flex-start}.trainer-hero-card h2{margin-top:.25rem;font-size:clamp(2rem,3.2vw,3rem)}.metric-card{background:#282f40f0;align-content:start;gap:.15rem;min-height:100%;padding:1.15rem;display:grid}.metric-card-primary{background:radial-gradient(circle at 100% 0,#c7222a2e,#0000 28%),#282f40f5;border-color:#ffffff17}.metric-card-warning{background:#3d2d1ff0;border-color:#d9770657}.metric-card .eyebrow{margin-bottom:.15rem}.metric-card h3{color:var(--text-primary);margin-top:.35rem;font-size:clamp(1.45rem,2.2vw,2rem);line-height:1}.main-header,.plan-report-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.workspace-subtitle,.surface-copy,.helper-text,.portal-copy,.lede,.field-hint,.client-card span,.client-card small,.request-mini-card span,.athlete-form-section-heading p,.plan-history-subtitle,.plan-history-summary{color:var(--text-secondary)}.workspace-overview-grid,.report-preview-wrap{margin-bottom:1rem}.workspace-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:1.25rem;display:grid}.workspace-grid-results{grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr)}.step-list.horizontal{flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;display:flex}.step-pill{border:1px solid var(--line);color:inherit;background:#262c3ceb;border-radius:999px;align-items:center;gap:.65rem;padding:.8rem 1rem;display:inline-flex}.step-pill span{background:#ffffff14;border-radius:999px;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;font-size:.84rem;display:inline-flex}.step-pill.active{background:#c7222a24;border-color:#c7222a80}.field-grid{gap:1rem;display:grid}.field-grid.two-up{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.field-grid.three-up{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.field-grid.four-up{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.field{gap:.5rem;display:grid}.field-label{color:var(--text-primary);letter-spacing:-.01em;font-size:.92rem;font-weight:600}.field input,.field select,.field textarea{width:100%;color:var(--text-primary);font:inherit;resize:vertical;background:#272e3ff5;border:1px solid #ffffff14;border-radius:18px;padding:.95rem 1rem;transition:border-color .2s,box-shadow .2s,transform .2s,background-color .2s}.field input:focus,.field select:focus,.field textarea:focus{background:#2c3345fa;border-color:#c7222a99;outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #c7222a29}.field input::placeholder,.field textarea::placeholder{color:#808aa0}.field-hint{font-size:.84rem}.trainer-context-pills{flex-wrap:wrap;gap:.6rem;display:flex}.trainer-context-pill{color:var(--text-primary);background:#ffffff0f;border-radius:999px;align-items:center;padding:.45rem .8rem;font-size:.88rem;display:inline-flex}.trainer-context-pill.accent{color:#ffd7db;background:#c7222a29}.metric-row,.plan-history-meta{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.metric-row+.metric-row{margin-top:.65rem}.metric-row--active{color:#fde68a;font-weight:600}.saved-plan-list{gap:1rem;display:grid}.saved-plan-item{border:1px solid var(--line);background:#222838f0;border-radius:24px;padding:1.35rem 1.45rem}.plan-history-main{gap:.65rem;margin-bottom:1rem;display:grid}.plan-history-title{color:var(--text-primary);font-weight:600}.status-pill{color:var(--text-primary);background:#ffffff14;border-radius:999px;align-items:center;padding:.3rem .65rem;font-size:.8rem;display:inline-flex}.dashboard-section{padding:1.45rem 1.55rem}.dashboard-section-header{gap:.3rem;margin-bottom:1.1rem;display:grid}.plan-report{background:radial-gradient(circle at 100% 0,#c7222a1f,#0000 28%),linear-gradient(#212736fa,#1a202efa)}.athlete-intake-form{background:linear-gradient(90deg,#c7222af2 0 5px,#0000 5px),radial-gradient(circle at 100% 0,#c7222a1f,#0000 24%),linear-gradient(#212736fa,#1a202efa);padding:1.75rem}.athlete-intake-form .section-stack{gap:1.35rem}.athlete-intake-banner{border-bottom:1px solid #ffffff14;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:grid}.athlete-intake-copy{gap:.65rem;display:grid}.athlete-intake-copy h2{max-width:12ch;font-size:clamp(2rem,4vw,3.25rem)}.athlete-intake-summary{background:#272e3fe6;border:1px solid #ffffff14;border-radius:24px;gap:.75rem;padding:1.15rem;display:grid}.athlete-intake-stat{gap:.2rem;display:grid}.athlete-intake-stat span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;font-weight:700}.athlete-intake-stat strong{font-size:1rem}.athlete-form-section-heading{gap:.35rem;padding:.15rem 0 .1rem;display:grid}.athlete-intake-form .field-grid,.athlete-intake-form>.field,.athlete-intake-form textarea{position:relative}.athlete-intake-form .field-grid,.athlete-intake-form .field,.athlete-intake-form .portal-actions{z-index:1;position:relative}.results-hero-card,.results-detail-card,.results-foods-card{padding:1.5rem}.results-hero-card{background:radial-gradient(circle at 100% 0,#c7222a1f,#0000 24%),linear-gradient(#212736fa,#1a202efa)}.results-summary-grid,.results-macro-grid,.results-portion-grid,.results-food-grid{margin-top:1rem}.results-portion-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.results-food-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.results-macro-grid .metric-card,.results-portion-grid .metric-card{min-width:0}.results-portion-grid .metric-card h3,.results-macro-grid .metric-card h3{font-size:clamp(1.35rem,1.8vw,1.85rem)}.results-portion-grid .metric-card .surface-copy,.results-macro-grid .metric-card .surface-copy,.results-summary-grid .metric-card .surface-copy{max-width:14ch;line-height:1.35}.food-card{background:#272e3feb;padding:1.25rem}.food-card h4{margin-bottom:.3rem;font-size:1.2rem}button{font:inherit;cursor:pointer;border:0;transition:transform .18s,box-shadow .18s,background-color .18s,border-color .18s}button:hover{transform:translateY(-1px)}.primary-button,.ghost-button{border-radius:999px;padding:.88rem 1.15rem;font-weight:700}.primary-button{color:#fff8f6;background:linear-gradient(135deg,#c7222a,#991b1f);box-shadow:0 14px 28px #c7222a3d}.primary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.ghost-button{color:var(--text-primary);background:#272e3fe6;border:1px solid #ffffff14}.ghost-button:hover{background:#2e3548fa}.danger-button{color:#991b1b;border-color:#ef44444d}@media (width<=1120px){.app-shell,.workspace-grid,.workspace-grid-results,.landing-hero,.results-detail-grid{grid-template-columns:1fr}.app-sidebar{max-height:none;position:static}.main-header,.plan-report-header{flex-direction:column}.trainer-hero-top{grid-template-columns:1fr}.trainer-hero-stats,.workspace-overview-grid,.metrics-grid.three-up,.metrics-grid.four-up,.food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-intake-banner{grid-template-columns:1fr}}@media (width<=720px){.landing-shell,.login-shell,.app-main,.app-sidebar{padding:1rem}.app-shell{gap:.75rem;padding:.75rem}.field-grid.two-up,.field-grid.three-up,.field-grid.four-up,.trainer-hero-stats,.workspace-overview-grid,.metrics-grid.three-up,.metrics-grid.four-up,.food-grid{grid-template-columns:1fr}.sidebar-dashboard-title,.athlete-intake-copy h2{max-width:none;font-size:clamp(2rem,10vw,2.9rem)}.trainer-hero-card h2{font-size:clamp(1.8rem,8vw,2.4rem)}.hero-actions,.portal-actions,.plan-history-actions,.trainer-hero-actions,.nav-actions,.sidebar-actions{flex-direction:column}.primary-button,.ghost-button{justify-content:center;width:100%}}.bf-precision-block{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;margin-top:20px;padding:14px 18px}.bf-precision-block summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9375rem;font-weight:500;list-style:none}.bf-precision-block summary:before{content:"+ ";color:#ffffff80;width:1em;font-weight:600;display:inline-block}.bf-precision-block[open] summary:before{content:"− "}.bf-help{color:#ffffffa6;margin:10px 0 14px;font-size:.8125rem;line-height:1.5}.bf-input-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.bf-input-label{flex-direction:column;gap:6px;font-size:.875rem;display:flex}.bf-input-label>span{color:#ffffffd9;font-weight:500}.bf-input-label input[type=number]{color:#fff;background:#00000040;border:1px solid #ffffff26;border-radius:7px;padding:9px 11px;font-family:inherit;font-size:.9375rem}.bf-input-label input[type=number]:focus{border-color:#c7222a;outline:none}.bf-input-label small{color:#ffffff8c;font-size:.75rem;line-height:1.4}.steps-input{flex-direction:column;gap:6px;margin:18px 0;font-size:.875rem;display:flex}.steps-input>span{color:#ffffffd9;font-weight:500}.steps-input input[type=number]{color:#fff;background:#00000040;border:1px solid #ffffff26;border-radius:7px;max-width:220px;padding:9px 11px;font-family:inherit;font-size:.9375rem}.steps-input input[type=number]:focus{border-color:#c7222a;outline:none}.steps-input small{color:#ffffff8c;font-size:.75rem;line-height:1.4}.landing-shell{background:var(--ppf-bg);color:var(--ppf-text);font-family:"DM Sans", var(--font-sans);max-width:100%;min-height:100vh;margin:0;padding:0}.landing-shell h1,.landing-shell h2,.landing-shell h3{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.02em}.landing-shell .eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);font-size:.75rem;font-weight:500}.landing-shell .landing-hero{flex-direction:column;gap:1.5rem;max-width:1280px;margin:0 auto;padding:clamp(1.5rem,5vw,3rem) clamp(1.25rem,5vw,2.5rem);display:flex}.landing-shell .landing-copy{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;min-height:auto;padding:0;display:block;position:relative}.landing-shell .landing-copy:before{content:"";background:var(--ppf-red);width:4px;position:absolute;top:.4rem;bottom:.4rem;left:-1.25rem}.landing-shell .landing-copy h1{text-wrap:balance;margin:.75rem 0 1.25rem;font-size:clamp(2.25rem,7vw,4rem);font-weight:700;line-height:1.05}.landing-shell .landing-copy h1 em,.landing-shell .landing-copy .accent{color:var(--ppf-red);font-style:normal}.landing-shell .landing-copy .lede{color:var(--ppf-text);opacity:.78;max-width:56ch;margin:0 0 1.75rem;font-size:1rem;line-height:1.6}.landing-shell .hero-card{border:1px solid var(--ppf-line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:4px;padding:1.5rem}.landing-shell .hero-card .brand-logo{width:3rem;height:3rem;margin-bottom:.5rem}.landing-shell .feature-list{margin:.5rem 0 0;padding:0;list-style:none}.landing-shell .feature-list li{border-bottom:1px solid var(--ppf-line);color:var(--ppf-text);opacity:.85;padding:.6rem 0;font-size:.95rem}.landing-shell .feature-list li:last-child{border-bottom:0}.landing-shell .primary-button,.landing-shell .ghost-button{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;justify-content:center;align-items:center;min-height:48px;padding:.95rem 1.4rem;font-size:.8rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.landing-shell .primary-button{background:var(--ppf-red);border-color:var(--ppf-red);color:#fff;box-shadow:none;transform:none}.landing-shell .primary-button:hover{background:var(--ppf-red-hover);border-color:var(--ppf-red-hover);transform:none}.landing-shell .ghost-button{border-color:var(--ppf-line-strong);color:var(--ppf-text-strong);background:0 0}.landing-shell .ghost-button:hover{border-color:var(--ppf-text);background:#ffffff0d;transform:none}.landing-shell .hero-actions,.landing-shell .portal-actions{flex-wrap:wrap;gap:.75rem}@media (width>=768px){.landing-shell .landing-hero{flex-direction:row;align-items:stretch;gap:2.5rem;padding:clamp(2.5rem,6vw,5rem) clamp(2rem,5vw,3rem)}.landing-shell .landing-copy{flex:1.5}.landing-shell .hero-card{flex:1;max-width:380px}}.landing-shell .athlete-intake-form{background:var(--ppf-bg-deep);border:0;border-top:1px solid var(--ppf-line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;max-width:1280px;margin:0 auto;padding:clamp(1.5rem,5vw,3rem) clamp(1.25rem,5vw,2.5rem)}.landing-shell .athlete-intake-banner{border-bottom:1px solid var(--ppf-line);flex-direction:column;grid-template-columns:none;gap:1.5rem;margin-bottom:2rem;padding-bottom:2rem;display:flex}.landing-shell .athlete-intake-copy{flex-direction:column;gap:.75rem;display:flex}.landing-shell .athlete-intake-copy h2{max-width:none;margin:.25rem 0 .5rem;font-size:clamp(1.75rem,5.5vw,2.75rem);font-weight:700;line-height:1.1}.landing-shell .athlete-intake-copy .helper-text{color:var(--ppf-text);opacity:.7;max-width:60ch;font-size:.95rem;line-height:1.55}.landing-shell .athlete-intake-summary{display:none}@media (width>=768px){.landing-shell .athlete-intake-summary{border:1px solid var(--ppf-line);background:0 0;border-radius:4px;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}}.landing-shell .athlete-intake-stat{border-bottom:1px solid var(--ppf-line);gap:.25rem;padding:.85rem 1rem;display:grid}.landing-shell .athlete-intake-stat:last-child{border-bottom:0}.landing-shell .athlete-intake-stat span{font-family:var(--font-mono);letter-spacing:1.6px;color:var(--ppf-text-muted);text-transform:uppercase;font-size:.7rem;font-weight:500}.landing-shell .athlete-intake-stat strong{color:var(--ppf-text-strong);font-size:.95rem;font-weight:600}@media (width>=768px){.landing-shell .athlete-intake-banner{flex-direction:row;align-items:flex-start;gap:3rem}.landing-shell .athlete-intake-copy{flex:2}.landing-shell .athlete-intake-summary{flex:1;max-width:320px}}.landing-shell .athlete-form-section-heading{margin-top:1rem}.landing-shell .athlete-form-section-heading h3{margin-bottom:.4rem;font-size:1.35rem;font-weight:700}.landing-shell .athlete-form-section-heading p{color:var(--ppf-text-muted);font-size:.9rem}.landing-shell .athlete-intake-form .section-stack{gap:2rem;display:grid}.landing-shell .field-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.landing-shell .field-grid.two-up,.landing-shell .field-grid.three-up,.landing-shell .field-grid.four-up{grid-template-columns:1fr 1fr}}@media (width>=1024px){.landing-shell .field-grid.three-up{grid-template-columns:1fr 1fr 1fr}.landing-shell .field-grid.four-up{grid-template-columns:1fr 1fr 1fr 1fr}}.landing-shell .field{gap:.5rem;display:grid}.landing-shell .field-label{font-family:var(--font-mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--ppf-text-muted);font-size:.75rem;font-weight:500}.landing-shell .field input,.landing-shell .field select,.landing-shell .field textarea{border:1px solid var(--ppf-line-strong);background:var(--ppf-surface);width:100%;min-height:48px;color:var(--ppf-text-strong);box-shadow:none;border-radius:4px;padding:.85rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .15s,background .15s;transform:none}.landing-shell .field input:focus,.landing-shell .field select:focus,.landing-shell .field textarea:focus{border-color:var(--ppf-red);background:var(--ppf-surface-elev);box-shadow:0 0 0 1px var(--ppf-red);outline:none;transform:none}.landing-shell .field input::placeholder,.landing-shell .field textarea::placeholder{color:var(--ppf-text-muted);opacity:.6}.landing-shell .field textarea{resize:vertical;min-height:7rem}.landing-shell .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238b8b8b' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.5rem}.landing-shell .checkbox-row{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}@media (width>=640px){.landing-shell .checkbox-row{flex-flow:wrap;gap:1.5rem}}.landing-shell .checkbox-field{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ppf-text);align-items:center;gap:.625rem;min-height:44px;font-size:.95rem;display:inline-flex}.landing-shell .checkbox-field input[type=checkbox]{appearance:none;border:1px solid var(--ppf-line-strong);background:var(--ppf-surface);cursor:pointer;border-radius:3px;flex-shrink:0;width:20px;height:20px;transition:border-color .12s,background .12s;position:relative}.landing-shell .checkbox-field input[type=checkbox]:hover{border-color:var(--ppf-red)}.landing-shell .checkbox-field input[type=checkbox]:checked{background:var(--ppf-red);border-color:var(--ppf-red)}.landing-shell .checkbox-field input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.landing-shell .checkbox-field input[type=checkbox]:focus-visible{outline:2px solid var(--ppf-red);outline-offset:2px}.landing-shell .next-step-note{border:1px solid var(--ppf-line);border-left:3px solid var(--ppf-red);background:#ffffff05;border-radius:4px;margin-top:1.5rem;padding:1rem 1.25rem}.landing-shell .next-step-note .eyebrow{color:var(--ppf-text-muted);margin-bottom:.5rem;font-size:.7rem}.landing-shell .next-step-note p:not(.eyebrow){color:var(--ppf-text);margin:0;font-size:.9rem;line-height:1.5}.landing-shell .portal-actions{border-top:1px solid var(--ppf-line);flex-direction:column-reverse;gap:.75rem;margin-top:1rem;padding-top:1.5rem;display:flex}.landing-shell .portal-actions>.primary-button,.landing-shell .portal-actions>.ghost-button{width:100%}@media (width>=640px){.landing-shell .portal-actions{flex-direction:row;justify-content:flex-end}.landing-shell .portal-actions>.primary-button,.landing-shell .portal-actions>.ghost-button{width:auto;min-width:12rem}}.landing-shell .surface-card{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0}.login-shell.landing-shell{background:var(--ppf-bg-deep);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.25rem;display:flex}.login-shell.landing-shell .login-card{background:var(--ppf-surface);border:1px solid var(--ppf-line);width:100%;max-width:480px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:6px;flex-direction:column;gap:1.25rem;padding:2rem 1.5rem;display:flex}@media (width>=640px){.login-shell.landing-shell .login-card{padding:2.5rem 2.25rem}}.login-shell.landing-shell .login-card .eyebrow{margin:0}.login-shell.landing-shell .login-card h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ppf-text-strong);margin:0;font-size:clamp(1.75rem,4vw,2.4rem);line-height:1.05}.login-shell.landing-shell .login-card h1 .accent{color:var(--ppf-red)}.login-shell.landing-shell .login-card .portal-copy{color:var(--ppf-text-muted);margin:0;font-size:.95rem;line-height:1.5}.login-shell.landing-shell .login-error{border:1px solid #c7222a52;border-left:3px solid var(--ppf-red);color:var(--ppf-text);background:#c7222a1f;border-radius:4px;margin:0;padding:.75rem 1rem;font-size:.9rem}.login-shell.landing-shell .portal-actions{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}@media (width>=640px){.login-shell.landing-shell .portal-actions{flex-direction:row;justify-content:flex-end}}.login-shell.landing-shell .portal-actions .primary-button{width:100%}@media (width>=640px){.login-shell.landing-shell .portal-actions .primary-button{width:auto}}.trainer-shell{background:var(--ppf-bg);color:var(--ppf-text);font-family:"DM Sans", var(--font-sans);width:100%;min-height:100vh}.trainer-shell h1,.trainer-shell h2,.trainer-shell h3,.trainer-shell h4{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.02em}.trainer-shell .eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0;font-size:.75rem;font-weight:500}.trainer-shell .accent{color:var(--ppf-red)}.trainer-shell:before{content:"Trainer-Dashboard ist auf Desktop optimiert. Bitte am Computer öffnen (≥1024 px).";background:var(--ppf-bg-deep);color:var(--ppf-text);font-family:var(--font-mono);letter-spacing:.05em;text-align:center;z-index:1000;padding:4rem 1.5rem;font-size:.875rem;display:none;position:fixed;inset:0}@media (width<=1023px){.trainer-shell:before{display:block}.trainer-shell>*{visibility:hidden}}.trainer-header{z-index:50;background:var(--ppf-bg-deep);border-bottom:1px solid var(--ppf-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.trainer-header__brand{align-items:center;gap:.75rem;display:flex}.trainer-header__logo{border:1px solid var(--ppf-line-strong);background:var(--ppf-surface);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.trainer-header__logo img{object-fit:contain;width:22px;height:22px}.trainer-header__wordmark{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.01em;font-size:1rem;font-weight:600}.trainer-header__user{color:var(--ppf-text-muted);align-items:center;gap:1rem;font-size:.875rem;display:flex}.trainer-header__user-name{color:var(--ppf-text-strong);font-weight:500}.trainer-header__logout{color:var(--ppf-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:color .15s,background .15s}.trainer-header__logout:hover{color:var(--ppf-text-strong);background:#ffffff0a}.trainer-main{max-width:1200px;margin:0 auto;padding:2.5rem 2rem 4rem}.trainer-overview{margin-bottom:3rem}.trainer-overview__greeting{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin:.5rem 0 2rem;display:flex}.trainer-overview__greeting-text h1{margin:.25rem 0;font-size:clamp(2rem,3vw,2.75rem);font-weight:700}.trainer-overview__greeting-sub{color:var(--ppf-text-muted);margin:0;font-size:1rem}.trainer-overview__last-client-button{border:1px solid var(--ppf-line-strong);color:var(--ppf-text-strong);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.75rem;transition:border-color .15s,background .15s;display:inline-flex}.trainer-overview__last-client-button:hover{border-color:var(--ppf-text);background:#ffffff08}.trainer-overview__last-client-button:disabled{opacity:.4;cursor:not-allowed}.kpi-row{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.kpi-card{border:1px solid var(--ppf-line);background:var(--ppf-surface);cursor:pointer;text-align:left;color:inherit;border-radius:6px;padding:1.25rem 1.5rem;font-family:inherit;transition:border-color .15s,transform .15s}.kpi-card:hover{border-color:var(--ppf-line-strong);transform:translateY(-1px)}.kpi-card__eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 .5rem;font-size:.75rem;font-weight:500}.kpi-card__value{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);margin:0 0 .5rem;font-size:2.75rem;font-weight:700;line-height:1}.kpi-card__label{color:var(--ppf-text-muted);margin:0;font-size:.875rem}.request-inbox{margin-bottom:3rem}.request-inbox__heading{margin:0 0 1rem;font-size:1.5rem;font-weight:600}.request-tabs{border-bottom:1px solid var(--ppf-line);gap:1.5rem;margin-bottom:0;display:flex}.request-tab{color:var(--ppf-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem .25rem;font-family:inherit;font-size:.875rem;transition:color .15s,border-color .15s}.request-tab:hover{color:var(--ppf-text-strong)}.request-tab.active{color:var(--ppf-text-strong);border-bottom-color:var(--ppf-red);font-weight:500}.request-tab__count{color:var(--ppf-text-muted);font-family:var(--font-mono);margin-left:.4rem;font-size:.8em}.request-tab.active .request-tab__count{color:var(--ppf-red)}.request-list{border-bottom:1px solid var(--ppf-line);margin:0;padding:0;list-style:none}.request-row{border-bottom:1px solid var(--ppf-line);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border-top:none;border-left:none;border-right:none;grid-template-columns:130px 1fr 220px 28px;align-items:center;gap:1rem;padding:1rem .5rem;font-family:inherit;transition:background .12s;display:grid}.request-row:hover{background:#ffffff05}.request-row:focus-visible{outline:2px solid var(--ppf-red);outline-offset:-2px}.request-row__date{font-family:var(--font-mono);color:var(--ppf-text-muted);letter-spacing:.02em;font-size:.8125rem}.request-row__identity{flex-direction:column;gap:.125rem;min-width:0;display:flex}.request-row__name{color:var(--ppf-text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:500;overflow:hidden}.request-row__email{color:var(--ppf-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.request-row__goal{color:var(--ppf-text);text-align:right;font-size:.875rem;font-family:var(--font-mono);letter-spacing:.02em}.request-row__chevron{color:var(--ppf-text-muted);text-align:center;font-size:1rem;transition:color .15s,transform .15s}.request-row:hover .request-row__chevron{color:var(--ppf-red);transform:translate(2px)}.request-row__status{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--ppf-text-muted);text-align:right;font-size:.75rem}.request-row__status--converted{color:var(--ppf-text)}.request-empty{text-align:center;font-family:var(--font-mono);color:var(--ppf-text-muted);letter-spacing:.05em;padding:3rem 1rem;font-size:.875rem}.quick-access{margin-top:3rem}.quick-access__heading{margin:0 0 1rem;font-size:1.25rem;font-weight:600}.quick-access__list{border-top:1px solid var(--ppf-line);margin:0;padding:0;list-style:none}.quick-access__row{border-bottom:1px solid var(--ppf-line);grid-template-columns:1fr auto;align-items:center;gap:1rem;padding:.875rem .5rem;display:grid}.quick-access__name{color:var(--ppf-text-strong);font-size:.9375rem;font-weight:500}.quick-access__meta{color:var(--ppf-text-muted);margin-left:.75rem;font-size:.8125rem}.quick-access__open{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ppf-text-strong);cursor:pointer;background:0 0;border-radius:4px;padding:.4rem .875rem;font-size:.75rem;transition:border-color .15s,background .15s}.quick-access__open:hover{border-color:var(--ppf-red);color:var(--ppf-red)}.request-detail{max-width:960px;margin:0 auto;padding:2.5rem 2rem 4rem}.request-detail__back{color:var(--ppf-text-muted);font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;margin-bottom:2rem;padding:0;font-size:.8125rem;transition:color .15s;display:inline-flex}.request-detail__back:hover{color:var(--ppf-text-strong)}.request-detail__header{margin-bottom:2.5rem}.request-detail__header h1{margin:.5rem 0 .25rem;font-size:2.25rem;font-weight:700}.request-detail__received{color:var(--ppf-text-muted);margin:0;font-size:.9375rem}.request-detail__status-badge{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--ppf-text);border-radius:4px;margin-top:.75rem;padding:.375rem .75rem;font-size:.75rem;display:inline-block}.detail-card-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem;display:grid}.detail-card{border:1px solid var(--ppf-line);background:var(--ppf-surface);border-radius:6px;padding:1.25rem 1.5rem}.detail-card__eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 1rem;font-size:.75rem;font-weight:500}.detail-card__rows{flex-direction:column;gap:.5rem;display:flex}.detail-card__row{grid-template-columns:110px 1fr;align-items:baseline;gap:.75rem;font-size:.875rem;display:grid}.detail-card__row dt{color:var(--ppf-text-muted);font-weight:400}.detail-card__row dd{color:var(--ppf-text-strong);margin:0}.request-detail__notes{margin-bottom:2.5rem}.request-detail__notes-eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 .75rem;font-size:.75rem;font-weight:500}.request-detail__notes-body{border-left:2px solid var(--ppf-red);color:var(--ppf-text);margin:0;padding:.5rem 1rem;font-size:.9375rem;font-style:italic}.request-detail__notes-body--empty{color:var(--ppf-text-muted);border-left-color:var(--ppf-line-strong);font-style:normal}.detail-actions{border-top:1px solid var(--ppf-line);justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}.detail-actions__primary{background:var(--ppf-red);color:#fff;border:1px solid var(--ppf-red);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:.875rem 1.5rem;font-size:.8125rem;transition:background .15s,border-color .15s}.detail-actions__primary:hover{background:var(--ppf-red-hover);border-color:var(--ppf-red-hover)}.detail-actions__primary:disabled{opacity:.5;cursor:not-allowed}.detail-actions__secondary{color:var(--ppf-text-muted);border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;padding:.875rem 1.5rem;font-size:.8125rem;transition:border-color .15s,color .15s}.detail-actions__secondary:hover{border-color:var(--ppf-text);color:var(--ppf-text-strong)}.detail-error{color:var(--ppf-red);font-family:var(--font-mono);margin:1rem 0 0;font-size:.8125rem}.workspace-shell{background:var(--ppf-bg);color:var(--ppf-text);font-family:"DM Sans", var(--font-sans);width:100%;min-height:100vh}.workspace-main{max-width:1400px;margin:0 auto;padding:2rem 2rem 4rem}.workspace-back-link{color:var(--ppf-text-muted);font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:0;font-size:.8125rem;transition:color .15s;display:inline-flex}.workspace-back-link:hover{color:var(--ppf-text-strong)}.workspace-subheader{border-bottom:1px solid var(--ppf-line);grid-template-columns:1fr auto;align-items:end;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;display:grid}.workspace-subheader__title-block h1{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.02em;margin:.5rem 0 .75rem;font-size:clamp(2rem,3vw,2.5rem);font-weight:700}.workspace-pills{font-family:var(--font-mono);color:var(--ppf-text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.workspace-pill{align-items:center;gap:.4rem;display:inline-flex}.workspace-pill:before{content:"·";color:var(--ppf-line-strong);margin-right:.4rem}.workspace-pill:first-child:before{display:none}.workspace-pill--accent{color:var(--ppf-red)}.workspace-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.workspace-actions__button{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ppf-text-strong);cursor:pointer;background:0 0;border-radius:4px;padding:.7rem 1.1rem;font-size:.75rem;transition:border-color .15s,background .15s}.workspace-actions__button:hover:not(:disabled){border-color:var(--ppf-text);background:#ffffff08}.workspace-actions__button:disabled{opacity:.4;cursor:not-allowed}.workspace-actions__button--primary{background:var(--ppf-red);border-color:var(--ppf-red);color:#fff}.workspace-actions__button--primary:hover:not(:disabled){background:var(--ppf-red-hover);border-color:var(--ppf-red-hover)}.workspace-stepper{border-bottom:1px solid var(--ppf-line);gap:0;margin-bottom:2rem;display:flex;overflow-x:auto}.workspace-step-tab{cursor:pointer;white-space:nowrap;color:var(--ppf-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;align-items:flex-start;gap:.25rem;margin-bottom:-1px;margin-right:1.75rem;padding:1rem 1.5rem 1rem 0;font-family:inherit;transition:color .15s,border-color .15s;display:flex}.workspace-step-tab:hover{color:var(--ppf-text)}.workspace-step-tab.active{color:var(--ppf-text-strong);border-bottom-color:var(--ppf-red)}.workspace-step-tab__number{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--ppf-text-muted);font-size:.7rem}.workspace-step-tab.active .workspace-step-tab__number{color:var(--ppf-red)}.workspace-step-tab__label{font-size:.95rem;font-weight:500}.workspace-grid{grid-template-columns:1fr 280px;align-items:start;gap:2rem;margin-bottom:3rem;display:grid}@media (width<=1180px){.workspace-grid{grid-template-columns:1fr}}.workspace-form-column{min-width:0}.workspace-form-section{margin-bottom:2rem}.workspace-form-section__eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 .5rem;font-size:.75rem;font-weight:500}.workspace-form-section__heading{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.01em;margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.workspace-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.workspace-field-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-field{flex-direction:column;gap:.4rem;display:flex}.workspace-field__label{color:var(--ppf-text-muted);letter-spacing:.02em;font-size:.8125rem;font-weight:500}.workspace-field__input,.workspace-field__select,.workspace-field__textarea{background:var(--ppf-bg-deep);border:1px solid var(--ppf-line);color:var(--ppf-text-strong);border-radius:4px;padding:.7rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s}.workspace-field__input:focus,.workspace-field__select:focus,.workspace-field__textarea:focus{border-color:var(--ppf-red);outline:none}.workspace-field__hint{color:var(--ppf-text-muted);font-size:.75rem;font-style:italic}.workspace-sidebar{flex-direction:column;gap:1rem;max-height:calc(100vh - 100px);display:flex;position:sticky;top:80px;overflow-y:auto}.workspace-live-card,.workspace-athlete-card{border:1px solid var(--ppf-line);background:var(--ppf-surface);border-radius:6px;padding:1.25rem 1.25rem 1rem}.workspace-live-card__eyebrow,.workspace-athlete-card__eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 1rem;font-size:.7rem;font-weight:500}.workspace-live-card__metric{margin-bottom:1rem}.workspace-live-card__metric:last-child{margin-bottom:0}.workspace-live-card__metric-label{color:var(--ppf-text-muted);margin:0 0 .2rem;font-size:.8125rem}.workspace-live-card__metric-value{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);margin:0;font-size:1.75rem;font-weight:700;line-height:1.1}.workspace-live-card__metric-value--muted{color:var(--ppf-text);font-size:1.1rem;font-weight:500}.workspace-athlete-card__rows{flex-direction:column;gap:.4rem;font-size:.875rem;display:flex}.workspace-athlete-card__name{color:var(--ppf-text-strong);margin:0 0 .5rem;font-size:1rem;font-weight:600}.workspace-athlete-card__row{color:var(--ppf-text)}.workspace-athlete-card__row--muted{color:var(--ppf-text-muted)}.workspace-athlete-card__row--accent{color:var(--ppf-red)}.workspace-step-footer{border-top:1px solid var(--ppf-line);justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.workspace-step-footer__button{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ppf-text-strong);cursor:pointer;background:0 0;border-radius:4px;padding:.75rem 1.25rem;font-size:.75rem;transition:border-color .15s,background .15s}.workspace-step-footer__button:hover:not(:disabled){border-color:var(--ppf-text);background:#ffffff08}.workspace-step-footer__button:disabled{opacity:.4;cursor:not-allowed}.workspace-step-footer__button--primary{background:var(--ppf-red);border-color:var(--ppf-red);color:#fff}.workspace-step-footer__button--primary:hover:not(:disabled){background:var(--ppf-red-hover);border-color:var(--ppf-red-hover)}.workspace-step-footer__spacer{flex:1}.workspace-notes{border-top:1px solid var(--ppf-line);margin-top:1rem;padding-top:2rem}.workspace-notes__heading{margin-bottom:1rem}.workspace-notes__eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);margin:0 0 .4rem;font-size:.75rem;font-weight:500}.workspace-notes__sub{color:var(--ppf-text-muted);margin:0 0 1rem;font-size:.875rem}.workspace-notes__textarea{background:var(--ppf-bg-deep);border:1px solid var(--ppf-line);width:100%;min-height:7rem;color:var(--ppf-text-strong);resize:vertical;border-radius:4px;padding:.875rem 1rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s}.workspace-notes__textarea:focus{border-color:var(--ppf-red);outline:none}.workspace-notes__actions{justify-content:flex-end;margin-top:.75rem;display:flex}.workspace-notes__save{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ppf-text-strong);cursor:pointer;background:0 0;border-radius:4px;padding:.6rem 1.1rem;font-size:.75rem;transition:border-color .15s,background .15s}.workspace-notes__save:hover:not(:disabled){border-color:var(--ppf-red);color:var(--ppf-red)}.workspace-notes__save:disabled{opacity:.4;cursor:not-allowed}.workspace-shell:before{content:"Trainer-Workspace ist auf Desktop optimiert. Bitte am Computer öffnen (≥1024 px).";background:var(--ppf-bg-deep);color:var(--ppf-text);font-family:var(--font-mono);letter-spacing:.05em;text-align:center;z-index:1000;padding:4rem 1.5rem;font-size:.875rem;display:none;position:fixed;inset:0}@media (width<=1023px){.workspace-shell:before{display:block}.workspace-shell>*{visibility:hidden}}.workspace-shell .surface-card,.workspace-shell .step-card,.workspace-shell .workspace-empty-state,.workspace-shell .bf-precision-block{background:var(--ppf-surface);border:1px solid var(--ppf-line);box-shadow:none;border-radius:6px;margin-bottom:1rem;padding:1.5rem}.workspace-shell .step-card{padding:1.5rem 1.75rem}.workspace-shell .surface-card h3,.workspace-shell .step-card h3{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);letter-spacing:-.01em;margin:.25rem 0 1.25rem;font-size:1.5rem;font-weight:600}.workspace-shell .surface-card .eyebrow,.workspace-shell .step-card .eyebrow{font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--ppf-text-muted);font-size:.75rem;font-weight:500}.workspace-shell .surface-card .eyebrow:before,.workspace-shell .step-card .eyebrow:before,.workspace-shell .workspace-empty-state .eyebrow:before{content:"// "}.workspace-shell .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.workspace-shell .field-grid.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-shell .field-grid.four-up{grid-template-columns:repeat(4,minmax(0,1fr))}.workspace-shell .field{flex-direction:column;gap:.4rem;display:flex}.workspace-shell .field-label{color:var(--ppf-text-muted);letter-spacing:.02em;font-size:.8125rem;font-weight:500}.workspace-shell .field input,.workspace-shell .field select,.workspace-shell .field textarea{background:var(--ppf-bg-deep);border:1px solid var(--ppf-line);color:var(--ppf-text-strong);box-shadow:none;border-radius:4px;padding:.7rem .875rem;font-family:inherit;font-size:.9375rem;transition:border-color .15s}.workspace-shell .field input:focus,.workspace-shell .field select:focus,.workspace-shell .field textarea:focus{border-color:var(--ppf-red);background:var(--ppf-bg-deep);box-shadow:none;outline:none;transform:none}.workspace-shell .field-hint,.workspace-shell .bf-help{color:var(--ppf-text-muted);margin:.25rem 0 0;font-size:.75rem;font-style:italic}.workspace-shell .bf-precision-block{background:var(--ppf-bg-deep);border:1px solid var(--ppf-line);padding:1rem 1.25rem}.workspace-shell .bf-precision-block summary{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ppf-text-strong);cursor:pointer;padding:.25rem 0;font-size:.8125rem}.workspace-shell .bf-precision-block summary:hover{color:var(--ppf-red)}.workspace-shell .bf-precision-block[open] summary{margin-bottom:.75rem}.workspace-shell .metrics-grid,.workspace-shell .metrics-grid.four-up,.workspace-shell .metrics-grid.three-up{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.875rem;margin:1rem 0;display:grid}.workspace-shell .metric-card{background:var(--ppf-bg-deep);border:1px solid var(--ppf-line);box-shadow:none;border-radius:4px;padding:1rem 1.25rem}.workspace-shell .metric-card .eyebrow{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--ppf-text-muted);margin-bottom:.4rem;font-size:.7rem}.workspace-shell .metric-card .metric-value{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);margin:0;font-size:1.5rem;font-weight:700}.workspace-shell .metric-card .metric-helper{color:var(--ppf-text-muted);margin:.3rem 0 0;font-size:.75rem}.workspace-shell .workspace-empty-state{text-align:left;padding:2rem}.workspace-shell .workspace-empty-state h3{margin-top:.25rem}.workspace-shell .surface-copy{color:var(--ppf-text);margin:.5rem 0 0;font-size:.95rem;line-height:1.5}.workspace-shell .step-list,.workspace-shell .step-list.horizontal,.workspace-shell .trainer-step-shell{display:none}.workspace-shell .primary-button{background:var(--ppf-red);border:1px solid var(--ppf-red);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:#fff;cursor:pointer;border-radius:4px;padding:.7rem 1.25rem;font-size:.75rem;font-weight:500}.workspace-shell .primary-button:hover:not(:disabled){background:var(--ppf-red-hover);border-color:var(--ppf-red-hover)}.workspace-shell .primary-button:disabled{opacity:.4;cursor:not-allowed}.workspace-shell .ghost-button{border:1px solid var(--ppf-line-strong);font-family:var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ppf-text-strong);cursor:pointer;background:0 0;border-radius:4px;padding:.7rem 1.1rem;font-size:.75rem}.workspace-shell .ghost-button:hover:not(:disabled){border-color:var(--ppf-text);background:#ffffff08}.workspace-shell .ghost-button.danger-button{color:var(--ppf-red);border-color:#c7222a66}.workspace-shell .ghost-button.danger-button:hover{border-color:var(--ppf-red);background:#c7222a14}.workspace-shell .saved-plan-list{flex-direction:column;gap:.5rem;display:flex}.workspace-shell .saved-plan-item,.workspace-shell .plan-history-meta{border:1px solid var(--ppf-line);background:0 0;border-radius:4px;padding:.75rem 1rem}.workspace-shell .saved-plan-item.selected{border-color:var(--ppf-red)}.workspace-shell .plan-history-summary,.workspace-shell .plan-history-subtitle{color:var(--ppf-text-muted);margin:.25rem 0 0;font-size:.8125rem}.workspace-shell .status-pill{font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--ppf-text-muted);font-size:.7rem}.workspace-shell .surface-card strong,.workspace-shell .step-card strong{color:var(--ppf-text-strong);font-weight:600}.workspace-shell h4{font-family:"Outfit", var(--font-display);color:var(--ppf-text-strong);margin:1.5rem 0 .75rem;font-size:1.1rem;font-weight:600}.workspace-shell .checkbox-row{flex-wrap:wrap;gap:1.5rem;margin:.75rem 0;display:flex}.workspace-shell .checkbox-field{cursor:pointer;color:var(--ppf-text);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.workspace-shell .checkbox-field input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--ppf-red)}.workspace-shell .photo-upload-tile,.workspace-shell .photo-upload-grid{background:var(--ppf-bg-deep);border:1px dashed var(--ppf-line-strong);border-radius:4px}.workspace-shell .field textarea{min-height:5rem}.workspace-shell aside .surface-card{margin-bottom:1rem}.modal-backdrop{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface,#1c1c1c);border:1px solid var(--border,#2a2a2a);border-radius:8px;flex-direction:column;gap:1rem;width:min(480px,90vw);padding:2rem;display:flex}.modal-card h3{color:var(--fg,#e5e5e5);margin:0;font-size:1.1rem;font-weight:700}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.field-hint{color:var(--muted,#888);margin:0;font-size:.8rem}.report-loading,.report-error{text-align:center;background:var(--ppf-bg);min-height:100vh;color:var(--ppf-text);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.report-view{background:var(--ppf-bg);min-height:100vh;color:var(--ppf-text)}.report-header{border-bottom:1px solid var(--ppf-line);padding:1.25rem 2rem}.report-main{max-width:520px;margin:0 auto;padding:3.5rem 1.5rem 4rem}.report-main h1{color:var(--ppf-text-strong);margin-bottom:.5rem}.report-main>p{color:var(--ppf-text-muted);margin-bottom:0;font-size:1rem}.report-summary{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:2rem 0 1.25rem;display:grid}.report-macro-legend{flex-direction:column;gap:.4rem;margin-bottom:2rem;padding:0 .25rem;display:flex}.report-macro-legend span{color:var(--ppf-text-muted);font-size:.8rem;line-height:1.4}.report-macro-legend strong{color:var(--ppf-text);font-weight:600}.report-pdf-hint{text-align:center;color:var(--ppf-text-muted);letter-spacing:.01em;margin-top:.6rem;font-size:.75rem}.metric-chip{background:var(--ppf-surface-elev);border:1px solid var(--ppf-line);border-radius:16px;flex-direction:column;gap:.35rem;padding:1.25rem 1.25rem 1rem;display:flex}.metric-chip .label{letter-spacing:.1em;text-transform:uppercase;color:var(--ppf-text-muted);font-size:.72rem;font-weight:600}.metric-chip .value{font-size:1.75rem;font-weight:700;font-family:var(--font-display);letter-spacing:-.03em;color:var(--ppf-text-strong);line-height:1}.btn-large{width:100%;padding:1rem;font-size:1rem}.report-view .btn-pdf{width:100%;font-family:var(--font-mono);letter-spacing:1.8px;text-transform:uppercase;color:#06080a;cursor:pointer;background:#fff;border:none;border-radius:4px;justify-content:center;align-items:center;min-height:52px;padding:1rem 1.5rem;font-size:.8rem;font-weight:500;transition:opacity .15s;display:flex}.report-view .btn-pdf:hover{opacity:.88}.report-view .btn-pdf:disabled{opacity:.45;cursor:not-allowed}.plan-warnings{flex-direction:column;gap:10px;margin:18px 0;padding:0;list-style:none;display:flex}.plan-warning{border-left:3px solid;border-radius:10px;grid-template-columns:max-content 1fr;align-items:start;gap:14px;padding:12px 16px;font-size:.9375rem;line-height:1.5;display:grid}.plan-warning__label{text-transform:uppercase;letter-spacing:.05em;padding-top:.15em;font-size:.75rem;font-weight:600}.plan-warning--info{color:#cdd9eb;background:#3b82f614;border-left-color:#3b82f6}.plan-warning--info .plan-warning__label{color:#93c5fd}.plan-warning--warning{color:#f1e4b6;background:#eab3081a;border-left-color:#eab308}.plan-warning--warning .plan-warning__label{color:#fde68a}.plan-warning--critical{color:#f1c4c4;background:#c7222a1f;border-left-color:#c7222a}.plan-warning--critical .plan-warning__label{color:#fca5a5}.plan-critique{border:1px solid var(--ppf-line,#ffffff14);background:var(--ppf-surface,#ffffff08);border-radius:6px;margin:24px 0;padding:1.5rem 1.75rem}.plan-critique__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.plan-critique__header h3{font-family:"Outfit", var(--font-display,sans-serif);color:var(--ppf-text-strong,#fff);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.plan-critique__button{color:#fff;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;background:#c7222a;border:1px solid #c7222a;border-radius:4px;padding:.7rem 1.1rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500;transition:background .15s,transform .1s}.plan-critique__button:hover:not(:disabled){background:#a91d24;border-color:#a91d24}.plan-critique__button:active:not(:disabled){transform:translateY(1px)}.plan-critique__button:disabled{opacity:.4;cursor:not-allowed}.plan-critique__hint{color:var(--ppf-text-muted,#fff9);margin:0;font-size:.875rem;line-height:1.55}.plan-critique__error{color:#fca5a5;letter-spacing:.02em;background:#c7222a14;border-left:3px solid #c7222a;border-radius:4px;margin:.75rem 0 0;padding:.875rem 1rem;font-family:JetBrains Mono,monospace;font-size:.8125rem}.plan-critique__streaming{background:#c7222a0f;border-left:3px solid #c7222a;border-radius:4px;align-items:center;gap:.875rem;margin-top:1rem;padding:1rem 1.25rem;display:flex}.plan-critique__streaming-label{letter-spacing:1.5px;text-transform:uppercase;color:#c7222a;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600}.plan-critique__streaming-dots{gap:4px;display:inline-flex}.plan-critique__streaming-dots span{background:#c7222a;border-radius:50%;width:6px;height:6px;animation:1.2s infinite pn-bounce}.plan-critique__streaming-dots span:nth-child(2){animation-delay:.15s}.plan-critique__streaming-dots span:nth-child(3){animation-delay:.3s}@keyframes pn-bounce{0%,60%,to{opacity:.3;transform:scale(.85)}30%{opacity:1;transform:scale(1)}}.plan-critique__streaming-counter{color:var(--ppf-text-muted,#ffffff80);letter-spacing:.05em;margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.75rem}.plan-critique__result{flex-direction:column;gap:.875rem;margin-top:1rem;display:flex}.plan-critique__group{background:var(--ppf-bg-deep,#0003);border-left:3px solid;border-top:1px solid var(--ppf-line,#ffffff0f);border-right:1px solid var(--ppf-line,#ffffff0f);border-bottom:1px solid var(--ppf-line,#ffffff0f);border-radius:4px;margin:0;padding:1rem 1.25rem}.plan-critique__group h4{text-transform:uppercase;letter-spacing:1.5px;align-items:center;gap:.5rem;margin:0 0 .75rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;display:flex}.plan-critique__group h4:before{content:"//";opacity:.6}.plan-critique__group h4 .count{color:var(--ppf-text-muted,#ffffff73);margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500}.plan-critique__group ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.plan-critique__group li{color:var(--ppf-text,#ffffffe0);padding-left:1rem;font-size:.9375rem;line-height:1.55;position:relative}.plan-critique__group li:before{content:"";opacity:.5;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:.55rem;left:0}.plan-critique__group--risks{border-left-color:#c7222a}.plan-critique__group--risks h4{color:#c7222a}.plan-critique__group--risks li:before{opacity:.85;background:#c7222a}.plan-critique__group--suggestions{border-left-color:#c9a227}.plan-critique__group--suggestions h4{color:#c9a227}.plan-critique__group--suggestions li:before{opacity:.85;background:#c9a227}.plan-critique__group--green{border-left-color:#22c55e}.plan-critique__group--green h4{color:#22c55e}.plan-critique__group--green li:before{opacity:.85;background:#22c55e}.plan-critique__raw{background:var(--ppf-bg-deep,#0000004d);border:1px solid var(--ppf-line,#ffffff0f);white-space:pre-wrap;color:var(--ppf-text-muted,#ffffff8c);border-radius:4px;max-height:300px;margin-top:.75rem;padding:.875rem 1rem;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;overflow-y:auto}.plan-critique__footer{border-top:1px solid var(--ppf-line,#ffffff14);letter-spacing:1px;text-transform:uppercase;color:var(--ppf-text-muted,#ffffff73);gap:1.25rem;margin-top:1rem;padding-top:.75rem;font-family:JetBrains Mono,monospace;font-size:.7rem;display:flex}.plan-critique__footer span:not(:first-child):before{content:"·";color:var(--ppf-line,#fff3);margin-right:1.25rem}.plan-critique__group li.has-apply{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.plan-critique__suggestion-text{flex:auto;min-width:0}.plan-critique__apply-btn{color:#c9a227;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:#c9a22714;border:1px solid #c9a227;border-radius:4px;flex:none;padding:.4rem .75rem;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600;transition:background .15s,color .15s}.plan-critique__apply-btn:hover{color:var(--ppf-bg-deep,#000);background:#c9a227}.plan-critique__apply-btn:active{transform:translateY(1px)}.plan-critique__dialog-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:1.5rem;animation:.15s ease-out pn-fade-in;display:flex;position:fixed;inset:0}@keyframes pn-fade-in{0%{opacity:0}to{opacity:1}}.plan-critique__dialog{background:var(--ppf-bg-deep,#0a0a0a);border:1px solid var(--ppf-line,#ffffff1f);border-radius:6px;width:100%;max-width:600px;max-height:90vh;padding:1.75rem 2rem;animation:.18s ease-out pn-dialog-in;overflow-y:auto;box-shadow:0 24px 60px #0009}@keyframes pn-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.plan-critique__dialog-header{margin-bottom:1rem}.plan-critique__dialog-eyebrow{letter-spacing:1.5px;text-transform:uppercase;color:#c9a227;margin-bottom:.4rem;font-family:JetBrains Mono,monospace;font-size:.7rem;display:block}.plan-critique__dialog h4{font-family:"Outfit", var(--font-display,sans-serif);color:var(--ppf-text-strong,#fff);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.plan-critique__dialog-context{border-left:3px solid var(--ppf-line,#ffffff26);color:var(--ppf-text,#ffffffd1);background:#ffffff08;border-radius:4px;margin:0 0 1.25rem;padding:.875rem 1rem;font-size:.875rem;line-height:1.55}.plan-critique__diff-table{border-collapse:collapse;width:100%;margin-bottom:1.5rem;font-size:.875rem}.plan-critique__diff-table thead th{text-align:left;letter-spacing:1px;text-transform:uppercase;color:var(--ppf-text-muted,#ffffff80);border-bottom:1px solid var(--ppf-line,#ffffff1a);padding:.5rem .75rem;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600}.plan-critique__diff-table tbody td{color:var(--ppf-text,#ffffffe0);border-bottom:1px solid #ffffff0d;padding:.65rem .75rem}.plan-critique__diff-table tbody tr:last-child td{border-bottom:none}.plan-critique__diff-before{color:var(--ppf-text-muted,#ffffff8c);font-family:JetBrains Mono,monospace}.plan-critique__diff-after{color:var(--ppf-text-strong,#fff);font-family:JetBrains Mono,monospace;font-weight:600}.plan-critique__diff-delta{font-family:JetBrains Mono,monospace;font-size:.8125rem}.plan-critique__diff-delta .up{color:#22c55e}.plan-critique__diff-delta .down{color:#c7222a}.plan-critique__dialog-footer{justify-content:flex-end;gap:.75rem;display:flex}.plan-critique__dialog-cancel,.plan-critique__dialog-confirm{letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:.65rem 1.1rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500;transition:background .15s,transform .1s}.plan-critique__dialog-cancel{border:1px solid var(--ppf-line,#ffffff26);color:var(--ppf-text-muted,#ffffffb3);background:0 0}.plan-critique__dialog-cancel:hover{color:var(--ppf-text,#fff);background:#ffffff0a}.plan-critique__dialog-confirm{color:var(--ppf-bg-deep,#000);background:#c9a227;border:1px solid #c9a227;font-weight:600}.plan-critique__dialog-confirm:hover{background:#b08c1c;border-color:#b08c1c}.plan-critique__dialog-confirm:active{transform:translateY(1px)}.plan-critique__toast{color:#fff;letter-spacing:.04em;z-index:1100;background:#22c55ef2;border-radius:4px;align-items:center;gap:.75rem;padding:.875rem 1.25rem;font-family:JetBrains Mono,monospace;font-size:.8125rem;animation:.2s ease-out pn-toast-in;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 8px 24px #0006}.plan-critique__toast-icon{font-size:1rem;font-weight:700}@keyframes pn-toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.plan-critique__dialog{padding:1.25rem 1.5rem}.plan-critique__diff-table{font-size:.8125rem}.plan-critique__diff-table thead th,.plan-critique__diff-table tbody td{padding:.5rem}.plan-critique__toast{bottom:1rem;left:1rem;right:1rem}}.plan-critique__empty{background:var(--ppf-bg-deep,#00000026);border:1px solid var(--ppf-line,#ffffff0f);color:var(--ppf-text-muted,#ffffff80);letter-spacing:.03em;border-radius:4px;margin-top:1rem;padding:1rem 1.25rem;font-family:JetBrains Mono,monospace;font-size:.8125rem}.photo-gallery{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;margin:24px 0;padding:18px 20px}.photo-gallery__header{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.photo-gallery__header h3{color:#ffffffeb;margin:0;font-size:1rem}.photo-gallery__count{color:#ffffff8c;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8125rem}.photo-gallery__upload{background:#0000002e;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.photo-gallery__upload input[type=file]{color:#ffffffd9;flex:220px;font-size:.8125rem}.photo-gallery__upload select,.photo-gallery__upload input[type=date]{color:#fff;background:#00000040;border:1px solid #ffffff26;border-radius:6px;padding:7px 9px;font-family:inherit;font-size:.875rem}.photo-gallery__upload button{color:#fff;cursor:pointer;background:#c7222a;border:1px solid #c7222a;border-radius:6px;padding:7px 14px;font-size:.875rem}.photo-gallery__upload button:disabled{opacity:.5;cursor:not-allowed}.photo-gallery__empty{color:#ffffff8c;text-align:center;padding:20px;font-size:.875rem}.photo-gallery__error{color:#fca5a5;font-size:.875rem}.photo-gallery__group{margin:14px 0}.photo-gallery__group h4{color:#ffffffa6;letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-size:.8125rem;font-weight:600}.photo-gallery__row{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.photo-gallery__photo{background:#0006;border-radius:8px;margin:0;overflow:hidden}.photo-gallery__photo img{object-fit:cover;width:100%;height:200px;display:block}.photo-gallery__photo figcaption{color:#ffffffb3;justify-content:space-between;align-items:center;padding:8px 10px;font-size:.75rem;display:flex}.photo-gallery__photo figcaption button{color:#ffffffb3;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;padding:3px 8px;font-size:.75rem}.photo-gallery__photo figcaption button:hover{color:#fca5a5;border-color:#c7222a}.intake-photo-step{flex-direction:column;gap:24px;display:flex}.intake-photo-step__header h3{margin:4px 0 8px}.intake-photo-step__notice{color:var(--color-muted,#888);font-size:.875rem}.intake-photo-step__slots{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.intake-photo-slot{flex-direction:column;gap:6px;display:flex}.intake-photo-slot__label{font-size:.875rem;font-weight:600}.intake-photo-slot__dropzone{border:2px dashed var(--color-border,#ccc);cursor:pointer;text-align:center;border-radius:8px;justify-content:center;align-items:center;min-height:80px;padding:12px;transition:border-color .15s;display:flex}.intake-photo-slot__dropzone:hover{border-color:var(--color-accent,#0070f3)}.intake-photo-slot__dropzone input[type=file]{display:none}.intake-photo-slot__filename{word-break:break-all;font-size:.8rem}.intake-photo-slot__placeholder{color:var(--color-muted,#888);font-size:.875rem}.intake-photo-slot__status{font-size:.8rem}.intake-photo-slot__status.uploading{color:var(--color-muted,#888)}.intake-photo-slot__status.done{color:var(--color-success,#22c55e)}.intake-photo-slot__status.error{color:var(--color-danger,#ef4444)}.intake-photo-step__actions{justify-content:flex-end;gap:12px;display:flex}.ai-cost-dashboard{background:#ffffff05;border:1px solid #ffffff1a;border-radius:12px;margin:24px 0;padding:18px 20px}.ai-cost-dashboard__header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.ai-cost-dashboard__header h3{margin:0;font-size:1rem;font-weight:600}.ai-cost-dashboard__refresh{padding:5px 10px;font-size:.8125rem}.ai-cost-dashboard__hint{color:#ffffff80;margin:0;font-size:.875rem}.ai-cost-dashboard__error{color:#fca5a5;margin:0;font-size:.875rem}.ai-cost-dashboard__metrics{gap:24px;margin-bottom:16px;display:flex}.ai-cost-metric{flex-direction:column;gap:2px;display:flex}.ai-cost-metric__label{text-transform:uppercase;letter-spacing:.05em;color:#ffffff80;font-size:.75rem}.ai-cost-metric__value{font-family:JetBrains Mono,ui-monospace,monospace;font-size:1.25rem;font-weight:700}.ai-cost-dashboard__table{border-collapse:collapse;width:100%;font-size:.875rem}.ai-cost-dashboard__table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#ffffff8c;border-bottom:1px solid #ffffff1a;padding:6px 10px;font-size:.75rem;font-weight:600}.ai-cost-dashboard__table td{color:#ffffffd9;border-bottom:1px solid #ffffff0d;padding:8px 10px}.ai-cost-dashboard__table tr:last-child td{border-bottom:none}.posture-analysis{background:#ffffff05;border:1px dashed #ffffff26;border-radius:12px;margin:24px 0;padding:18px 20px}.posture-analysis__header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.posture-analysis__header h3{margin:0;font-size:1rem;font-weight:600}.posture-analysis__button{color:#fff;cursor:pointer;background:#7c3aed;border:1px solid #7c3aed;border-radius:7px;padding:8px 14px;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .15s}.posture-analysis__button:hover:not(:disabled){background:#6d28d9}.posture-analysis__button:disabled{opacity:.5;cursor:not-allowed}.posture-analysis__hint{color:#fff9;margin:0;font-size:.875rem}.posture-analysis__error{color:#fca5a5;margin:0;font-size:.875rem}.posture-analysis__result{margin-top:12px}.posture-analysis__group{background:#ffffff08;border-left:3px solid #ffffff4d;border-radius:8px;margin:12px 0 0;padding:12px 14px}.posture-analysis__group--flags{border-left-color:#f59e0b}.posture-analysis__group--recs{border-left-color:#10b981}.posture-analysis__group h4{text-transform:uppercase;letter-spacing:.06em;color:#fffc;margin:0 0 8px;font-size:.8125rem;font-weight:700}.posture-analysis__group ul{margin:0;padding-left:18px}.posture-analysis__group li{color:#ffffffd9;margin:6px 0;font-size:.9375rem;line-height:1.5}.posture-analysis__raw{white-space:pre-wrap;color:#ffffffa6;background:#00000040;border-radius:6px;margin-top:10px;padding:10px;font-size:.8125rem}.posture-analysis__footer{color:#ffffff73;border-top:1px solid #ffffff12;gap:18px;margin-top:14px;padding-top:10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.75rem;display:flex}.wc-card{margin-top:1rem;padding:1rem 1.25rem}.wc-title{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.wc-svg{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface-2,#f9fafb);border-radius:6px;width:100%;height:80px;margin-bottom:.75rem}.wc-line{fill:none;stroke:var(--color-brand,#c7222a);stroke-width:1.5px}.wc-trend{stroke:#6b7280;stroke-width:1px;stroke-dasharray:4 3}.wc-dot{fill:var(--color-brand,#c7222a)}.wc-correction{flex-wrap:wrap;align-items:baseline;gap:.4rem;margin-bottom:.75rem;font-size:.875rem;display:flex}.wc-label{color:var(--color-text-secondary,#6b7280)}.wc-delta{font-size:.8rem}.wc-delta.pos{color:#059669}.wc-delta.neg{color:#dc2626}.wc-meta{color:var(--color-text-secondary,#6b7280);font-size:.78rem}.wc-list{max-height:140px;margin:0 0 .75rem;padding:0;font-size:.82rem;list-style:none;overflow-y:auto}.wc-entry{border-bottom:1px solid var(--color-border,#f3f4f6);justify-content:space-between;padding:.2rem 0;display:flex}.wc-date{color:var(--color-text-secondary,#6b7280)}.wc-weight{font-weight:500}.wc-form{flex-wrap:wrap;gap:.5rem;display:flex}.wc-form input[type=date],.wc-form input[type=number]{border:1px solid var(--color-border,#d1d5db);border-radius:6px;flex:1;min-width:100px;padding:.35rem .5rem;font-size:.85rem}.wc-error{color:#dc2626;margin-top:.4rem;font-size:.82rem}
