:root{color:#162033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-text-strong:#162033;--color-text-muted:#5d6b80;--color-accent:#2c65a2;--color-accent-soft:#8aacd1;--color-border:#d8e0ea;--color-border-strong:#c4d0de;--color-surface:#fffffff0;--color-input:#f9fbfd;background:radial-gradient(circle at top,#dce7f5e6,#0000 35%),#f4f7fb;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0}body,button,input,textarea,select{font:inherit}button,textarea{-webkit-tap-highlight-color:transparent}#root{min-height:100vh}h1,h2,p{margin-top:0}h1{letter-spacing:-.04em;color:var(--color-text-strong);margin-bottom:16px;font-size:clamp(2rem,6vw,3.5rem);line-height:1.05}h2{color:var(--color-text-strong);margin-bottom:8px;font-size:1.05rem;line-height:1.3}.app-shell{min-height:100vh;padding:24px 16px 40px}.login-card,.landing-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;width:min(100%,760px);margin:0 auto;overflow:hidden;box-shadow:0 20px 50px #1b2b4214}.login-card{display:grid}.login-card-loading{text-align:center;padding:32px 24px}.login-copy,.landing-copy{background:linear-gradient(180deg, #eff4fbf2, #fff0), var(--color-surface);padding:28px 20px 20px}.login-form{border-top:1px solid var(--color-border);gap:14px;padding:20px;display:grid}.login-label{color:var(--color-text-strong);font-size:.92rem;font-weight:700}.login-input{border:1px solid var(--color-border-strong);background:var(--color-input);width:100%;min-height:52px;color:var(--color-text-strong);border-radius:16px;padding:0 16px;transition:border-color .16s,box-shadow .16s,background-color .16s}.login-input::placeholder{color:#7c899d}.login-input:hover{border-color:var(--color-accent-soft)}.login-input:focus{border-color:var(--color-accent);background:#fff;outline:none;box-shadow:0 0 0 4px #2c65a224}.session-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.session-banner-text{color:var(--color-text-muted);margin:0;font-size:.95rem}.session-banner-button{border:1px solid var(--color-border-strong);color:var(--color-text-strong);cursor:pointer;background:#fff;border-radius:999px;padding:8px 14px;font-size:.9rem;font-weight:700;transition:border-color .16s,background-color .16s,color .16s}.session-banner-button:hover{border-color:var(--color-accent);background:#f5f8fc}.session-banner-button:disabled{cursor:not-allowed;border-color:var(--color-border);color:#7c899d;background:#f4f7fb}.session-banner-button:focus-visible{outline-offset:3px;outline:3px solid #2c65a22e}.brand-title{color:var(--color-accent);letter-spacing:-.06em;margin-bottom:24px;font-size:clamp(2.8rem,12vw,5rem);line-height:.95}.lead{text-align:center;color:var(--color-text-muted);margin-bottom:0;font-size:1.06rem;line-height:1.75}.transcript-form{border-top:1px solid var(--color-border);gap:14px;padding:20px;display:grid}.transcript-tools{justify-items:center;gap:10px;display:grid}.dictation-button{width:112px;height:112px;color:var(--color-text-strong);cursor:pointer;background:radial-gradient(circle at 30% 30%,#fff 0%,#eef4fb 60%,#dbe8f6 100%);border:1px solid #2c65a224;border-radius:999px;justify-content:center;align-items:center;transition:border-color .16s,background-color .16s,color .16s,transform .16s,box-shadow .16s;display:inline-flex;box-shadow:inset 0 1px #fffc,0 18px 32px #2c65a22e}.dictation-button:hover{border-color:var(--color-accent);background:radial-gradient(circle at 30% 30%,#fff 0%,#e8f1fb 60%,#d0e0f3 100%);transform:translateY(-1px)}.dictation-button:focus-visible{outline-offset:3px;outline:3px solid #2c65a22e}.dictation-button:disabled{cursor:not-allowed;border-color:var(--color-border);color:#7c899d;box-shadow:none;background:#f4f7fb;transform:none}.dictation-button-active{color:#9d2f33;background:radial-gradient(circle at 30% 30%,#fff7f7 0%,#ffe4e6 58%,#ffcfd4 100%);border-color:#a62f38;box-shadow:inset 0 1px #ffffffb3,0 18px 32px #a62f382e}.dictation-button-active:hover{background:radial-gradient(circle at 30% 30%,#fff7f7 0%,#ffd9de 58%,#ffc3ca 100%);border-color:#a62f38}.dictation-button-icon{justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}.dictation-icon{width:100%;height:100%}.dictation-status{color:var(--color-text-muted);text-align:center;margin:10px 0 14px;font-size:.95rem;line-height:1.5}.transcript-input{resize:vertical;border:1px solid var(--color-border-strong);background:var(--color-input);width:100%;min-height:220px;color:var(--color-text-strong);border-radius:18px;padding:16px;line-height:1.6;transition:border-color .16s,box-shadow .16s,background-color .16s}.transcript-input::placeholder{color:#7c899d}.transcript-input:hover{border-color:var(--color-accent-soft)}.transcript-input:focus{border-color:var(--color-accent);background:#fff;outline:none;box-shadow:0 0 0 4px #2c65a224}.submit-button{background:var(--color-accent);color:#fff;cursor:pointer;border:0;border-radius:16px;width:100%;min-height:52px;font-size:1rem;font-weight:700;transition:transform .16s,box-shadow .16s,background-color .16s;box-shadow:0 14px 28px #2c65a238}.submit-button:disabled{cursor:not-allowed;box-shadow:none;background:#7d95b2;transform:none}.submit-button:hover{background:#234f80}.submit-button:disabled:hover{background:#7d95b2}.submit-button:focus-visible{outline-offset:3px;outline:3px solid #2c65a238}.submit-button:active{transform:translateY(1px)}.secondary-button{border:1px solid var(--color-border-strong);width:100%;min-height:48px;color:var(--color-text-strong);cursor:pointer;background:#fff;border-radius:16px;font-size:.98rem;font-weight:700;transition:transform .16s,border-color .16s,background-color .16s,box-shadow .16s}.secondary-button:hover{border-color:var(--color-accent);background:#f5f8fc;box-shadow:0 10px 22px #2c65a21f}.secondary-button:disabled{cursor:not-allowed;border-color:var(--color-border);color:#7c899d;box-shadow:none;background:#f4f7fb;transform:none}.secondary-button:focus-visible{outline-offset:3px;outline:3px solid #2c65a22e}.helper-message,.feedback-message{border-radius:14px;margin:0;padding:12px 14px;font-size:.95rem}.helper-message{color:var(--color-text-muted);background:#eff4fa}.feedback-message{color:var(--color-text-strong);background:#eef5fb}.feedback-message-error{color:#9d2f33;background:#fff1f1}.feedback-message-success{color:#236645;background:#edf8f1}.progress-card,.results-heading-card,.selection-summary-card,.modifiers-card,.recap-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;box-shadow:0 14px 32px #1b2b420f}.progress-card{background:linear-gradient(180deg, #eff4fbb3, #fff0), var(--color-surface);padding:14px 16px}.progress-header{align-items:center;gap:10px;display:flex}.progress-dot{background:var(--color-accent);border-radius:999px;width:10px;height:10px;animation:1.6s ease-out infinite pulse;box-shadow:0 0 #2c65a259}.progress-title,.progress-status{margin:0}.progress-title{color:var(--color-text-strong);font-weight:700}.progress-status{color:var(--color-text-muted);margin-top:8px}.results-section{width:min(100%,760px);margin:56px auto 0}.results-section-with-feedback{padding-bottom:132px}.results-heading-card{margin-bottom:16px;padding:20px}.results-heading{text-align:center;margin-bottom:0}.candidate-label,.candidate-count{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.candidate-label{color:var(--color-accent)}.results-heading h2,.candidate-card-header h3{margin-top:10px;margin-bottom:8px}.results-heading h2{font-size:1.45rem}.results-intro{color:var(--color-text-muted);font-size:1.04rem;line-height:1.75}.candidate-groups{gap:16px;display:grid}.candidate-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:22px;overflow:hidden;box-shadow:0 18px 40px #1b2b420f}.candidate-card-header{border-bottom:1px solid var(--color-border);background:linear-gradient(#eff4fbcc,#fff0);padding:20px}.candidate-card-header h3{color:var(--color-text-strong);font-size:1.15rem;line-height:1.35}.candidate-count{color:var(--color-text-muted)}.candidate-table-wrap{overflow-x:auto}.candidate-card-actions{gap:12px;padding:0 16px 16px;display:grid}.candidate-helper-message{font-size:.92rem}.candidate-table{border-collapse:collapse;width:100%}.candidate-table th,.candidate-table td{text-align:left;vertical-align:top;padding:14px 16px}.candidate-table th{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:700}.candidate-table tbody tr+tr td{border-top:1px solid var(--color-border)}.candidate-row{cursor:pointer;transition:background-color .16s,box-shadow .16s}.candidate-row:hover{background:#f5f8fc}.candidate-row-selected{background:#e7f5ec}.candidate-row-selected:hover{background:#ddefe4}.candidate-row-selected .code-cell,.candidate-row-selected td{color:#205d3d}.code-cell{color:var(--color-text-strong);white-space:nowrap;font-weight:700}.candidate-name-cell{gap:8px;display:grid}.notes-list{color:var(--color-text-muted);margin:0;padding-left:18px}.notes-list li+li{margin-top:6px}.muted-text{color:var(--color-text-muted)}.selection-summary-card{margin-top:20px;padding:20px}.validation-result-card{text-align:center;margin-top:16px}.validation-result-card .feedback-message{font-size:1.04rem;line-height:1.75}.validation-result-card .incompatibility-list{text-align:center;list-style-position:inside}.selection-summary-header{flex-direction:column;gap:8px;display:flex}.selection-summary-header h3{color:var(--color-text-strong);margin:10px 0 0}.selection-count,.selection-summary-text,.validation-title{margin:0}.selection-count,.selection-summary-text{color:var(--color-text-muted)}.selection-summary-text{margin-top:16px;line-height:1.7}.selected-actes-list,.incompatibility-list{margin:24px 0 0;padding-left:20px}.selected-actes-list li,.incompatibility-list li{color:var(--color-text-strong)}.selected-actes-list li+li,.incompatibility-list li+li{margin-top:10px}.selected-actes-list li{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:4px 10px;display:grid}.validation-title{font-weight:700}.selection-summary-card .submit-button{margin-top:24px}.modifiers-card,.recap-card{margin-top:16px;padding:20px}.modifiers-header h3,.recap-header h3{color:var(--color-text-strong);margin:10px 0 0}.modifier-grid{flex-direction:column;gap:12px;margin-top:24px;display:flex}.modifier-chip{border:1px solid var(--color-border-strong);width:100%;color:var(--color-text-strong);text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-word;cursor:pointer;background:#fff;border-radius:16px;padding:12px 16px;font-weight:600;transition:border-color .16s,background-color .16s,color .16s,transform .16s}.modifier-chip:hover{border-color:var(--color-accent);background:#f5f8fc}.modifier-chip-selected{color:#205d3d;background:#e7f5ec;border-color:#2f7a52}.modifier-chip-selected:hover{background:#ddefe4}.modifiers-card .submit-button,.modifiers-card .feedback-message,.modifiers-card .progress-card{margin-top:24px}.recap-table-wrap{margin-top:24px;overflow-x:auto}.recap-table{border-collapse:collapse;width:100%}.recap-table th,.recap-table td{text-align:left;vertical-align:top;padding:14px 16px}.recap-table th{border-bottom:1px solid var(--color-border);color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:700}.recap-table tbody tr+tr td{border-top:1px solid var(--color-border)}.acte-title{flex-wrap:wrap;align-items:flex-start;gap:10px;margin:0 0 14px;display:flex}.acte-details-body{color:var(--color-text-strong)}.acte-details-body p{margin:0 0 10px}.details-list,.details-sublist{margin:8px 0 0;padding-left:20px}.details-list li+li,.details-sublist li+li,.details-sublist{margin-top:8px}.modifier-badges{flex-wrap:wrap;gap:8px;display:flex}.modifier-badges-inline{margin:0 0 14px}.modifier-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.modifier-summary-label{margin:0}.modifier-badge{color:#205d3d;background:#e7f5ec;border-radius:999px;align-items:center;padding:8px 12px;font-weight:600;display:inline-flex}.feedback-panel{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border:1px solid #2c65a22e;border-radius:20px;justify-content:center;width:min(100% - 32px,760px);margin:0 auto;padding:16px 18px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 18px 42px #1b2b422e,inset 0 1px #ffffffb3}.feedback-panel-heading{text-align:center;justify-items:center;gap:6px;width:100%;display:grid}.feedback-panel-eyebrow,.feedback-panel-title{margin:0}.feedback-panel-eyebrow{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.feedback-panel-title{color:var(--color-text-strong);font-size:1rem;font-weight:700;line-height:1.4}.feedback-panel-inline{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:inline-flex}.feedback-panel-actions{justify-content:center;align-items:center;gap:10px;display:flex}.feedback-form{text-align:left;gap:10px;width:min(100%,560px);margin-top:8px;display:grid}.feedback-form-textarea{border:1px solid var(--color-border-strong);width:100%;min-height:112px;color:var(--color-text-strong);font:inherit;resize:vertical;background:#fffffff5;border-radius:16px;padding:14px 16px;line-height:1.6;transition:border-color .16s,box-shadow .16s,background-color .16s}.feedback-form-textarea::placeholder{color:#7c899d}.feedback-form-textarea:hover{border-color:var(--color-accent-soft)}.feedback-form-textarea:focus{border-color:var(--color-accent);background:#fff;outline:none;box-shadow:0 0 0 4px #2c65a224}.feedback-form-actions{justify-content:flex-end;gap:10px;display:flex}.feedback-form-skip-button{width:auto;min-width:140px;padding-left:18px;padding-right:18px}.feedback-form-button{width:auto;min-width:180px;padding-left:18px;padding-right:18px}.feedback-icon-button{border:1px solid var(--color-border-strong);width:52px;height:52px;color:var(--color-text-strong);cursor:pointer;background:#fff;border-radius:16px;justify-content:center;align-items:center;transition:transform .16s,border-color .16s,background-color .16s,box-shadow .16s,color .16s;display:inline-flex}.feedback-icon-button:hover{border-color:var(--color-accent);background:#f5f8fc;transform:translateY(-1px);box-shadow:0 10px 22px #2c65a224}.feedback-icon-button-positive,.feedback-icon-button-positive:hover{color:#205d3d;background:#e7f5ec;border-color:#2f7a52;box-shadow:0 10px 22px #2f7a5229}.feedback-icon-button-negative,.feedback-icon-button-negative:hover{color:#9d2f33;background:#fff1f1;border-color:#a62f38;box-shadow:0 10px 22px #a62f3824}.feedback-icon-button:disabled{cursor:not-allowed;border-color:var(--color-border);color:#7c899d;box-shadow:none;background:#f4f7fb;transform:none}.feedback-icon-button:focus-visible{outline-offset:3px;outline:3px solid #2c65a22e}.feedback-icon{width:24px;height:24px}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #2c65a259}70%{transform:scale(1.05);box-shadow:0 0 0 10px #2c65a200}to{transform:scale(1);box-shadow:0 0 #2c65a200}}@media (width>=720px){.app-shell{padding:40px 24px 56px}.landing-copy,.login-copy,.login-form,.transcript-form{padding-left:32px;padding-right:32px}.login-copy,.landing-copy{padding-top:36px;padding-bottom:24px}.login-form,.transcript-form{padding-top:24px;padding-bottom:32px}.results-heading-card{padding:24px 28px}.results-section-with-feedback{padding-bottom:144px}.selection-summary-card,.modifiers-card,.recap-card{padding:24px 28px}.selection-summary-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.candidate-card-header{padding:24px 28px}.candidate-card-actions{padding-bottom:24px;padding-left:28px;padding-right:28px}.candidate-table th,.candidate-table td,.recap-table th,.recap-table td{padding-left:28px;padding-right:28px}.feedback-panel{align-items:center;width:auto;padding:18px 22px;bottom:24px;left:max(24px,50vw - 380px);right:max(24px,50vw - 380px)}}@media (width<=479px){.results-section-with-feedback{padding-bottom:168px}.feedback-panel{justify-content:center;gap:12px}.feedback-panel-inline{gap:10px}.feedback-form-button{width:100%}.feedback-form-actions{flex-direction:column}.feedback-form-skip-button{width:100%}}
