:root{--color-bg: #070a14;--color-bg-subtle: #0b1020;--color-surface: rgba(11, 16, 32, .55);--color-surface-solid: #0f1528;--color-surface-hover: rgba(255, 255, 255, .08);--color-surface-elevated: rgba(255, 255, 255, .06);--color-text-primary: #e9eefc;--color-text-secondary: #aab6da;--color-text-muted: #7f8bb3;--color-border: rgba(255, 255, 255, .1);--color-border-light: rgba(255, 255, 255, .06);--color-border-hover: rgba(255, 255, 255, .18);--color-brand: #7c5cff;--color-brand-dim: rgba(124, 92, 255, .15);--color-brand-hover: #6b4de6;--color-brand-glow: rgba(124, 92, 255, .25);--color-accent: #38bdf8;--color-accent-dim: rgba(56, 189, 248, .12);--color-success: #5bbea0;--color-success-dim: rgba(91, 190, 160, .12);--color-warning: #e0a840;--color-warning-dim: rgba(224, 168, 64, .12);--color-danger: #e06070;--color-danger-dim: rgba(224, 96, 112, .12);--font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-glow-brand: 0 0 20px rgba(124, 92, 255, .15);--shadow-focus: 0 0 0 4px rgba(124, 92, 255, .25);--transition-fast: .15s ease;--transition-normal: .25s ease;--container-max: 880px;--container-narrow: 480px}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:radial-gradient(1200px 700px at 20% -10%,rgba(124,92,255,.2),transparent 55%),radial-gradient(900px 600px at 90% 10%,rgba(56,189,248,.12),transparent 60%),radial-gradient(900px 700px at 40% 120%,rgba(34,197,94,.1),transparent 60%),var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--space-3) 0}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-4) 0;color:var(--color-text-secondary)}a{color:var(--color-brand);text-decoration:none}a:hover{color:var(--color-brand-hover);text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:1px solid transparent;border-radius:var(--radius-full);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#7c5cff,#38bdf8);color:var(--color-text-primary);border-color:#ffffff2e;box-shadow:0 18px 50px #7c5cff40}.btn-primary:hover:not(:disabled){border-color:#ffffff40;transform:translateY(-1px);box-shadow:0 18px 50px #7c5cff59}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-hover)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:#ffffff40}.btn-success{background:var(--color-success);color:var(--color-bg);border-color:var(--color-success)}.btn-success:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent;padding:var(--space-2) var(--space-3)}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-surface-hover)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-block{width:100%}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;margin-bottom:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-surface-solid);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.form-input::placeholder{color:var(--color-text-muted)}.form-helper{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted)}.card{background:linear-gradient(180deg,#ffffff0f,#ffffff08);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-compact{padding:var(--space-4)}.card-clickable{cursor:pointer;transition:all var(--transition-fast)}.card-clickable:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-hover);background:var(--color-surface-elevated)}.card-selected{border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-dim)}.stepper{display:flex;align-items:center;margin-bottom:var(--space-6);overflow-x:auto}.stepper-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);flex-shrink:0}.stepper-dot{width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:2px solid var(--color-border);color:var(--color-text-muted);background:transparent;transition:all var(--transition-normal)}.stepper-dot-active{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-bg)}.stepper-dot-completed{border-color:var(--color-success);background:var(--color-success);color:var(--color-bg)}.stepper-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;max-width:70px;text-align:center;overflow:hidden;text-overflow:ellipsis}.stepper-label-active{color:var(--color-brand);font-weight:var(--font-weight-medium)}.stepper-connector{flex:1;height:2px;background:var(--color-border);min-width:12px;margin:0 var(--space-1);align-self:flex-start;margin-top:14px}.stepper-connector-completed{background:var(--color-success)}.skill-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.skill-bar-label{width:160px;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex-shrink:0}.skill-bar-track{flex:1;height:8px;background:var(--color-border-light);border-radius:var(--radius-full);overflow:hidden}.skill-bar-fill{height:100%;border-radius:var(--radius-full);background:var(--color-brand);transition:width var(--transition-normal)}.skill-bar-value{width:36px;text-align:right;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);flex-shrink:0}.risk-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em}.risk-badge-low{background:var(--color-success-dim);color:var(--color-success)}.risk-badge-medium{background:var(--color-warning-dim);color:var(--color-warning)}.risk-badge-high{background:var(--color-danger-dim);color:var(--color-danger)}.coach-response{padding:var(--space-6);background:var(--color-brand-dim);border-radius:var(--radius-lg);border-left:4px solid var(--color-brand);margin-top:var(--space-4);margin-bottom:var(--space-4);color:var(--color-text-primary);line-height:var(--line-height-normal)}.coach-response-body{margin-top:var(--space-3)}.coach-response-body p{margin:0 0 var(--space-3) 0;line-height:1.7}.coach-response-body p:last-child{margin-bottom:0}.coach-response-body strong{font-weight:600;color:var(--color-text)}.coach-response-body em{font-style:italic}.coach-list{margin:0 0 var(--space-3) 0;padding-left:var(--space-6);line-height:1.7}.coach-list li{margin-bottom:var(--space-2)}.coach-list li:last-child{margin-bottom:0}.coach-response-body .coach-list:last-child{margin-bottom:0}.points-toast{position:fixed;top:var(--space-6);right:var(--space-6);background:linear-gradient(135deg,#7c5cff,#38bdf8);color:var(--color-text-primary);padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);box-shadow:0 8px 32px #7c5cff4d;z-index:1000;animation:toast-in .3s ease,toast-out .3s ease 2.5s forwards}.points-toast-points{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.points-toast-label{font-size:var(--font-size-sm);opacity:.9}@keyframes toast-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-brand);border-radius:50%;animation:spin .6s linear infinite}.spinner-lg{width:40px;height:40px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.timer-ring{width:140px;height:140px;position:relative;margin:var(--space-6) auto}.timer-ring svg{transform:rotate(-90deg);width:100%;height:100%}.timer-ring circle{fill:none;stroke-width:6}.timer-ring .timer-track{stroke:var(--color-border)}.timer-ring .timer-progress{stroke:var(--color-brand);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.timer-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.layout-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-4)}.layout-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(to bottom,#070a14c7,#070a1459);border-bottom:1px solid var(--color-border)}@supports not (backdrop-filter: blur(12px)){.layout-header{background:#070a14f2}}.layout-header-inner{max-width:var(--container-max);margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center}.layout-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:0;color:var(--color-brand);letter-spacing:-.3px}.layout-logo{height:36px;width:auto;display:block}.layout-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.layout-nav{display:flex;align-items:center;gap:var(--space-2)}.nav-link{padding:var(--space-2) var(--space-4);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);transition:all var(--transition-fast)}.nav-link:hover{color:var(--color-text-primary);background:var(--color-surface-hover);text-decoration:none}.nav-link-active{color:var(--color-brand);background:var(--color-brand-dim)}.layout-main{padding-top:var(--space-6);padding-bottom:var(--space-12)}.auth-container{max-width:var(--container-narrow);margin:var(--space-12) auto;padding:0 var(--space-4)}.auth-card{background:linear-gradient(180deg,#ffffff0f,#ffffff08);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-lg)}.auth-title{text-align:center;margin-bottom:var(--space-2);color:var(--color-brand);letter-spacing:-.3px}.auth-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-8)}.auth-error{color:var(--color-danger);font-size:var(--font-size-sm);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-danger-dim);border:1px solid rgba(224,96,112,.2);border-radius:var(--radius-md)}.auth-footer{margin-top:var(--space-6);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.dashboard-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6)}.integrity-level{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-brand);margin-bottom:var(--space-1)}.integrity-points{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.progress-bar-track{width:100%;height:8px;background:var(--color-border-light);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-brand);border-radius:var(--radius-full);transition:width var(--transition-normal)}.progress-bar-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.weekly-dots{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.weekly-dot{width:14px;height:14px;border-radius:var(--radius-full);border:2px solid var(--color-border);background:transparent;transition:all var(--transition-fast)}.weekly-dot-filled{background:var(--color-brand);border-color:var(--color-brand)}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.quick-action-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;color:var(--color-text-primary);border-left:4px solid var(--color-border)}.quick-action-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none;background:var(--color-surface-elevated);border-color:var(--color-border-hover)}.quick-action-card-session{border-left-color:var(--color-brand)}.quick-action-card-craving{border-left-color:var(--color-warning)}.quick-action-card-slip{border-left-color:var(--color-text-muted)}.quick-action-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.quick-action-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)}.elevated-warning{padding:var(--space-3) var(--space-4);background:var(--color-warning-dim);border:1px solid rgba(224,168,64,.25);border-radius:var(--radius-md);color:var(--color-warning);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-4)}.activity-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light)}.activity-item:last-child{border-bottom:none}.activity-type{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.activity-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.empty-state{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--font-size-sm)}.empty-state-card{text-align:center;padding:var(--space-8) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:480px;margin:var(--space-8) auto}.empty-state-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3)}.empty-state-message{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6;margin-bottom:var(--space-6)}.session-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.session-type-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.session-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.session-type-card{padding:var(--space-5);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:center;background:transparent}.session-type-card:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.session-type-card-selected{border-color:var(--color-brand);background:var(--color-brand-dim)}.session-type-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.session-type-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.session-group-heading{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.04em}.session-type-grid-optional{grid-template-columns:repeat(2,1fr)}.session-type-card-optional{border-style:dashed;opacity:.85}.session-type-card-optional:hover{opacity:1}.session-required-badge{display:inline-block;margin-left:var(--space-2);padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:700;background:var(--color-brand);color:var(--color-text-on-brand, #fff);text-transform:uppercase;letter-spacing:.05em;vertical-align:middle}.session-optional-badge{display:inline-block;margin-left:var(--space-2);padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:700;background:var(--color-surface-hover, rgba(255,255,255,.08));color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;vertical-align:middle}.phase-content{margin-bottom:var(--space-6)}.phase-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.phase-description{color:var(--color-text-secondary);margin-bottom:var(--space-4)}.phase-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.intensity-selector{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);justify-content:center}.intensity-dot{width:36px;height:36px;border-radius:var(--radius-full);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-muted);background:transparent}.intensity-dot:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.intensity-dot-selected{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-bg)}.intensity-labels{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-4)}.outcome-buttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.outcome-btn{padding:var(--space-6);border-radius:var(--radius-xl);border:2px solid var(--color-border);background:transparent;cursor:pointer;transition:all var(--transition-fast);text-align:center;font-family:var(--font-family)}.outcome-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.outcome-btn-success{border-color:var(--color-success);color:var(--color-success)}.outcome-btn-success:hover{background:var(--color-success);color:var(--color-bg)}.outcome-btn-neutral{color:var(--color-text-secondary)}.outcome-btn-neutral:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.outcome-btn-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.outcome-btn-desc{font-size:var(--font-size-sm);opacity:.8}.compassion-message{text-align:center;padding:var(--space-8);color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:var(--line-height-normal)}.timer-skip{display:block;text-align:center;margin-top:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;background:none;border:none;font-family:var(--font-family)}.timer-skip:hover{color:var(--color-text-secondary)}.panic-button{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:40;padding:var(--space-3) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.panic-button:hover{background:var(--color-brand-dim);border-color:var(--color-brand);color:var(--color-text-primary);box-shadow:var(--shadow-glow-brand)}.craving-protocol{max-width:var(--container-max);margin:0 auto}.craving-fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--space-8) var(--space-4)}.craving-directive{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin:0 0 var(--space-4) 0;letter-spacing:-.5px}.craving-step-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-6) 0}.craving-subtext{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-bottom:var(--space-8);max-width:400px}.craving-defusion{max-width:480px;margin-bottom:var(--space-8)}.craving-defusion-text{font-size:var(--font-size-xl);color:var(--color-text-primary);line-height:1.6;font-style:italic;margin-bottom:var(--space-4)}.craving-defusion-subtext{font-size:var(--font-size-sm);color:var(--color-text-muted)}.craving-escalation-card{max-width:480px;text-align:left}.craving-buddy-script{background:var(--color-surface);border-left:3px solid var(--color-brand);padding:var(--space-4);border-radius:var(--radius-md);font-style:italic;color:var(--color-text-secondary);margin:var(--space-4) 0}.craving-crisis-note{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.craving-escalation-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.craving-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);max-width:400px;width:100%}.craving-action-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6);background:linear-gradient(180deg,#ffffff0f,#ffffff08);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);color:var(--color-text-secondary)}.craving-action-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-glow-brand);color:var(--color-text-primary)}.craving-action-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.craving-improvement{color:var(--color-success);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);margin:var(--space-4) 0}.content-page{max-width:var(--container-max);margin:0 auto;padding:var(--space-8) var(--space-4)}.content-hero{text-align:center;margin-bottom:var(--space-12)}.content-hero h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.content-hero p{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.content-section{margin-bottom:var(--space-12)}.content-section h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.content-section h3{font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:var(--space-3)}.content-section p{color:var(--color-text-secondary);line-height:var(--line-height-normal);margin-bottom:var(--space-4)}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.content-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.curriculum-phase-heading{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-brand);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-10);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-brand-dim)}.curriculum-phase-heading:first-of-type{margin-top:var(--space-6)}.week-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4)}.week-card-header{margin-bottom:var(--space-4)}.week-number{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-brand);font-weight:var(--font-weight-semibold)}.week-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--space-1) 0}.week-sessions{font-size:var(--font-size-sm);color:var(--color-text-muted)}.week-card-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.week-column h5{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2)}.week-column ul{list-style:none;padding:0;margin:0}.week-column li{position:relative;padding-left:var(--space-5);margin-bottom:var(--space-2);font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.week-column li:before{content:"→";position:absolute;left:0;color:var(--color-brand)}.week-skills{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:640px){.week-card-columns{grid-template-columns:1fr}}.concept-tag{display:inline-block;padding:var(--space-1) var(--space-3);background:var(--color-brand-dim);color:var(--color-brand);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.walkthrough-phase{display:flex;gap:var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.walkthrough-phase:last-child{border-bottom:none}.walkthrough-number{width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-brand);color:var(--color-bg);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);flex-shrink:0}.walkthrough-content{flex:1}.walkthrough-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.walkthrough-duration{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-1)}.walkthrough-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.tracking-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.tracking-item{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.tracking-label{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.tracking-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.safety-callout{padding:var(--space-6);background:var(--color-danger-dim);border:1px solid rgba(224,96,112,.2);border-radius:var(--radius-lg);margin-top:var(--space-4)}.safety-resource{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid rgba(255,255,255,.06)}.safety-resource:last-child{border-bottom:none}.safety-resource-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.safety-resource-contact{color:var(--color-brand);font-weight:var(--font-weight-semibold)}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-3);overflow:hidden}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);background:var(--color-surface);cursor:pointer;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border:none;width:100%;text-align:left;font-family:var(--font-family);font-size:var(--font-size-base);transition:background var(--transition-fast)}.faq-question:hover{background:var(--color-surface-hover)}.faq-chevron{color:var(--color-text-muted);transition:transform var(--transition-fast);font-size:var(--font-size-lg)}.faq-chevron-open{transform:rotate(180deg)}.faq-answer{padding:0 var(--space-5) var(--space-4);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.comparison-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.comparison-table thead th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:2px solid var(--color-border);background:var(--color-surface);position:sticky;top:0}.comparison-table thead th:first-child{border-radius:var(--radius-md) 0 0 0}.comparison-table thead th:last-child{border-radius:0 var(--radius-md) 0 0}.comparison-highlight{color:var(--color-brand);font-weight:var(--font-weight-semibold)}.comparison-table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary);vertical-align:top}.comparison-table tbody tr:hover td{background:var(--color-surface-hover)}.comparison-table tbody td:first-child{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.pricing-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;transition:all var(--transition-fast);position:relative}.pricing-card-highlighted{border-color:var(--color-brand);box-shadow:var(--shadow-glow-brand)}.pricing-badge{position:absolute;top:calc(var(--space-3) * -1);left:50%;transform:translate(-50%);background:var(--color-brand);color:var(--color-bg);padding:var(--space-1) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em}.pricing-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.pricing-price{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-brand);margin-bottom:0}.pricing-period{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4)}.pricing-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.pricing-features{list-style:none;padding:0;margin:0 0 var(--space-6) 0;text-align:left}.pricing-features li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.pricing-features li:before{content:"✓ ";color:var(--color-brand);font-weight:var(--font-weight-bold)}.pricing-features li:last-child{border-bottom:none}.credit-packs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.credit-pack{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.credit-pack-amount{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.credit-pack-price{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-brand)}.credit-pack-per{font-size:var(--font-size-xs);color:var(--color-text-muted)}.for-list{list-style:none;padding:0;margin:0}.for-list li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.for-list li:last-child{border-bottom:none}.for-list-yes li:before{content:"✓ ";color:var(--color-success);font-weight:var(--font-weight-bold)}.for-list-no li:before{content:"✕ ";color:var(--color-danger);font-weight:var(--font-weight-bold)}.cta-banner{text-align:center;padding:var(--space-10);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-top:var(--space-8)}.cta-banner h2{margin-bottom:var(--space-2)}.cta-banner p{margin-bottom:var(--space-6)}.onboarding-container{max-width:600px;margin:var(--space-8) auto;padding:0 var(--space-4)}.trigger-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.trigger-chip{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);background:transparent;transition:all var(--transition-fast);font-family:var(--font-family)}.trigger-chip:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.trigger-chip-selected{border-color:var(--color-brand);background:var(--color-brand-dim);color:var(--color-brand)}.schedule-options{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.schedule-option{flex:1;padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;background:transparent;transition:all var(--transition-fast);font-family:var(--font-family);color:var(--color-text-secondary)}.schedule-option:hover{border-color:var(--color-border-hover)}.schedule-option-selected{border-color:var(--color-brand);background:var(--color-brand-dim);color:var(--color-brand)}.schedule-option-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.reality-item{display:flex;gap:var(--space-3);margin-bottom:var(--space-3);align-items:flex-start}.reality-item input{flex:1}.reality-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);font-size:var(--font-size-lg);line-height:1}.reality-remove:hover{color:var(--color-danger)}.content-hero-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.layout-title-link,.layout-title-link:hover{text-decoration:none;color:inherit}.walkthrough-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.safety-resources{margin-top:var(--space-4)}.tracking-item-icon{font-size:var(--font-size-2xl);margin-bottom:var(--space-2)}.for-not-for-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}.comparison-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.comparison-dimension{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.pricing-plan-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.pricing-amount{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-brand)}.pricing-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.credit-packs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4)}.credit-pack-credits{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.credit-pack-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.program-page{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.next-action-card{background:var(--color-brand-dim);border:1px solid var(--color-brand);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-glow-brand)}.next-action-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-brand);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.next-action-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.next-action-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.todays-plan{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.plan-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.plan-item:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.plan-item-done{opacity:.5}.plan-item-icon{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);flex-shrink:0;background:var(--color-surface-elevated)}.plan-item-content{flex:1}.plan-item-title{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.plan-item-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.timeline{display:flex;flex-direction:column;gap:var(--space-2)}.timeline-week{display:flex;align-items:stretch;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;color:inherit}.timeline-week:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover);text-decoration:none;color:inherit}.timeline-week-active{border-color:var(--color-brand);border-left:4px solid var(--color-brand);background:var(--color-brand-dim)}.timeline-week-completed{opacity:.7}.timeline-week-locked{opacity:.4;cursor:default}.timeline-week-number{width:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.timeline-week-num{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.timeline-week-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase}.timeline-week-info{flex:1}.timeline-week-phase{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-brand);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.timeline-week-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.timeline-week-theme{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.timeline-week-status{display:flex;align-items:center;flex-shrink:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.timeline-week-status-current{color:var(--color-brand)}.timeline-week-status-done{color:var(--color-success)}.timeline-week-status-locked{color:var(--color-text-muted)}.timeline-week-override-tag{display:inline-block;font-size:var(--font-size-xs);color:var(--color-warning);background:var(--color-warning-dim);border:1px solid rgba(224,168,64,.3);border-radius:var(--radius-full);padding:1px var(--space-2);font-weight:var(--font-weight-medium)}.program-override-banner{display:flex;align-items:center;gap:var(--space-3);background:var(--color-warning-dim);border:1px solid rgba(224,168,64,.3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5)}.program-override-badge{flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-warning);background:#e0a84033;border-radius:var(--radius-full);padding:var(--space-1) var(--space-3)}.program-override-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.progress-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center}.progress-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.progress-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.week-detail{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.week-header{margin-bottom:var(--space-6)}.week-header-phase{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-brand);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.week-header-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.week-header-theme{font-size:var(--font-size-base);color:var(--color-text-secondary)}.week-goals{list-style:none;padding:0;margin:0}.week-goals li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.week-goals li:before{content:"◎ ";color:var(--color-brand);font-weight:var(--font-weight-bold)}.week-goals li:last-child{border-bottom:none}.session-recs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.session-rec-card{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;color:inherit}.session-rec-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-glow-brand);text-decoration:none;color:inherit}.session-rec-type{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em}.session-rec-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-top:var(--space-1)}.session-rec-duration{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.tasks-page{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.task-filters{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.task-filter{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.task-filter:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.task-filter-active{border-color:var(--color-brand);background:var(--color-brand-dim);color:var(--color-brand)}.task-list{display:flex;flex-direction:column;gap:var(--space-2)}.task-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.task-item:hover{border-color:var(--color-border-hover)}.task-item-completed{opacity:.5}.task-item-overdue{border-color:var(--color-danger);border-left:3px solid var(--color-danger)}.task-checkbox{width:24px;height:24px;border:2px solid var(--color-border-hover);border-radius:var(--radius-sm);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast);color:transparent;font-size:var(--font-size-sm)}.task-checkbox:hover{border-color:var(--color-brand);background:var(--color-brand-dim)}.task-checkbox-checked{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-bg)}.task-item-content{flex:1}.task-item-title{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.task-item-completed .task-item-title{text-decoration:line-through;color:var(--color-text-muted)}.task-item-meta{display:flex;gap:var(--space-3);margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted)}.task-type-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-accent-dim);color:var(--color-accent)}.task-type-badge-practice{background:var(--color-brand-dim);color:var(--color-brand)}.task-type-badge-reflection{background:var(--color-warning-dim);color:var(--color-warning)}.checkin-page{max-width:600px;margin:0 auto;padding:var(--space-4)}.checkin-question{margin-bottom:var(--space-6)}.checkin-question-label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.checkin-slider-row{display:flex;align-items:center;gap:var(--space-3)}.checkin-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:var(--radius-full);background:var(--color-border);outline:none}.checkin-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-brand);cursor:pointer;box-shadow:var(--shadow-glow-brand)}.checkin-slider::-moz-range-thumb{width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-brand);cursor:pointer;border:none}.checkin-slider-value{min-width:32px;text-align:center;font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:var(--font-size-lg)}.checkin-slider-labels{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.checkin-history{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.checkin-history-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.checkin-day{aspect-ratio:1;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--color-border-light)}.checkin-day-filled{background:var(--color-brand-dim);border-color:var(--color-brand);color:var(--color-brand)}.checkin-day-empty{background:transparent;color:var(--color-text-muted)}.checkin-day-today{border-color:var(--color-text-primary);box-shadow:0 0 0 1px var(--color-text-primary)}.checkin-card{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-3)}.checkin-card-date{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.checkin-card-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.checkin-metric{text-align:center}.checkin-metric-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.checkin-metric-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.weekly-review{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.review-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.review-stat-card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.review-stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-brand)}.review-stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.review-section{margin-bottom:var(--space-6)}.review-section h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--space-3)}.checkin-averages{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.checkin-avg-item{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.checkin-avg-bar{height:80px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:var(--space-2)}.checkin-avg-fill{width:24px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-brand);transition:height var(--transition-normal)}.checkin-avg-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.checkin-avg-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.skills-page{max-width:var(--container-max);margin:0 auto;padding:var(--space-4)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4)}.skill-card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;color:inherit}.skill-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-glow-brand);text-decoration:none;color:inherit}.skill-card-category{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.skill-card-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.skill-card-strength{display:flex;align-items:center;gap:var(--space-2)}.skill-strength-bar{flex:1;height:6px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.skill-strength-fill{height:100%;background:var(--color-brand);border-radius:var(--radius-full);transition:width var(--transition-normal)}.skill-strength-label{font-size:var(--font-size-xs);color:var(--color-text-muted);min-width:32px;text-align:right}.intake-page{max-width:600px;margin:0 auto;padding:var(--space-4)}.intake-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.intake-section-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.tone-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.tone-option{padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;background:transparent;transition:all var(--transition-fast);font-family:var(--font-family);color:var(--color-text-secondary)}.tone-option:hover{border-color:var(--color-border-hover)}.tone-option-selected{border-color:var(--color-brand);background:var(--color-brand-dim);color:var(--color-brand)}.tone-option-icon{font-size:var(--font-size-2xl);margin-bottom:var(--space-2)}.tone-option-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.tone-option-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.risk-screen-item{margin-bottom:var(--space-4)}.support-contacts{display:flex;flex-direction:column;gap:var(--space-3)}.support-contact{display:flex;gap:var(--space-2);align-items:center}.support-contact input{flex:1}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-muted{color:var(--color-text-muted)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}@media(max-width:640px){.stepper-label{display:none}.dashboard-hero,.quick-actions,.session-type-grid,.session-type-grid-optional,.outcome-buttons{grid-template-columns:1fr}.craving-directive{font-size:var(--font-size-2xl)}.craving-action-grid{grid-template-columns:1fr}.craving-escalation-actions{flex-direction:column}.panic-button{bottom:var(--space-4);right:var(--space-4)}.layout-header-inner{flex-direction:column;gap:var(--space-3)}.layout-nav{flex-wrap:wrap;justify-content:center}.content-grid,.content-grid-3,.tracking-grid,.pricing-grid,.credit-packs{grid-template-columns:1fr}.trigger-grid{grid-template-columns:repeat(2,1fr)}.comparison-table{font-size:var(--font-size-xs)}.comparison-table thead th,.comparison-table tbody td{padding:var(--space-2)}.for-not-for-grid,.credit-packs-grid{grid-template-columns:1fr}.progress-stats{grid-template-columns:repeat(2,1fr)}.session-recs{grid-template-columns:1fr}.checkin-card-metrics{grid-template-columns:repeat(2,1fr)}.review-stat-grid{grid-template-columns:1fr}.checkin-averages{grid-template-columns:repeat(2,1fr)}.skills-grid,.tone-options{grid-template-columns:1fr}.checkin-history-grid{grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.insights-stats-grid{grid-template-columns:repeat(2,1fr)}.insights-craving-stats{grid-template-columns:repeat(3,1fr)}.today-quick-actions{grid-template-columns:repeat(2,1fr)}.today-next-action{flex-direction:column;align-items:stretch}.today-next-action-cta{width:100%;text-align:center}.today-checkin-summary,.nudge-banner{flex-direction:column;align-items:flex-start}}.insights-page{max-width:720px;margin:0 auto}.insights-summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5)}.insights-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.insights-summary-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text)}.insights-week-badge{font-size:var(--font-size-xs);color:var(--color-brand);background:var(--color-brand-dim);border:1px solid var(--color-brand-glow);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3)}.insights-summary-text{color:var(--color-text-muted);font-size:var(--font-size-base);line-height:1.6;margin-bottom:var(--space-4)}.insights-recommendation{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-brand-dim);border-left:3px solid var(--color-brand);border-radius:var(--radius-md)}.insights-recommendation-icon{font-size:var(--font-size-lg);flex-shrink:0}.insights-recommendation-text{color:var(--color-text);font-size:var(--font-size-sm);line-height:1.5}.insights-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-5)}.insights-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);text-align:center}.insights-stat-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);margin-bottom:var(--space-1)}.insights-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.insights-risk-low{color:var(--color-success)}.insights-risk-medium{color:var(--color-warning)}.insights-risk-high{color:var(--color-danger)}.insights-section{margin-bottom:var(--space-5)}.insights-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.insights-list-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);line-height:1.5}.insights-list-item:last-child{border-bottom:none}.insights-list-icon{flex-shrink:0;font-weight:700;width:1.2em}.insights-win-item .insights-list-icon{color:var(--color-success)}.insights-focus-item .insights-list-icon{color:var(--color-brand)}.insights-craving-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-3)}.insights-craving-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);text-align:center}.insights-craving-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text)}.insights-craving-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.insights-triggers{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-2) 0}.insights-triggers-label{font-weight:600;color:var(--color-text)}.insights-trigger-tag{display:inline-block;background:#ffffff0f;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);margin-right:var(--space-1);margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-muted)}.insights-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.insights-actions .btn{flex:1;text-align:center}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.mini-chart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.mini-chart-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-2) 0}.mini-chart-svg{width:100%;height:80px;display:block}.mini-chart-range{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.chart-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-4);text-align:center}.correlations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.correlation-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.correlation-metrics{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.correlation-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.correlation-value.negative{color:var(--color-success)}.correlation-value.positive{color:var(--color-warning)}.correlation-coeff{font-size:var(--font-size-xs);color:var(--color-text-muted)}.trigger-bars{display:flex;flex-direction:column;gap:var(--space-2)}.trigger-bar{display:grid;grid-template-columns:100px 1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-2) 0}.trigger-bar-label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-bar-track{height:8px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.trigger-bar-fill{height:100%;background:var(--color-warning);border-radius:var(--radius-full);transition:width var(--transition-normal);min-width:4px}.trigger-bar-count{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.skill-effectiveness-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.skill-eff-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.skill-eff-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.skill-eff-stats{display:flex;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.skill-eff-delta.negative{color:var(--color-success)}.skill-eff-delta.positive{color:var(--color-warning)}.skill-eff-strength{display:flex;align-items:center;gap:var(--space-2)}.export-actions{display:flex;gap:var(--space-3)}.export-actions .btn{flex:1;text-align:center}@media(max-width:640px){.charts-grid,.correlations-grid,.skill-effectiveness-grid{grid-template-columns:1fr}.trigger-bar{grid-template-columns:80px 1fr auto}.export-actions{flex-direction:column}}.today-page{max-width:720px;margin:0 auto;padding:var(--space-4)}.today-greeting{margin-bottom:var(--space-6)}.today-greeting-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-1)}.today-greeting-date{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.today-week-badge{display:inline-block;font-size:var(--font-size-xs);color:var(--color-brand);background:var(--color-brand-dim);border:1px solid var(--color-brand-glow);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-weight:var(--font-weight-medium)}.today-week-status-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.today-override-badge{display:inline-block;font-size:var(--font-size-xs);color:var(--color-warning);background:var(--color-warning-dim);border:1px solid rgba(224,168,64,.3);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-weight:var(--font-weight-semibold)}.today-week-completion{margin-top:var(--space-3)}.today-week-completion-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.today-week-completion-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.today-week-completion-done{font-size:var(--font-size-xs);color:var(--color-success);font-weight:var(--font-weight-semibold)}.today-week-completion-bar{height:6px;background:#ffffff14;border-radius:var(--radius-full);overflow:hidden}.today-week-completion-fill{height:100%;background:var(--color-brand);border-radius:var(--radius-full);transition:width var(--transition-normal)}.today-week-missing{margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.today-nudges{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.nudge-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.nudge-warning{background:var(--color-warning-dim);border:1px solid rgba(224,168,64,.3);color:var(--color-warning)}.nudge-info{background:var(--color-brand-dim);border:1px solid var(--color-brand-glow);color:var(--color-brand)}.nudge-success{background:var(--color-success-dim);border:1px solid rgba(91,190,160,.25);color:var(--color-success)}.nudge-message{flex:1}.nudge-action{flex-shrink:0;font-weight:var(--font-weight-semibold);color:inherit;text-decoration:none;white-space:nowrap;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:#ffffff14;transition:background var(--transition-fast)}.nudge-action:hover{background:#ffffff24;text-decoration:none;color:inherit}.today-checkin-widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5)}.today-checkin-header{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.today-checkin-form{display:flex;flex-direction:column;gap:var(--space-3)}.today-checkin-slider-row{display:flex;align-items:center;gap:var(--space-3)}.today-checkin-slider-row .checkin-slider{flex:1}.today-checkin-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-brand);min-width:3em;text-align:right}.today-checkin-actions{display:flex;align-items:center;gap:var(--space-3)}.today-checkin-summary{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);font-size:var(--font-size-sm)}.today-checkin-summary-label{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.today-checkin-summary-values{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);flex:1}.today-checkin-summary-link{color:var(--color-brand);font-weight:var(--font-weight-medium);white-space:nowrap}.today-next-action{background:var(--color-brand-dim);border:1px solid var(--color-brand);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-5);box-shadow:var(--shadow-glow-brand);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.today-next-action-rest{background:var(--color-surface);border-color:var(--color-border);box-shadow:none}.today-next-action-icon{font-size:var(--font-size-3xl);flex-shrink:0}.today-next-action-content{flex:1;min-width:200px}.today-next-action-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.today-next-action-message{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.today-next-action-cta{flex-shrink:0}.today-next-action-rest-text{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.today-tasks-section{margin-bottom:var(--space-5)}.today-tasks-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.today-tasks-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0}.today-tasks-link{font-size:var(--font-size-sm);color:var(--color-brand);font-weight:var(--font-weight-medium)}.today-tasks-compact{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.today-task-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.today-task-item:last-child{border-bottom:none}.today-task-item:hover{background:var(--color-surface-hover)}.today-task-item-content{flex:1;display:flex;align-items:center;gap:var(--space-2);min-width:0}.today-task-item-title{font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-task-item-type{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0}.today-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-4)}.today-action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.today-action-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);text-decoration:none;transform:translateY(-1px)}.today-action-btn-icon{font-size:var(--font-size-xl);color:var(--color-brand)}.today-action-btn-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-align:center}.portal-comment-section{margin-top:var(--space-6)}.portal-comment-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4) 0}.portal-comment-loading,.portal-comment-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-4)}.portal-comment-error{font-size:var(--font-size-sm);color:var(--color-danger);padding:var(--space-2) 0}.portal-comment-no-access{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.portal-comment-list{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.portal-comment-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.portal-comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.portal-comment-author{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent)}.portal-comment-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.portal-comment-text{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal);margin:0;white-space:pre-wrap}.portal-comment-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-4)}.portal-comment-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.portal-comment-textarea{width:100%;min-height:80px;padding:var(--space-3);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);resize:vertical;transition:border-color var(--transition-fast);box-sizing:border-box}.portal-comment-textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-dim)}.portal-comment-textarea:disabled{opacity:.6;cursor:not-allowed}.portal-comment-form-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3)}.portal-comment-charcount{font-size:var(--font-size-xs);color:var(--color-text-muted)}.portal-comment-charcount-warn{color:var(--color-warning)}.portal-assign-section{margin-top:var(--space-6)}.portal-assign-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.portal-assign-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.portal-assign-loading,.portal-assign-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-4)}.portal-assign-error{font-size:var(--font-size-sm);color:var(--color-danger);padding:var(--space-2) 0}.portal-assign-no-access{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.portal-assign-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.portal-assign-form-field{display:flex;flex-direction:column;gap:var(--space-2)}.portal-assign-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.portal-assign-required{color:var(--color-danger)}.portal-assign-input{width:100%;padding:var(--space-2) var(--space-3);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);box-sizing:border-box}.portal-assign-input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-dim)}.portal-assign-input:disabled{opacity:.6;cursor:not-allowed}.portal-assign-textarea{width:100%;min-height:70px;padding:var(--space-3);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal);resize:vertical;transition:border-color var(--transition-fast);box-sizing:border-box}.portal-assign-textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-dim)}.portal-assign-textarea:disabled{opacity:.6;cursor:not-allowed}.portal-assign-form-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.portal-assign-list{display:flex;flex-direction:column;gap:var(--space-3)}.portal-assigned-task{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color var(--transition-fast)}.portal-assigned-task:hover{border-color:var(--color-border-hover)}.portal-assigned-task-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2)}.portal-assigned-task-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1;min-width:0}.portal-assigned-task-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin:0 0 var(--space-2) 0}.portal-assigned-task-meta{display:flex;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-muted)}.portal-assigned-badge{display:inline-block;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.portal-assigned-badge-pending{background:var(--color-warning-dim);color:var(--color-warning)}.portal-assigned-badge-completed{background:var(--color-success-dim);color:var(--color-success)}.portal-assigned-badge-skipped{background:var(--color-surface-elevated);color:var(--color-text-muted)}.portal-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text-primary)}.portal-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-6) var(--space-6) var(--space-4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-header-brand{margin-bottom:var(--space-3)}.portal-header-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.portal-header-subtitle{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-brand)}.portal-access-info{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-4)}.portal-access-detail{font-size:var(--font-size-sm);color:var(--color-text-muted)}.portal-access-detail strong{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.portal-access-scopes{flex-basis:100%;font-size:var(--font-size-xs)}.portal-nav{display:flex;gap:var(--space-1);flex-wrap:wrap}.portal-nav-link{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:background var(--transition-fast),color var(--transition-fast)}.portal-nav-link:hover{background:var(--color-surface-hover);color:var(--color-text-primary);text-decoration:none}.portal-nav-link-active,.portal-nav-link-active:hover{background:var(--color-brand-dim);color:var(--color-brand)}.portal-main{flex:1;max-width:var(--container-max);width:100%;margin:0 auto;padding:var(--space-6)}.portal-footer{border-top:1px solid var(--color-border);padding:var(--space-6);text-align:center}.portal-footer-text{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.portal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4) 0}.portal-page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--space-6) 0}.portal-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.portal-stats-3col{grid-template-columns:repeat(3,1fr)}.portal-stats-4col{grid-template-columns:repeat(4,1fr)}.portal-stat{text-align:center;padding:var(--space-3);background:var(--color-surface-elevated);border-radius:var(--radius-md)}.portal-stat-compact{padding:var(--space-2)}.portal-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.portal-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1);text-transform:uppercase;letter-spacing:.05em}.portal-stat-success{color:var(--color-success)}.portal-milestones{display:flex;flex-wrap:wrap;gap:var(--space-3)}.portal-milestone-badge{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-brand-dim);border:1px solid var(--color-brand);border-radius:var(--radius-md)}.portal-milestone-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-brand)}.portal-milestone-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.portal-task-list{display:flex;flex-direction:column;gap:var(--space-2)}.portal-task-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);border-radius:var(--radius-md);border-left:3px solid transparent;transition:background var(--transition-fast)}.portal-task-item:hover{background:var(--color-surface-hover)}.portal-task-pending{border-left-color:var(--color-warning)}.portal-task-completed{border-left-color:var(--color-success);opacity:.85}.portal-task-skipped{border-left-color:var(--color-text-muted);opacity:.65}.portal-task-therapist{background:var(--color-accent-dim)}.portal-task-content{flex:1;min-width:0}.portal-task-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.portal-task-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.portal-task-type{text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-medium)}.portal-task-badge-therapist{color:var(--color-accent);font-weight:var(--font-weight-medium)}.portal-task-due{color:var(--color-warning)}.portal-task-completed-date{color:var(--color-success)}.portal-task-check{color:var(--color-success);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-left:var(--space-3);flex-shrink:0}.portal-plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3)}.portal-plan-meta{margin-bottom:var(--space-4)}.portal-plan-generated{font-size:var(--font-size-sm);color:var(--color-text-muted)}.portal-plan-content{font-size:var(--font-size-base);line-height:1.75;color:var(--color-text-secondary)}.portal-plan-content p{margin:0 0 var(--space-1) 0}.portal-plan-break{height:var(--space-3)}.portal-download-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--color-brand-dim);color:var(--color-brand);border:1px solid var(--color-brand);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);font-family:inherit}.portal-download-btn:hover{background:var(--color-brand);color:var(--color-bg)}.portal-weekly-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-3)}.portal-weekly-dates{font-size:var(--font-size-sm);color:var(--color-text-muted)}.portal-weekly-summary{font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.portal-weekly-highlights{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.portal-highlights-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0}.portal-highlights-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.portal-highlight-item{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding-left:var(--space-4);position:relative}.portal-highlight-item:before{content:"•";position:absolute;left:0;color:var(--color-brand);font-weight:var(--font-weight-bold)}.portal-error{background:var(--color-surface);border:1px solid var(--color-danger);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;max-width:500px;margin:var(--space-8) auto}.portal-error-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);background:var(--color-danger-dim);color:var(--color-danger);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-4)}.portal-error-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3) 0}.portal-error-message{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--space-3) 0}.portal-error-help{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.portal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12)}.portal-verify-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:var(--space-8);text-align:center}.portal-verify-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.portal-verify-subtitle{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-brand);margin:0 0 var(--space-8) 0}.portal-verify-status{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.portal-verify-message{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.portal-no-scope{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;max-width:500px;margin:var(--space-8) auto}.portal-no-scope h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3) 0}.portal-no-scope p{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0}.portal-empty{font-size:var(--font-size-base);color:var(--color-text-muted);text-align:center;padding:var(--space-4) 0}.portal-comments-section,.portal-assign-section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.portal-placeholder-note{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;text-align:center;margin:0;padding:var(--space-2) 0}@media(max-width:768px){.portal-header{padding:var(--space-4) var(--space-4) var(--space-3)}.portal-header-title{font-size:var(--font-size-lg);flex-direction:column;gap:var(--space-1)}.portal-main{padding:var(--space-4)}.portal-access-info{flex-direction:column;gap:var(--space-1)}.portal-nav{gap:var(--space-1);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1)}.portal-nav-link{padding:var(--space-2) var(--space-3);white-space:nowrap;font-size:var(--font-size-xs)}.portal-stats-grid,.portal-stats-3col,.portal-stats-4col{grid-template-columns:repeat(2,1fr)}.portal-stat-value{font-size:var(--font-size-xl)}.portal-milestones{gap:var(--space-2)}.portal-plan-header{flex-direction:column;align-items:flex-start}.portal-weekly-header{flex-direction:column;gap:var(--space-1)}.portal-card{padding:var(--space-4)}.portal-error{margin:var(--space-4) auto;padding:var(--space-6)}.portal-verify-title{font-size:var(--font-size-2xl)}}.invite-page{max-width:600px;margin:0 auto}.invite-page-header{margin-bottom:var(--space-6)}.invite-page-header h2{margin:0 0 var(--space-2) 0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.invite-page-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.invite-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.scope-checklist{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3)}.scope-item{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.scope-item:hover{background:var(--color-surface-hover)}.scope-item input[type=checkbox]{accent-color:var(--color-brand);width:16px;height:16px;cursor:pointer}.scope-item-label{font-size:var(--font-size-sm);color:var(--color-text-primary)}.privacy-notice{display:flex;gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4);background:var(--color-accent-dim);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.privacy-notice-icon{font-size:var(--font-size-xl);flex-shrink:0;line-height:1}.privacy-notice-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.privacy-notice-text a{color:var(--color-brand);font-weight:var(--font-weight-medium)}.invite-success-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center}.invite-success-icon{font-size:var(--font-size-3xl);color:var(--color-success);margin-bottom:var(--space-3)}.invite-success-card h2{margin:0 0 var(--space-3) 0;color:var(--color-text-primary)}.invite-success-text{color:var(--color-text-secondary);margin:0 0 var(--space-2) 0}.invite-success-detail{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-4) 0}.invite-dev-token{background:var(--color-surface-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);text-align:left;word-break:break-all}.invite-dev-token-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em}.invite-dev-token-value{font-size:var(--font-size-xs);color:var(--color-brand)}.invite-success-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.manage-page{max-width:700px;margin:0 auto}.manage-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3)}.manage-page-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.manage-section{margin-bottom:var(--space-8)}.manage-section h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-4) 0}.manage-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.collaborator-list{display:flex;flex-direction:column;gap:var(--space-4)}.collaborator-card,.invite-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color var(--transition-fast)}.collaborator-card:hover,.invite-card:hover{border-color:var(--color-border-hover)}.collaborator-card-header,.invite-card-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.collaborator-info{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.collaborator-email{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.collaborator-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.collaborator-badge-therapist{background:var(--color-brand-dim);color:var(--color-brand)}.collaborator-badge-support_partner{background:var(--color-accent-dim);color:var(--color-accent)}.collaborator-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.collaborator-scopes{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.collaborator-scopes-label{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.collaborator-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;padding-top:var(--space-2);border-top:1px solid var(--color-border-light)}.invite-status{display:flex;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted)}.scope-editor{background:var(--color-surface-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3)}.scope-editor-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}@media(max-width:768px){.invite-page,.manage-page{padding:0 var(--space-3)}.invite-form{padding:var(--space-4)}.manage-page-header{flex-direction:column;align-items:stretch}.collaborator-card-header,.invite-card-header,.collaborator-actions{flex-direction:column}.collaborator-actions .btn{width:100%}.invite-success-actions{flex-direction:column}}.dev-outbox-page{max-width:800px;margin:0 auto;padding:2rem 1rem}.dev-outbox-warning{background:var(--color-warning-dim, rgba(255, 193, 7, .12));color:var(--color-warning, #ffc107);border:1px solid var(--color-warning, #ffc107);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.875rem}.dev-outbox-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dev-outbox-header h1{font-size:1.5rem;color:var(--color-text-primary);margin:0}.dev-outbox-header-actions{display:flex;gap:.5rem}.dev-outbox-error{background:var(--color-danger-dim, rgba(239, 68, 68, .12));color:var(--color-danger, #ef4444);border:1px solid var(--color-danger, #ef4444);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem}.dev-outbox-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.dev-outbox-card-header{margin-bottom:.5rem}.dev-outbox-to{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.25rem}.dev-outbox-subject{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.dev-outbox-meta{display:flex;gap:.75rem;align-items:center;font-size:.8125rem}.dev-outbox-status{display:inline-block;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;background:var(--color-surface-elevated);color:var(--color-text-muted)}.dev-outbox-status--sent{background:var(--color-brand-dim);color:var(--color-brand)}.dev-outbox-status--dev_stored{background:var(--color-accent-dim);color:var(--color-accent)}.dev-outbox-date{color:var(--color-text-muted)}.dev-outbox-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border-light)}.dev-outbox-body{margin-top:.75rem;padding:1rem;background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border-light);overflow-x:auto}.dev-outbox-body pre{margin:0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.8125rem;line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.session-thread{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);background:var(--color-bg-subtle)}.session-bubble{max-width:85%;padding:var(--space-4);border-radius:var(--radius-lg);line-height:1.6}.session-bubble-coach{align-self:flex-start;background:var(--color-accent-dim);border-left:3px solid var(--color-accent)}.session-bubble-user{align-self:flex-end;background:var(--color-brand-dim);border-right:3px solid var(--color-brand)}.session-bubble-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.05em}.session-bubble-text{color:var(--color-text-primary);font-size:var(--font-size-base)}.session-bubble-text p{margin:0 0 var(--space-2) 0}.session-bubble-text p:last-child{margin-bottom:0}.session-reply{display:flex;flex-direction:column;margin-bottom:var(--space-4)}.session-reply-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.session-reply-row{display:flex;gap:var(--space-3);align-items:flex-end}.session-reply-row textarea{flex:1;resize:none;min-height:44px;max-height:120px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-base);font-family:inherit;line-height:1.5;transition:border-color var(--transition-fast)}.session-reply-row textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 2px var(--color-brand-dim)}.session-reply-row textarea::placeholder{color:var(--color-text-muted)}.session-reply-row .btn{flex-shrink:0}.phase-complete-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-success);background:var(--color-success-dim);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);margin-bottom:var(--space-3)}.session-bubble-coach .loading-dots{display:inline-flex;gap:4px;padding:var(--space-1) 0}.session-bubble-coach .loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--color-accent);animation:session-dot-pulse 1.4s ease-in-out infinite}.session-bubble-coach .loading-dots span:nth-child(2){animation-delay:.2s}.session-bubble-coach .loading-dots span:nth-child(3){animation-delay:.4s}@keyframes session-dot-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media(max-width:600px){.session-thread{max-height:300px;padding:var(--space-3)}.session-bubble{max-width:95%;padding:var(--space-3)}.session-reply-row{flex-direction:column;align-items:stretch}.session-reply-row .btn{align-self:flex-end}}.badge-education{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;background:var(--color-brand);color:#fff;text-transform:uppercase;letter-spacing:.05em}.mark-complete-btn{margin-top:var(--space-3)}.mark-complete-done{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);color:var(--color-success);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.mark-complete-check{font-size:1.1em}.mark-complete-message{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.mission-picker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-6)}.mission-picker-confirmed{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6)}.mission-picker-check{color:var(--color-success);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.mission-picker-confirmed-text{color:var(--color-success);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.mission-picker-header{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-brand);margin-bottom:var(--space-2)}.mission-picker-text{color:var(--color-text-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);margin-bottom:var(--space-4)}.mission-picker-prompt{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.mission-picker-options{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.mission-picker-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;font-size:var(--font-size-sm)}.mission-picker-btn:hover{background:var(--color-surface-hover);border-color:var(--color-brand)}.mission-picker-btn-selected{background:var(--color-brand-dim);border-color:var(--color-brand)}.mission-picker-btn-icon{font-size:var(--font-size-xl)}.mission-picker-btn-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mission-picker-saving{margin-top:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm)}.mission-picker-error{margin-top:var(--space-3);color:var(--color-danger);font-size:var(--font-size-sm)}.missions-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6)}.missions-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.missions-panel-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.missions-panel-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.missions-panel-list{display:flex;flex-direction:column;gap:var(--space-3)}.mission-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.mission-item:hover{border-color:var(--color-border-hover)}.mission-item-completed{opacity:.7}.mission-item-content{flex:1;min-width:0}.mission-item-text{color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.mission-item-completed .mission-item-text{text-decoration:line-through;color:var(--color-text-muted)}.mission-item-check{color:var(--color-success);margin-right:var(--space-2);font-weight:var(--font-weight-bold)}.mission-item-source{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--space-1)}.mission-item-actions{flex-shrink:0}.mission-item-done-row{display:flex;align-items:center;gap:var(--space-2)}.mission-item-done-label{color:var(--color-success);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.mission-points-feedback{color:var(--color-brand);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);animation:points-fade-in .4s ease}@keyframes points-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.integrity-badge{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);margin-bottom:var(--space-4);text-align:center}.integrity-badge-level{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-brand)}.integrity-badge-points{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.integrity-badge-bar-track{height:6px;background:var(--color-surface-hover);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-1)}.integrity-badge-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-brand),var(--color-accent));border-radius:var(--radius-full);transition:width .6s ease}.integrity-badge-next{font-size:var(--font-size-xs);color:var(--color-text-muted)}.landing{--bg: #070a14;--card: #0b1020;--card2: #0d1530;--text: #e9eefc;--muted: #aab6da;--muted2: #7f8bb3;--line: rgba(255,255,255,.08);--shadow: 0 20px 60px rgba(0,0,0,.35);--radius: 20px;--radius2: 28px;--accent: #7c5cff;--accent2: #22c55e;--accent3: #38bdf8;--warn: #f59e0b;--danger: #fb7185;--focus: 0 0 0 4px rgba(124,92,255,.25);--max: 1140px;min-height:100vh;background:radial-gradient(1200px 700px at 20% -10%,rgba(124,92,255,.35),transparent 55%),radial-gradient(900px 600px at 90% 10%,rgba(56,189,248,.22),transparent 60%),radial-gradient(900px 700px at 40% 120%,rgba(34,197,94,.18),transparent 60%),var(--bg);color:var(--text);line-height:1.5;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}.landing a{color:inherit;text-decoration:none}.landing .wrap{max-width:var(--max);margin:0 auto;padding:24px}.landing .l-nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(to bottom,#070a14c7,#070a1459);border-bottom:1px solid var(--line)}.landing .l-navInner{max-width:var(--max);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px}.landing .l-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2px}.landing .l-navLinks{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.landing .l-navLinks a{color:var(--muted);font-weight:700;font-size:14px}.landing .l-navLinks a:hover,.landing .l-navLinks a.l-navActive{color:var(--text)}.landing .l-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:12px 16px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text);font-weight:800;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:inherit;font-size:inherit}.landing .l-btn:hover{transform:translateY(-1px);background:#ffffff16;border-color:#fff3}.landing .l-btn:focus{outline:none;box-shadow:var(--focus)}.landing .l-btnPrimary{background:linear-gradient(135deg,#7c5cff,#38bdf8);border-color:#ffffff2e;box-shadow:0 18px 50px #7c5cff40}.landing .l-btnPrimary:hover{border-color:#ffffff40}.landing .l-btnGhost{background:transparent}.landing .l-card{background:linear-gradient(180deg,#ffffff0f,#ffffff08);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius2);box-shadow:var(--shadow)}.landing .pillRow{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.landing .pill{padding:7px 10px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--muted);font-weight:750;font-size:13px}.landing h1{font-size:clamp(34px,4.2vw,56px);line-height:1.05;margin:0 0 12px;letter-spacing:-.8px}.landing h2{margin:0 0 12px;font-size:28px;letter-spacing:-.4px}.landing h3{margin:0 0 8px;font-size:18px;letter-spacing:-.2px}.landing .lead{font-size:clamp(16px,1.55vw,18.5px);color:var(--muted);margin:0 0 18px}.landing .l-section{padding:28px 0}.landing .divider{height:1px;background:#ffffff14;margin:18px 0}.landing .grid2{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:stretch}.landing .twoCol{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.landing .hero{padding:46px 0 18px}.landing .heroCard{padding:18px 18px 12px;overflow:hidden;position:relative}.landing .heroArt{position:absolute;inset:-60px -40px auto auto;width:360px;height:360px;opacity:.9;transform:rotate(8deg);filter:drop-shadow(0 30px 80px rgba(0,0,0,.35));pointer-events:none}.landing .ctaRow{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.landing .statRow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.landing .stat{padding:14px;border-radius:18px;background:#0b10208c;border:1px solid rgba(255,255,255,.1)}.landing .stat b{display:block;font-size:14px}.landing .stat span{color:var(--muted2);font-size:13px}.landing .featureCard{padding:18px;position:relative;overflow:hidden}.landing .featureTop{display:flex;gap:12px;align-items:flex-start}.landing .l-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);flex:0 0 auto}.landing .featureCard p{margin:0;color:var(--muted);font-size:14px}.landing .tagRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.landing .tag{font-size:12px;font-weight:850;color:#e9eefceb;padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d}.landing .steps{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.landing .step{padding:16px;border-radius:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff08}.landing .step b{display:block;margin-bottom:6px}.landing .step p{margin:0;color:var(--muted);font-size:14px}.landing .callout{padding:18px;border-radius:24px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;box-shadow:var(--shadow);margin-top:18px}.landing .callout p{margin:0;color:var(--muted)}.landing .kicker{color:#e9eefce6;font-weight:900;font-size:13px;letter-spacing:.12em;text-transform:uppercase}.landing .smallmuted{color:var(--muted2);font-size:12px;margin-top:8px}.landing .badgeRow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.landing .l-badge{padding:10px 12px;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);color:var(--muted);font-weight:800;font-size:13px}.landing .tabs{margin-top:18px;border-radius:var(--radius2);border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#ffffff0d,#ffffff08);overflow:hidden;box-shadow:var(--shadow)}.landing .tabBar{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap}.landing .tabBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);padding:14px;font-weight:900;font-size:13px;cursor:pointer;border-right:1px solid rgba(255,255,255,.06);transition:background .12s ease,color .12s ease;font-family:inherit}.landing .tabBtn:hover{color:var(--text);background:#ffffff0d}.landing .tabBtn.tabActive{color:var(--text);background:#7c5cff24}.landing .tabPanel{display:none;padding:18px}.landing .tabPanel.active{display:block}.landing .tableWrap{overflow:auto;border-radius:22px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;box-shadow:var(--shadow);margin-top:16px}.landing table{width:100%;border-collapse:collapse;min-width:920px}.landing th,.landing td{padding:12px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.landing th{position:sticky;top:0;background:#0b1020d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px;color:#e9eefcf2}.landing td{font-size:13.5px;color:var(--muted)}.landing td strong{color:#e9eefcf2}.landing .yes{color:#22c55ef2;font-weight:900}.landing .no{color:#fb7185f2;font-weight:900}.landing .maybe{color:#f59e0bf2;font-weight:900}.landing .quote{margin-top:18px;padding:18px;border-radius:var(--radius2);border:1px solid rgba(255,255,255,.1);background:radial-gradient(500px 200px at 20% 0%,rgba(34,197,94,.15),transparent 60%),radial-gradient(500px 200px at 85% 20%,rgba(124,92,255,.18),transparent 60%),#ffffff08;box-shadow:var(--shadow)}.landing .quote p{margin:0;color:#e9eefcf2;font-size:15.5px}.landing .quote span{display:block;margin-top:10px;color:var(--muted2);font-weight:800;font-size:13px}.landing input[type=email]{flex:1 1 260px;border-radius:999px;padding:12px 14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:var(--text);outline:none;font-family:inherit;font-size:inherit}.landing input[type=email]::placeholder{color:#aab6dacc}.landing input[type=email]:focus{box-shadow:var(--focus);border-color:#7c5cff59}.landing .l-footer{padding:34px 0 18px;color:var(--muted2);font-size:13px}.landing .l-footer a{color:var(--muted);text-decoration:underline}.landing .tiny{font-size:12px;color:var(--muted2);margin-top:10px}.landing .inputRow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}@media(max-width:920px){.landing .grid2,.landing .twoCol{grid-template-columns:1fr}.landing .l-navLinks{display:none}.landing .steps{grid-template-columns:1fr}}@media(max-width:520px){.landing .statRow{grid-template-columns:1fr}}
