:root{--violet: #6B5FD8;--violet-light: #AFA9EC;--violet-pale: #F0EEFB;--violet-deep: #1F1B4D;--violet-mid: #4B43A3;--red: #D4423F;--red-pale: #FCEBEB;--amber: #B86E0A;--amber-bg: #EF9F27;--amber-pale: #FDF1DC;--teal: #157A5A;--teal-bg: #1D9E75;--teal-pale: #E1F5EE;--bg: #FAFAFB;--bg-soft: #F4F4F7;--paper: #FFFFFF;--text: #1F1B4D;--text-soft: #4A4670;--text-muted: #7B7793;--border: #E2E0EC;--border-strong: #C8C5DA;--pl-red: #E63946;--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, serif;--font-mono: "Roboto Mono", ui-monospace, SF Mono, Menlo, monospace;--t-hero: clamp(24px, 4vw, 32px);--t-h1: clamp(22px, 3vw, 26px);--t-h2: 18px;--t-h3: 16px;--t-body: 15px;--t-small: 13px;--t-mini: 12px;--max-w: 1140px;--gutter: 32px;--gutter-sm: 16px;--radius-sm: 4px;--radius: 6px;--radius-lg: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(31, 27, 77, .05);--shadow: 0 2px 6px rgba(31, 27, 77, .07);--shadow-lg: 0 8px 24px rgba(31, 27, 77, .1);--focus-ring: 0 0 0 3px rgba(107, 95, 216, .35);--focus-color: var(--violet);--motion-fast: .12s ease;--motion-base: .18s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--t-body);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);font-weight:600;line-height:1.2;letter-spacing:-.01em}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3)}p{margin:0}ul,ol{margin:0;padding:0}a{color:var(--violet);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--motion-fast)}a:hover{color:var(--violet-mid)}input::placeholder,textarea::placeholder{color:var(--text-muted)}*:focus{outline:none}*:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}.skip-link{position:absolute;top:-100px;left:16px;background:var(--violet);color:#fff;padding:10px 16px;border-radius:var(--radius);font-weight:700;z-index:9999;transition:top var(--motion-fast)}.skip-link:focus,.skip-link:focus-visible{top:16px}.text-muted{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--paper);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);font-family:var(--font-body);font-weight:700;font-size:var(--t-small);padding:9px 16px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);min-height:36px}.btn:hover{background:var(--bg-soft)}.btn:active{background:var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--violet{background:var(--violet);color:#fff;border-color:var(--violet)}.btn--violet:hover{background:var(--violet-mid);border-color:var(--violet-mid)}.btn--violet:active{background:var(--violet-deep);border-color:var(--violet-deep)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-soft)}.btn--ghost:hover{background:var(--bg-soft);color:var(--text)}.btn--lg{padding:12px 22px;font-size:var(--t-body);min-height:44px}.btn--sm{padding:6px 12px;font-size:var(--t-mini);min-height:30px}.btn--pill{border-radius:var(--radius-pill)}.btn--full{width:100%}.btn--outline-violet{background:transparent;color:var(--violet);border-color:var(--violet)}.btn--outline-violet:hover{background:var(--violet-pale)}.input{width:100%;font-family:var(--font-body);font-size:var(--t-body);padding:10px 12px;background:var(--paper);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);min-height:40px}.input:focus,.input:focus-visible{outline:none;border-color:var(--violet);box-shadow:var(--focus-ring)}.input:disabled{background:var(--bg-soft);color:var(--text-muted);cursor:not-allowed}textarea.input{min-height:auto;resize:vertical}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field__label{font-size:var(--t-small);font-weight:600;color:var(--text-soft)}.field__hint{font-size:var(--t-mini);color:var(--text-muted)}.field__error{font-size:var(--t-mini);color:var(--red);font-weight:600}.badge{display:inline-flex;align-items:center;gap:6px;background:var(--violet-pale);color:var(--violet-mid);border-radius:var(--radius-pill);padding:3px 10px;font-size:var(--t-mini);font-weight:700;letter-spacing:.02em}.badge--teal{background:var(--teal-pale);color:var(--teal)}.badge--amber{background:var(--amber-pale);color:var(--amber)}.badge--red{background:var(--red-pale);color:var(--red)}.badge--neutral{background:var(--bg-soft);color:var(--text-soft)}.card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.card--hover:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.card--accent{border-top:3px solid var(--violet)}.card--accent-teal{border-top:3px solid var(--teal-bg)}.card--accent-amber{border-top:3px solid var(--amber-bg)}.card--accent-red{border-top:3px solid var(--red)}.card__title{font-family:var(--font-body);font-weight:700;font-size:var(--t-h3);color:var(--text);margin-bottom:8px}.card__desc{font-size:var(--t-small);color:var(--text-soft);line-height:1.6}.card__num{font-family:var(--font-display);font-size:36px;font-weight:600;color:var(--text);line-height:1}.card__num-label{font-size:var(--t-mini);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}.roux-logo{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.roux-logo__icon{width:24px;height:24px;border-radius:50%;display:block;object-fit:contain}.roux-logo__text{font-size:16px;font-weight:700;font-family:var(--font-display);color:var(--text);letter-spacing:-.01em}.page-head{margin-bottom:24px}.page-head__eyebrow{font-size:var(--t-mini);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.page-head__title{font-family:var(--font-display);font-size:var(--t-hero);font-weight:600;color:var(--text);line-height:1.15;margin-bottom:6px;letter-spacing:-.01em}.page-head__sub{font-size:var(--t-body);color:var(--text-soft);max-width:60ch}.roux-nav{padding:10px var(--gutter);background:var(--paper);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.roux-nav__inner{max-width:var(--max-w);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px}.roux-nav__links{display:flex;gap:4px;align-items:center}.roux-nav__links a:not(.btn){font-size:var(--t-small);font-weight:600;color:var(--text-soft);text-decoration:none;padding:6px 10px;border-radius:var(--radius);transition:background var(--motion-fast),color var(--motion-fast)}.roux-nav__links a:not(.btn):hover{color:var(--text);background:var(--bg-soft)}.roux-nav__links a.router-link-active:not(.btn){color:var(--violet);background:var(--violet-pale)}.roux-footer{padding:20px var(--gutter);max-width:var(--max-w);margin:32px auto 0;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--t-mini);color:var(--text-muted)}.roux-footer strong{color:var(--text-soft)}.roux-footer a{color:var(--text-soft);text-decoration:none}.roux-footer a:hover{color:var(--violet)}.stepper{display:flex;gap:24px;margin:0 0 28px;padding:0;list-style:none;flex-wrap:wrap}.stepper__step{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:var(--t-small);font-weight:600}.stepper__num{width:24px;height:24px;border-radius:50%;background:var(--bg-soft);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--t-mini);color:var(--text-muted);flex-shrink:0}.stepper__step.is-current .stepper__num{background:var(--violet);color:#fff;border-color:var(--violet)}.stepper__step.is-current{color:var(--text)}.stepper__step.is-done .stepper__num{background:var(--teal);color:#fff;border-color:var(--teal)}.stepper__step.is-done{color:var(--text-soft)}.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch__slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-strong);border-radius:var(--radius-pill);transition:background var(--motion-base);cursor:pointer}.switch__slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--motion-base)}.switch input:checked+.switch__slider{background:var(--violet)}.switch input:checked+.switch__slider:before{transform:translate(18px)}.switch input:focus-visible+.switch__slider{box-shadow:var(--focus-ring)}.data-table{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.data-table table{width:100%;border-collapse:collapse;font-size:var(--t-small)}.data-table thead{background:var(--bg-soft)}.data-table th{text-align:left;padding:10px 14px;font-size:var(--t-mini);font-weight:700;color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg)}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.alert{padding:10px 14px;border-radius:var(--radius);font-size:var(--t-small);font-weight:600;margin-bottom:12px}.alert--info{background:var(--violet-pale);color:var(--violet-mid);border-left:3px solid var(--violet)}.alert--success{background:var(--teal-pale);color:var(--teal);border-left:3px solid var(--teal)}.alert--warn{background:var(--amber-pale);color:var(--amber);border-left:3px solid var(--amber-bg)}.alert--error{background:var(--red-pale);color:var(--red);border-left:3px solid var(--red)}@media(max-width:768px){:root{--gutter: 16px}.roux-nav__inner{flex-wrap:wrap;gap:8px}.roux-nav__links{order:3;width:100%;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.roux-nav__links::-webkit-scrollbar{display:none}.roux-nav__links a:not(.btn){white-space:nowrap}}
