.brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-family:var(--ff-display);font-weight:700;line-height:1}.brand,.brand-light{color:var(--marine)}.brand-dark{color:var(--blanc)}.brand-mark{width:32px;height:32px;border-radius:8px;background:var(--marine);color:var(--or);display:inline-flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-weight:700;font-size:.85rem;flex-shrink:0}.brand-dark .brand-mark{background:var(--or);color:var(--noir)}.brand-text{font-size:1.1rem;letter-spacing:-.01em}.brand-tagline{display:block;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--or-fonce);font-weight:500;margin-top:2px}.brand-stacked{flex-direction:column;align-items:flex-start;gap:.2rem}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--ff-mono);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .65rem;border-radius:var(--radius-pill);border:1px solid;white-space:nowrap;line-height:1.4}.badge-md{font-size:.72rem;padding:.25rem .75rem}.badge-gold{background:rgba(201,168,76,.15);color:var(--or-fonce);border-color:rgba(201,168,76,.4)}.badge-green{background:var(--success-bg);color:var(--success);border-color:rgba(22,101,52,.3)}.badge-red{background:var(--danger-bg);color:var(--danger);border-color:rgba(153,27,27,.3)}.badge-blue{background:var(--info-bg);color:var(--info);border-color:rgba(30,64,175,.3)}.badge-gray{background:var(--gris-clair);color:var(--gris);border-color:var(--marine-12)}.badge-marine{background:var(--marine);color:var(--blanc);border-color:var(--marine)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--ff-body);font-weight:500;line-height:1;border:1.5px solid transparent;border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),transform var(--motion-fast);text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:focus-visible{outline:2px solid var(--or);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{padding:var(--space-3) var(--space-4)}.btn-md,.btn-sm{font-size:var(--fs-sm);min-height:var(--touch-min)}.btn-md{padding:var(--space-3) var(--space-5)}.btn-lg{font-size:var(--fs-base);padding:var(--space-4) var(--space-6);min-height:52px}@media (min-width:768px){.btn-sm{padding:var(--space-2) var(--space-4);min-height:36px}}.btn-primary{background:var(--or);color:var(--noir);border-color:var(--or)}.btn-primary:hover:not(:disabled){background:var(--or-clair);border-color:var(--or-clair)}.btn-secondary{background:transparent;color:var(--marine);border-color:var(--marine-25)}.btn-secondary:hover:not(:disabled){border-color:var(--marine);background:var(--marine-09)}.btn-ghost{background:transparent;color:var(--marine)}.btn-ghost:hover:not(:disabled){background:var(--marine-09)}.btn-danger{background:var(--rouge);color:#fff;border-color:var(--rouge)}.btn-danger:hover:not(:disabled){background:var(--rouge-fonce);border-color:var(--rouge-fonce)}.btn-icon{padding:var(--space-2);min-width:var(--touch-min);min-height:var(--touch-min);background:transparent;color:var(--marine);border-radius:var(--radius-md)}.btn-icon:hover:not(:disabled){background:var(--marine-09)}.btn-full{width:100%}.btn-loading{position:relative;pointer-events:none;color:transparent!important}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:btn-spin .7s linear infinite;color:var(--noir)}.btn-primary.btn-loading:after{color:var(--noir)}.btn-ghost.btn-loading:after,.btn-secondary.btn-loading:after{color:var(--marine)}.btn-danger.btn-loading:after{color:#fff}@keyframes btn-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.btn-loading:after{animation:none}}.card{background:var(--bg-surface);border:1.5px solid var(--marine-09);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:box-shadow var(--motion-base),transform var(--motion-base),border-color var(--motion-fast)}@media (min-width:480px){.card{padding:var(--space-5);border-radius:var(--radius-lg)}}.card-flat{box-shadow:none}.card-feature,.card-md{box-shadow:var(--shadow-md)}.card-feature{border-radius:var(--radius-lg);padding:var(--space-5);border-color:var(--marine-12)}@media (min-width:480px){.card-feature{padding:var(--space-6);border-radius:var(--radius-xl)}}.card-tone-marine{background:var(--marine);border-color:var(--marine)}.card-tone-marine,.card-tone-marine .card-title{color:var(--blanc)}.card-tone-marine .card-body{color:hsla(38,33%,95%,.85)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-md);border-color:var(--marine-25);transform:translateY(-2px)}.card-interactive:focus-visible{outline:2px solid var(--or);outline-offset:2px}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.card-title{font-family:var(--ff-display);font-size:var(--fs-h3);color:var(--text-marine);font-weight:600;margin:0 0 var(--space-2);line-height:var(--lh-tight)}.card-body{color:var(--marine-65);font-size:var(--fs-sm)}.card-footer{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--marine-09);align-items:center;justify-content:space-between;flex-wrap:wrap}.banner,.card-footer{display:flex;gap:var(--space-3)}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1.5px solid;align-items:flex-start;font-size:var(--fs-sm);line-height:var(--lh-snug)}@media (min-width:480px){.banner{padding:var(--space-4) var(--space-5)}}.banner-title{display:block;font-weight:600;margin-bottom:.2rem}.banner-icon{flex-shrink:0;margin-top:2px}.banner-content{flex:1;min-width:0}.banner-close{flex-shrink:0;background:transparent;border:none;cursor:pointer;padding:4px;color:inherit;opacity:.6;transition:opacity var(--motion-fast)}.banner-close:hover{opacity:1}.banner-gold{background:rgba(201,168,76,.08);border-color:rgba(201,168,76,.4);color:var(--marine)}.banner-warning{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.banner-info{background:var(--info-bg);border-color:var(--info);color:var(--info)}.banner-danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.banner-success{background:var(--success-bg);border-color:var(--success);color:var(--success)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-marine);font-weight:500}.field-required{color:var(--rouge);margin-left:2px}.field-helper{color:var(--text-muted)}.field-error-msg,.field-helper{font-size:var(--fs-xs);margin-top:-2px}.field-error-msg{color:var(--danger)}.input{font-family:var(--ff-body);font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-surface);padding:var(--space-3) var(--space-4);border:1.5px solid var(--marine-12);border-radius:var(--radius-md);width:100%;min-height:var(--touch-min);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.input::-moz-placeholder{color:var(--marine-45)}.input::placeholder{color:var(--marine-45)}.input:hover:not(:disabled){border-color:var(--marine-25)}.input:focus{outline:none;border-color:var(--marine);box-shadow:0 0 0 3px rgba(201,168,76,.25)}.input:disabled{background:var(--gris-clair);cursor:not-allowed;opacity:.7}.input-error{border-color:var(--danger)!important}.input-error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent)}.input[as=textarea],textarea.input{min-height:96px;resize:vertical;line-height:var(--lh-base)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-7) var(--space-5);background:var(--bg-surface);border:1.5px solid var(--marine-09);border-radius:var(--radius-lg);gap:var(--space-4)}.empty-illu{width:96px;height:96px;flex-shrink:0}.empty-title{font-family:var(--ff-display);font-size:var(--fs-h3);color:var(--text-marine);font-weight:600;margin:0;line-height:var(--lh-tight)}.empty-desc{color:var(--marine-65);font-size:var(--fs-sm);max-width:42ch;margin:0}.empty-actions{display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:280px;margin-top:var(--space-2)}@media (min-width:480px){.empty-illu{width:120px;height:120px}}@media (min-width:768px){.empty-state{padding:var(--space-8) var(--space-6)}.empty-illu{width:128px;height:128px}.empty-actions{flex-direction:row;justify-content:center;max-width:none}}.sp-overlay{position:fixed;inset:0;background:hsla(0,0%,5%,.5);z-index:var(--z-overlay);opacity:0;animation:sp-fade var(--motion-base) forwards}@keyframes sp-fade{to{opacity:1}}.sp-panel{position:fixed;background:var(--bg-surface);z-index:var(--z-modal);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);left:0;right:0;bottom:0;max-height:90vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:sp-slide-up var(--motion-base) forwards}@keyframes sp-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width:768px){.sp-panel{left:auto;top:0;right:0;bottom:0;max-height:100vh;width:480px;border-radius:0;animation:sp-slide-right var(--motion-base) forwards}@keyframes sp-slide-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}}.sp-handle{display:flex;justify-content:center;padding:var(--space-3) 0 0}.sp-handle:after{content:"";width:40px;height:4px;background:var(--marine-25);border-radius:999px}@media (min-width:768px){.sp-handle{display:none}}.sp-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--marine-09)}.sp-close{flex-shrink:0;width:var(--touch-min);height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--marine-09);border-radius:var(--radius-md);color:var(--marine-65);cursor:pointer;transition:var(--motion-fast)}.sp-close:hover{border-color:var(--marine-25);color:var(--marine);background:var(--marine-09)}.sp-close:focus-visible{outline:2px solid var(--or);outline-offset:2px}.sp-title{font-family:var(--ff-display);font-size:var(--fs-h3);color:var(--marine);font-weight:600}.sp-body{flex:1;overflow-y:auto;padding:var(--space-5)}.sp-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--marine-09);display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}.md-overlay{position:fixed;inset:0;background:hsla(0,0%,5%,.5);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:md-fade var(--motion-base) forwards}@keyframes md-fade{0%{opacity:0}to{opacity:1}}.md-dialog{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:md-pop var(--motion-base) forwards}@keyframes md-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.md-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--marine-09)}.md-title{font-family:var(--ff-display);font-size:var(--fs-h3);color:var(--marine);font-weight:600}.md-body{padding:var(--space-4);overflow-y:auto;flex:1}.md-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--marine-09);display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}@media(min-width:480px){.md-body,.md-head{padding:var(--space-5)}}.md-dialog--sm{max-width:420px}.md-dialog--md{max-width:560px}.md-dialog--lg{max-width:720px}.md-close{flex-shrink:0;width:var(--touch-min);height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--marine-09);border-radius:var(--radius-md);color:var(--marine-65);cursor:pointer;transition:var(--motion-fast)}.md-close:hover{border-color:var(--marine-25);color:var(--marine);background:var(--marine-09)}.md-close:focus-visible{outline:2px solid var(--or);outline-offset:2px}.modal-file-chip{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:var(--radius-md);font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--marine);word-break:break-all;line-height:1.5}.acc{border:1.5px solid var(--marine-09);border-radius:var(--radius-md);background:#fff;overflow:hidden}.acc+.acc{margin-top:var(--space-2)}.acc summary{padding:var(--space-4) var(--space-5);font-family:var(--ff-body);font-weight:500;color:var(--marine);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--touch-min)}.acc summary::-webkit-details-marker{display:none}.acc summary:after{content:"+";font-family:var(--ff-mono);color:var(--or-fonce);font-size:1.2rem;transition:transform var(--motion-fast)}.acc[open] summary:after{content:"−"}.acc-body{padding:0 var(--space-5) var(--space-5);color:var(--marine-65);font-size:var(--fs-sm)}.avatar{display:inline-flex;align-items:center;justify-content:center;background:var(--marine);color:var(--blanc);border-radius:50%;font-family:var(--ff-mono);font-weight:600;flex-shrink:0;text-transform:uppercase}.avatar-32{width:32px;height:32px;font-size:.7rem}.avatar-40{width:40px;height:40px;font-size:.85rem}.avatar-56{width:56px;height:56px;font-size:1rem}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat-num{font-family:var(--ff-display);font-size:2.4rem;font-weight:700;color:var(--or-fonce);line-height:1}.stat-lbl{font-family:var(--ff-mono);font-size:var(--fs-eyebrow);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}.stat-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4)}.sp{display:inline-block;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:sp-rot .8s linear infinite}.sp-16{width:16px;height:16px}.sp-20{width:20px;height:20px}.sp-28{width:28px;height:28px;border-width:3px}@keyframes sp-rot{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.sp{animation:none}}.tabs-list{display:flex;gap:var(--space-2);border-bottom:1.5px solid var(--marine-09);overflow-x:auto;scrollbar-width:none}.tabs-list::-webkit-scrollbar{display:none}.tabs-trig{font-family:var(--ff-body);font-size:var(--fs-sm);font-weight:500;padding:var(--space-3) var(--space-4);background:transparent;color:var(--marine-65);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;white-space:nowrap;transition:.12s;min-height:var(--touch-min)}.tabs-trig:hover{color:var(--marine)}.tabs-trig[aria-selected=true]{color:var(--marine);border-bottom-color:var(--or);font-weight:600}.tabs-panel{padding-top:var(--space-5)}.tabs-panel[hidden]{display:none}.signal-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .6rem;border-radius:999px}.signal-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.signal-badge--red{background:var(--signal-red-bg);color:var(--signal-red-fg)}.signal-badge--orange{background:var(--signal-orange-bg);color:var(--signal-orange-fg)}.signal-badge--yellow{background:var(--signal-yellow-bg);color:var(--signal-yellow-fg)}.signal-badge--red .signal-badge-dot{background:var(--signal-red-dot)}.signal-badge--orange .signal-badge-dot{background:var(--signal-orange-dot)}.signal-badge--yellow .signal-badge-dot{background:var(--signal-yellow-dot)}