
:root{--swat-ux-hit:42px;--swat-ux-rail-expanded:190px;--swat-ux-focus:#56c8ff;--swat-ux-readable-muted:#9bb5c2}

/* Fondations lisibilité / clavier */
body.swat-ux-enabled :where(button,input,select,textarea,a,[role="button"]):focus-visible{outline:3px solid var(--swat-ux-focus)!important;outline-offset:2px!important;box-shadow:0 0 0 5px rgba(86,200,255,.12)!important}
body.swat-ux-enabled :where(button,input,select,textarea){min-height:var(--swat-ux-hit)}
body.swat-ux-enabled input,body.swat-ux-enabled select,body.swat-ux-enabled textarea{line-height:1.35}
body.swat-ux-enabled #root p{line-height:1.5}
body.swat-ux-text-large #root small{font-size:max(10px,.78em)!important;line-height:1.35}
body.swat-ux-text-large #root :where(button,input,select,textarea,label){font-size:max(12px,.9em)}
body.swat-ux-text-xlarge #root small{font-size:max(11px,.82em)!important;line-height:1.4}
body.swat-ux-text-xlarge #root :where(button,input,select,textarea,label){font-size:max(13px,.95em)}
body.swat-ux-text-xlarge #root p{font-size:max(13px,1em);line-height:1.6}
body.swat-ux-contrast .swat-navigation-rail button{color:#8eaab8}
body.swat-ux-contrast .swat-navigation-rail button.active{color:#f3fbff}
body.swat-ux-contrast .swat-hub-brand p,body.swat-ux-contrast .swat-domain-card span,body.swat-ux-contrast .swat-module-card span{color:#9fb7c3}

/* Densité configurable */
body.swat-ux-density-compact{--swat-ux-hit:38px}
body.swat-ux-density-large{--swat-ux-hit:48px}
body.swat-ux-density-large .swat-domain-card,body.swat-ux-density-large .swat-module-card{min-height:172px;padding:22px 16px!important}
body.swat-ux-density-large .swat-global-hub main{padding-top:28px}
body.swat-ux-density-large .swat-hub-section-head{margin-bottom:18px}
body.swat-ux-density-compact .swat-domain-card,body.swat-ux-density-compact .swat-module-card{min-height:142px;padding:14px 11px!important}

/* Rail avec libellés visibles en permanence si souhaité */
body.swat-ux-rail-always{--nav3-rail:var(--swat-ux-rail-expanded)}
body.swat-ux-rail-always .swat-navigation-rail{padding-left:10px;padding-right:10px}
body.swat-ux-rail-always .swat-rail-logo{grid-template-columns:38px 1fr;justify-items:start;align-items:center;padding:6px 3px 13px}
body.swat-ux-rail-always .swat-rail-logo svg{grid-row:1/3}
body.swat-ux-rail-always .swat-rail-logo span{font-size:10px;align-self:center}
body.swat-ux-rail-always .swat-navigation-rail nav button,body.swat-ux-rail-always .swat-rail-foot button{grid-template-columns:34px minmax(0,1fr);place-items:center start;gap:7px;padding:0 9px;min-height:50px}
body.swat-ux-rail-always .swat-navigation-rail button>span{position:static;transform:none!important;opacity:1!important;pointer-events:auto;padding:0;border:0;background:transparent;box-shadow:none;color:inherit;font-size:10px;font-weight:850;white-space:normal;text-align:left}
body.swat-ux-rail-always .swat-navigation-rail button:hover>span{transform:none}
body.swat-ux-rail-always .swat-rail-foot kbd{display:none}


/* 1.2.0y — mode standard fiable : Rail fixe, icônes seules + infobulles natives */
@media(min-width:901px){
 body.swat-ux-enabled:not(.swat-ux-rail-always){--nav3-rail:76px!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-navigation-rail{width:76px!important;min-width:76px!important;max-width:76px!important;overflow:visible!important;transition:none!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-navigation-rail nav{overflow-y:auto!important;overflow-x:hidden!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-navigation-rail nav button>span,
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-rail-foot>button>span{display:none!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-ux-rail-tools{grid-template-columns:1fr!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-ux-rail-tools button span{display:none!important}
 body.swat-ux-enabled:not(.swat-ux-rail-always) .swat-navigation-rail:hover{width:76px!important;box-shadow:10px 0 40px rgba(0,0,0,.18)!important}
}
body.swat-ux-action-labels [data-swat-ux-action-label]{position:relative}
body.swat-ux-action-labels [data-swat-ux-action-label]:hover:after,body.swat-ux-action-labels [data-swat-ux-action-label]:focus-visible:after{content:attr(data-swat-ux-action-label);position:absolute;z-index:200000;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;pointer-events:none;padding:7px 9px;border:1px solid #31586a;border-radius:8px;background:#08151c;color:#eefaff;font-size:10px;font-weight:850;box-shadow:0 10px 30px #0009}

/* Lanceurs Confort / Aide dans le Rail et le Hub */
.swat-ux-rail-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:6px}
.swat-ux-rail-tools button{min-height:38px!important;border:1px solid #1c3946!important;border-radius:10px!important;background:#08141b!important;color:#86a4b3!important;font-size:11px!important}
body.swat-ux-rail-always .swat-ux-rail-tools{grid-template-columns:1fr}
body.swat-ux-rail-always .swat-ux-rail-tools button{display:flex!important;gap:8px!important;justify-content:flex-start!important;padding:0 11px!important}
.swat-ux-hub-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
.swat-ux-hub-actions button{min-height:30px;border:1px solid #214354;border-radius:9px;background:#08151d;color:#9ab6c3;padding:5px 9px;font-size:9px;font-weight:900;cursor:pointer}
.swat-ux-hub-actions button:hover{border-color:#2a7392;color:#e4f7ff}

/* Panneau confort / aide */
.swat-ux-backdrop{position:fixed;z-index:210000;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px}
.swat-ux-backdrop[hidden]{display:none!important}
.swat-ux-panel{width:min(720px,100%);max-height:min(860px,94dvh);overflow:auto;border:1px solid #254655;border-radius:20px;background:linear-gradient(180deg,#0a161e,#071017);color:#edf9ff;box-shadow:0 30px 90px #000a}
.swat-ux-panel-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px;border-bottom:1px solid #17333f;background:#09151d}
.swat-ux-panel-head small{display:block;font-size:8px;letter-spacing:.15em;color:#38baf8;font-weight:950}.swat-ux-panel-head h2{margin:4px 0 3px;font-size:22px}.swat-ux-panel-head p{margin:0;color:#8ba5b2;font-size:10px;line-height:1.5}.swat-ux-close{width:38px;height:38px!important;min-height:38px!important;border:1px solid #294956;border-radius:10px;background:#0a1720;color:#fff;font-size:18px;cursor:pointer}
.swat-ux-panel-body{padding:18px 20px 24px;display:grid;gap:18px}
.swat-ux-section{display:grid;gap:10px;padding:15px;border:1px solid #17343f;border-radius:15px;background:#071017}.swat-ux-section>small{font-size:8px;letter-spacing:.13em;color:#46bff6;font-weight:950}.swat-ux-section h3{margin:0;font-size:15px}.swat-ux-section p{margin:0;color:#91a9b5;font-size:10px;line-height:1.55}
.swat-ux-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.swat-ux-preset{display:grid;gap:4px;text-align:left;padding:12px;border:1px solid #1c3b48;border-radius:12px;background:#09161e;color:#eaf8ff;cursor:pointer}.swat-ux-preset b{font-size:11px}.swat-ux-preset span{color:#7997a5;font-size:9px}.swat-ux-preset.recommended{border-color:#2b7a5b;background:#0b2119}.swat-ux-preset.recommended b{color:#a9f1ce}
.swat-ux-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.swat-ux-field{display:grid;gap:6px}.swat-ux-field label{font-size:9px;font-weight:900;color:#9bb1bc}.swat-ux-field select{width:100%;min-height:42px;border:1px solid #244653;border-radius:10px;background:#061016;color:#effaff;padding:8px 10px}
.swat-ux-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #17313d;border-radius:11px;background:#061016}.swat-ux-switch div{display:grid;gap:2px}.swat-ux-switch b{font-size:10px}.swat-ux-switch span{font-size:8px;color:#7894a1}.swat-ux-switch input{width:18px;height:18px;accent-color:#1aaaf4}
.swat-ux-actions{display:flex;justify-content:flex-end;gap:8px}.swat-ux-actions button{min-height:40px;padding:8px 12px;border:1px solid #285064;border-radius:10px;background:#0a1922;color:#cde7f2;font-weight:900;font-size:10px;cursor:pointer}.swat-ux-actions button.primary{border-color:#1684ba;background:#0e85c0;color:#fff}

/* Aide contextuelle */
.swat-ux-help-context{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:start;padding:13px;border:1px solid #23556a;border-radius:14px;background:#0a1a23}.swat-ux-help-context>i{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:#0e2e3e;color:#78d4ff;font-style:normal;font-size:22px}.swat-ux-help-context small{display:block;font-size:8px;color:#43bdf6;font-weight:950;letter-spacing:.12em}.swat-ux-help-context h3{margin:3px 0 5px;font-size:16px}.swat-ux-help-context p{margin:0;font-size:10px;color:#91a9b5;line-height:1.55}.swat-ux-help-steps{display:grid;gap:7px}.swat-ux-help-step{display:grid;grid-template-columns:27px 1fr;gap:9px;align-items:start;padding:9px;border:1px solid #17323e;border-radius:10px;background:#061016}.swat-ux-help-step i{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#0c2532;color:#6fd2ff;font-style:normal;font-size:10px;font-weight:950}.swat-ux-help-step b{display:block;font-size:10px}.swat-ux-help-step span{display:block;margin-top:2px;font-size:9px;color:#7894a0;line-height:1.45}

/* Astuce première utilisation du Hub */
.swat-ux-onboarding{margin-bottom:18px;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #27526a;border-radius:15px;background:linear-gradient(90deg,#0b2432,#08141b)}.swat-ux-onboarding>i{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#0d3042;color:#7bd4ff;font-style:normal;font-size:19px}.swat-ux-onboarding>div{min-width:0;flex:1}.swat-ux-onboarding small{display:block;color:#48bdf5;font-size:7px;font-weight:950;letter-spacing:.12em}.swat-ux-onboarding b{font-size:11px}.swat-ux-onboarding p{margin:3px 0 0;color:#86a0ad;font-size:9px;line-height:1.45}.swat-ux-onboarding button{width:30px;height:30px!important;min-height:30px!important;border:1px solid #285064;border-radius:9px;background:#08151d;color:#aec6d0;cursor:pointer}


/* Tutoriels guidés */
.swat-ux-tutorial-grid{display:grid;gap:9px}.swat-ux-tutorial-grid>button{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center;text-align:left;padding:12px;border:1px solid #193b49;border-radius:13px;background:#071118;color:#edf9ff;cursor:pointer}.swat-ux-tutorial-grid>button:hover{border-color:#2a7795;background:#0a1c25}.swat-ux-tutorial-grid i{width:46px;height:46px;display:grid;place-items:center;border:1px solid #21566f;border-radius:13px;background:#0c2938;color:#77d4ff;font-style:normal;font-size:12px;font-weight:950}.swat-ux-tutorial-grid div{display:grid;gap:2px}.swat-ux-tutorial-grid b{font-size:11px}.swat-ux-tutorial-grid span{font-size:9px;color:#8ca6b3}.swat-ux-tutorial-grid small{font-size:8px;color:#5bc6f8}.swat-ux-tutorial-grid em{font-style:normal;font-size:9px;font-weight:900;color:#81d7ff;white-space:nowrap}
.swat-ux-onboarding-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.swat-ux-onboarding-actions button{width:auto!important;height:auto!important;min-height:32px!important;padding:6px 9px!important;border:1px solid #28647d!important;border-radius:8px!important;background:#0d2835!important;color:#bcecff!important;font-size:8px!important;font-weight:900!important}.swat-ux-onboarding-actions button+button{border-color:#29444f!important;background:#08151c!important;color:#8fa8b3!important}.swat-ux-onboarding>.swat-ux-onboarding-close{flex:0 0 auto}
.swat-ux-tour-layer{position:fixed;z-index:300000;inset:0;pointer-events:auto}.swat-ux-tour-layer[hidden]{display:none!important}.swat-ux-tour-focus{position:fixed;z-index:300001;border:2px solid #54c9ff;border-radius:15px;pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.66),0 0 0 5px rgba(84,201,255,.13),0 0 32px rgba(84,201,255,.25);transition:all .18s ease}.swat-ux-tour-card{position:fixed;z-index:300002;width:min(390px,calc(100vw - 24px));border:1px solid #2e6479;border-radius:17px;background:linear-gradient(180deg,#0c1d26,#081219);color:#effaff;box-shadow:0 24px 70px #000b;overflow:hidden}.swat-ux-tour-card header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #173642}.swat-ux-tour-card header small{color:#5dc9fb;font-size:8px;font-weight:950;letter-spacing:.13em}.swat-ux-tour-card header button{width:30px;height:30px!important;min-height:30px!important;border:1px solid #294b58;border-radius:8px;background:#0a171e;color:#d8edf6;font-size:17px;cursor:pointer}.swat-ux-tour-copy{padding:15px 16px}.swat-ux-tour-copy h3{margin:0 0 7px;font-size:17px}.swat-ux-tour-copy p{margin:0;color:#9ab1bc;font-size:10px;line-height:1.6}.swat-ux-tour-card footer{display:flex;justify-content:space-between;gap:8px;padding:11px 12px;border-top:1px solid #173642;background:#071017}.swat-ux-tour-card footer button{min-height:38px;padding:7px 11px;border:1px solid #294b58;border-radius:9px;background:#0a171e;color:#a9c2cd;font-size:9px;font-weight:900;cursor:pointer}.swat-ux-tour-card footer button.primary{margin-left:auto;border-color:#1687bd;background:#0f8bc6;color:#fff}.swat-ux-tour-card footer button:disabled{opacity:.35}

/* Réduction des animations */
body.swat-ux-reduce-motion *,body.swat-ux-reduce-motion *:before,body.swat-ux-reduce-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

@media(max-width:767px){
 .swat-ux-tutorial-grid>button{grid-template-columns:42px 1fr}.swat-ux-tutorial-grid i{width:40px;height:40px}.swat-ux-tutorial-grid em{grid-column:2}.swat-ux-tour-card{max-height:48dvh;overflow:auto}

 body.swat-ux-rail-always{--nav3-rail:76px}
 .swat-ux-hub-actions{margin-left:0}.swat-ux-hub-actions button{font-size:8px;padding:5px 7px}
 .swat-ux-panel{width:100%;height:100dvh;max-height:none;border-radius:0;border:0}.swat-ux-backdrop{padding:0}
 .swat-ux-panel-head{padding:calc(14px + env(safe-area-inset-top)) 14px 13px}.swat-ux-panel-body{padding:14px 13px calc(28px + env(safe-area-inset-bottom))}.swat-ux-options,.swat-ux-preset-grid{grid-template-columns:1fr}
 body.swat-ux-text-large .swat-bottom-navigation span{font-size:8px!important}.swat-bottom-navigation button{min-height:48px}
}
