:root{--color-primary: #003a92;--color-primary-dark: #18154a;--color-primary-light: #dce7f7;--color-secondary: #0f6e6d;--color-accent: #23bdc1;--color-bg: #f4f5f7;--color-surface: #ffffff;--color-border: #e2e5ea;--color-text: #1a1a2e;--color-text-muted: #6b7280;--color-text-subtle: #9ca3af;--color-error-bg: #fef3f0;--color-error-border: #f9b8a5;--color-error-text: #b83315;--color-success: #85a51e;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-card: 0 1px 4px rgba(0, 0, 0, .07), 0 4px 20px rgba(0, 0, 0, .06);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .1), 0 8px 32px rgba(0, 0, 0, .08);--transition: .15s ease;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}ul{list-style:none}.shell{display:flex;flex-direction:column;min-height:100vh}.shell__header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.shell__header-inner{max-width:760px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.shell__brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.shell__brand-mark{display:block;height:36px;width:auto}.shell__brand-name{font-weight:700;font-size:1rem;color:var(--color-text);letter-spacing:-.3px}.shell__main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:40px 24px 60px}.shell__card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);width:100%;max-width:680px;padding:40px 44px}.shell__footer{text-align:center;padding:20px 24px;font-size:.8125rem;color:var(--color-text-subtle);border-top:1px solid var(--color-border)}.progress-wrapper{flex:1;display:flex;align-items:center;gap:12px;min-width:180px}.progress-track{flex:1;height:5px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .4s ease}.progress-label{font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.step{display:flex;flex-direction:column;gap:28px}.step__header{display:flex;flex-direction:column;gap:8px}.step__eyebrow{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary)}.step__title{font-size:1.625rem;font-weight:700;color:var(--color-text);line-height:1.25;letter-spacing:-.4px}.step__subtitle{font-size:1rem;color:var(--color-text-muted);line-height:1.55}.step__form{display:flex;flex-direction:column;gap:24px}.step__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.step__actions--end{justify-content:flex-end}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:.9375rem;font-weight:600;color:var(--color-text)}.form-label--optional{font-weight:400;font-size:.875rem;color:var(--color-text-muted)}.form-select,.form-textarea{width:100%;padding:11px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition),box-shadow var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px;cursor:pointer}.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #003a921f}.form-textarea{resize:vertical;min-height:120px;line-height:1.6}.form-hint{font-size:.8125rem;color:var(--color-text-subtle)}.form-hint--warn{color:#d97706}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;line-height:1;transition:background var(--transition),color var(--transition),box-shadow var(--transition),opacity var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:not(:disabled):hover{background:var(--color-primary-dark);box-shadow:0 2px 8px #003a924d}.btn--secondary{background:var(--color-primary-light);color:var(--color-primary);border:1.5px solid transparent}.btn--secondary:not(:disabled):hover{border-color:var(--color-primary)}.btn--ghost{background:transparent;color:var(--color-text-muted)}.btn--ghost:not(:disabled):hover{color:var(--color-text);background:var(--color-bg)}.btn--lg{padding:13px 28px;font-size:1rem}.btn-group{display:flex;align-items:center;gap:10px}.error-banner{display:flex;align-items:flex-start;gap:12px;background:var(--color-error-bg);border:1.5px solid var(--color-error-border);border-radius:var(--radius-md);padding:16px}.error-banner__icon{font-size:1.125rem;flex-shrink:0;margin-top:1px}.error-banner__message{flex:1;font-size:.9375rem;color:var(--color-error-text);line-height:1.5}.error-banner__actions{display:flex;gap:8px;flex-shrink:0}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 0}.spinner{width:40px;height:40px;border:3.5px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-label{font-size:.9375rem;color:var(--color-text-muted);font-weight:500}.job-grid{display:flex;flex-wrap:wrap;gap:10px}.job-chip{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);font-size:.9375rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition),box-shadow var(--transition)}.job-chip:not(.job-chip--disabled):hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 0 3px #003a9214}.job-chip--selected{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.job-chip--disabled{opacity:.4;cursor:not-allowed}.job-chip__check{font-size:.8125rem;font-weight:700}.job-chip--rich{flex-direction:column;align-items:flex-start;gap:3px}.job-chip__title{font-size:.9375rem;font-weight:500;line-height:1.3}.job-chip__meta{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.job-chip--selected .job-chip__meta{color:var(--color-primary);opacity:.8}.empty-state__message{margin-bottom:1.5rem}.selection-hint{font-size:.875rem;color:var(--color-text-muted);font-weight:500}.results-list{display:flex;flex-direction:column;gap:16px}.program-card{display:grid;grid-template-columns:44px 1fr auto;align-items:start;gap:16px;padding:20px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.program-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.program-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.program-card__rank{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--color-primary-light);color:var(--color-primary);font-size:.9375rem;font-weight:700;border-radius:var(--radius-sm);flex-shrink:0}.program-card__body{display:flex;flex-direction:column;gap:8px;min-width:0}.program-card__name{font-size:1.0625rem;font-weight:700;color:var(--color-text);line-height:1.3;letter-spacing:-.2px}.program-card__degree{font-size:.8rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .35rem}.program-card__summary{font-size:.9rem;color:var(--color-text-muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.program-card__jobs{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.program-card__jobs-label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0}.program-card__jobs-list{display:flex;flex-wrap:wrap;gap:4px}.program-card__jobs-list li{font-size:.8125rem;background:var(--color-bg);color:var(--color-text-muted);padding:2px 8px;border-radius:var(--radius-full)}.program-card__jobs-list li:after{content:""}.program-card__score{display:flex;align-items:center;gap:10px;margin-top:4px}.score-track{flex:1;max-width:160px;height:5px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.score-fill{height:100%;background:linear-gradient(90deg,var(--color-primary-light),var(--color-primary));border-radius:var(--radius-full);transition:width .6s ease}.score-pct{font-size:.8125rem;font-weight:600;color:var(--color-primary);white-space:nowrap}.program-card__actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;align-self:center}.results-footer{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:8px;border-top:1px solid var(--color-border);text-align:center}.results-footer__copy{font-size:.9375rem;color:var(--color-text-muted)}@media (max-width: 640px){.shell__card{padding:28px 20px;border-radius:var(--radius-md);box-shadow:none;border:1px solid var(--color-border)}.shell__main{padding:20px 12px 48px}.step__title{font-size:1.375rem}.program-card{grid-template-columns:36px 1fr;grid-template-rows:auto auto}.program-card__actions{grid-column:1 / -1;flex-direction:row}.btn--lg{width:100%}.step__actions,.btn-group{flex-direction:column-reverse;align-items:stretch}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
