:root{
    --warrior-navy:rgb(11, 17, 32);
    --warrior-amber:rgb(217, 119, 6);
    --warrior-emerald:rgb(5, 150, 105);
    --warrior-emerald-dark:rgb(4, 120, 87);
    --warrior-warm-white:rgb(250, 250, 249);
}

html{scroll-behavior:smooth}
body{background:var(--arcane-surface);color:var(--text-color);margin:0;min-width:20rem}
.warrior-shell{display:grid;gap:var(--arcane-space-6);margin:0 auto;max-width:90rem;padding:clamp(1rem,3vw,2.5rem)}

body.warrior-home-page{display:grid;grid-template-columns:11em minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100vh;overflow:hidden}
.warrior-home-page>.header{grid-column:1/-1;grid-row:1}
.warrior-home-page>.nav{grid-column:1;grid-row:2;min-height:0}
.warrior-home-content{box-sizing:border-box;grid-column:2;grid-row:2;height:100%;margin:0;max-width:none;min-width:0;overflow:auto;width:100%}

#appBar::part(brand-mark){background:color-mix(in srgb,var(--warrior-amber) 16%,var(--arcane-surface-raised));border-color:color-mix(in srgb,var(--warrior-amber) 45%,var(--arcane-border));overflow:hidden}
.bar-logo{height:2.2rem;object-fit:contain;width:2.2rem}

.hero{align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--warrior-amber) 8%,var(--arcane-surface-raised)),color-mix(in srgb,var(--warrior-emerald) 10%,var(--arcane-surface)));border:1px solid color-mix(in srgb,var(--warrior-amber) 42%,var(--arcane-border));border-radius:var(--arcane-radius-large);box-shadow:var(--arcane-shadow-medium);color:var(--text-color);display:grid;gap:clamp(1.5rem,4vw,3.5rem);grid-template-columns:minmax(9rem,15rem) minmax(0,1fr);min-height:25rem;overflow:hidden;padding:clamp(1.5rem,5vw,4.5rem);position:relative}
.hero::after{background:radial-gradient(circle,color-mix(in srgb,var(--warrior-amber) 32%,transparent),transparent 68%);content:"";height:24rem;pointer-events:none;position:absolute;right:-8rem;top:-10rem;width:24rem}
.hero-mark{align-items:center;background:color-mix(in srgb,var(--warrior-amber) 8%,var(--arcane-surface-raised));border:1px solid color-mix(in srgb,var(--warrior-amber) 30%,var(--arcane-border));border-radius:50%;display:flex;justify-content:center;aspect-ratio:1;padding:1.25rem}
.hero-mark img{height:100%;object-fit:contain;width:100%}
.hero-copy{max-width:54rem;position:relative;z-index:1}
.hero h1{font-size:clamp(2.4rem,6vw,5.5rem);letter-spacing:-.045em;line-height:.95;margin:.2rem 0 1rem}
.hero-lead{font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.55;margin:0;max-width:48rem}
.powered-by{color:var(--arcane-muted);margin:1rem 0 0}
.hero-actions,.urgent-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.hero .arcane-button--action{background:var(--arcane-action);border-color:color-mix(in srgb,var(--warrior-amber) 50%,var(--arcane-border));color:var(--arcane-action-text)}
.hero .arcane-button--secondary{background:var(--arcane-surface-raised);border-color:var(--arcane-border);color:var(--text-color)}

.eyebrow{color:var(--warrior-amber);font-size:.75rem;font-weight:800;letter-spacing:.12em;margin:0 0 .45rem;text-transform:uppercase}
.urgent-support{align-items:center;border-inline-start:.35rem solid var(--arcane-danger);display:grid;gap:var(--arcane-space-4);grid-template-columns:minmax(0,1fr) auto;padding:var(--arcane-space-5)}
.urgent-support h2,.urgent-support p{margin:.25rem 0}
.urgent-support p{line-height:1.55;max-width:68rem}
.urgent-actions{justify-content:flex-end;margin:0}
.why-companion .arcane-card__body{display:grid;gap:var(--arcane-space-3)}
.why-companion h2{font-size:clamp(1.6rem,3vw,2.4rem);margin:0;max-width:62rem}
.why-companion__copy{display:grid;gap:var(--arcane-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}
.why-companion__copy p{color:var(--arcane-muted);line-height:1.65;margin:0}

.section-block{scroll-margin-top:5rem}
.section-heading{align-items:end;display:flex;gap:var(--arcane-space-4);justify-content:space-between;margin-bottom:var(--arcane-space-4)}
.section-heading.compact{align-items:start;display:block}
.section-heading h2{font-size:clamp(1.7rem,3vw,2.6rem);letter-spacing:-.025em;margin:.1rem 0}
.section-heading p:not(.eyebrow){color:var(--arcane-muted);line-height:1.55;margin:.35rem 0 0;max-width:60rem}
.selection-status{font-weight:700;text-align:end}
.program-grid{align-items:stretch;display:grid;gap:var(--arcane-space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.program-card{background:var(--arcane-surface-raised);border:1px solid var(--arcane-border);border-radius:var(--arcane-radius-medium);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;gap:.65rem;min-height:15rem;padding:var(--arcane-space-5);text-align:start;transition:border-color 160ms,box-shadow 160ms,transform 160ms;width:100%}
.program-card:hover{border-color:color-mix(in srgb,var(--warrior-amber) 62%,var(--arcane-border));transform:translateY(-2px)}
.program-card:focus-visible{outline:3px solid var(--arcane-focus);outline-offset:3px}
.program-card[aria-pressed="true"]{border-color:var(--warrior-amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--warrior-amber) 22%,transparent)}
.program-number{color:var(--warrior-amber);font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.program-card strong{font-size:1.15rem}
.program-card span:last-child{color:var(--arcane-muted);line-height:1.5}
.program-card--static{cursor:default;height:auto;min-height:0;overflow-wrap:anywhere}
.program-card--static:hover{border-color:var(--arcane-border);transform:none}
.program-card--static h3,.program-card--static p{margin:0}
.program-card--static p{color:var(--arcane-muted);line-height:1.5}

.quick-grid{display:grid;gap:var(--arcane-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.feature-link{color:inherit;display:grid;gap:.65rem;min-height:12rem;padding:var(--arcane-space-5);text-decoration:none;transition:border-color 160ms,box-shadow 160ms,transform 160ms}
.feature-link:hover{border-color:color-mix(in srgb,var(--warrior-amber) 58%,var(--arcane-border));box-shadow:var(--arcane-shadow-small);transform:translateY(-2px)}
.feature-link:focus-visible{outline:3px solid var(--arcane-focus);outline-offset:3px}
.feature-link strong{font-size:1.3rem}
.feature-link>span:last-child{color:var(--arcane-muted);line-height:1.5}
.feature-number{color:var(--warrior-amber);font-size:.75rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}

.companion-grid{align-items:start;display:grid;gap:var(--arcane-space-5);grid-template-columns:minmax(0,1.05fr) minmax(20rem,.95fr)}
.assistant-region,.reflection-region{scroll-margin-top:5rem}
.assistant-panel{height:42rem;--assistant-accent:var(--warrior-emerald-dark);--assistant-surface:var(--arcane-surface-raised);--assistant-border:var(--arcane-border);--assistant-text:var(--text-color)}
.chat-messages{display:grid;gap:.8rem;list-style:none;margin:0;padding:0}
.chat-message{border:1px solid var(--arcane-border);border-radius:var(--arcane-radius-medium);display:grid;gap:.3rem;max-width:88%;padding:.8rem 1rem}
.chat-message[data-role="assistant"]{background:color-mix(in srgb,var(--warrior-emerald) 7%,var(--arcane-surface-raised));justify-self:start}
.chat-message[data-role="user"]{background:color-mix(in srgb,var(--warrior-amber) 9%,var(--arcane-surface-raised));justify-self:end}
.chat-message__role{color:var(--arcane-muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.chat-message__content{line-height:1.55;white-space:pre-wrap}
.assistant-footer{display:grid;gap:.25rem}
.assistant-footer p{margin:0}
.assistant-footer a{color:var(--arcane-action)}
.reflection-region{overflow:hidden}
.reflection-heading{align-items:center}
.reflection-body{display:grid;gap:var(--arcane-space-3)}
#reflectionEditor{height:34rem;min-height:28rem}

.support-grid{display:grid;gap:var(--arcane-space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.support-card{height:100%}
.support-card .arcane-card__body{display:grid;gap:.7rem}
.support-card h3,.support-card p{margin:0}
.support-card p{color:var(--arcane-muted);line-height:1.5}
.support-card a{color:var(--arcane-action);font-weight:750;overflow-wrap:anywhere}
.text-action{background:none;border:0;color:var(--arcane-action);cursor:pointer;font:inherit;font-weight:750;padding:0;text-align:start;text-decoration:underline;text-underline-offset:.2em;width:max-content;max-width:100%;overflow-wrap:anywhere}
.text-action:focus-visible{outline:3px solid var(--arcane-focus);outline-offset:3px}
.support-icon{align-items:center;background:color-mix(in srgb,var(--warrior-amber) 13%,var(--arcane-surface-muted));border:1px solid color-mix(in srgb,var(--warrior-amber) 35%,var(--arcane-border));border-radius:50%;color:color-mix(in srgb,var(--warrior-amber) 80%,var(--text-color));display:flex;font-size:.75rem;font-weight:900;height:3rem;justify-content:center;letter-spacing:-.03em;width:3rem}
.privacy-note{border-inline-start:.35rem solid var(--warrior-emerald)}
.privacy-note ul{display:grid;gap:.5rem;line-height:1.5;margin-bottom:0;padding-inline-start:1.25rem}

.app-footer{align-items:center;background:var(--arcane-surface-raised);border-block-start:1px solid var(--arcane-border);color:var(--text-color);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:var(--arcane-space-6);padding:1.2rem clamp(1rem,3vw,2.5rem)}

.page-shell{gap:var(--arcane-space-5)}
.narrow-shell{max-width:76rem}
.page-heading{align-items:end;display:flex;gap:var(--arcane-space-4);justify-content:space-between}
.page-heading h1{font-size:clamp(2.2rem,5vw,4.4rem);letter-spacing:-.04em;line-height:1;margin:.2rem 0 .8rem}
.page-heading p:not(.eyebrow){color:var(--arcane-muted);line-height:1.55;margin:0;max-width:58rem}
.page-actions,.inline-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.urgent-support--compact{padding:var(--arcane-space-4)}
.urgent-support--compact .arcane-section-heading{font-size:1.15rem}

.companion-workspace{align-items:start;display:grid;gap:var(--arcane-space-4);grid-template-columns:minmax(15rem,.72fr) minmax(24rem,1.55fr) minmax(15rem,.72fr)}
.reflection-workspace{align-items:start;display:grid;gap:var(--arcane-space-4);grid-template-columns:minmax(15rem,.72fr) minmax(24rem,1.45fr) minmax(17rem,.83fr)}
.history-column,.response-column{display:grid;gap:var(--arcane-space-3);min-width:0}
.panel-heading{align-items:center;display:flex;gap:var(--arcane-space-3);justify-content:space-between}
.panel-heading h2{font-size:1.25rem;margin:.15rem 0}
.panel-heading a{color:var(--arcane-action);font-weight:750}
.panel-note{color:var(--arcane-muted);font-size:.88rem;line-height:1.45;margin:0}
.count-pill{align-items:center;background:var(--arcane-surface-muted);border:1px solid var(--arcane-border);border-radius:999px;display:inline-flex;font-size:.8rem;font-weight:800;justify-content:center;min-height:2rem;min-width:2rem;padding:0 .55rem}
.assistant-region .section-heading{margin-bottom:var(--arcane-space-3)}
.assistant-region .assistant-panel{height:44rem}
.reflection-compose{min-width:0;overflow:hidden}
.reflection-compose #reflectionEditor{height:38rem}
.response-column #reflectionOutput{min-height:15rem}
.memories-heading{margin-top:var(--arcane-space-3)}

.memory-manager .arcane-card__body{display:grid;gap:var(--arcane-space-3)}
.memory-detail p{line-height:1.6;white-space:pre-wrap}
.page-status{color:var(--arcane-muted);min-height:1.5rem;margin:0}
.page-status[data-error]{color:var(--arcane-danger)}

.profile-grid{align-items:start;display:grid;gap:var(--arcane-space-5);grid-template-columns:repeat(2,minmax(0,1fr))}
.profile-form,.provider-section{display:grid;gap:var(--arcane-space-4)}
.field{display:grid;gap:.45rem;font-weight:750}
.field input,.field textarea,.field select{background:var(--arcane-surface);border:1px solid var(--arcane-border);border-radius:var(--arcane-radius-small);color:var(--text-color);font:inherit;padding:.75rem;width:100%;box-sizing:border-box}
.field textarea{line-height:1.5;resize:vertical}
.field small,.check-field small{color:var(--arcane-muted);font-weight:400;line-height:1.45}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{border-color:var(--arcane-focus);outline:3px solid color-mix(in srgb,var(--arcane-focus) 28%,transparent);outline-offset:1px}
.check-field{align-items:start;display:grid;gap:.7rem;grid-template-columns:auto minmax(0,1fr)}
.check-field input{height:1.2rem;margin-top:.15rem;width:1.2rem}
.check-field span{display:grid;gap:.3rem}
.form-status{color:var(--arcane-muted);margin:0;min-height:1.5rem}
.billing-note{background:var(--arcane-surface-muted);border:1px solid var(--arcane-border);border-radius:var(--arcane-radius-medium);display:grid;gap:.65rem;padding:var(--arcane-space-4)}
.billing-note h3,.billing-note p{margin:0}
.billing-note p{color:var(--arcane-muted);line-height:1.5}

.safety-dialog{background:var(--arcane-surface-raised);border:2px solid var(--arcane-danger);border-radius:var(--arcane-radius-large);box-shadow:var(--arcane-shadow-large);color:var(--text-color);max-width:min(36rem,calc(100vw - 2rem));padding:var(--arcane-space-6)}
.safety-dialog::backdrop{background:color-mix(in srgb,var(--shadow-color) 82%,transparent)}
.safety-dialog h2{font-size:1.8rem;margin:.2rem 0 .8rem}
.safety-dialog p{line-height:1.6}
.dialog-close{background:transparent;border:0;color:inherit;cursor:pointer;float:right;font-size:2rem;line-height:1;padding:.2rem}
.dialog-close:focus-visible{outline:3px solid var(--arcane-focus)}

@media (max-width:76rem){.companion-workspace,.reflection-workspace{grid-template-columns:minmax(15rem,.7fr) minmax(24rem,1.3fr)}.companion-workspace>.history-column:last-child,.reflection-workspace>.response-column{grid-column:1/-1}.profile-grid{grid-template-columns:1fr}}
@media (max-width:64rem){.companion-grid{grid-template-columns:1fr}.assistant-panel{height:38rem}.companion-workspace,.reflection-workspace{grid-template-columns:1fr}.companion-workspace>.history-column:last-child,.reflection-workspace>.response-column{grid-column:auto}.history-column html-import{max-height:24rem}.page-heading{align-items:start;flex-direction:column}}
@media (max-width:44rem){.warrior-shell{padding:1rem}.hero{grid-template-columns:1fr;padding:1.4rem}.hero-mark{justify-self:center;max-width:11rem}.hero h1{text-align:center}.hero-copy>.eyebrow,.hero-lead,.powered-by{text-align:center}.hero-actions{justify-content:center}.urgent-support{grid-template-columns:1fr}.urgent-actions{justify-content:flex-start}.section-heading{align-items:start;flex-direction:column}.selection-status{text-align:start}.companion-grid{grid-template-columns:minmax(0,1fr)}.assistant-panel,.assistant-region .assistant-panel{height:34rem}.reflection-heading{align-items:flex-start;flex-direction:column}.reflection-compose #reflectionEditor{height:32rem}.app-footer{align-items:flex-start;flex-direction:column}.safety-dialog{padding:var(--arcane-space-4)}}

@media (max-width:48em){body.warrior-home-page{grid-template-columns:4.5rem minmax(0,1fr)}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.program-card,.feature-link{transition:none}.program-card:hover,.feature-link:hover{transform:none}}
