﻿/* ============================================================
   ABSTECH PRO — STYLE GLOBAL RESTAURE
   Fichier unique : css/style.css
   Reconstruit depuis les sources originales du projet PHP.
   ============================================================ */

/* ==================== BASE REACT / TAILWIND / COMPOSANTS ==================== */
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap);:root{--home-ink:#0f172a;--home-muted:#5b6475;--home-blue:#2563eb;--home-indigo:#4338ca;--home-line:#e2e8f0;--home-soft:#f5f8ff}html{scroll-behavior:smooth}body:has(.home-site){background:#fff;margin:0}.home-site,.home-site *{box-sizing:border-box}.home-site{background:#fff;color:#0f172a;color:var(--home-ink);min-height:100vh;overflow:hidden}.home-brand strong,.home-site,.home-site h1,.home-site h2,.home-site h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.home-site a{color:inherit;text-decoration:none}.home-container{margin:0 auto;width:min(1160px,calc(100% - 40px))}.home-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe6;border-bottom:1px solid #e2e8f0d9;position:relative;z-index:30}.home-nav-shell{align-items:center;display:flex;gap:28px;justify-content:space-between;min-height:76px}.home-brand{align-items:center;display:inline-flex;flex:0 0 auto;gap:11px}.home-brand img{display:block;height:42px;width:42px}.home-brand span{display:grid;line-height:1.08}.home-brand strong{font-size:1.03rem;letter-spacing:-.035em}.home-brand small{color:#7a8495;font-size:.66rem;font-weight:600;letter-spacing:.015em;margin-top:5px}.home-nav{align-items:center;color:#475569;display:flex;font-size:.86rem;font-weight:600;gap:28px}.home-nav>a:not(.home-nav-login){padding:9px 0;position:relative}.home-nav>a:not(.home-nav-login):after{background:#2563eb;background:var(--home-blue);border-radius:2px;bottom:3px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;transition:transform .25s ease;width:100%}.home-nav>a:not(.home-nav-login):hover:after{transform:scaleX(1);transform-origin:left}.home-nav-login{background:#172554;border-radius:11px;box-shadow:0 9px 20px #17255429;color:#fff!important;padding:11px 17px;transition:transform .2s ease,box-shadow .2s ease}.home-nav-login:hover{box-shadow:0 13px 25px #17255438;transform:translateY(-2px)}.home-menu-toggle{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--home-line);border-radius:12px;cursor:pointer;display:none;height:42px;padding:10px;width:44px}.home-menu-toggle span{background:#172554;border-radius:2px;display:block;height:2px;margin:4px 0;transition:.22s ease}.home-menu-toggle.is-open span:first-child{transform:translateY(6px) rotate(45deg)}.home-menu-toggle.is-open span:nth-child(2){opacity:0}.home-menu-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.home-hero{background:linear-gradient(155deg,#f8fbff,#fff 44%,#f4f3ff);min-height:680px;padding:86px 0 74px;position:relative}.home-hero:before{background-image:radial-gradient(#94a3b8 .65px,#0000 0);background-size:24px 24px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,#000,#0000 82%);mask-image:linear-gradient(180deg,#000,#0000 82%);opacity:.26;position:absolute}.home-hero-glow{border-radius:50%;filter:blur(4px);pointer-events:none;position:absolute}.home-hero-glow-one{background:#60a5fa29;height:400px;right:-190px;top:-150px;width:400px}.home-hero-glow-two{background:#818cf81f;bottom:-120px;height:300px;left:-180px;width:300px}.home-hero-grid{grid-gap:40px;align-items:center;display:grid;gap:40px;grid-template-columns:.93fr 1.07fr;position:relative}.home-hero-copy{animation:homeFadeUp .65s ease both}.home-kicker{align-items:center;background:#eff6ffcc;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:.73rem;font-weight:700;gap:9px;letter-spacing:.025em;padding:7px 11px;text-transform:uppercase}.home-kicker span{background:#22c55e;border-radius:50%;box-shadow:0 0 0 4px #22c55e21;height:7px;width:7px}.home-hero h1{font-size:clamp(2.55rem,5vw,4.45rem);font-weight:800;letter-spacing:-.065em;line-height:1.02;margin:22px 0 20px;max-width:610px}.home-hero h1 em{color:#2563eb;color:var(--home-blue);font-style:normal}.home-hero-copy>p{color:#5b6475;color:var(--home-muted);font-size:1.06rem;line-height:1.75;margin:0;max-width:570px}.home-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.home-button{align-items:center;border:1px solid #0000;border-radius:12px;display:inline-flex;font-size:.88rem;font-weight:700;gap:11px;justify-content:center;min-height:48px;padding:0 20px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.home-button:hover{transform:translateY(-2px)}.home-button-primary{background:linear-gradient(135deg,#2563eb,#4338ca);background:linear-gradient(135deg,var(--home-blue),var(--home-indigo));box-shadow:0 14px 28px #2563eb3b;color:#fff!important}.home-button-primary:hover{box-shadow:0 18px 36px #2563eb4d}.home-button-secondary{background:#ffffffdb;border-color:#cbd5e1;color:#253047!important}.home-trust-row{color:#64748b;display:flex;flex-wrap:wrap;font-size:.77rem;font-weight:600;gap:18px;margin-top:25px}.home-trust-row span{align-items:center;display:inline-flex;gap:6px}.home-trust-row i{background:#dcfce7;border-radius:50%;color:#15803d;display:inline-grid;font-size:.65rem;font-style:normal;height:17px;place-items:center;width:17px}.home-hero-visual{animation:homeFadeUp .75s ease .12s both;min-width:0;position:relative}.home-hero-visual>img{display:block;filter:drop-shadow(0 24px 40px rgba(15,23,42,.08));margin-left:-4%;max-width:none;position:relative;width:112%;z-index:2}.home-visual-badge{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #e2e8f0e6;border-radius:15px;box-shadow:0 16px 35px #0f172a21;display:flex;gap:10px;min-width:174px;padding:12px 14px;position:absolute;z-index:4}.home-visual-badge-top{animation:homeFloat 4s ease-in-out infinite;right:-1%;top:7%}.home-visual-badge-bottom{animation:homeFloat 4.5s ease-in-out .6s infinite;bottom:4%;left:1%}.home-badge-icon{border-radius:10px;display:grid;flex:0 0 auto;font-size:.82rem;font-weight:800;height:32px;place-items:center;width:32px}.home-badge-icon-blue{background:#dbeafe;color:#1d4ed8}.home-badge-icon-green{background:#dcfce7;color:#15803d}.home-visual-badge>span:last-child{grid-gap:2px;display:grid;gap:2px}.home-visual-badge strong{color:#172554;font-size:.76rem}.home-visual-badge small{color:#7c8799;font-size:.64rem}.home-proof-strip{background:#fff;border-bottom:1px solid #e8edf5;border-top:1px solid #e8edf5;position:relative;z-index:5}.home-proof-grid{display:grid;grid-template-columns:repeat(4,1fr)}.home-proof-grid>div{grid-gap:4px;align-content:center;border-right:1px solid #e8edf5;display:grid;gap:4px;min-height:104px;padding:20px 28px}.home-proof-grid>div:last-child{border-right:0}.home-proof-grid strong{color:#172554;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.28rem;letter-spacing:-.035em}.home-proof-grid span{color:#778195;font-size:.74rem}.home-section{padding:104px 0}.home-section-heading{margin:0 auto 47px;max-width:720px;text-align:center}.home-section-heading-left{margin-left:0;text-align:left}.home-section-heading>span,.home-section-label{color:#2563eb;color:var(--home-blue);font-size:.74rem;font-weight:800;letter-spacing:.095em;text-transform:uppercase}.home-cta-card h2,.home-process-copy h2,.home-section-heading h2,.home-security-card h2{font-size:clamp(1.85rem,3.2vw,2.75rem);letter-spacing:-.045em;line-height:1.15;margin:12px 0 14px}.home-process-copy>p,.home-section-heading p{color:#5b6475;color:var(--home-muted);line-height:1.75;margin:0}.home-feature-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.home-feature-card{background:#fff;border:1px solid #e5eaf2;border-radius:20px;box-shadow:0 10px 30px rgba(15,23,42,.035);min-height:230px;padding:26px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.home-feature-card:hover{border-color:#cbd9f0;box-shadow:0 20px 42px #1e40af17;transform:translateY(-6px)}.home-feature-icon{border-radius:13px;display:grid;height:44px;margin-bottom:20px;place-items:center;width:44px}.home-feature-icon svg,.home-security-icon svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:23px}.tone-blue{background:#eff6ff;color:#2563eb}.tone-green{background:#ecfdf5;color:#059669}.tone-violet{background:#f5f3ff;color:#7c3aed}.tone-amber{background:#fffbeb;color:#d97706}.tone-rose{background:#fff1f2;color:#e11d48}.tone-cyan{background:#ecfeff;color:#0891b2}.home-feature-card h3{font-size:1.03rem;letter-spacing:-.025em;margin:0 0 10px}.home-feature-card p{color:#667085;font-size:.87rem;line-height:1.7;margin:0}.home-process-section{background:linear-gradient(145deg,#0f172a,#172554);color:#fff}.home-process-layout{grid-gap:80px;align-items:center;display:grid;gap:80px;grid-template-columns:.83fr 1.17fr}.home-process-copy{align-self:start;padding-top:25px;position:-webkit-sticky;position:sticky;top:110px}.home-process-copy .home-section-label{color:#93c5fd}.home-process-copy>p{color:#aebad0}.home-text-link{color:#bfdbfe!important;display:inline-flex;font-size:.86rem;font-weight:700;gap:10px;margin-top:27px}.home-text-link span{transition:transform .2s ease}.home-text-link:hover span{transform:translateX(4px)}.home-step-list{display:grid}.home-step{grid-gap:19px;display:grid;gap:19px;grid-template-columns:60px 1fr;padding:27px 0;position:relative}.home-step-number{background:#3b82f61f;border:1px solid #93c5fd47;border-radius:16px;color:#93c5fd;display:grid;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.83rem;font-weight:800;height:52px;place-items:center;position:relative;width:52px;z-index:2}.home-step-line{background:linear-gradient(#3b82f6,#3b82f60d);bottom:-27px;left:26px;position:absolute;top:79px;width:1px}.home-step h3{font-size:1rem;margin:2px 0 7px}.home-step p{color:#aebad0;font-size:.85rem;line-height:1.65;margin:0}.home-role-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.home-role-card{background:#fff;border:1px solid #e3e8f1;border-radius:22px;min-height:350px;overflow:hidden;padding:28px;position:relative}.home-role-card:before{content:"";height:4px;inset:0 0 auto;position:absolute}.home-role-admin:before{background:#2563eb}.home-role-teacher:before{background:#7c3aed}.home-role-parent:before{background:#059669}.home-role-top{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:42px}.home-role-top span{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.home-role-top small{background:#f1f5f9;border-radius:999px;color:#64748b;font-size:.66rem;font-weight:700;padding:6px 9px}.home-role-card h3{font-size:1.28rem;letter-spacing:-.035em;margin:0 0 12px}.home-role-card>p{color:#667085;font-size:.86rem;line-height:1.7;margin:0 0 22px;min-height:69px}.home-role-card ul{grid-gap:10px;border-top:1px solid #edf0f5;display:grid;gap:10px;list-style:none;margin:0;padding:18px 0 0}.home-role-card li{color:#3f4a5d;font-size:.79rem;font-weight:600}.home-role-card li:before{color:#2563eb;content:"✓";font-weight:800;margin-right:9px}.home-security-section{padding-top:30px}.home-security-card{grid-gap:28px;align-items:center;background:linear-gradient(135deg,#f8fbff,#f4f3ff);border:1px solid #dbe5f4;border-radius:26px;display:grid;gap:28px;grid-template-columns:72px 1fr .7fr;padding:44px}.home-security-icon{background:linear-gradient(135deg,#2563eb,#4338ca);border-radius:19px;box-shadow:0 14px 30px #2563eb38;color:#fff;display:grid;height:64px;place-items:center;width:64px}.home-security-icon svg{width:30px}.home-security-card h2{font-size:clamp(1.55rem,2.6vw,2.15rem);margin-bottom:10px}.home-security-card p{color:#64748b;font-size:.88rem;line-height:1.7;margin:0}.home-security-points{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.home-security-points span{align-items:center;color:#344054;display:flex;font-size:.76rem;font-weight:700;gap:7px}.home-security-points i{color:#2563eb;font-style:normal}.home-cta-section{padding:25px 0 95px}.home-cta-card{align-items:center;background:linear-gradient(125deg,#1d4ed8,#3730a3);border-radius:28px;box-shadow:0 28px 55px #2563eb33;color:#fff;display:flex;gap:40px;justify-content:space-between;min-height:240px;overflow:hidden;padding:48px 56px;position:relative}.home-cta-card:after{border:60px solid #ffffff14;border-radius:50%;content:"";height:360px;position:absolute;right:-160px;top:-180px;width:360px}.home-cta-card>*{position:relative;z-index:2}.home-cta-card>div>span{color:#bfdbfe;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.home-cta-card h2{margin-bottom:0;max-width:650px}.home-button-light{background:#fff;box-shadow:0 12px 25px #0f172a24;color:#1e3a8a!important;flex:0 0 auto}.home-footer{background:#0b1221;color:#fff;padding:66px 0 25px}.home-footer-grid{grid-gap:70px;display:grid;gap:70px;grid-template-columns:1.5fr .65fr .8fr;padding-bottom:50px}.home-brand-light small{color:#8290a8}.home-footer-grid>div:first-child>p{color:#8995a9;font-size:.83rem;line-height:1.7;margin:22px 0 0;max-width:400px}.home-footer-links{grid-gap:12px;align-content:start;display:grid;gap:12px}.home-footer-links strong{color:#e5e7eb;font-size:.77rem;letter-spacing:.08em;margin-bottom:7px;text-transform:uppercase}.home-footer-links a{color:#8f9bb0;font-size:.79rem;transition:color .2s ease}.home-footer-links a:hover{color:#bfdbfe}.home-footer-bottom{border-top:1px solid #94a3b826;color:#6f7c92;display:flex;font-size:.7rem;gap:20px;justify-content:space-between;padding-top:22px}@keyframes homeFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes homeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (max-width:980px){.home-nav{gap:17px}.home-nav>a:not(.home-nav-login){display:none}.home-hero{padding-top:68px}.home-hero-grid{grid-template-columns:1fr;text-align:center}.home-hero-copy>p,.home-kicker{margin-inline:auto}.home-hero-actions,.home-trust-row{justify-content:center}.home-hero-visual{margin:8px auto 0;width:min(700px,100%)}.home-hero-visual>img{margin-left:0;width:100%}.home-feature-grid{grid-template-columns:repeat(2,1fr)}.home-process-layout{gap:35px;grid-template-columns:1fr}.home-process-copy{padding-top:0;position:static}.home-role-grid{grid-template-columns:1fr}.home-role-card{min-height:auto}.home-role-card>p{min-height:0}.home-security-card{grid-template-columns:64px 1fr}.home-security-points{grid-column:2}}@media (max-width:720px){.home-container{width:min(100% - 28px,1160px)}.home-header{position:-webkit-sticky;position:sticky;top:0}.home-nav-shell{min-height:68px}.home-brand img{height:38px;width:38px}.home-brand small{display:none}.home-menu-toggle{display:block}.home-nav{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 20px 45px #0f172a26;display:none;left:14px;padding:12px;position:absolute;right:14px;top:62px}.home-nav.is-open{grid-gap:3px;display:grid;gap:3px}.home-nav>a:not(.home-nav-login){display:block;padding:12px}.home-nav-login{margin-top:5px;text-align:center}.home-hero{min-height:0;padding:56px 0 42px}.home-hero h1{font-size:clamp(2.35rem,12vw,3.55rem)}.home-hero-copy>p{font-size:.96rem}.home-hero-actions{display:grid}.home-button{width:100%}.home-trust-row{gap:10px 16px}.home-visual-badge{display:none}.home-proof-grid{grid-template-columns:1fr 1fr}.home-proof-grid>div{border-bottom:1px solid #e8edf5;min-height:90px;padding:16px}.home-proof-grid>div:nth-child(2){border-right:0}.home-proof-grid>div:nth-child(n+3){border-bottom:0}.home-section{padding:75px 0}.home-section-heading{margin-bottom:34px}.home-feature-grid{grid-template-columns:1fr}.home-feature-card{min-height:0}.home-process-section{padding-top:75px}.home-step{gap:13px;grid-template-columns:52px 1fr}.home-step-number{height:46px;width:46px}.home-step-line{left:23px;top:73px}.home-role-top{margin-bottom:28px}.home-security-section{padding-top:10px}.home-security-card{grid-template-columns:1fr;padding:28px}.home-security-points{grid-column:auto;grid-template-columns:1fr 1fr}.home-security-icon{height:56px;width:56px}.home-cta-section{padding-bottom:72px}.home-cta-card{display:grid;min-height:0;padding:34px 26px}.home-footer-grid{gap:38px 28px;grid-template-columns:1fr 1fr}.home-footer-grid>div:first-child{grid-column:1/-1}.home-footer-bottom{flex-direction:column}}@media (max-width:420px){.home-proof-grid{grid-template-columns:1fr}.home-proof-grid>div{border-bottom:1px solid #e8edf5!important;border-right:0}.home-proof-grid>div:last-child{border-bottom:0!important}.home-footer-grid,.home-security-points{grid-template-columns:1fr}.home-footer-grid>div:first-child{grid-column:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-site *,.home-site :after,.home-site :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */body{background:#f1f5f9;color:#0f0f1a}::-webkit-scrollbar-track{background:#e2e8f0}::-webkit-scrollbar-thumb{background:#e11d48}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #e11d48;outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-page{align-items:center;background:#0a0a12;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:1rem;position:relative}.login-bg-orb{--tw-blur:blur(64px);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:9999px;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);position:absolute}.login-bg-orb-1{animation-duration:8s;background:radial-gradient(circle,#e11d4840,#0000 70%);height:600px;right:-200px;top:-200px;width:600px}.login-bg-orb-2{animation-delay:2s;animation-duration:10s;background:radial-gradient(circle,#f59e0b26,#0000 70%);bottom:-150px;height:500px;left:-150px;width:500px}.login-bg-orb-3{animation-delay:4s;animation-duration:12s;background:radial-gradient(circle,#6366f114,#0000 70%);height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:300px}.login-grid-pattern{background-image:radial-gradient(circle at 1px 1px,#fff 1px,#0000 0);background-size:40px 40px;inset:0;opacity:.03;position:absolute}.login-container{animation:slideUp .4s ease-out;animation:slideUp .5s ease-out forwards;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffff0d;border:1px solid #ffffff14;border-radius:1.5rem;box-shadow:0 32px 80px #00000080;max-width:64rem;width:100%;z-index:10}.login-brand,.login-container{display:flex;overflow:hidden;position:relative}.login-brand{background:linear-gradient(180deg,#14141f,#0a0a12);flex-direction:column;justify-content:space-between;padding:2.5rem;width:42%}.login-brand-glow{background:radial-gradient(circle,#e11d4840,#0000 70%);border-radius:9999px;height:16rem;position:absolute;right:-6rem;top:-6rem;width:16rem}.login-brand-content{position:relative;z-index:10}.login-brand-icon{align-items:center;background:linear-gradient(135deg,#e11d48,#f59e0b);border-radius:20px;box-shadow:0 8px 24px #e11d4859;display:flex;font-size:1.5rem;height:3.5rem;justify-content:center;line-height:2rem;margin-bottom:1.5rem;width:3.5rem}.login-brand-title{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));font-size:1.875rem;font-weight:800;line-height:2.25rem;line-height:1.25}.login-brand-accent{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1))}.login-brand-subtitle{color:#fff6;font-size:.875rem;line-height:1.25rem;line-height:1.625;margin-top:.75rem}.login-brand-features{margin-top:2rem}.login-brand-features>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.login-brand-feature{align-items:center;color:#ffffff80;display:flex;font-size:.875rem;gap:.75rem;line-height:1.25rem}.login-brand-feature i{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1));text-align:center;width:1rem}.login-brand-footer{color:#fff3;font-size:.75rem;line-height:1rem;position:relative;z-index:10}.login-form-wrapper{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));display:flex;flex-direction:column;justify-content:center;padding:2.5rem;width:58%}@media (min-width:768px){.login-form-wrapper{padding:3rem}}.login-form-header{margin-bottom:2rem}.login-form-title{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:1.5rem;font-weight:700;line-height:2rem}.login-form-subtitle{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;margin-top:.25rem}.login-form>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.login-error{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:flex-start;animation:shake .5s ease-in-out;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1));border-color:#fecdd3;border-color:rgb(254 205 211/var(--tw-border-opacity,1));border-radius:16px;border-width:1px;display:flex;gap:.75rem;padding:1rem}.login-error i{--tw-text-opacity:1;color:#f43f5e;color:rgb(244 63 94/var(--tw-text-opacity,1));margin-top:.125rem}.login-error span{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem}.login-field>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.login-label{--tw-text-opacity:1;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1));display:block;font-size:.75rem;font-weight:600;letter-spacing:.05em;line-height:1rem;text-transform:uppercase}.login-label i{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1));margin-right:.5rem}.login-input{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-radius:16px;border-width:1px;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;padding:.875rem 1rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.login-input::placeholder{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1))}.login-input:focus{--tw-border-opacity:1;--tw-shadow:0 0 0 3px #e11d4814;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);border-color:#e11d48;border-color:rgb(225 29 72/var(--tw-border-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.login-input:disabled{cursor:not-allowed;opacity:.5}.login-password-wrapper{position:relative}.login-input-password{padding-right:2.75rem}.login-password-toggle{--tw-translate-y:-50%;--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));position:absolute;right:.75rem;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.login-password-toggle:hover{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1))}.login-submit{--tw-text-opacity:1;align-items:center;background:linear-gradient(135deg,#e11d48,#be123c);border-radius:16px;box-shadow:0 4px 16px #e11d4833;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));display:flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;line-height:1.25rem;padding-bottom:.875rem;padding-top:.875rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.login-submit:hover:not(:disabled){box-shadow:0 8px 30px #e11d484d;transform:translateY(-2px) scale(1.01)}.login-submit:disabled{cursor:not-allowed;opacity:.5}.login-spinner{--tw-border-opacity:1;animation:spin 1s linear infinite;border-color:#fff #ffffff4d #ffffff4d;border-radius:9999px;border-top-color:rgb(255 255 255/var(--tw-border-opacity,1));border-width:2px;display:inline-block;height:1rem;width:1rem}@media (max-width:1024px){.login-brand,.login-form-wrapper{padding:2rem;width:100%}.login-container{flex-direction:column;max-width:28rem}}@media (max-width:640px){.login-container{border-radius:20px}.login-brand,.login-form-wrapper{padding:1.5rem}.login-brand-title{font-size:1.5rem;line-height:2rem}.login-form-title{font-size:1.25rem;line-height:1.75rem}}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}.animate-slide-up{animation:slideUp .5s ease-out forwards}.animate-fade-in{animation:fadeIn .4s ease-out forwards}.sidebar{transition:transform .3s ease-in-out}.sidebar-brand-mark{--tw-text-opacity:1;align-items:center;background:linear-gradient(135deg,#e11d48,#f59e0b);border-radius:16px;box-shadow:0 4px 14px #e11d4859;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));display:flex;flex-shrink:0;font-size:1.125rem;font-weight:700;height:2.5rem;justify-content:center;line-height:1.75rem;transition:transform .3s ease;width:2.5rem}.sidebar-brand-mark:hover{transform:scale(1.05) rotate(-3deg)}.sidebar-link{margin:.125rem .75rem;padding:.75rem 1.5rem}.topbar{background:#fffc;padding:1rem 2rem}.topbar-left h1{font-size:1.25rem;line-height:1.75rem}.topbar-left p{font-size:.75rem;line-height:1rem}.topbar-right{gap:1rem}.topbar-user{gap:.75rem;padding:.5rem 1rem}.topbar-user .avatar{--tw-text-opacity:1;align-items:center;background:linear-gradient(135deg,#e11d48,#f59e0b);border-radius:16px;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));display:flex;font-size:.875rem;font-weight:700;height:2.5rem;justify-content:center;line-height:1.25rem;transition:transform .3s ease;width:2.5rem}.topbar-user:hover .avatar{transform:scale(1.05)}.topbar-user .user-name{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;font-weight:600;line-height:1.25rem}.topbar-user .user-email{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:.75rem;line-height:1rem}.card-premium{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #e2e8f080;border-radius:20px;box-shadow:0 2px 16px #0000000a;overflow:hidden;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card-premium:hover{border-color:#e11d481a;box-shadow:0 8px 40px #00000014;transform:translateY(-2px)}.card-premium .card-header{--tw-border-opacity:1;align-items:center;border-bottom-width:1px;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));display:flex;justify-content:space-between;padding:1.25rem;transition-duration:.3s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card-premium .card-header h3{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;font-weight:600;line-height:1.25rem}.card-premium .card-header-badge{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:.75rem;font-weight:300;line-height:1rem}.card-premium .card-body{padding:1.25rem}.stat-card-red{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#f44336;border-color:rgb(244 67 54/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-red,.stat-card-red:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-red:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-card-green{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#10b981;border-color:rgb(16 185 129/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-green,.stat-card-green:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-green:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-card-blue{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-blue,.stat-card-blue:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-blue:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-card-purple{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#a855f7;border-color:rgb(168 85 247/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-purple,.stat-card-purple:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-purple:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-card-amber{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#f59e0b;border-color:rgb(245 158 11/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-amber,.stat-card-amber:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-amber:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-card-cyan{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#06b6d4;border-color:rgb(6 182 212/var(--tw-border-opacity,1));border-left-width:4px;border-radius:20px;padding:1.25rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card-cyan,.stat-card-cyan:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card-cyan:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.stat-number{color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.stat-card:hover .stat-number{transform:scale(1.02)}.stat-label{color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-weight:300;letter-spacing:.05em;text-transform:uppercase}.stat-icon{align-items:center;border-radius:16px;display:flex;font-size:1rem;height:2.5rem;justify-content:center;line-height:1.5rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2.5rem}.stat-card:hover .stat-icon{transform:scale(1.1) rotate(-3deg)}.btn-premium{align-items:center;border-radius:16px;border-style:none;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;line-height:1.25rem;padding:.625rem 1.5rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-premium:disabled{cursor:not-allowed;opacity:.5}.btn-premium-primary{--tw-text-opacity:1;background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 4px 16px #e11d4833;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-primary:after{background:linear-gradient(135deg,#be123c,#9f1239);content:"";inset:0;opacity:0;position:absolute;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-premium-primary:hover:not(:disabled):after{opacity:1}.btn-premium-primary:hover:not(:disabled){box-shadow:0 8px 30px #e11d484d;transform:translateY(-2px)}.btn-premium-secondary{--tw-text-opacity:1;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-secondary:hover{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1))}.btn-premium-secondary{background:#f1f5f9cc;border:1px solid #e2e8f080}.btn-premium-secondary:hover:not(:disabled){--tw-translate-y:-0.125rem;--tw-bg-opacity:1;background-color:#e2e8f0;background-color:rgb(226 232 240/var(--tw-bg-opacity,1));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-premium-success{--tw-text-opacity:1;background:#22c55e;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-success:hover:not(:disabled){--tw-translate-y:-0.125rem;--tw-bg-opacity:1;--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color);--tw-shadow-color:#a7f3d0;--tw-shadow:var(--tw-shadow-colored);background-color:#16a34a;background-color:rgb(22 163 74/var(--tw-bg-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-premium-danger{--tw-text-opacity:1;background:#ef4444;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-danger:hover:not(:disabled){--tw-translate-y:-0.125rem;--tw-bg-opacity:1;--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color);--tw-shadow-color:#fecdd3;--tw-shadow:var(--tw-shadow-colored);background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-premium-warning{--tw-text-opacity:1;background:#f59e0b;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-warning:hover:not(:disabled){--tw-translate-y:-0.125rem;--tw-bg-opacity:1;--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color);--tw-shadow-color:#fde68a;--tw-shadow:var(--tw-shadow-colored);background-color:#d97706;background-color:rgb(217 119 6/var(--tw-bg-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-premium-ghost{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));overflow:hidden;position:relative}.btn-premium-ghost:hover{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1))}.btn-premium-ghost{background:#0000}.btn-premium-ghost:hover:not(:disabled){--tw-translate-y:-0.125rem;--tw-bg-opacity:1;background-color:#f1f5f9;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-premium-sm{font-size:.75rem;line-height:1rem;padding:.375rem 1rem}.btn-premium-lg{font-size:1rem;line-height:1.5rem;padding:.875rem 2rem}.btn-action{align-items:center;border-radius:.5rem;border-style:none;cursor:pointer;display:inline-flex;font-size:.875rem;height:2rem;justify-content:center;line-height:1.25rem;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.btn-action-edit{--tw-text-opacity:1;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1))}.btn-action-edit:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f1f5f9;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-action-delete{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1))}.btn-action-delete:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1));color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-action-success{--tw-text-opacity:1;color:#22c55e;color:rgb(34 197 94/var(--tw-text-opacity,1))}.btn-action-success:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;background-color:#22c55e1a;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.badge-premium{align-items:center;border-radius:9999px;display:inline-flex;font-size:10px;font-weight:600;letter-spacing:.025em;padding:.25rem .75rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.badge-premium:hover{transform:scale(1.05)}.badge-premium-success{--tw-text-opacity:1;background-color:#22c55e1a;border-color:#22c55e33;border-width:1px;color:#16a34a;color:rgb(22 163 74/var(--tw-text-opacity,1))}.badge-premium-danger{--tw-text-opacity:1;background-color:#ef44441a;border-color:#ef444433;border-width:1px;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.badge-premium-warning{--tw-text-opacity:1;background-color:#f59e0b1a;border-color:#f59e0b33;border-width:1px;color:#d97706;color:rgb(217 119 6/var(--tw-text-opacity,1))}.badge-premium-info{--tw-text-opacity:1;background-color:#3b82f61a;border-color:#3b82f633;border-width:1px;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.badge-premium-primary{--tw-text-opacity:1;background-color:#e11d481a;border-color:#e11d4833;border-width:1px;color:#be123c;color:rgb(190 18 60/var(--tw-text-opacity,1))}.badge-premium-neutral{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f1f5f9;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-width:1px;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1))}.table-premium-wrap{--tw-border-opacity:1;background:#ffffffe6;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-radius:20px;border-width:1px;overflow-x:auto;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.table-premium-wrap:hover{border-color:#e11d481a}.table-premium{border-collapse:collapse;font-size:.875rem;line-height:1.25rem;width:100%}.table-premium thead{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));border-bottom-width:1px;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.table-premium th{--tw-text-opacity:1;font-size:10px;font-weight:700;letter-spacing:.05em;text-align:left;text-transform:uppercase;white-space:nowrap}.table-premium td,.table-premium th{color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1));padding:.75rem 1rem}.table-premium td{--tw-border-opacity:1;--tw-text-opacity:1;border-color:#f1f5f9;border-color:rgb(241 245 249/var(--tw-border-opacity,1));border-top-width:1px;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.table-premium tbody tr{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.table-premium tbody tr:hover{--tw-scale-x:1.001;--tw-scale-y:1.001;--tw-bg-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.table-premium .td-bold{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-weight:500}.modal-premium-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f0f1a80;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:50}.modal-premium{animation:slideUp .4s ease-out;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border:1px solid #e2e8f080;border-radius:1.5rem;box-shadow:0 32px 80px #00000026;max-width:32rem;overflow:hidden;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.modal-premium .header{--tw-border-opacity:1;align-items:center;border-bottom-width:1px;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));display:flex;justify-content:space-between;padding:1.5rem}.modal-premium .header h3{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:1.125rem;font-weight:600;line-height:1.75rem}.modal-premium .header .close{--tw-text-opacity:1;align-items:center;border-radius:16px;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));cursor:pointer;display:flex;height:2rem;justify-content:center;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.modal-premium .header .close:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f1f5f9;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));transform:rotate(90deg)}.modal-premium .body{padding:1.5rem}.modal-premium .footer{--tw-border-opacity:1;align-items:center;background:#f8fafccc;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-top-width:1px;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem}.form-premium{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-radius:16px;border-width:1px;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;padding:.75rem 1rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-premium:focus{--tw-border-opacity:1;--tw-shadow:0 0 0 3px #e11d4814;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);border-color:#e11d48;border-color:rgb(225 29 72/var(--tw-border-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.form-premium::placeholder{color:#94a3b8}.form-premium-label{color:#64748b;display:block;font-size:10px;font-weight:500;letter-spacing:.05em;margin-bottom:.375rem;text-transform:uppercase}.form-premium-textarea{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-radius:16px;border-width:1px;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;padding:.75rem 1rem;resize:none;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-premium-textarea:focus{--tw-border-opacity:1;--tw-shadow:0 0 0 3px #e11d4814;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);border-color:#e11d48;border-color:rgb(225 29 72/var(--tw-border-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.empty-state-premium{flex-direction:column;padding:4rem 1.5rem;text-align:center}.empty-state-premium,.empty-state-premium .icon{align-items:center;display:flex;justify-content:center}.empty-state-premium .icon{--tw-text-opacity:1;background:#f8fafccc;border-radius:20px;color:#cbd5e1;color:rgb(203 213 225/var(--tw-text-opacity,1));font-size:1.5rem;height:4rem;line-height:2rem;margin-bottom:1rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:4rem}.empty-state-premium:hover .icon{transform:scale(1.1) rotate(-3deg)}.empty-state-premium .title{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.875rem;font-weight:600;line-height:1.25rem;margin-bottom:.25rem}.empty-state-premium .description{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:.75rem;line-height:1rem}.loader-premium{animation:spin 1s linear infinite;border-color:#e11d48 #f59e0b #0000 #0000;border-radius:9999px;border-width:4px;height:3rem;width:3rem}.loader-premium-sm{animation:spin 1s linear infinite;border-color:#0000;border-radius:9999px;border-right-color:initial;border-top-color:initial;border-width:2px;display:inline-block;height:1rem;opacity:.9;width:1rem}.recharts-default-tooltip{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;background:#fffffff2!important;border:1px solid #e2e8f080!important;border-radius:12px!important;box-shadow:0 8px 30px #00000014!important;color:#0f0f1a!important;padding:12px 16px!important}.recharts-tooltip-label{color:#0f0f1a!important;font-weight:600!important}.recharts-legend-item-text{color:#64748b!important;font-size:11px!important;font-weight:500!important}.recharts-bar-rectangle{transition:opacity .3s ease}.recharts-bar-rectangle:hover{opacity:.8}@media (max-width:768px){.topbar{padding:.75rem 1rem}.modal-premium{border-radius:20px;margin-left:1rem;margin-right:1rem;max-width:100%}.stat-number{font-size:1.25rem;line-height:1.75rem}.card-premium .card-body,.card-premium .card-header{padding:1rem}}@media (max-width:480px){.topbar-user .user-info{display:none}.sidebar{width:260px}.stat-number{font-size:1.125rem;line-height:1.75rem}}.sidebar{background:linear-gradient(180deg,#14141f,#0a0a12);border-right:1px solid #ffffff0f;display:flex;flex-direction:column;height:100vh}.sidebar-brand{flex-shrink:0;padding:1.5rem}.sidebar-brand-inner{align-items:center;display:flex;gap:.75rem}.sidebar-brand-icon{--tw-text-opacity:1;align-items:center;background:linear-gradient(135deg,#e11d48,#f59e0b);border-radius:16px;box-shadow:0 4px 14px #e11d4859;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));display:flex;flex-shrink:0;font-size:1.125rem;height:2.5rem;justify-content:center;line-height:1.75rem;transition:transform .3s ease;width:2.5rem}.sidebar-brand-icon:hover{transform:scale(1.05) rotate(-3deg)}.sidebar-brand-text h1{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));font-size:1rem;font-weight:700;line-height:1.5rem;line-height:1.25}.sidebar-brand-text h1 span{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1))}.sidebar-brand-text p{color:#ffffff4d;font-size:11px;font-weight:500;letter-spacing:.025em}.sidebar-divider{border-color:#ffffff0f;border-top-width:1px;margin-left:1.5rem;margin-right:1.5rem}.sidebar-menu{flex:1 1;overflow-y:auto;padding:1rem}.sidebar-menu-label{color:#ffffff40;font-size:10px;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;padding-left:.75rem;padding-right:.75rem;text-transform:uppercase}.sidebar-link{border-radius:16px;color:#fff6;font-weight:500;margin:.125rem .25rem;position:relative}.sidebar-link:hover{--tw-translate-x:0.25rem;background-color:#ffffff0f;color:#ffffffe6;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-link.active{background:linear-gradient(135deg,#e11d4838,#f59e0b1a);box-shadow:inset 0 0 0 1px #e11d4840}.sidebar-link i{font-size:15px}.sidebar-link-text{flex:1 1}.sidebar-link-indicator{--tw-bg-opacity:1;background-color:#e11d48;background-color:rgb(225 29 72/var(--tw-bg-opacity,1));border-radius:9999px;height:1.5rem;opacity:0;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.375rem}.sidebar-link.active .sidebar-link-indicator{opacity:1}.sidebar-link-logout{color:#ef5350cc}.sidebar-link-logout:hover{--tw-text-opacity:1!important;background-color:#f443361a!important;color:#ef5350!important;color:rgb(239 83 80/var(--tw-text-opacity,1))!important}.sidebar-footer{flex-shrink:0;padding-bottom:1rem;padding-left:1rem;padding-right:1rem}.sidebar-version{color:#fff3;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:10px;margin-top:.75rem;text-align:center}.topbar{transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:640px){.topbar{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:768px){.topbar{padding-left:2rem;padding-right:2rem}}.topbar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #e2e8f080}.topbar-left h1{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:1rem;font-weight:700;letter-spacing:-.025em;line-height:1.5rem}@media (min-width:640px){.topbar-left h1{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.topbar-left h1{font-size:1.25rem;line-height:1.75rem}}.topbar-left p{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:10px;font-weight:300}@media (min-width:640px){.topbar-left p{font-size:.75rem;line-height:1rem}}.topbar-right{align-items:center;display:flex;gap:.5rem}@media (min-width:640px){.topbar-right{gap:1rem}}.topbar-time{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-radius:.5rem;border-width:1px;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));display:none;font-size:.75rem;font-weight:500;gap:.5rem;line-height:1rem;padding:.375rem .75rem}@media (min-width:640px){.topbar-time{display:flex}}.topbar-time i{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.topbar-separator{background-color:#e2e8f0;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}@media (min-width:640px){.topbar-separator{display:block}}.topbar-user{align-items:center;border-radius:16px;display:flex;gap:.5rem;padding:.375rem .5rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.topbar-user:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.topbar-user{gap:.75rem;padding:.5rem .75rem}}@media (min-width:768px){.topbar-user{padding-left:1rem;padding-right:1rem}}.topbar-user{background:#f8fafccc;border:1px solid #e2e8f080}.topbar-user:hover{background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.topbar-avatar{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));font-size:.75rem;line-height:1rem}@media (min-width:640px){.topbar-avatar{font-size:.875rem;height:2.25rem;line-height:1.25rem;width:2.25rem}}.topbar-avatar{background:linear-gradient(135deg,#e11d48,#f59e0b);transition:transform .3s ease}.topbar-user:hover .topbar-avatar{transform:scale(1.05)}.topbar-user-info{display:none}@media (min-width:640px){.topbar-user-info{display:block}}.topbar-user-name{color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:.75rem;line-height:1rem}@media (min-width:640px){.topbar-user-name{font-size:.875rem;line-height:1.25rem}}.topbar-user-email{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1));font-size:8px}@media (min-width:640px){.topbar-user-email{font-size:10px}}.modal-premium-confirm{max-width:28rem}.modal-confirm-header{--tw-border-opacity:1;align-items:center;border-bottom-width:1px;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));display:flex;gap:.75rem;padding:1rem}@media (min-width:640px){.modal-confirm-header{padding:1.5rem}}.modal-confirm-icon{align-items:center;border-radius:16px;display:flex;font-size:1.125rem;height:2.5rem;justify-content:center;line-height:1.75rem;width:2.5rem}@media (min-width:640px){.modal-confirm-icon{font-size:1.25rem;height:3rem;line-height:1.75rem;width:3rem}}.modal-confirm-icon{background:linear-gradient(135deg,#e11d4826,#f59e0b14)}.modal-confirm-icon i{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.modal-confirm-title{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1));font-size:1rem;font-weight:600;line-height:1.5rem}@media (min-width:640px){.modal-confirm-title{font-size:1.125rem;line-height:1.75rem}}.modal-confirm-body{padding:1rem}@media (min-width:640px){.modal-confirm-body{padding:1.5rem}}.modal-confirm-body p{--tw-text-opacity:1;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem}@media (min-width:640px){.modal-confirm-body p{font-size:1rem;line-height:1.5rem}}.modal-confirm-footer{--tw-border-opacity:1;align-items:center;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1));border-top-width:1px;display:flex;flex-direction:column;gap:.75rem;justify-content:flex-end;padding:1rem}@media (min-width:640px){.modal-confirm-footer{flex-direction:row;padding:1.5rem}}.modal-confirm-footer{background:#f8fafccc}.modal-confirm-footer .btn-premium{width:100%}@media (min-width:640px){.modal-confirm-footer .btn-premium{width:auto}}@media (max-width:1024px){.sidebar{transform:translateX(-100%);transition:transform .3s ease-in-out}.sidebar.open{transform:translateX(0)}}@media (max-width:640px){.topbar-time,.topbar-user-info{display:none}.sidebar{width:260px}}.modal-premium{display:flex;flex-direction:column;max-height:90vh;overflow-y:auto}.modal-premium .body{flex:1 1;overflow-y:auto;padding:1rem 1.5rem}.modal-premium .footer,.modal-premium .header{flex-shrink:0}:root{--supplier-navy:#0f172a;--supplier-blue:#2563eb;--supplier-blue-dark:#1d4ed8;--supplier-border:#e2e8f0;--supplier-muted:#64748b;--supplier-surface:#fff}@keyframes supplierPageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes supplierCardIn{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}@keyframes supplierModalIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.animate-fade-in-up{animation-fill-mode:both}.supplier-page-enter{animation:supplierPageIn .42s ease-out both}.supplier-page{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1480px;padding:4px;width:100%}.supplier-dashboard-hero,.supplier-page-heading{align-items:center;background:linear-gradient(135deg,#fff,#f8fbff 64%,#eff6ff);border:1px solid #dbeafe;border-radius:22px;box-shadow:0 12px 34px #0f172a0f;display:flex;gap:24px;justify-content:space-between;overflow:hidden;padding:26px 28px;position:relative}.supplier-dashboard-hero:after,.supplier-page-heading:after{background:#2563eb14;border-radius:50%;content:"";height:220px;position:absolute;right:-60px;top:-90px;width:220px}.supplier-dashboard-hero h1,.supplier-page-heading h1{color:#0f172a;color:var(--supplier-navy);font-size:clamp(1.45rem,3vw,2.1rem);font-weight:800;letter-spacing:-.035em;line-height:1.15;margin:3px 0 4px}.supplier-dashboard-hero p,.supplier-page-heading p{color:#64748b;color:var(--supplier-muted);font-size:.9rem}.supplier-eyebrow{color:#2563eb;color:var(--supplier-blue);font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.supplier-danger-button,.supplier-primary-button,.supplier-secondary-button,.supplier-success-button,.supplier-warning-button{align-items:center;border:0;border-radius:11px;display:inline-flex;font-size:.82rem;font-weight:700;gap:8px;justify-content:center;min-height:40px;padding:10px 16px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;white-space:nowrap}.supplier-primary-button{background:linear-gradient(135deg,#2563eb,#1d4ed8);background:linear-gradient(135deg,var(--supplier-blue),var(--supplier-blue-dark));box-shadow:0 8px 20px #2563eb38;color:#fff}.supplier-primary-button:hover:not(:disabled),.supplier-success-button:hover:not(:disabled),.supplier-warning-button:hover:not(:disabled){transform:translateY(-2px)}.supplier-secondary-button{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);color:#334155}.supplier-secondary-button:hover{background:#f8fbff;border-color:#bfdbfe;color:#2563eb;color:var(--supplier-blue)}.supplier-success-button{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.supplier-warning-button{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.supplier-danger-button{background:#dc2626;color:#fff}.supplier-danger-link{background:#0000;border:0;color:#dc2626;font-size:.8rem;font-weight:700;padding:8px}.supplier-primary-button:disabled,.supplier-success-button:disabled,.supplier-warning-button:disabled{cursor:wait;opacity:.55}.supplier-metric-grid{grid-gap:16px;display:grid;gap:16px}.supplier-metric-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.supplier-dashboard-metrics,.supplier-metric-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-metric-card{animation:supplierCardIn .5s ease both;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.055);min-height:142px;overflow:hidden;padding:21px;position:relative;transition:transform .25s ease,box-shadow .25s ease}.supplier-metric-card:hover{box-shadow:0 18px 36px #0f172a17;transform:translateY(-4px)}.supplier-metric-card:before{background:#2563eb;background:var(--tone,#2563eb);content:"";inset:0 auto 0 0;position:absolute;width:4px}.supplier-metric-card>span{color:#64748b;color:var(--supplier-muted);display:block;font-size:.75rem;font-weight:700;letter-spacing:.055em;max-width:75%;text-transform:uppercase}.supplier-metric-card>strong{color:#0f172a;color:var(--supplier-navy);display:block;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:800;letter-spacing:-.035em;line-height:1;margin-top:15px}.supplier-metric-card>small{color:#94a3b8;display:block;font-size:.72rem;margin-top:8px}.supplier-metric-card>i{background:color-mix(in srgb,#2563eb 10%,#fff);background:color-mix(in srgb,var(--tone,#2563eb) 10%,#fff);border-radius:13px;color:#2563eb;color:var(--tone,#2563eb);display:grid;font-size:1rem;height:42px;place-items:center;position:absolute;right:18px;top:18px;width:42px}.tone-blue{--tone:#2563eb}.tone-green{--tone:#10b981}.tone-amber{--tone:#f59e0b}.tone-violet{--tone:#7c3aed}.tone-red{--tone:#dc2626}.supplier-panel{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:20px;box-shadow:0 8px 28px #0f172a0d;overflow:hidden}.supplier-panel-header{align-items:center;border-bottom:1px solid #edf2f7;display:flex;gap:18px;justify-content:space-between;min-height:76px;padding:18px 22px}.supplier-panel-header h2{color:#0f172a;color:var(--supplier-navy);font-size:1rem;font-weight:800}.supplier-panel-header p{color:#94a3b8;font-size:.76rem;margin-top:3px}.supplier-panel-count{background:#eff6ff;border-radius:10px;color:#2563eb;color:var(--supplier-blue);display:grid;font-weight:800;height:34px;min-width:34px;padding:0 10px;place-items:center}.supplier-table-wrap{overflow-x:auto;width:100%}.supplier-table{border-collapse:collapse;min-width:760px;width:100%}.supplier-table th{background:#f8fafc;color:#94a3b8;font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:13px 18px;text-align:left;text-transform:uppercase}.supplier-table td{border-top:1px solid #f1f5f9;color:#475569;font-size:.8rem;padding:15px 18px}.supplier-table tbody tr{transition:background .18s ease}.supplier-table tbody tr[tabindex]{cursor:pointer}.supplier-table tbody tr:hover{background:#f8fbff}.supplier-table td strong{color:#1e293b;display:block;font-weight:750}.supplier-table td small{color:#94a3b8;display:block;font-size:.7rem;margin-top:3px}.supplier-status{align-items:center;border-radius:999px;display:inline-flex;font-size:.67rem;font-weight:800;padding:5px 9px}.supplier-status.is-active{background:#ecfdf5;color:#047857}.supplier-status.is-inactive{background:#fffbeb;color:#b45309}.supplier-empty{color:#94a3b8;font-size:.85rem;padding:42px 20px;text-align:center}.supplier-loading{align-items:center;color:#64748b;color:var(--supplier-muted);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:420px}.supplier-refresh-notice{align-items:center;align-self:flex-end;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:.78rem;font-weight:700;gap:8px;padding:8px 12px}.supplier-plan-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-plan-card{animation:supplierCardIn .5s ease both;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:20px;box-shadow:0 8px 26px rgba(15,23,42,.055);display:flex;flex-direction:column;min-height:420px;padding:22px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.supplier-plan-card:hover{box-shadow:0 20px 40px #0f172a1a;transform:translateY(-5px)}.supplier-plan-card.is-published{border-color:#bfdbfe}.supplier-plan-card-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.supplier-plan-card-head h2{color:#0f172a;color:var(--supplier-navy);font-size:1.2rem;font-weight:800;margin-top:10px}.supplier-icon-button{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:10px;color:#64748b;height:37px;transition:.2s ease;width:37px}.supplier-icon-button:hover{background:#eff6ff;border-color:#bfdbfe;color:#2563eb;color:var(--supplier-blue)}.supplier-edit-button{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;box-shadow:0 4px 12px #2563eb14;color:#1d4ed8;display:inline-flex;font-size:.72rem;font-weight:800;gap:7px;justify-content:center;min-height:38px;padding:9px 12px;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.supplier-edit-button:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 9px 20px #2563eb33;color:#fff;transform:translateY(-2px)}.supplier-plan-description{color:#64748b;color:var(--supplier-muted);font-size:.78rem;line-height:1.65;margin-top:14px;min-height:42px}.supplier-plan-volume{background:linear-gradient(135deg,#eff6ff,#f8fafc);border-radius:15px;margin:19px 0;padding:18px}.supplier-plan-volume strong{color:#2563eb;color:var(--supplier-blue);font-size:1.75rem;font-weight:850}.supplier-plan-volume small,.supplier-plan-volume span{color:#64748b;color:var(--supplier-muted);display:block;font-size:.72rem}.supplier-plan-period-list{display:flex;flex-direction:column;gap:8px}.supplier-plan-period-list>div{grid-gap:8px;align-items:center;border:1px solid #f1f5f9;border-radius:10px;color:#64748b;display:grid;font-size:.75rem;gap:8px;grid-template-columns:1fr auto auto;padding:10px 12px}.supplier-plan-period-list strong{color:#1e293b}.supplier-plan-period-list small{color:#059669;font-weight:800}.supplier-plan-card-footer{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:auto;padding-top:20px}.supplier-modal-open{overflow:hidden!important}.modal-premium-overlay,.supplier-modal-overlay{align-items:center!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a9e!important;display:flex!important;height:100dvh!important;inset:0!important;justify-content:center!important;overflow:hidden!important;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))!important;position:fixed!important;width:100vw!important;z-index:10000!important}.modal-premium,.supplier-modal{animation:supplierModalIn .28s ease-out both;background:#fff!important;border:1px solid #ffffffb3!important;border-radius:20px!important;box-shadow:0 32px 90px #0f172a47!important;display:flex!important;flex-direction:column!important;margin:0!important;max-height:calc(100dvh - 32px)!important;max-width:calc(100vw - 32px)!important;overflow:hidden!important;width:min(620px,100%)!important}.supplier-modal-wide{width:min(960px,100%)!important}.supplier-plan-modal{width:min(1040px,100%)!important}.modal-premium>.header,.supplier-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--supplier-border);display:flex;flex:0 0 auto;gap:20px;justify-content:space-between;min-height:76px;padding:18px 22px!important}.supplier-modal-header h2{color:#0f172a;color:var(--supplier-navy);font-size:1.05rem;font-weight:800}.supplier-modal-header p{color:#94a3b8;font-size:.75rem;margin-top:3px}.supplier-modal-close{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:11px;color:#64748b;flex:0 0 auto;height:38px;width:38px}.supplier-modal-close:hover{background:#fff1f2;border-color:#fecdd3;color:#dc2626}.supplier-modal-form{display:flex;flex:1 1;flex-direction:column;min-height:0}.modal-premium .body,.modal-premium .modal-confirm-body,.supplier-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain;padding:22px!important;scrollbar-gutter:stable}.modal-confirm-footer,.modal-premium>.footer,.supplier-modal-footer{align-items:center;background:#f8fafc;border-top:1px solid #e2e8f0;border-top:1px solid var(--supplier-border);display:flex;flex:0 0 auto;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:15px 22px!important}.supplier-actions-footer{justify-content:flex-start}.supplier-form-section+.supplier-form-section{border-top:1px solid #e2e8f0;border-top:1px solid var(--supplier-border);margin-top:24px;padding-top:22px}.supplier-form-section>h3,.supplier-section-title h3{color:#1e293b;font-size:.88rem;font-weight:800;margin-bottom:14px}.supplier-section-title p{color:#94a3b8;font-size:.72rem;margin-bottom:16px;margin-top:-9px}.supplier-form-error{align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;border-radius:11px;color:#b91c1c;display:flex;font-size:.76rem;font-weight:650;gap:10px;line-height:1.45;margin-bottom:18px;padding:12px 14px}.supplier-form-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-form-spaced{margin-top:17px}.supplier-field-full{grid-column:1/-1}.supplier-form-grid label,.supplier-period-fields label{color:#475569;display:flex;flex-direction:column;font-size:.72rem;font-weight:750;gap:7px}.supplier-form-grid input:not([type=checkbox]),.supplier-form-grid select,.supplier-form-grid textarea,.supplier-period-fields input{background:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#0f172a;font:inherit;font-size:.82rem;min-height:43px;outline:0;padding:10px 12px;transition:border .2s ease,box-shadow .2s ease;width:100%}.supplier-form-grid textarea{resize:vertical}.supplier-form-grid input:focus,.supplier-form-grid select:focus,.supplier-form-grid textarea:focus,.supplier-period-fields input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #2563eb1a}.supplier-check-field{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:10px;flex-direction:row!important;min-height:43px;padding:10px 12px}.supplier-check-field input{accent-color:#2563eb;accent-color:var(--supplier-blue);height:17px;width:17px}.supplier-choice-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-choice-row button{align-items:center;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:13px;color:#475569;display:flex;gap:12px;padding:15px;text-align:left}.supplier-choice-row button.selected{background:#eff6ff;border-color:#60a5fa;box-shadow:0 0 0 3px #2563eb14;color:#2563eb;color:var(--supplier-blue)}.supplier-choice-row i{font-size:1.1rem}.supplier-choice-row span{font-size:.8rem;font-weight:800}.supplier-choice-row small{color:#94a3b8;display:block;font-size:.67rem;font-weight:500;margin-top:2px}.supplier-price-summary{grid-gap:12px;background:#f8fafc;border-radius:12px;display:grid;gap:12px;grid-column:1/-1;grid-template-columns:repeat(2,1fr);padding:14px}.supplier-price-summary span{color:#64748b;font-size:.72rem}.supplier-price-summary strong{color:#0f172a;display:block;font-size:1rem;margin-top:4px}.supplier-calculated-field{background:#eff6ff;border-radius:10px;display:flex;flex-direction:column;justify-content:center;min-height:66px;padding:11px 13px}.supplier-calculated-field span{color:#64748b;font-size:.7rem}.supplier-calculated-field strong{color:#2563eb;color:var(--supplier-blue);font-size:1rem;margin-top:4px}.supplier-detail-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-detail-grid>div{background:#f8fafc;border:1px solid #edf2f7;border-radius:12px;padding:14px}.supplier-detail-grid span{color:#94a3b8;display:block;font-size:.67rem;letter-spacing:.05em;text-transform:uppercase}.supplier-detail-grid strong{color:#1e293b;display:block;font-size:.82rem;margin-top:6px}.supplier-period-grid{grid-gap:13px;display:grid;gap:13px;grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-period-card{background:#f8fafc;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);border-radius:14px;min-height:98px;padding:15px;transition:.2s ease}.supplier-period-card.enabled{background:#fff;border-color:#bfdbfe;box-shadow:0 8px 20px #2563eb0f}.supplier-period-card-head{align-items:center;display:flex;gap:12px;justify-content:space-between}.supplier-period-card-head strong{color:#1e293b;display:block;font-size:.8rem}.supplier-period-card-head small{color:#94a3b8;font-size:.65rem}.supplier-switch input{opacity:0;pointer-events:none;position:absolute}.supplier-switch span{background:#cbd5e1;border-radius:999px;display:block;height:22px;padding:3px;transition:.2s ease;width:38px}.supplier-switch span:after{background:#fff;border-radius:50%;box-shadow:0 2px 5px #0f172a33;content:"";display:block;height:16px;transition:.2s ease;width:16px}.supplier-switch input:checked+span{background:#2563eb;background:var(--supplier-blue)}.supplier-switch input:checked+span:after{transform:translateX(16px)}.supplier-period-fields{border-top:1px solid #edf2f7;display:flex;flex-direction:column;gap:11px;margin-top:15px;padding-top:14px}.supplier-period-total{align-items:center;background:#eff6ff;border-radius:9px;color:#64748b;display:flex;font-size:.7rem;justify-content:space-between;padding:10px}.supplier-period-total strong{color:#2563eb;color:var(--supplier-blue);font-size:.82rem}.supplier-hero-actions{align-items:center;display:flex;gap:12px;position:relative;z-index:1}.supplier-hero-actions button,.supplier-hero-actions span{border-radius:10px;font-size:.72rem;font-weight:700;padding:9px 12px}.supplier-hero-actions span{background:#ecfdf5;color:#047857}.supplier-hero-actions span i{font-size:.45rem;margin-right:5px}.supplier-hero-actions button{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--supplier-border);color:#334155}.supplier-dashboard-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr)}.supplier-chart-panel{min-width:0}.supplier-chart{height:300px;padding:14px;position:relative}.supplier-chart-wide{height:340px}.supplier-donut{height:240px;padding:0}.supplier-donut-center{inset:50% auto auto 50%;pointer-events:none;position:absolute;text-align:center;transform:translate(-50%,-50%)}.supplier-donut-center strong{color:#0f172a;display:block;font-size:1.55rem}.supplier-donut-center span{color:#94a3b8;font-size:.7rem}.supplier-chart-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:0 15px 18px}.supplier-chart-legend span{align-items:center;color:#64748b;display:flex;font-size:.7rem;gap:6px}.supplier-chart-legend i{border-radius:50%;height:8px;width:8px}.supplier-chart-legend strong{color:#1e293b}.supplier-inline-actions{align-items:center;display:flex;gap:5px}.card-premium{border:1px solid #e2e8f0!important;border:1px solid var(--supplier-border)!important;border-radius:18px!important;box-shadow:0 8px 26px #0f172a0d!important;transition:transform .24s ease,box-shadow .24s ease!important}.card-premium:hover{box-shadow:0 16px 34px #0f172a14!important}.btn-premium-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important}.page-title{color:#0f172a!important;color:var(--supplier-navy)!important}@media (max-width:1100px){.supplier-dashboard-metrics,.supplier-metric-grid-four,.supplier-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-dashboard-grid{grid-template-columns:1fr}}@media (max-width:700px){.supplier-page{gap:16px;padding:0}.supplier-dashboard-hero,.supplier-page-heading{align-items:stretch;flex-direction:column;padding:20px}.supplier-page-heading .supplier-primary-button{width:100%}.supplier-dashboard-metrics,.supplier-metric-grid-four,.supplier-metric-grid-three{gap:10px;grid-template-columns:1fr 1fr}.supplier-metric-card{min-height:124px;padding:16px}.supplier-metric-card>i{height:36px;right:13px;top:13px;width:36px}.supplier-metric-card>strong{font-size:1.3rem;margin-top:13px}.supplier-plan-grid{grid-template-columns:1fr}.supplier-plan-card{min-height:0}.supplier-panel-header{align-items:flex-start;flex-direction:column;padding:16px}.supplier-panel-header .supplier-secondary-button{width:100%}.modal-premium-overlay,.supplier-modal-overlay{align-items:flex-end!important;padding:8px!important}.modal-premium,.supplier-modal{border-radius:18px 18px 12px 12px!important;max-height:calc(100dvh - 16px)!important;max-width:100%!important}.supplier-modal-header{min-height:68px;padding:15px 16px!important}.modal-premium .body,.supplier-modal-body{padding:16px!important}.supplier-modal-footer{padding:12px 16px!important}.supplier-modal-footer>button{flex:1 1 140px}.supplier-choice-row,.supplier-detail-grid,.supplier-form-grid,.supplier-period-grid{grid-template-columns:1fr}.supplier-field-full,.supplier-price-summary{grid-column:auto}.supplier-period-card{min-height:0}.supplier-actions-footer{display:grid;grid-template-columns:repeat(2,1fr)}.supplier-actions-footer>button{width:100%}.supplier-hero-actions{align-items:stretch;flex-direction:column}.supplier-chart{height:260px}.supplier-chart-wide{height:300px}.supplier-table td,.supplier-table th{padding:12px}}@media (max-width:420px){.supplier-dashboard-metrics,.supplier-metric-grid-four,.supplier-metric-grid-three{grid-template-columns:1fr}.supplier-metric-card{min-height:112px}.supplier-actions-footer,.supplier-price-summary{grid-template-columns:1fr}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.supplier-shell{background:#f4f7fb;color:#172033;min-height:100vh}.supplier-content{margin-left:280px;min-height:100vh;min-width:0;transition:margin-left .22s ease}.supplier-main{margin:0 auto;max-width:1600px;padding:2rem;width:100%}.supplier-sidebar-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;border:0;inset:0;position:fixed;z-index:45}.topbar-menu-button{align-items:center;background:#fff;border:1px solid #dbe3ef;border-radius:12px;color:#334155;display:none;flex:0 0 40px;height:40px;justify-content:center;transition:background .16s ease,border-color .16s ease;width:40px}.topbar-menu-button:hover{background:#f1f5f9;border-color:#cbd5e1}.hamburger-lines{display:flex;flex-direction:column;height:16px;justify-content:space-between;width:20px}.hamburger-lines>span{background:currentColor;border-radius:999px;box-shadow:0 0 0 .2px currentColor;display:block;height:2px;width:100%}.sidebar{background:linear-gradient(180deg,#0f172a,#111c32);box-shadow:12px 0 36px #0f172a1f}.login-brand-icon,.sidebar-brand-icon,.topbar-avatar{background:linear-gradient(135deg,#2563eb,#0f766e);box-shadow:0 8px 24px #2563eb38}.login-brand-accent,.login-brand-feature i,.sidebar-brand-text h1 span{color:#5eead4}.sidebar-link.active{background:#2563eb38;box-shadow:inset 0 0 0 1px #60a5fa4d}.sidebar-link-indicator{background:#5eead4}.login-page{background:#0f172a}.login-brand{background:linear-gradient(155deg,#0f172a,#172554)}.login-submit{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 22px #2563eb38}.login-submit:hover:not(:disabled){box-shadow:0 12px 30px #2563eb47}.login-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}@media (max-width:1024px){.supplier-content{margin-left:0}.supplier-main{padding:1.25rem}.topbar-menu-button{display:inline-flex}.sidebar{z-index:50}}@media (max-width:640px){.supplier-main{padding:1rem}.topbar{gap:.75rem;padding:.75rem 1rem}.topbar-left{flex:1 1;min-width:0}.topbar-left h1,.topbar-left p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-main .grid-cols-2,.supplier-main .grid-cols-3,.supplier-main .grid-cols-4{grid-template-columns:minmax(0,1fr)}.table-premium td,.table-premium th{padding:.75rem}.modal-premium-overlay{align-items:flex-end;padding:0}.modal-premium{border-radius:20px 20px 0 0;margin:0;max-height:92vh;width:100%}.login-page{align-items:stretch;padding:0}.login-container{border-radius:0;min-height:100vh}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,sans-serif;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box;margin:0;padding:0}body{--tw-bg-opacity:1;--tw-text-opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1));font-family:Inter,system-ui,sans-serif;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:.5rem}::-webkit-scrollbar-track{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}::-webkit-scrollbar-thumb{--tw-bg-opacity:1;background-color:#6366f1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1));border-radius:9999px}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity:1;background-color:#4338ca;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.card{--tw-bg-opacity:1;--tw-shadow:0 4px 20px #0000000f;--tw-shadow-colored:0 4px 20px var(--tw-shadow-color);background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:20px;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.card,.card:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.card:hover{--tw-translate-y:-0.25rem;--tw-shadow:0 8px 40px #1a237e1f;--tw-shadow-colored:0 8px 40px var(--tw-shadow-color);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.card-body{padding:1rem}@media (min-width:768px){.card-body{padding:1.5rem}}.btn{align-items:center;border-radius:16px;border-style:none;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;line-height:1.25rem;padding:.5rem 1rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:768px){.btn{padding:.625rem 1.5rem}}.btn-primary{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#312e81;background-color:rgb(49 46 129/var(--tw-bg-opacity,1));color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-primary:hover{--tw-translate-y:-0.125rem;--tw-bg-opacity:1;--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color);--tw-shadow-color:#6366f140;--tw-shadow:var(--tw-shadow-colored);background-color:#3730a3;background-color:rgb(55 48 163/var(--tw-bg-opacity,1));box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-ghost{--tw-text-opacity:1;background-color:initial;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.btn-ghost:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1));color:#312e81;color:rgb(49 46 129/var(--tw-text-opacity,1))}.btn-sm{font-size:.75rem;line-height:1rem;padding:.25rem .75rem}@media (min-width:768px){.btn-sm{padding:.375rem 1rem}}.btn-lg{font-size:1rem;line-height:1.5rem;padding:.75rem 1.5rem}@media (min-width:768px){.btn-lg{padding:.875rem 2rem}}.btn-block{justify-content:center;width:100%}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:disabled:hover{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:none}.form-group{margin-bottom:1rem}@media (min-width:768px){.form-group{margin-bottom:1.25rem}}.form-label{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1));display:block;font-weight:500;margin-bottom:.375rem}.form-input,.form-label{font-size:.875rem;line-height:1.25rem}.form-input{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1));border-radius:16px;border-width:2px;padding:.5rem .75rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-input:focus{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:#6366f126;border-color:#6366f1;border-color:rgb(99 102 241/var(--tw-border-opacity,1));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}@media (min-width:768px){.form-input{padding:.625rem 1rem}}.form-select{--tw-border-opacity:1;--tw-bg-opacity:1;-webkit-appearance:none;appearance:none;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1));border-radius:16px;border-width:2px;font-size:.875rem;line-height:1.25rem;padding:.5rem .75rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.form-select:focus{--tw-border-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:#6366f126;border-color:#6366f1;border-color:rgb(99 102 241/var(--tw-border-opacity,1));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}@media (min-width:768px){.form-select{padding:.625rem 1rem}}.form-input:disabled,.form-select:disabled{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));cursor:not-allowed;opacity:.6}.table{font-size:.875rem;line-height:1.25rem;width:100%}.table thead{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#312e81;background-color:rgb(49 46 129/var(--tw-bg-opacity,1));color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.table th{font-size:.75rem;font-weight:600;letter-spacing:.05em;line-height:1rem;padding:.5rem .75rem;text-align:left;text-transform:uppercase;white-space:nowrap}@media (min-width:768px){.table th{padding:.75rem 1rem}}.table td{--tw-border-opacity:1;border-bottom-width:1px;border-color:#f3f4f6;border-color:rgb(243 244 246/var(--tw-border-opacity,1));padding:.5rem .75rem;white-space:nowrap}@media (min-width:768px){.table td{padding:.75rem 1rem}}.table tbody tr{transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.table tbody tr:hover{background-color:#eef2ff80}.table tbody tr:last-child td{border-bottom-width:0}.modal-overlay{--tw-backdrop-blur:blur(4px);align-items:flex-end;animation:fadeIn .5s ease-in-out;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);background-color:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:50}@media (min-width:768px){.modal-overlay{align-items:center}}.modal-overlay{padding:0}.modal-content{--tw-bg-opacity:1;--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);animation:slideUp .4s ease-out;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);max-height:92vh;max-width:42rem;overflow-y:auto;width:100%}@media (min-width:768px){.modal-content{border-radius:20px;max-height:90vh}}.modal-content{margin:0}@media (min-width:768px){.modal-content{border-radius:1.5rem;margin:1rem}}.modal-header{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-bottom-width:1px;border-color:#f3f4f6;border-color:rgb(243 244 246/var(--tw-border-opacity,1));border-top-left-radius:20px;border-top-right-radius:20px;display:flex;justify-content:space-between;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}@media (min-width:768px){.modal-header{padding:1.5rem}}.modal-body{padding:1rem}@media (min-width:768px){.modal-body{padding:1.5rem}}.modal-footer{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));border-bottom-left-radius:20px;border-bottom-right-radius:20px;border-color:#f3f4f6;border-color:rgb(243 244 246/var(--tw-border-opacity,1));border-top-width:1px;bottom:0;display:flex;flex-direction:column;gap:.75rem;justify-content:flex-end;padding:1rem;position:-webkit-sticky;position:sticky}@media (min-width:768px){.modal-footer{flex-direction:row;padding:1.5rem}}.modal-footer .btn{width:100%}@media (min-width:768px){.modal-footer .btn{width:auto}}.loader{--tw-border-opacity:1;animation:spin 1s linear infinite;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1));border-radius:9999px;border-top-color:#312e81;border-top-color:rgb(49 46 129/var(--tw-border-opacity,1));border-width:4px;height:2.5rem;width:2.5rem}.loader-sm{border-width:2px;height:1.25rem;width:1.25rem}@media (min-width:768px){.loader-sm{height:1.5rem;width:1.5rem}}.stat-number{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1));font-size:1.5rem;font-weight:700;line-height:2rem}@media (min-width:768px){.stat-number{font-size:1.875rem;line-height:2.25rem}}.stat-label{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1));font-size:.75rem;line-height:1rem}@media (min-width:768px){.stat-label{font-size:.875rem;line-height:1.25rem}}.alert{align-items:flex-start;border-radius:16px;display:flex;font-size:.875rem;gap:.75rem;line-height:1.25rem;padding:.75rem}@media (min-width:768px){.alert{padding:1rem}}.alert-danger{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#ffebee;background-color:rgb(255 235 238/var(--tw-bg-opacity,1));border-color:#ef9a9a;border-color:rgb(239 154 154/var(--tw-border-opacity,1));border-width:1px;color:#880e4f;color:rgb(136 14 79/var(--tw-text-opacity,1))}.empty-state{padding-bottom:2rem;padding-top:2rem;text-align:center}@media (min-width:768px){.empty-state{padding-bottom:3rem;padding-top:3rem}}.empty-state-icon{--tw-text-opacity:1;color:#d1d5db;color:rgb(209 213 219/var(--tw-text-opacity,1));font-size:2.25rem;line-height:2.5rem;margin-bottom:1rem}@media (min-width:768px){.empty-state-icon{font-size:3rem;line-height:1}}.empty-state-title{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1));font-size:1rem;font-weight:600;line-height:1.5rem}@media (min-width:768px){.empty-state-title{font-size:1.125rem;line-height:1.75rem}}.empty-state-description{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;margin-top:.25rem}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-\[-30\%\]{bottom:-30%}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.left-4{left:1rem}.left-\[-20\%\]{left:-20%}.right-0{right:0}.right-3{right:.75rem}.right-\[-20\%\]{right:-20%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[-30\%\]{top:-30%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-14{margin-left:3.5rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[70px\]{height:70px}.h-full{height:100%}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.min-h-\[70px\]{min-height:70px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.min-w-\[150px\]{min-width:150px}.min-w-\[220px\]{min-width:220px}.min-w-\[40px\]{min-width:40px}.min-w-\[80px\]{min-width:80px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[100px\]{max-width:100px}.max-w-\[400px\]{max-width:400px}.max-w-\[80px\]{max-width:80px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.-translate-y-1\.5{--tw-translate-y:-0.375rem}.-translate-y-1\.5,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x:0.5rem}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-110,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:#f3f4f6;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.divide-gray-50>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:#f9fafb;border-color:rgb(249 250 251/var(--tw-divide-opacity,1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:20px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:16px}.rounded-b-2xl{border-bottom-left-radius:20px;border-bottom-right-radius:20px}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity:1;border-color:#fde68a;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:#fbbf24;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-amber-500{--tw-border-opacity:1;border-color:#f59e0b;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:#bfdbfe;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:#60a5fa;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-cyan-200{--tw-border-opacity:1;border-color:#a5f3fc;border-color:rgb(165 243 252/var(--tw-border-opacity,1))}.border-cyan-400{--tw-border-opacity:1;border-color:#22d3ee;border-color:rgb(34 211 238/var(--tw-border-opacity,1))}.border-emerald-200{--tw-border-opacity:1;border-color:#a7f3d0;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-emerald-400{--tw-border-opacity:1;border-color:#34d399;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:#f3f4f6;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:#9ca3af;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-gray-50{--tw-border-opacity:1;border-color:#f9fafb;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-gray-500{--tw-border-opacity:1;border-color:#6b7280;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:#bbf7d0;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:#4ade80;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-indigo-100{--tw-border-opacity:1;border-color:#e0e7ff;border-color:rgb(224 231 255/var(--tw-border-opacity,1))}.border-indigo-100\/50{border-color:#e0e7ff80}.border-indigo-200{--tw-border-opacity:1;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-indigo-500{--tw-border-opacity:1;border-color:#6366f1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:#fed7aa;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-400{--tw-border-opacity:1;border-color:#fb923c;border-color:rgb(251 146 60/var(--tw-border-opacity,1))}.border-orange-500{--tw-border-opacity:1;border-color:#f97316;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-pink-200{--tw-border-opacity:1;border-color:#fbcfe8;border-color:rgb(251 207 232/var(--tw-border-opacity,1))}.border-pink-400{--tw-border-opacity:1;border-color:#f472b6;border-color:rgb(244 114 182/var(--tw-border-opacity,1))}.border-purple-200{--tw-border-opacity:1;border-color:#e9d5ff;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.border-purple-400{--tw-border-opacity:1;border-color:#c084fc;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-purple-500{--tw-border-opacity:1;border-color:#a855f7;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:#ef5350;border-color:rgb(239 83 80/var(--tw-border-opacity,1))}.border-red-500\/20{border-color:#f4433633}.border-rose-200{--tw-border-opacity:1;border-color:#fecdd3;border-color:rgb(254 205 211/var(--tw-border-opacity,1))}.border-rose-500{--tw-border-opacity:1;border-color:#f43f5e;border-color:rgb(244 63 94/var(--tw-border-opacity,1))}.border-sky-200{--tw-border-opacity:1;border-color:#bae6fd;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-violet-200{--tw-border-opacity:1;border-color:#ddd6fe;border-color:rgb(221 214 254/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.border-white\/20{border-color:#fff3}.border-white\/30{border-color:#ffffff4d}.border-t-indigo-600{--tw-border-opacity:1;border-top-color:#4f46e5;border-top-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-t-white{--tw-border-opacity:1;border-top-color:#fff;border-top-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-\[\#0a0a12\]{--tw-bg-opacity:1;background-color:#0a0a12;background-color:rgb(10 10 18/var(--tw-bg-opacity,1))}.bg-\[\#e11d48\]{--tw-bg-opacity:1;background-color:#e11d48;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.bg-amber-100{--tw-bg-opacity:1;background-color:#fef3c7;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:#fbbf24;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:#fffbeb;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:#f59e0b;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-blue-100{--tw-bg-opacity:1;background-color:#dbeafe;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:#3b82f6;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:#cffafe;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-emerald-100{--tw-bg-opacity:1;background-color:#d1fae5;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:#34d399;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:#ecfdf5;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-500{--tw-bg-opacity:1;background-color:#10b981;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:#059669;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-500{--tw-bg-opacity:1;background-color:#6b7280;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-700{--tw-bg-opacity:1;background-color:#374151;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:#dcfce7;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-indigo-100{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-indigo-400{--tw-bg-opacity:1;background-color:#818cf8;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-50\/50{background-color:#eef2ff80}.bg-indigo-500{--tw-bg-opacity:1;background-color:#6366f1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-indigo-600{--tw-bg-opacity:1;background-color:#4f46e5;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:#ffedd5;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:#fff7ed;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-pink-100{--tw-bg-opacity:1;background-color:#fce7f3;background-color:rgb(252 231 243/var(--tw-bg-opacity,1))}.bg-pink-50{--tw-bg-opacity:1;background-color:#fdf2f8;background-color:rgb(253 242 248/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:#f3e8ff;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:#faf5ff;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:#a855f7;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:#ffcdd2;background-color:rgb(255 205 210/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:#ffebee;background-color:rgb(255 235 238/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:#f44336;background-color:rgb(244 67 54/var(--tw-bg-opacity,1))}.bg-red-500\/10{background-color:#f443361a}.bg-red-600{--tw-bg-opacity:1;background-color:#e53935;background-color:rgb(229 57 53/var(--tw-bg-opacity,1))}.bg-rose-100{--tw-bg-opacity:1;background-color:#ffe4e6;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.bg-rose-400{--tw-bg-opacity:1;background-color:#fb7185;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-50{--tw-bg-opacity:1;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.bg-rose-500{--tw-bg-opacity:1;background-color:#f43f5e;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:#fff3}.bg-white\/5{background-color:#ffffff0d}.bg-white\/\[0\.02\]{background-color:#ffffff05}.bg-yellow-50{--tw-bg-opacity:1;background-color:#fefce8;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:#fffbeb var(--tw-gradient-from-position);--tw-gradient-to:#fffbeb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-amber-500{--tw-gradient-from:#f59e0b var(--tw-gradient-from-position);--tw-gradient-to:#f59e0b00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:#eff6ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600\/20{--tw-gradient-from:#2563eb33 var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-50{--tw-gradient-from:#ecfeff var(--tw-gradient-from-position);--tw-gradient-to:#ecfeff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from:#ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to:#ecfdf500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from:#10b981 var(--tw-gradient-from-position);--tw-gradient-to:#10b98100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from:#f9fafb var(--tw-gradient-from-position);--tw-gradient-to:#f9fafb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-50{--tw-gradient-from:#f0fdf4 var(--tw-gradient-from-position);--tw-gradient-to:#f0fdf400 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:#22c55e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-100\/20{--tw-gradient-from:#e0e7ff33 var(--tw-gradient-from-position);--tw-gradient-to:#e0e7ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-100\/30{--tw-gradient-from:#e0e7ff4d var(--tw-gradient-from-position);--tw-gradient-to:#e0e7ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-400{--tw-gradient-from:#818cf8 var(--tw-gradient-from-position);--tw-gradient-to:#818cf800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-400\/0{--tw-gradient-from:#818cf800 var(--tw-gradient-from-position);--tw-gradient-to:#818cf800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-50{--tw-gradient-from:#eef2ff var(--tw-gradient-from-position);--tw-gradient-to:#eef2ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-50\/0{--tw-gradient-from:#eef2ff00 var(--tw-gradient-from-position);--tw-gradient-to:#eef2ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from:#6366f1 var(--tw-gradient-from-position);--tw-gradient-to:#6366f100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from:#4f46e5 var(--tw-gradient-from-position);--tw-gradient-to:#4f46e500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-600\/30{--tw-gradient-from:#4f46e54d var(--tw-gradient-from-position);--tw-gradient-to:#4f46e500 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-50{--tw-gradient-from:#fff7ed var(--tw-gradient-from-position);--tw-gradient-to:#fff7ed00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from:#f97316 var(--tw-gradient-from-position);--tw-gradient-to:#f9731600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-50{--tw-gradient-from:#fdf2f8 var(--tw-gradient-from-position);--tw-gradient-to:#fdf2f800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from:#ec4899 var(--tw-gradient-from-position);--tw-gradient-to:#ec489900 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-50{--tw-gradient-from:#faf5ff var(--tw-gradient-from-position);--tw-gradient-to:#faf5ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500{--tw-gradient-from:#f44336 var(--tw-gradient-from-position);--tw-gradient-to:#f4433600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-rose-50{--tw-gradient-from:#fff1f2 var(--tw-gradient-from-position);--tw-gradient-to:#fff1f200 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-rose-500{--tw-gradient-from:#f43f5e var(--tw-gradient-from-position);--tw-gradient-to:#f43f5e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-50{--tw-gradient-from:#f0f9ff var(--tw-gradient-from-position);--tw-gradient-to:#f0f9ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-violet-50{--tw-gradient-from:#f5f3ff var(--tw-gradient-from-position);--tw-gradient-to:#f5f3ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-yellow-500{--tw-gradient-from:#eab308 var(--tw-gradient-from-position);--tw-gradient-to:#eab30800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-indigo-400\/30{--tw-gradient-to:#818cf800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#818cf84d var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-50\/0{--tw-gradient-to:#eef2ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eef2ff00 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white{--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-amber-100{--tw-gradient-to:#fef3c7 var(--tw-gradient-to-position)}.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-blue-100{--tw-gradient-to:#dbeafe var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-cyan-100{--tw-gradient-to:#cffafe var(--tw-gradient-to-position)}.to-emerald-100{--tw-gradient-to:#d1fae5 var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to:#059669 var(--tw-gradient-to-position)}.to-gray-100{--tw-gradient-to:#f3f4f6 var(--tw-gradient-to-position)}.to-green-100{--tw-gradient-to:#dcfce7 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-indigo-100{--tw-gradient-to:#e0e7ff var(--tw-gradient-to-position)}.to-indigo-100\/0{--tw-gradient-to:#e0e7ff00 var(--tw-gradient-to-position)}.to-indigo-200\/10{--tw-gradient-to:#c7d2fe1a var(--tw-gradient-to-position)}.to-indigo-400\/0{--tw-gradient-to:#818cf800 var(--tw-gradient-to-position)}.to-indigo-50\/50{--tw-gradient-to:#eef2ff80 var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to:#4f46e5 var(--tw-gradient-to-position)}.to-indigo-600\/30{--tw-gradient-to:#4f46e54d var(--tw-gradient-to-position)}.to-indigo-700{--tw-gradient-to:#4338ca var(--tw-gradient-to-position)}.to-orange-100{--tw-gradient-to:#ffedd5 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to:#ea580c var(--tw-gradient-to-position)}.to-pink-100{--tw-gradient-to:#fce7f3 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to:#db2777 var(--tw-gradient-to-position)}.to-purple-100{--tw-gradient-to:#f3e8ff var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-purple-600\/20{--tw-gradient-to:#9333ea33 var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#e53935 var(--tw-gradient-to-position)}.to-rose-100{--tw-gradient-to:#ffe4e6 var(--tw-gradient-to-position)}.to-rose-600{--tw-gradient-to:#e11d48 var(--tw-gradient-to-position)}.to-sky-100{--tw-gradient-to:#e0f2fe var(--tw-gradient-to-position)}.to-violet-100{--tw-gradient-to:#ede9fe var(--tw-gradient-to-position)}.to-yellow-600{--tw-gradient-to:#ca8a04 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-12{padding:3rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-4{padding-bottom:1rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#0f0f1a\]{--tw-text-opacity:1;color:#0f0f1a;color:rgb(15 15 26/var(--tw-text-opacity,1))}.text-\[\#94a3b8\]{--tw-text-opacity:1;color:#94a3b8;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-\[\#e11d48\]{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:#f59e0b;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:#d97706;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:#b45309;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:#92400e;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:#1d4ed8;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:#1e40af;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-700{--tw-text-opacity:1;color:#0e7490;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-cyan-800{--tw-text-opacity:1;color:#155e75;color:rgb(21 94 117/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:#34d399;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:#10b981;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:#059669;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:#047857;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:#065f46;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:#d1d5db;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:#16a34a;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:#15803d;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:#166534;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:#818cf8;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-indigo-500{--tw-text-opacity:1;color:#6366f1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:#f97316;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:#ea580c;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:#c2410c;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-800{--tw-text-opacity:1;color:#9a3412;color:rgb(154 52 18/var(--tw-text-opacity,1))}.text-pink-700{--tw-text-opacity:1;color:#be185d;color:rgb(190 24 93/var(--tw-text-opacity,1))}.text-pink-800{--tw-text-opacity:1;color:#9d174d;color:rgb(157 23 77/var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:#a855f7;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:#9333ea;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:#7e22ce;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:#6b21a8;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:#e57373;color:rgb(229 115 115/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:#ef5350;color:rgb(239 83 80/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:#f44336;color:rgb(244 67 54/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#e53935;color:rgb(229 57 53/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:#880e4f;color:rgb(136 14 79/var(--tw-text-opacity,1))}.text-rose-500{--tw-text-opacity:1;color:#f43f5e;color:rgb(244 63 94/var(--tw-text-opacity,1))}.text-rose-600{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-rose-700{--tw-text-opacity:1;color:#be123c;color:rgb(190 18 60/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:#0369a1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-violet-700{--tw-text-opacity:1;color:#6d28d9;color:rgb(109 40 217/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/20{color:#fff3}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/60{color:#fff9}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-white\/20::placeholder{color:#fff3}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-\[0\.03\]{opacity:.03}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-\[0_30px_80px_rgba\(0\2c 0\2c 0\2c 0\.6\)\]{--tw-shadow:0 30px 80px #0009;--tw-shadow-colored:0 30px 80px var(--tw-shadow-color)}.shadow-\[0_30px_80px_rgba\(0\2c 0\2c 0\2c 0\.6\)\],.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-emerald-100{--tw-shadow-color:#d1fae5;--tw-shadow:var(--tw-shadow-colored)}.shadow-emerald-200{--tw-shadow-color:#a7f3d0;--tw-shadow:var(--tw-shadow-colored)}.shadow-indigo-100{--tw-shadow-color:#e0e7ff;--tw-shadow:var(--tw-shadow-colored)}.shadow-indigo-200{--tw-shadow-color:#c7d2fe;--tw-shadow:var(--tw-shadow-colored)}.shadow-indigo-500\/25{--tw-shadow-color:#6366f140;--tw-shadow:var(--tw-shadow-colored)}.shadow-rose-100{--tw-shadow-color:#ffe4e6;--tw-shadow:var(--tw-shadow-colored)}.shadow-rose-200{--tw-shadow-color:#fecdd3;--tw-shadow:var(--tw-shadow-colored)}.blur-2xl{--tw-blur:blur(40px)}.blur-2xl,.blur-3xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-3xl{--tw-blur:blur(64px)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.sidebar{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:#1e1b4b;background-color:rgb(30 27 75/var(--tw-bg-opacity,1));color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));height:100%;left:0;overflow-y:auto;position:fixed;top:0;transform:translateX(-100%);transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:280px;z-index:50}.sidebar.open{transform:translateX(0)}@media (min-width:1024px){.sidebar{transform:translateX(0)}}.sidebar-link{align-items:center;border-color:#0000;border-left-width:3px;color:#ffffffb3;display:flex;font-size:.875rem;gap:.75rem;line-height:1.25rem;padding:.75rem 1rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-link:hover{--tw-text-opacity:1;background-color:#ffffff1a;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:768px){.sidebar-link{padding:.875rem 1.5rem}}.sidebar-link.active{--tw-border-opacity:1;--tw-text-opacity:1;background-color:#ffffff1a;border-color:#f59e0b;border-color:rgb(245 158 11/var(--tw-border-opacity,1));border-left-width:3px;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.sidebar-link i{text-align:center;width:1.25rem}.sidebar-overlay{animation:fadeIn .5s ease-in-out;background-color:#00000080;inset:0;position:fixed;z-index:40}@media (min-width:1024px){.sidebar-overlay{display:none}}.sidebar-toggle{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);--tw-shadow-color:#00000080;--tw-shadow:var(--tw-shadow-colored);align-items:center;background-color:#312e81;background-color:rgb(49 46 129/var(--tw-bg-opacity,1));border-color:#ffffff1a;border-radius:9999px;border-width:1px;bottom:1.5rem;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1));display:flex;font-size:1.125rem;height:3rem;justify-content:center;line-height:1.75rem;position:fixed;right:1.5rem;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:3rem;z-index:50}.sidebar-toggle:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:768px){.sidebar-toggle{font-size:1.25rem;height:3.5rem;line-height:1.75rem;width:3.5rem}}@media (min-width:1024px){.sidebar-toggle{display:none}}.topbar{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-bottom-width:1px;border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1));display:flex;justify-content:space-between;padding:.75rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:40}@media (min-width:768px){.topbar{padding:1rem 2rem}}.topbar-title{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1));font-size:1rem;font-weight:700;line-height:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:768px){.topbar-title{font-size:1.25rem;line-height:1.75rem}}.topbar-subtitle{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1));display:none;font-size:.75rem;line-height:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:640px){.topbar-subtitle{display:block}}.topbar-user-name{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1));display:none;font-size:.875rem;font-weight:600;line-height:1.25rem;line-height:1.25}@media (min-width:768px){.topbar-user-name{display:block}}.topbar-user-role{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1));display:none;font-size:10px;font-weight:500}@media (min-width:768px){.topbar-user-role{display:block}}.topbar-avatar{align-items:center;border-radius:16px;display:flex;font-size:.875rem;font-weight:700;height:2rem;justify-content:center;line-height:1.25rem;width:2rem}@media (min-width:768px){.topbar-avatar{height:2.5rem;width:2.5rem}}.topbar-annee{align-items:center;border-radius:.5rem;border-width:1px;display:none;gap:.5rem;padding:.375rem .75rem}@media (min-width:768px){.topbar-annee{display:flex}}.topbar-ecole{align-items:center;border-radius:.5rem;border-width:1px;display:none;gap:.5rem;padding:.375rem .75rem}@media (min-width:1024px){.topbar-ecole{display:flex}}.topbar-separator{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1));display:none;height:2rem;width:1px}@media (min-width:768px){.topbar-separator{display:block}}.main-content{flex:1 1;margin-left:0;min-height:100vh;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}@media (min-width:1024px){.main-content{margin-left:280px;width:calc(100% - 280px)}}.page-container{margin-left:auto;margin-right:auto;max-width:80rem;padding:1rem .75rem}@media (min-width:768px){.page-container{padding:1.5rem}}.page-header{border-radius:16px;margin-bottom:1.5rem;overflow:hidden;padding:1rem;position:relative}@media (min-width:768px){.page-header{border-radius:20px;margin-bottom:2rem;padding:2rem}}.page-title{font-size:1.25rem;font-weight:700;line-height:1.75rem}@media (min-width:768px){.page-title{font-size:1.875rem;line-height:2.25rem}}.page-subtitle{color:#fff9;font-size:.75rem;line-height:1rem;margin-top:.25rem}@media (min-width:768px){.page-subtitle{font-size:.875rem;line-height:1.25rem}}.grid-cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.grid-cards{gap:1.25rem}}@media (min-width:1024px){.grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.grid-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}.grid-kpi{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:768px){.grid-kpi{gap:1rem}}@media (min-width:1024px){.grid-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}}.grid-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:768px){.grid-stats{gap:1.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.grid-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes pulseSoft{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes shimmer{0%{transform:translateX(-100%) rotate(45deg)}to{transform:translateX(100%) rotate(45deg)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}.animate-fade-in{animation:fadeIn .5s ease-in-out}.animate-slide-up{animation:slideUp .4s ease-out}.animate-slide-in-left{animation:slideInLeft .3s ease-in-out}.animate-pulse-soft{animation:pulseSoft 3s ease-in-out infinite}.animate-shimmer{animation:shimmer 6s linear infinite}.animate-shake{animation:shake .5s ease-in-out}@media (max-width:640px){.modal-content{border-radius:1rem 1rem 0 0;max-height:95vh}.modal-body,.modal-footer,.modal-header{padding:.75rem 1rem}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}.table td,.table th{font-size:.75rem;padding:.5rem .75rem}.btn{font-size:.8rem;padding:.5rem .75rem}.page-header{padding:1rem}.page-title{font-size:1.1rem}}.table-mobile-scroll{margin-left:-.75rem;margin-right:-.75rem;overflow-x:auto;padding-left:.75rem;padding-right:.75rem}@media (min-width:768px){.table-mobile-scroll{margin-left:0;margin-right:0;padding-left:0;padding-right:0}}.table-mobile-scroll table{min-width:600px}@media (min-width:768px){.table-mobile-scroll table{min-width:100%}}@media (max-width:640px){.form-input,.form-select,.form-textarea{font-size:16px;padding:.625rem .75rem}}@media (max-width:480px){.kpi-card .kpi-value{font-size:1.25rem}.kpi-card .kpi-icon{font-size:.75rem;height:2rem;width:2rem}}.glass-premium{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffff08;border:1px solid #ffffff0f;box-shadow:0 8px 32px #0003}.glass-premium:hover{background:#ffffff0f;border-color:#ffffff1a;box-shadow:0 8px 40px #0000004d}.glow-border{position:relative}.glow-border:before{background:linear-gradient(135deg,#34d3994d,#06b6d44d);border-radius:inherit;content:"";inset:-1px;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;padding:1px;position:absolute;transition:opacity .5s ease}.glow-border:hover:before{opacity:1}.school-offers{display:flex;flex-direction:column;gap:20px}.school-offers-header{align-items:center;display:flex;gap:16px;justify-content:space-between}.school-offers-header h3{color:#1e293b;font-size:1.05rem;font-weight:800}.school-offers-header p{color:#94a3b8;font-size:.76rem;margin-top:3px}.school-offers-refresh{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#475569;display:inline-flex;font-size:.72rem;font-weight:700;gap:7px;padding:9px 12px}.school-offers-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,minmax(0,1fr))}.school-offer-card{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;padding:18px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.school-offer-card:hover{border-color:#bfdbfe;box-shadow:0 14px 30px #0f172a14;transform:translateY(-3px)}.school-offer-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.school-offer-card-head h4{color:#1e293b;font-size:1rem;font-weight:800;margin-top:7px}.school-offer-card-head>strong{color:#4f46e5;font-size:1.15rem}.school-offer-card-head>strong small{color:#94a3b8;font-size:.62rem;font-weight:700}.school-offer-status{background:#ecfdf5;border-radius:999px;color:#047857;display:inline-flex;font-size:.62rem;font-weight:800;padding:4px 8px}.school-offer-description{color:#64748b;font-size:.74rem;line-height:1.55;margin-top:12px;min-height:36px}.school-offer-periods{display:flex;flex-direction:column;gap:8px;margin-top:15px}.school-period-option{grid-gap:3px 9px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#64748b;display:grid;font-size:.72rem;gap:3px 9px;grid-template-columns:1fr auto;padding:10px 11px;text-align:left;transition:.2s ease}.school-period-option strong{color:#1e293b}.school-period-option small{color:#059669;font-size:.63rem;grid-column:1/-1}.school-period-option.selected,.school-period-option:hover{background:#eef2ff;border-color:#818cf8;box-shadow:0 0 0 3px #4f46e514;color:#4338ca}.school-offers-footer{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:13px;bottom:0;display:flex;gap:15px;justify-content:space-between;padding:14px 16px;position:-webkit-sticky;position:sticky}.school-offers-footer p{color:#475569;font-size:.76rem}.school-offers-footer button{background:#4f46e5;border:0;border-radius:10px;color:#fff;font-size:.76rem;font-weight:800;padding:10px 16px}.school-offers-footer button:disabled{cursor:not-allowed;opacity:.45}.offers-empty,.offers-loading{color:#94a3b8;padding:36px 18px;text-align:center}.offers-empty i{display:block;font-size:1.7rem;margin-bottom:10px}.offers-empty h3{color:#475569;font-weight:800}.offers-empty p{font-size:.76rem;margin-top:5px}@media (max-width:1050px){.school-offers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:650px){.school-offers-footer,.school-offers-header{align-items:stretch;flex-direction:column}.school-offers-footer button,.school-offers-refresh{justify-content:center;width:100%}.school-offers-grid{grid-template-columns:1fr}}.file\:mr-4::-webkit-file-upload-button{margin-right:1rem}.file\:mr-4::file-selector-button{margin-right:1rem}.file\:rounded-xl::-webkit-file-upload-button{border-radius:16px}.file\:rounded-xl::file-selector-button{border-radius:16px}.file\:border-0::-webkit-file-upload-button{border-width:0}.file\:border-0::file-selector-button{border-width:0}.file\:bg-indigo-50::-webkit-file-upload-button{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.file\:bg-indigo-50::file-selector-button{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.file\:px-4::-webkit-file-upload-button{padding-left:1rem;padding-right:1rem}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-2::-webkit-file-upload-button{padding-bottom:.5rem;padding-top:.5rem}.file\:py-2::file-selector-button{padding-bottom:.5rem;padding-top:.5rem}.file\:text-sm::-webkit-file-upload-button{font-size:.875rem;line-height:1.25rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-semibold::-webkit-file-upload-button{font-weight:600}.file\:font-semibold::file-selector-button{font-weight:600}.file\:text-indigo-700::-webkit-file-upload-button{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.file\:text-indigo-700::file-selector-button{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-0\.5:hover,.hover\:-translate-y-1:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1\.5:hover{--tw-translate-y:-0.375rem}.hover\:-translate-y-1\.5:hover,.hover\:scale-\[1\.02\]:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02}.hover\:border-emerald-300:hover{--tw-border-opacity:1;border-color:#6ee7b7;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:border-indigo-200:hover{--tw-border-opacity:1;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.hover\:border-indigo-300:hover{--tw-border-opacity:1;border-color:#a5b4fc;border-color:rgb(165 180 252/var(--tw-border-opacity,1))}.hover\:border-rose-300:hover{--tw-border-opacity:1;border-color:#fda4af;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}.hover\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:#fffbeb;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:#d97706;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\:bg-amber-700:hover{--tw-bg-opacity:1;background-color:#b45309;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:#1d4ed8;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-emerald-600:hover{--tw-bg-opacity:1;background-color:#059669;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:#047857;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-50\/50:hover{background-color:#f9fafb80}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:#15803d;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-indigo-50:hover{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.hover\:bg-indigo-50\/50:hover{background-color:#eef2ff80}.hover\:bg-indigo-600:hover{--tw-bg-opacity:1;background-color:#4f46e5;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:#4338ca;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:#ffebee;background-color:rgb(255 235 238/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:#e53935;background-color:rgb(229 57 53/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:#b71c1c;background-color:rgb(183 28 28/var(--tw-bg-opacity,1))}.hover\:bg-rose-50:hover{--tw-bg-opacity:1;background-color:#fff1f2;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.hover\:bg-rose-600:hover{--tw-bg-opacity:1;background-color:#e11d48;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:text-amber-600:hover{--tw-text-opacity:1;color:#d97706;color:rgb(217 119 6/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-indigo-600:hover{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.hover\:text-indigo-700:hover{--tw-text-opacity:1;color:#4338ca;color:rgb(67 56 202/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:#e53935;color:rgb(229 57 53/var(--tw-text-opacity,1))}.hover\:text-rose-600:hover{--tw-text-opacity:1;color:#e11d48;color:rgb(225 29 72/var(--tw-text-opacity,1))}.hover\:text-rose-700:hover{--tw-text-opacity:1;color:#be123c;color:rgb(190 18 60/var(--tw-text-opacity,1))}.hover\:text-white\/60:hover{color:#fff9}.hover\:shadow-\[0_40px_100px_rgba\(0\2c 0\2c 0\2c 0\.7\)\]:hover{--tw-shadow:0 40px 100px #000000b3;--tw-shadow-colored:0 40px 100px var(--tw-shadow-color)}.hover\:shadow-\[0_40px_100px_rgba\(0\2c 0\2c 0\2c 0\.7\)\]:hover,.hover\:shadow-lg:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-md:hover,.hover\:shadow-xl:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.hover\:shadow-amber-200:hover{--tw-shadow-color:#fde68a;--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-emerald-200:hover{--tw-shadow-color:#a7f3d0;--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-indigo-200:hover{--tw-shadow-color:#c7d2fe;--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/40:hover{--tw-shadow-color:#6366f166;--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-rose-200:hover{--tw-shadow-color:#fecdd3;--tw-shadow:var(--tw-shadow-colored)}.hover\:file\:bg-indigo-100::-webkit-file-upload-button:hover{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:file\:bg-indigo-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.focus\:border-indigo-400:focus{--tw-border-opacity:1;border-color:#818cf8;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:#6366f1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.focus\:ring-4:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\:ring-indigo-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(199 210 254/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500\/10:focus{--tw-ring-color:#6366f11a}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:translate-y-0:hover:disabled{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:hover\:shadow-lg:hover:disabled{--tw-shadow:0 12px 50px #0003;--tw-shadow-colored:0 12px 50px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:rotate-3{--tw-rotate:3deg}.group:hover .group-hover\:rotate-3,.group:hover .group-hover\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:h-16{height:4rem}.sm\:w-16{width:4rem}.sm\:w-32{width:8rem}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-12{padding-bottom:3rem;padding-top:3rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-\[10px\]{font-size:10px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:768px){.md\:left-4{left:1rem}.md\:right-4{right:1rem}.md\:col-span-2{grid-column:span 2/span 2}.md\:mb-4{margin-bottom:1rem}.md\:mb-8{margin-bottom:2rem}.md\:mr-3{margin-right:.75rem}.md\:mt-6{margin-top:1.5rem}.md\:block{display:block}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-5{height:1.25rem}.md\:h-8{height:2rem}.md\:h-9{height:2.25rem}.md\:h-\[600px\]{height:600px}.md\:h-\[800px\]{height:800px}.md\:w-16{width:4rem}.md\:w-48{width:12rem}.md\:w-5{width:1.25rem}.md\:w-8{width:2rem}.md\:w-9{width:2.25rem}.md\:w-\[600px\]{width:600px}.md\:w-\[800px\]{width:800px}.md\:w-auto{width:auto}.md\:max-w-\[120px\]{max-width:120px}.md\:max-w-\[440px\]{max-width:440px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-2{gap:.5rem}.md\:gap-4{gap:1rem}.md\:space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.md\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.md\:rounded-3xl{border-radius:1.5rem}.md\:p-10{padding:2.5rem}.md\:p-4{padding:1rem}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.md\:py-3{padding-bottom:.75rem;padding-top:.75rem}.md\:py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.md\:pl-11{padding-left:2.75rem}.md\:pr-12{padding-right:3rem}.md\:pr-4{padding-right:1rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-\[10px\]{font-size:10px}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:ml-\[280px\]{margin-left:280px}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ==================== PAGE ACCUEIL ==================== */
:root {
  --home-ink: #0f172a;
  --home-muted: #5b6475;
  --home-blue: #2563eb;
  --home-indigo: #4338ca;
  --home-line: #e2e8f0;
  --home-soft: #f5f8ff;
}

html { scroll-behavior: smooth; }
body:has(.home-site) { margin: 0; background: #fff; }
.home-site, .home-site * { box-sizing: border-box; }
.home-site { min-height: 100vh; overflow: hidden; background: #fff; color: var(--home-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.home-site h1, .home-site h2, .home-site h3, .home-brand strong { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.home-site a { color: inherit; text-decoration: none; }
.home-container { width: min(1160px, calc(100% - 40px)); margin: 0 auto; }

.home-header { position: relative; z-index: 30; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(226,232,240,.85); backdrop-filter: blur(18px); }
.home-nav-shell { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.home-brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.home-brand img { width: 42px; height: 42px; display: block; }
.home-brand span { display: grid; line-height: 1.08; }
.home-brand strong { font-size: 1.03rem; letter-spacing: -.035em; }
.home-brand small { margin-top: 5px; color: #7a8495; font-size: .66rem; font-weight: 600; letter-spacing: .015em; }
.home-nav { display: flex; align-items: center; gap: 28px; color: #475569; font-size: .86rem; font-weight: 600; }
.home-nav > a:not(.home-nav-login) { position: relative; padding: 9px 0; }
.home-nav > a:not(.home-nav-login)::after { content: ''; position: absolute; left: 0; bottom: 3px; width: 100%; height: 2px; border-radius: 2px; background: var(--home-blue); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.home-nav > a:not(.home-nav-login):hover::after { transform: scaleX(1); transform-origin: left; }
.home-nav-login { padding: 11px 17px; border-radius: 11px; background: #172554; color: #fff !important; box-shadow: 0 9px 20px rgba(23,37,84,.16); transition: transform .2s ease, box-shadow .2s ease; }
.home-nav-login:hover { transform: translateY(-2px); box-shadow: 0 13px 25px rgba(23,37,84,.22); }
.home-menu-toggle { display: none; width: 44px; height: 42px; padding: 10px; border: 1px solid var(--home-line); border-radius: 12px; background: #fff; cursor: pointer; }
.home-menu-toggle span { display: block; height: 2px; margin: 4px 0; border-radius: 2px; background: #172554; transition: .22s ease; }
.home-menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.home-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.home-menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.home-hero { position: relative; min-height: 680px; padding: 86px 0 74px; background: linear-gradient(155deg,#f8fbff 0%,#fff 44%,#f4f3ff 100%); }
.home-hero::before { content: ''; position: absolute; inset: 0; opacity: .26; background-image: radial-gradient(#94a3b8 .65px,transparent .65px); background-size: 24px 24px; mask-image: linear-gradient(to bottom,#000,transparent 82%); }
.home-hero-glow { position: absolute; border-radius: 50%; filter: blur(4px); pointer-events: none; }
.home-hero-glow-one { width: 400px; height: 400px; right: -190px; top: -150px; background: rgba(96,165,250,.16); }
.home-hero-glow-two { width: 300px; height: 300px; left: -180px; bottom: -120px; background: rgba(129,140,248,.12); }
.home-hero-grid { position: relative; display: grid; grid-template-columns: .93fr 1.07fr; align-items: center; gap: 40px; }
.home-hero-copy { animation: homeFadeUp .65s ease both; }
.home-kicker { display: inline-flex; align-items: center; gap: 9px; padding: 7px 11px; border: 1px solid #bfdbfe; border-radius: 999px; background: rgba(239,246,255,.8); color: #1d4ed8; font-size: .73rem; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.home-kicker span { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.13); }
.home-hero h1 { max-width: 610px; margin: 22px 0 20px; font-size: clamp(2.55rem,5vw,4.45rem); line-height: 1.02; letter-spacing: -.065em; font-weight: 800; }
.home-hero h1 em { color: var(--home-blue); font-style: normal; }
.home-hero-copy > p { max-width: 570px; margin: 0; color: var(--home-muted); font-size: 1.06rem; line-height: 1.75; }
.home-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.home-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 0 20px; border: 1px solid transparent; border-radius: 12px; font-size: .88rem; font-weight: 700; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.home-button:hover { transform: translateY(-2px); }
.home-button-primary { background: linear-gradient(135deg,var(--home-blue),var(--home-indigo)); color: #fff !important; box-shadow: 0 14px 28px rgba(37,99,235,.23); }
.home-button-primary:hover { box-shadow: 0 18px 36px rgba(37,99,235,.3); }
.home-button-secondary { border-color: #cbd5e1; background: rgba(255,255,255,.86); color: #253047 !important; }
.home-trust-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 25px; color: #64748b; font-size: .77rem; font-weight: 600; }
.home-trust-row span { display: inline-flex; align-items: center; gap: 6px; }
.home-trust-row i { width: 17px; height: 17px; display: inline-grid; place-items: center; border-radius: 50%; background: #dcfce7; color: #15803d; font-size: .65rem; font-style: normal; }

.home-hero-visual { position: relative; min-width: 0; animation: homeFadeUp .75s .12s ease both; }
.home-hero-visual > img { position: relative; z-index: 2; width: 112%; max-width: none; margin-left: -4%; display: block; filter: drop-shadow(0 24px 40px rgba(15,23,42,.08)); }
.home-visual-badge { position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; min-width: 174px; padding: 12px 14px; border: 1px solid rgba(226,232,240,.9); border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: 0 16px 35px rgba(15,23,42,.13); backdrop-filter: blur(12px); }
.home-visual-badge-top { top: 7%; right: -1%; animation: homeFloat 4s ease-in-out infinite; }
.home-visual-badge-bottom { left: 1%; bottom: 4%; animation: homeFloat 4.5s .6s ease-in-out infinite; }
.home-badge-icon { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; font-size: .82rem; font-weight: 800; }
.home-badge-icon-blue { background: #dbeafe; color: #1d4ed8; }
.home-badge-icon-green { background: #dcfce7; color: #15803d; }
.home-visual-badge > span:last-child { display: grid; gap: 2px; }
.home-visual-badge strong { color: #172554; font-size: .76rem; }
.home-visual-badge small { color: #7c8799; font-size: .64rem; }

.home-proof-strip { position: relative; z-index: 5; border-top: 1px solid #e8edf5; border-bottom: 1px solid #e8edf5; background: #fff; }
.home-proof-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.home-proof-grid > div { min-height: 104px; display: grid; align-content: center; gap: 4px; padding: 20px 28px; border-right: 1px solid #e8edf5; }
.home-proof-grid > div:last-child { border-right: 0; }
.home-proof-grid strong { color: #172554; font-family: Inter,ui-sans-serif,system-ui,sans-serif; font-size: 1.28rem; letter-spacing: -.035em; }
.home-proof-grid span { color: #778195; font-size: .74rem; }

.home-section { padding: 104px 0; }
.home-section-heading { max-width: 720px; margin: 0 auto 47px; text-align: center; }
.home-section-heading-left { margin-left: 0; text-align: left; }
.home-section-heading > span, .home-section-label { color: var(--home-blue); font-size: .74rem; font-weight: 800; letter-spacing: .095em; text-transform: uppercase; }
.home-section-heading h2, .home-process-copy h2, .home-security-card h2, .home-cta-card h2 { margin: 12px 0 14px; font-size: clamp(1.85rem,3.2vw,2.75rem); line-height: 1.15; letter-spacing: -.045em; }
.home-section-heading p, .home-process-copy > p { margin: 0; color: var(--home-muted); line-height: 1.75; }
.home-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.home-feature-card { min-height: 230px; padding: 26px; border: 1px solid #e5eaf2; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(15,23,42,.035); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.home-feature-card:hover { transform: translateY(-6px); border-color: #cbd9f0; box-shadow: 0 20px 42px rgba(30,64,175,.09); }
.home-feature-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 13px; }
.home-feature-icon svg, .home-security-icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tone-blue { background: #eff6ff; color: #2563eb; }.tone-green { background: #ecfdf5; color: #059669; }.tone-violet { background: #f5f3ff; color: #7c3aed; }.tone-amber { background: #fffbeb; color: #d97706; }.tone-rose { background: #fff1f2; color: #e11d48; }.tone-cyan { background: #ecfeff; color: #0891b2; }
.home-feature-card h3 { margin: 0 0 10px; font-size: 1.03rem; letter-spacing: -.025em; }
.home-feature-card p { margin: 0; color: #667085; font-size: .87rem; line-height: 1.7; }

.home-process-section { background: linear-gradient(145deg,#0f172a,#172554); color: #fff; }
.home-process-layout { display: grid; grid-template-columns: .83fr 1.17fr; gap: 80px; align-items: center; }
.home-process-copy { position: sticky; top: 110px; align-self: start; padding-top: 25px; }
.home-process-copy .home-section-label { color: #93c5fd; }
.home-process-copy > p { color: #aebad0; }
.home-text-link { display: inline-flex; gap: 10px; margin-top: 27px; color: #bfdbfe !important; font-size: .86rem; font-weight: 700; }
.home-text-link span { transition: transform .2s ease; }.home-text-link:hover span { transform: translateX(4px); }
.home-step-list { display: grid; }
.home-step { position: relative; display: grid; grid-template-columns: 60px 1fr; gap: 19px; padding: 27px 0; }
.home-step-number { width: 52px; height: 52px; display: grid; place-items: center; position: relative; z-index: 2; border: 1px solid rgba(147,197,253,.28); border-radius: 16px; background: rgba(59,130,246,.12); color: #93c5fd; font-family: Inter,ui-sans-serif,system-ui,sans-serif; font-size: .83rem; font-weight: 800; }
.home-step-line { position: absolute; left: 26px; top: 79px; bottom: -27px; width: 1px; background: linear-gradient(#3b82f6,rgba(59,130,246,.05)); }
.home-step h3 { margin: 2px 0 7px; font-size: 1rem; }.home-step p { margin: 0; color: #aebad0; font-size: .85rem; line-height: 1.65; }

.home-role-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.home-role-card { min-height: 350px; padding: 28px; border: 1px solid #e3e8f1; border-radius: 22px; background: #fff; overflow: hidden; position: relative; }
.home-role-card::before { content: ''; position: absolute; inset: 0 0 auto; height: 4px; }
.home-role-admin::before { background: #2563eb; }.home-role-teacher::before { background: #7c3aed; }.home-role-parent::before { background: #059669; }
.home-role-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 42px; }
.home-role-top span { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.home-role-top small { padding: 6px 9px; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: .66rem; font-weight: 700; }
.home-role-card h3 { margin: 0 0 12px; font-size: 1.28rem; letter-spacing: -.035em; }
.home-role-card > p { min-height: 69px; margin: 0 0 22px; color: #667085; font-size: .86rem; line-height: 1.7; }
.home-role-card ul { display: grid; gap: 10px; margin: 0; padding: 18px 0 0; border-top: 1px solid #edf0f5; list-style: none; }
.home-role-card li { color: #3f4a5d; font-size: .79rem; font-weight: 600; }
.home-role-card li::before { content: '✓'; margin-right: 9px; color: #2563eb; font-weight: 800; }

.home-security-section { padding-top: 30px; }
.home-security-card { display: grid; grid-template-columns: 72px 1fr .7fr; align-items: center; gap: 28px; padding: 44px; border: 1px solid #dbe5f4; border-radius: 26px; background: linear-gradient(135deg,#f8fbff,#f4f3ff); }
.home-security-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 19px; background: linear-gradient(135deg,#2563eb,#4338ca); color: #fff; box-shadow: 0 14px 30px rgba(37,99,235,.22); }
.home-security-icon svg { width: 30px; }
.home-security-card h2 { margin-bottom: 10px; font-size: clamp(1.55rem,2.6vw,2.15rem); }
.home-security-card p { margin: 0; color: #64748b; font-size: .88rem; line-height: 1.7; }
.home-security-points { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.home-security-points span { display: flex; align-items: center; gap: 7px; color: #344054; font-size: .76rem; font-weight: 700; }
.home-security-points i { color: #2563eb; font-style: normal; }

.home-cta-section { padding: 25px 0 95px; }
.home-cta-card { min-height: 240px; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 48px 56px; overflow: hidden; position: relative; border-radius: 28px; background: linear-gradient(125deg,#1d4ed8,#3730a3); color: #fff; box-shadow: 0 28px 55px rgba(37,99,235,.2); }
.home-cta-card::after { content: ''; position: absolute; width: 360px; height: 360px; right: -160px; top: -180px; border: 60px solid rgba(255,255,255,.08); border-radius: 50%; }
.home-cta-card > * { position: relative; z-index: 2; }
.home-cta-card > div > span { color: #bfdbfe; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.home-cta-card h2 { max-width: 650px; margin-bottom: 0; }
.home-button-light { flex: 0 0 auto; background: #fff; color: #1e3a8a !important; box-shadow: 0 12px 25px rgba(15,23,42,.14); }

.home-footer { padding: 66px 0 25px; background: #0b1221; color: #fff; }
.home-footer-grid { display: grid; grid-template-columns: 1.5fr .65fr .8fr; gap: 70px; padding-bottom: 50px; }
.home-brand-light small { color: #8290a8; }
.home-footer-grid > div:first-child > p { max-width: 400px; margin: 22px 0 0; color: #8995a9; font-size: .83rem; line-height: 1.7; }
.home-footer-links { display: grid; align-content: start; gap: 12px; }
.home-footer-links strong { margin-bottom: 7px; color: #e5e7eb; font-size: .77rem; text-transform: uppercase; letter-spacing: .08em; }
.home-footer-links a { color: #8f9bb0; font-size: .79rem; transition: color .2s ease; }.home-footer-links a:hover { color: #bfdbfe; }
.home-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(148,163,184,.15); color: #6f7c92; font-size: .7rem; }

@keyframes homeFadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes homeFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

@media (max-width: 980px) {
  .home-nav { gap: 17px; }.home-nav > a:not(.home-nav-login) { display: none; }
  .home-hero { padding-top: 68px; }.home-hero-grid { grid-template-columns: 1fr; text-align: center; }.home-hero-copy > p { margin-inline: auto; }.home-kicker { margin-inline: auto; }.home-hero-actions,.home-trust-row { justify-content: center; }
  .home-hero-visual { width: min(700px,100%); margin: 8px auto 0; }.home-hero-visual > img { width: 100%; margin-left: 0; }
  .home-feature-grid { grid-template-columns: repeat(2,1fr); }.home-process-layout { grid-template-columns: 1fr; gap: 35px; }.home-process-copy { position: static; padding-top: 0; }
  .home-role-grid { grid-template-columns: 1fr; }.home-role-card { min-height: auto; }.home-role-card > p { min-height: 0; }
  .home-security-card { grid-template-columns: 64px 1fr; }.home-security-points { grid-column: 2; }
}

@media (max-width: 720px) {
  .home-container { width: min(100% - 28px,1160px); }
  .home-header { position: sticky; top: 0; }.home-nav-shell { min-height: 68px; }.home-brand img { width: 38px; height: 38px; }.home-brand small { display: none; }
  .home-menu-toggle { display: block; }.home-nav { display: none; position: absolute; top: 62px; left: 14px; right: 14px; padding: 12px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; box-shadow: 0 20px 45px rgba(15,23,42,.15); }.home-nav.is-open { display: grid; gap: 3px; }.home-nav > a:not(.home-nav-login) { display: block; padding: 12px; }.home-nav-login { margin-top: 5px; text-align: center; }
  .home-hero { min-height: 0; padding: 56px 0 42px; }.home-hero h1 { font-size: clamp(2.35rem,12vw,3.55rem); }.home-hero-copy > p { font-size: .96rem; }.home-hero-actions { display: grid; }.home-button { width: 100%; }.home-trust-row { gap: 10px 16px; }
  .home-visual-badge { display: none; }.home-proof-grid { grid-template-columns: 1fr 1fr; }.home-proof-grid > div { min-height: 90px; padding: 16px; border-bottom: 1px solid #e8edf5; }.home-proof-grid > div:nth-child(2) { border-right: 0; }.home-proof-grid > div:nth-child(n+3) { border-bottom: 0; }
  .home-section { padding: 75px 0; }.home-section-heading { margin-bottom: 34px; }.home-feature-grid { grid-template-columns: 1fr; }.home-feature-card { min-height: 0; }
  .home-process-section { padding-top: 75px; }.home-step { grid-template-columns: 52px 1fr; gap: 13px; }.home-step-number { width: 46px; height: 46px; }.home-step-line { left: 23px; top: 73px; }
  .home-role-top { margin-bottom: 28px; }.home-security-section { padding-top: 10px; }.home-security-card { grid-template-columns: 1fr; padding: 28px; }.home-security-points { grid-column: auto; grid-template-columns: 1fr 1fr; }.home-security-icon { width: 56px; height: 56px; }
  .home-cta-section { padding-bottom: 72px; }.home-cta-card { min-height: 0; display: grid; padding: 34px 26px; }.home-footer-grid { grid-template-columns: 1fr 1fr; gap: 38px 28px; }.home-footer-grid > div:first-child { grid-column: 1 / -1; }.home-footer-bottom { flex-direction: column; }
}

@media (max-width: 420px) {
  .home-proof-grid { grid-template-columns: 1fr; }.home-proof-grid > div { border-right: 0; border-bottom: 1px solid #e8edf5 !important; }.home-proof-grid > div:last-child { border-bottom: 0 !important; }
  .home-security-points,.home-footer-grid { grid-template-columns: 1fr; }.home-footer-grid > div:first-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }.home-site *, .home-site *::before, .home-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ==================== PAGE CONNEXION ==================== */
/* ============================================================
   ABSTECH PRO - Connexion établissement
   Reproduction CSS de la page React originale
   ============================================================ */

:root {
    --auth-bg: #0a0a12;
    --auth-white: #ffffff;
    --auth-indigo: #6366f1;
    --auth-indigo-light: #818cf8;
    --auth-purple: #9333ea;
    --auth-red: #f87171;
    --auth-green: #6ee7b7;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
}

body {
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    background: var(--auth-bg);
    color: white;
    -webkit-font-smoothing: antialiased;
}

button,
input {
    font: inherit;
}

.auth-page {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 12px;
    overflow-x: hidden;
    overflow-y: auto;
    isolation: isolate;
    background: #0a0a12;
}

.auth-orb,
.auth-grid {
    position: absolute;
    pointer-events: none;
    user-select: none;
}

.auth-orb {
    border-radius: 999px;
    filter: blur(85px);
    opacity: .9;
    animation: authPulse 5.5s ease-in-out infinite;
}

.auth-orb-one {
    top: -30%;
    right: -20%;
    width: 600px;
    height: 600px;
    background:
        linear-gradient(
            135deg,
            rgba(79, 70, 229, .30),
            rgba(147, 51, 234, .20)
        );
}

.auth-orb-two {
    bottom: -30%;
    left: -20%;
    width: 600px;
    height: 600px;
    animation-delay: 1s;
    background:
        linear-gradient(
            45deg,
            rgba(37, 99, 235, .20),
            rgba(79, 70, 229, .30)
        );
}

.auth-orb-center {
    top: 50%;
    left: 50%;
    width: 800px;
    height: 800px;
    opacity: 1;
    transform: translate(-50%, -50%);
    animation: none;
    background: rgba(255, 255, 255, .02);
}

.auth-grid {
    inset: 0;
    opacity: .03;
    background-image:
        radial-gradient(
            circle at 1px 1px,
            white 1px,
            transparent 0
        );
    background-size: 40px 40px;
}

.auth-back {
    position: absolute;
    z-index: 20;
    top: 24px;
    left: 24px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    color: rgba(255, 255, 255, .70);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(18px);
    transition:
        color .3s ease,
        background .3s ease,
        border-color .3s ease,
        transform .3s ease;
}

.auth-back:hover {
    color: white;
    border-color: rgba(255, 255, 255, .20);
    background: rgba(255, 255, 255, .10);
    transform: translateX(-2px);
}

.auth-back:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(99, 102, 241, .20);
}

.auth-card {
    position: relative;
    z-index: 10;
    width: min(100%, 440px);
    padding: 40px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 24px;
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(28px);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .60);
    transition: box-shadow .5s ease, transform .5s ease;
    animation: authCardEnter .55s ease both;
}

.auth-card:hover {
    box-shadow: 0 40px 100px rgba(0, 0, 0, .70);
}

.auth-brand {
    margin-bottom: 32px;
    text-align: center;
}

.auth-brand-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: white;
    background: linear-gradient(135deg, #6366f1, #9333ea);
    box-shadow: 0 10px 30px rgba(99, 102, 241, .25);
}

.auth-brand-icon svg {
    width: 32px;
    height: 32px;
}

.auth-brand h1 {
    margin: 0;
    color: white;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -.025em;
}

.auth-brand h1 span {
    color: var(--auth-indigo-light);
}

.auth-brand p {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, .40);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .025em;
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.auth-invitation {
    padding: 12px;
    color: #e0e7ff;
    font-size: 14px;
    line-height: 1.5;
    border: 1px solid rgba(129, 140, 248, .20);
    border-radius: 12px;
    background: rgba(99, 102, 241, .10);
}

.auth-error {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    color: #fca5a5;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    border: 1px solid rgba(239, 68, 68, .20);
    border-radius: 12px;
    background: rgba(239, 68, 68, .10);
    animation: authShake .36s ease both;
}

.auth-error i {
    margin-top: 2px;
    color: #f87171;
}

.auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.auth-field label,
.auth-label-row label {
    display: block;
    color: rgba(255, 255, 255, .60);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.auth-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.auth-label-row > span {
    color: rgba(255, 255, 255, .30);
    font-size: 12px;
    text-align: right;
}

.auth-input-wrap {
    position: relative;
}

.auth-input-icon {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, .30);
    font-size: 14px;
    pointer-events: none;
}

.auth-input {
    width: 100%;
    min-height: 50px;
    padding: 13px 16px 13px 44px;
    color: white;
    caret-color: var(--auth-indigo-light);
    font-size: 14px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    outline: none;
    background: rgba(255, 255, 255, .05);
    transition:
        border-color .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

.auth-input-password {
    padding-right: 48px;
}

.auth-input::placeholder {
    color: rgba(255, 255, 255, .20);
}

.auth-input:hover {
    background: rgba(255, 255, 255, .10);
}

.auth-input:focus {
    border-color: #6366f1;
    box-shadow: 0 0 0 4px rgba(99, 102, 241, .10);
}

.auth-input[readonly] {
    color: rgba(255, 255, 255, .72);
    cursor: default;
}

.auth-password-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 14px;
    width: 32px;
    height: 32px;
    padding: 0;
    transform: translateY(-50%);
    color: rgba(255, 255, 255, .30);
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    background: transparent;
    transition: color .2s ease, background .2s ease;
}

.auth-password-toggle:hover {
    color: rgba(255, 255, 255, .70);
    background: rgba(255, 255, 255, .05);
}

.password-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    background: rgba(0, 0, 0, .10);
}

.password-rule {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, .40);
    font-size: 11px;
    line-height: 1.35;
    transition: color .2s ease;
}

.password-rule i {
    font-size: 9px;
}

.password-rule.is-valid {
    color: #6ee7b7;
}

.confirmation-icon {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    font-size: 12px;
}

.confirmation-icon.is-valid {
    color: #6ee7b7;
}

.confirmation-icon.is-invalid {
    color: #fda4af;
}

.confirmation-message {
    min-height: 15px;
    margin: 0;
    font-size: 11px;
}

.confirmation-message.is-valid {
    color: #6ee7b7;
}

.confirmation-message.is-invalid {
    color: #fda4af;
}

.auth-input.confirm-valid {
    border-color: rgba(52, 211, 153, .60);
}

.auth-input.confirm-valid:focus {
    border-color: #34d399;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, .10);
}

.auth-input.confirm-invalid {
    border-color: rgba(251, 113, 133, .60);
}

.auth-input.confirm-invalid:focus {
    border-color: #fb7185;
    box-shadow: 0 0 0 4px rgba(244, 63, 94, .10);
}

.auth-submit {
    position: relative;
    width: 100%;
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 18px;
    color: white;
    font-size: 14px;
    font-weight: 700;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    background: linear-gradient(90deg, #6366f1, #9333ea);
    box-shadow: 0 10px 25px rgba(99, 102, 241, .25);
    transition:
        transform .3s ease,
        box-shadow .3s ease,
        opacity .3s ease;
}

.auth-submit:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(99, 102, 241, .40);
}

.auth-submit:active:not(:disabled) {
    transform: scale(.98);
}

.auth-submit:disabled {
    opacity: .60;
    cursor: not-allowed;
}

.auth-submit-spinner {
    display: none;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, .20);
    border-top-color: white;
    border-radius: 50%;
    animation: authSpin .75s linear infinite;
}

.auth-submit.is-loading .auth-submit-spinner {
    display: inline-block;
}

.auth-submit.is-loading .auth-submit-arrow {
    display: none;
}

.auth-footer {
    margin-top: 4px;
    text-align: center;
}

.auth-footer p {
    margin: 0;
    color: rgba(255, 255, 255, .20);
    font-size: 12px;
    line-height: 1.55;
}

@keyframes authPulse {
    0%, 100% {
        transform: scale(1);
        opacity: .72;
    }
    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes authCardEnter {
    from {
        opacity: 0;
        transform: translateY(16px) scale(.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes authShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-3px); }
}

@keyframes authSpin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 700px) {
    .auth-page {
        padding: 76px 12px 24px;
        align-items: flex-start;
    }

    .auth-orb-one,
    .auth-orb-two {
        width: 300px;
        height: 300px;
    }

    .auth-orb-center {
        width: 400px;
        height: 400px;
    }

    .auth-back {
        top: 16px;
        left: 16px;
        padding: 9px 12px;
        font-size: 12px;
    }

    .auth-card {
        width: min(100%, 400px);
        padding: 24px;
        border-radius: 16px;
    }

    .auth-brand {
        margin-bottom: 24px;
    }

    .auth-brand-icon {
        width: 56px;
        height: 56px;
        margin-bottom: 12px;
    }

    .auth-brand-icon svg {
        width: 28px;
        height: 28px;
    }

    .auth-brand h1 {
        font-size: 21px;
    }

    .auth-brand p {
        font-size: 12px;
    }

    .auth-form {
        gap: 16px;
    }

    .auth-input {
        min-height: 48px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .password-rules {
        grid-template-columns: 1fr;
    }

    .auth-label-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .auth-label-row > span {
        text-align: left;
        font-size: 10px;
    }

    .auth-footer p {
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ==================== LAYOUT SIDEBAR / TOPBAR / MODALES ==================== */
/* ============================================================
   ABSTECH - Layout client PHP
   Adaptation directe des règles personnalisées du projet React.
   Les utilitaires Tailwind restent fournis par css/app.css.
   ============================================================ */

html, body {
  min-height: 100%;
}

body {
  margin: 0;
  background: #f9fafb;
  color: #111827;
  overflow-x: hidden;
}

/* Sidebar commune administrateurs / enseignants */
.client-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 60;
  display: flex;
  width: min(86vw, 280px);
  height: 100dvh;
  flex-direction: column;
  overflow: hidden;
  border-right: 1px solid rgb(229 231 235);
  background: #fff;
  box-shadow: 0 24px 60px rgb(15 23 42 / 0.22);
  transform: translateX(-105%);
  transition: transform 280ms ease;
}

.client-sidebar.is-open {
  transform: translateX(0);
}

.client-sidebar-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: block;
  background: rgb(15 23 42 / 0.55);
  backdrop-filter: blur(2px);
  animation: abstechFadeIn 180ms ease-out;
}

.client-sidebar-overlay[hidden] {
  display: none !important;
}

.client-menu-toggle {
  position: fixed;
  top: max(0.75rem, env(safe-area-inset-top));
  left: 0.75rem;
  z-index: 70;
  display: inline-flex;
  width: 44px;
  height: 44px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid rgb(199 210 254);
  border-radius: 0.8rem;
  background: #fff;
  color: rgb(49 46 129);
  box-shadow: 0 8px 24px rgb(15 23 42 / 0.18);
  cursor: pointer;
  transition: left 280ms ease, background-color 180ms ease, transform 180ms ease;
}

.client-menu-toggle:focus-visible {
  outline: 3px solid rgb(165 180 252);
  outline-offset: 2px;
}

.client-menu-toggle.is-open {
  left: calc(min(86vw, 280px) - 3.5rem);
  border-color: rgb(79 70 229);
  background: rgb(79 70 229);
  color: #fff;
}

.client-menu-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 16px;
}

.client-menu-bar {
  position: absolute;
  left: 0;
  display: block;
  width: 22px;
  height: 2.5px;
  border-radius: 999px;
  background: currentColor;
  transition: top 180ms ease, transform 180ms ease, opacity 120ms ease;
}

.client-menu-bar:nth-child(1) { top: 0; }
.client-menu-bar:nth-child(2) { top: 6.75px; }
.client-menu-bar:nth-child(3) { top: 13.5px; }

.client-menu-toggle.is-open .client-menu-bar:nth-child(1) {
  top: 6.75px;
  transform: rotate(45deg);
}

.client-menu-toggle.is-open .client-menu-bar:nth-child(2) {
  opacity: 0;
}

.client-menu-toggle.is-open .client-menu-bar:nth-child(3) {
  top: 6.75px;
  transform: rotate(-45deg);
}

.main-content {
  min-width: 0;
  min-height: 100vh;
  width: 100%;
  margin-left: 0;
  transition: margin-left 280ms ease, width 280ms ease;
}

.client-main,
.client-main > * {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.client-main {
  overflow-x: hidden;
}

.client-main img,
.client-main svg,
.client-main canvas {
  max-width: 100%;
}

.client-main input,
.client-main select,
.client-main textarea {
  max-width: 100%;
}

/* Modal de déconnexion */
.modal-overlay[hidden] {
  display: none !important;
}

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgb(15 23 42 / 0.55);
  backdrop-filter: blur(4px);
  animation: abstechFadeIn 180ms ease-out;
}

.modal-content {
  width: min(100%, 42rem);
  max-height: 90dvh;
  overflow-y: auto;
}

.modal-header,
.modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: 1rem 1.25rem;
}

.modal-body {
  padding: 1.25rem;
}

.btn {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .65rem 1rem;
  border-radius: .75rem;
  font-size: .875rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 180ms ease;
}

.btn-outline {
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
}

.btn-outline:hover {
  background: #f9fafb;
}

.btn-danger {
  border: 1px solid #dc2626;
  background: #dc2626;
  color: #fff;
}

.btn-danger:hover {
  background: #b91c1c;
}

@keyframes abstechFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (min-width: 1024px) {
  .client-sidebar {
    width: 280px;
    transform: translateX(0);
    box-shadow: 0 8px 30px rgb(15 23 42 / 0.08);
  }

  .client-sidebar-overlay,
  .client-menu-toggle {
    display: none !important;
  }

  .main-content {
    margin-left: 280px;
    width: calc(100% - 280px);
  }
}

@media (max-width: 767px) {
  .client-main {
    padding: .75rem !important;
  }

  .client-main > .animate-fade-in {
    padding: .75rem 0 1.5rem !important;
  }

  .client-main h1,
  .client-main h2,
  .client-main h3,
  .client-main p,
  .client-main td,
  .client-main th {
    overflow-wrap: anywhere;
  }

  .client-main button,
  .client-main a[role="button"] {
    min-height: 44px;
  }

  .modal-overlay {
    align-items: flex-end;
    padding: .5rem 0 0;
  }

  .modal-content {
    width: 100%;
    max-width: 100% !important;
    max-height: calc(100dvh - .5rem);
    border-radius: 1.25rem 1.25rem 0 0 !important;
  }
}

/* ==================== DASHBOARD ADMIN ==================== */
/* ============================================================
   ABSTECH - Dashboard Admin PHP
   Compléments uniquement pour les éléments qui remplaçaient Recharts.
   ============================================================ */

.dashboard-chart-shell {
  position: relative;
  width: 100%;
  min-height: 288px;
}

.dashboard-chart-svg {
  display: block;
  width: 100%;
  height: 288px;
  overflow: visible;
}

.dashboard-grid-line {
  stroke: #eef2f7;
  stroke-width: 1;
  stroke-dasharray: 4 5;
}

.dashboard-axis-label {
  fill: #9ca3af;
  font-size: 10px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.dashboard-bar {
  fill: #4f46e5;
  opacity: .94;
  transform-box: fill-box;
  transform-origin: bottom;
  animation: dashboardBarGrow .8s cubic-bezier(.2,.8,.2,1) both;
}

.dashboard-line {
  fill: none;
  stroke: #f59e0b;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  animation: dashboardLineDraw 1.2s .2s ease forwards;
}

.dashboard-dot {
  fill: #f59e0b;
  stroke: #fff;
  stroke-width: 2;
  opacity: 0;
  animation: dashboardDotIn .25s .75s ease forwards;
}

.dashboard-tooltip {
  pointer-events: none;
  position: absolute;
  z-index: 10;
  min-width: 145px;
  padding: .7rem .8rem;
  border: 1px solid #e5e7eb;
  border-radius: .75rem;
  background: rgba(255,255,255,.98);
  box-shadow: 0 14px 35px rgba(15,23,42,.12);
  color: #374151;
  font-size: .75rem;
  opacity: 0;
  transform: translate(-50%, calc(-100% - 10px));
  transition: opacity .15s ease;
}

.dashboard-tooltip.is-visible {
  opacity: 1;
}

.dashboard-risk-fill {
  width: 0;
  animation: dashboardRiskGrow 1s cubic-bezier(.2,.8,.2,1) forwards;
}

.dashboard-kpi-card {
  animation: dashboardCardIn .5s ease both;
}

.dashboard-live-dot {
  animation: dashboardPulse 1.8s ease-in-out infinite;
}

@keyframes dashboardBarGrow {
  from { transform: scaleY(0); opacity: .3; }
  to { transform: scaleY(1); opacity: .94; }
}

@keyframes dashboardLineDraw {
  to { stroke-dashoffset: 0; }
}

@keyframes dashboardDotIn {
  to { opacity: 1; }
}

@keyframes dashboardRiskGrow {
  to { width: var(--target-width); }
}

@keyframes dashboardCardIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes dashboardPulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .45; transform: scale(.75); }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-bar,
  .dashboard-line,
  .dashboard-dot,
  .dashboard-risk-fill,
  .dashboard-kpi-card,
  .dashboard-live-dot {
    animation: none !important;
  }

  .dashboard-line {
    stroke-dashoffset: 0;
  }

  .dashboard-dot {
    opacity: 1;
  }

  .dashboard-risk-fill {
    width: var(--target-width);
  }
}

/* ==================== GESTION DES ELEVES ==================== */
/* ============================================================
   ABSTECH - Gestion des élèves
   Le design principal vient de css/app.css (ancien React).
   ============================================================ */

#studentTableBody tr {
    animation: elevesRowIn .24s ease both;
}

#studentTableBody tr:nth-child(2) { animation-delay: 20ms; }
#studentTableBody tr:nth-child(3) { animation-delay: 40ms; }
#studentTableBody tr:nth-child(4) { animation-delay: 60ms; }
#studentTableBody tr:nth-child(5) { animation-delay: 80ms; }

#studentDetailsModal .modal-content,
#studentFormModal .modal-content,
#studentDeleteModal .modal-content {
    animation: elevesModalIn .22s ease both;
}

#studentPagination button:focus-visible,
#openAddStudent:focus-visible,
[data-open-add]:focus-visible {
    outline: 3px solid rgb(199 210 254);
    outline-offset: 2px;
}

[hidden] {
    display: none !important;
}

@keyframes elevesRowIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes elevesModalIn {
    from {
        opacity: 0;
        transform: translateY(12px) scale(.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    #studentTableBody tr,
    #studentDetailsModal .modal-content,
    #studentFormModal .modal-content,
    #studentDeleteModal .modal-content {
        animation: none !important;
    }
}

/* ============================================================
   SECURITE D'AFFICHAGE GLOBALE
   ============================================================ */
[hidden] {
    display: none !important;
}

.modal-overlay[hidden],
.client-sidebar-overlay[hidden] {
    display: none !important;
}

/* ============================================================
   ABSTECH PRO — MODALE ECOLE, CORRECTION PROPRE
   Une seule correction. Ne pas empiler les anciens V1/V2/V3/V4.
   ============================================================ */

#fecFormModal[hidden] {
    display: none !important;
}

html body #fecFormModal.supplier-modal-overlay {
    position: fixed !important;
    inset: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;

    margin: 0 !important;
    padding: 16px !important;

    overflow: hidden !important;

    z-index: 10000 !important;
}

html body #fecFormModal > .supplier-modal {
    position: relative !important;

    width: min(960px, calc(100vw - 32px)) !important;
    max-width: 960px !important;

    height: auto !important;
    max-height: calc(100vh - 32px) !important;
    max-height: calc(100dvh - 32px) !important;

    margin: 0 !important;

    display: flex !important;
    flex-direction: column !important;

    overflow: hidden !important;
}

html body #fecFormModal #fecForm {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    min-height: 0 !important;

    overflow: hidden !important;
}

html body #fecFormModal #fecForm > .supplier-modal-body {
    flex: 1 1 auto !important;

    min-height: 0 !important;
    max-height: calc(100dvh - 190px) !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
}

html body #fecFormModal #fecForm > .supplier-modal-footer {
    flex: 0 0 auto !important;
}

/* Sur petit écran : toujours centré, jamais collé en bas. */
@media (max-width: 700px) {
    html body #fecFormModal.supplier-modal-overlay {
        align-items: center !important;
        justify-content: center !important;
        padding: 8px !important;
    }

    html body #fecFormModal > .supplier-modal {
        width: calc(100vw - 16px) !important;
        max-width: none !important;

        max-height: calc(100dvh - 16px) !important;

        border-radius: 16px !important;
    }

    html body #fecFormModal #fecForm > .supplier-modal-body {
        max-height: calc(100dvh - 170px) !important;
    }
}


/* ============================================================
   ABSTECH PRO — RESPONSIVE GLOBAL FINAL
   Admin + Enseignant + Fournisseur + Authentification
   2026-09-04
   ============================================================ */

html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: hidden;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

img,
video {
    height: auto;
}

.main-content,
.client-main,
.supplier-shell,
.supplier-content,
.supplier-main {
    min-width: 0 !important;
    max-width: 100%;
}

.client-main > *,
.supplier-main > * {
    min-width: 0;
    max-width: 100%;
}

input,
select,
textarea {
    max-width: 100%;
}

textarea {
    resize: vertical;
}

/* Les tableaux restent exploitables sur téléphone sans casser la page. */
.overflow-x-auto,
.table-responsive,
.table-container,
.supplier-table-wrap,
.fs-table-wrap {
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

.overflow-x-auto > table,
.table-responsive > table,
.table-container > table,
.supplier-table-wrap > table,
.fs-table-wrap > table {
    width: max-content;
    min-width: 100%;
}

/* Tous les dialogues doivent rester dans l'écran. */
.modal-overlay,
.modal-premium-overlay,
.supplier-modal-overlay {
    max-width: 100vw;
    max-height: 100dvh;
}

.modal-content,
.modal-premium,
.supplier-modal {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
}

.modal-content,
.modal-premium .body,
.supplier-modal-body {
    -webkit-overflow-scrolling: touch;
}

/* Empêche les textes longs (emails, noms, codes) de déborder. */
.client-main,
.supplier-main,
.modal-content,
.modal-premium,
.supplier-modal {
    overflow-wrap: anywhere;
}

/* ============================================================
   TABLETTES ET PETITS ORDINATEURS
   ============================================================ */
@media (max-width: 1023px) {

    /* ----- Client : admin + enseignant ----- */
    .main-content {
        margin-left: 0 !important;
        width: 100% !important;
    }

    .client-sidebar {
        width: min(86vw, 280px) !important;
        max-width: 280px;
    }

    .client-main {
        width: 100%;
        max-width: 100%;
    }

    /* ----- Fournisseur ----- */
    .supplier-content {
        margin-left: 0 !important;
        width: 100% !important;
    }

    #fournisseurSidebar.sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        z-index: 60 !important;
        width: min(86vw, 280px) !important;
        max-width: 280px !important;
        height: 100vh !important;
        height: 100dvh !important;
        overflow-y: auto !important;
        transform: translateX(-105%) !important;
        transition: transform .25s ease !important;
    }

    #fournisseurSidebar.sidebar.open {
        transform: translateX(0) !important;
    }

    #fournisseurSidebarBackdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 50 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
    }

    #fournisseurSidebarBackdrop[hidden] {
        display: none !important;
    }

    .topbar-menu-button {
        display: inline-flex !important;
        flex: 0 0 42px;
        width: 42px;
        height: 42px;
    }

    .supplier-main {
        width: 100%;
        max-width: 100%;
        padding: 1.25rem !important;
    }

    /* Les zones d'action peuvent revenir à la ligne sur tablette. */
    .client-main .flex-wrap,
    .supplier-main .flex-wrap {
        row-gap: .65rem;
    }
}

/* ============================================================
   TELEPHONES
   ============================================================ */
@media (max-width: 767px) {

    body {
        font-size: 15px;
    }

    /* Barre supérieure client : place réservée au bouton menu. */
    .main-content > header {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-left: 4.25rem !important;
        padding-right: .75rem !important;
        gap: .5rem !important;
    }

    .main-content > header > div {
        min-width: 0;
    }

    /* Barre fournisseur. */
    .supplier-content > header,
    .supplier-content .topbar {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding-left: .75rem !important;
        padding-right: .75rem !important;
        gap: .65rem !important;
    }

    .client-main,
    .supplier-main {
        padding: .85rem !important;
    }

    .client-main > .animate-fade-in,
    .client-main > .animate-fade-in-up,
    .supplier-main > .animate-fade-in,
    .supplier-main > .animate-fade-in-up {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Grilles métier : une colonne sur téléphone. */
    .client-main .grid-cols-2,
    .client-main .grid-cols-3,
    .client-main .grid-cols-4,
    .supplier-main .grid-cols-2,
    .supplier-main .grid-cols-3,
    .supplier-main .grid-cols-4 {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /* Actions principales faciles à toucher. */
    .client-main button,
    .client-main .btn,
    .client-main a.btn,
    .supplier-main button,
    .supplier-main .btn,
    .supplier-main a.btn,
    .supplier-main .btn-premium,
    .supplier-main .supplier-primary-button,
    .supplier-main .supplier-secondary-button {
        min-height: 44px;
    }

    /* Formulaires */
    .client-main form input,
    .client-main form select,
    .client-main form textarea,
    .supplier-main form input,
    .supplier-main form select,
    .supplier-main form textarea {
        width: 100%;
        min-width: 0;
    }

    /* Tableaux : texte compact, défilement horizontal uniquement dans le tableau. */
    .client-main table th,
    .client-main table td,
    .supplier-main table th,
    .supplier-main table td {
        padding: .7rem .75rem;
        white-space: normal;
    }

    .client-main table th,
    .supplier-main table th {
        font-size: .7rem;
    }

    .client-main table td,
    .supplier-main table td {
        font-size: .8rem;
    }

    /* Cartes */
    .client-main .rounded-2xl,
    .client-main .rounded-3xl,
    .supplier-main .rounded-2xl,
    .supplier-main .rounded-3xl {
        max-width: 100%;
    }

    /* Modales centrées et scrollables. */
    .modal-overlay,
    .modal-premium-overlay,
    .supplier-modal-overlay {
        align-items: center !important;
        justify-content: center !important;
        padding: 8px !important;
    }

    .modal-content,
    .modal-premium,
    .supplier-modal {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
        margin: 0 !important;
        border-radius: 16px !important;
        overflow-y: auto !important;
    }

    .modal-header,
    .modal-footer,
    .supplier-modal-header,
    .supplier-modal-footer {
        flex-wrap: wrap;
        gap: .65rem;
    }

    .modal-footer > button,
    .modal-footer > .btn,
    .supplier-modal-footer > button,
    .supplier-modal-footer > .btn-premium {
        flex: 1 1 150px;
    }

    /* Login */
    .login-page {
        min-height: 100vh;
        min-height: 100dvh;
        padding: 0 !important;
        align-items: stretch !important;
    }

    .login-container {
        width: 100% !important;
        min-height: 100vh;
        min-height: 100dvh;
        max-width: none !important;
        border-radius: 0 !important;
    }

    .login-brand,
    .login-form-wrapper {
        width: 100% !important;
        padding: 1.35rem !important;
    }
}

/* ============================================================
   PETITS TELEPHONES
   ============================================================ */
@media (max-width: 480px) {

    .client-menu-toggle {
        top: max(.55rem, env(safe-area-inset-top));
        left: .55rem;
        width: 42px;
        height: 42px;
    }

    .client-menu-toggle.is-open {
        left: calc(min(86vw, 280px) - 3.2rem);
    }

    .main-content > header {
        padding-left: 3.65rem !important;
        min-height: 58px;
    }

    .client-main,
    .supplier-main {
        padding: .65rem !important;
    }

    .client-main h1,
    .supplier-main h1 {
        font-size: clamp(1.25rem, 7vw, 1.75rem);
        line-height: 1.2;
    }

    .client-main h2,
    .supplier-main h2 {
        font-size: clamp(1.05rem, 5vw, 1.35rem);
    }

    .client-main .p-6,
    .client-main .p-8,
    .supplier-main .p-6,
    .supplier-main .p-8 {
        padding: 1rem !important;
    }

    .client-main .px-6,
    .client-main .px-8,
    .supplier-main .px-6,
    .supplier-main .px-8 {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .client-main .gap-6,
    .client-main .gap-8,
    .supplier-main .gap-6,
    .supplier-main .gap-8 {
        gap: 1rem !important;
    }

    .modal-footer > button,
    .modal-footer > .btn,
    .supplier-modal-footer > button,
    .supplier-modal-footer > .btn-premium {
        flex-basis: 100%;
        width: 100%;
    }

    /* Les métriques fournisseur passent à une colonne sur très petit écran. */
    .supplier-dashboard-metrics,
    .supplier-metric-grid-four,
    .supplier-metric-grid-three {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   GRAND ECRAN — état fixe normal
   ============================================================ */
@media (min-width: 1024px) {

    #fournisseurSidebar.sidebar {
        transform: translateX(0) !important;
    }

    #fournisseurSidebarBackdrop,
    .topbar-menu-button {
        display: none !important;
    }

    .supplier-content {
        margin-left: 280px !important;
        width: calc(100% - 280px);
    }
}


/* ============================================================
   ABSTECH PRO — RESPONSIVE GLOBAL V2
   Correctif prioritaire placé en fin de fichier.
   ============================================================ */

html,
body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

body.client-sidebar-open,
body.supplier-sidebar-open {
    overflow: hidden !important;
}

.main-content,
.client-main,
.supplier-shell,
.supplier-content,
.supplier-main,
.topbar,
header {
    min-width: 0 !important;
}

.client-main *,
.supplier-main * {
    box-sizing: border-box;
}

.client-main img,
.client-main video,
.client-main canvas,
.client-main svg,
.supplier-main img,
.supplier-main video,
.supplier-main canvas,
.supplier-main svg {
    max-width: 100%;
}

/* Le hamburger reste TOUJOURS au même endroit. */
.client-menu-toggle,
.client-menu-toggle.is-open {
    position: fixed !important;
    top: max(10px, env(safe-area-inset-top)) !important;
    left: max(12px, env(safe-area-inset-left)) !important;
    right: auto !important;
    width: 44px !important;
    height: 44px !important;
    z-index: 90 !important;
    transform: none !important;
}

/* Conteneurs de tableaux : le scroll reste local au tableau. */
.overflow-x-auto,
.table-responsive,
.table-container,
.supplier-table-wrap,
.fs-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.overflow-x-auto table,
.table-responsive table,
.table-container table,
.supplier-table-wrap table,
.fs-table-wrap table {
    min-width: 720px;
}

/* Modales : jamais hors écran. */
.modal-overlay,
.modal-premium-overlay,
.supplier-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow-y: auto !important;
    padding:
        max(10px, env(safe-area-inset-top))
        max(10px, env(safe-area-inset-right))
        max(10px, env(safe-area-inset-bottom))
        max(10px, env(safe-area-inset-left)) !important;
}

.modal-content,
.modal-premium,
.supplier-modal {
    width: min(100%, 720px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    overflow-y: auto !important;
}

/* ============================================================
   MOBILE + TABLETTE
   ============================================================ */
@media (max-width: 1023px) {

    /* ---------- ADMIN / ENSEIGNANT ---------- */
    .client-sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(88vw, 300px) !important;
        max-width: 300px !important;
        height: 100vh !important;
        height: 100dvh !important;
        z-index: 80 !important;
        transform: translateX(-105%) !important;
        transition: transform .24s ease !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    .client-sidebar.is-open {
        transform: translateX(0) !important;
    }

    /*
     * Le bouton reste à gauche lorsque le menu s'ouvre.
     * On réserve donc son espace dans l'entête du menu.
     */
    .client-sidebar > :first-child {
        padding-left: 4.25rem !important;
        padding-right: 1rem !important;
    }

    .client-sidebar-overlay {
        position: fixed !important;
        inset: 0 !important;
        z-index: 70 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
    }

    .client-sidebar-overlay[hidden] {
        display: none !important;
    }

    .main-content {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .main-content > header {
        width: 100% !important;
        max-width: 100% !important;
        padding-left:
            max(68px, calc(env(safe-area-inset-left) + 68px))
            !important;
        padding-right:
            max(12px, env(safe-area-inset-right))
            !important;
    }

    .client-main {
        width: 100% !important;
        max-width: 100% !important;
        padding: 1rem !important;
    }

    /* ---------- FOURNISSEUR ---------- */
    #fournisseurSidebar.sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(88vw, 300px) !important;
        max-width: 300px !important;
        height: 100vh !important;
        height: 100dvh !important;
        z-index: 80 !important;
        transform: translateX(-105%) !important;
        transition: transform .24s ease !important;
        overflow-y: auto !important;
    }

    #fournisseurSidebar.sidebar.open {
        transform: translateX(0) !important;
    }

    #fournisseurSidebarBackdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 70 !important;
        width: 100vw !important;
        height: 100dvh !important;
    }

    #fournisseurSidebarBackdrop[hidden] {
        display: none !important;
    }

    .supplier-content {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .topbar-menu-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        height: 44px !important;
    }

    .supplier-content > header,
    .supplier-content .topbar {
        width: 100% !important;
        max-width: 100% !important;
    }

    .supplier-main {
        width: 100% !important;
        max-width: 100% !important;
        padding: 1rem !important;
    }
}

/* ============================================================
   TELEPHONES
   ============================================================ */
@media (max-width: 767px) {

    .client-main,
    .supplier-main {
        padding: .75rem !important;
    }

    /* Empêche les gros wrappers Tailwind de créer des marges énormes. */
    .client-main > .animate-fade-in,
    .client-main > .animate-fade-in-up,
    .client-main > [class*="max-w-"],
    .supplier-main > .animate-fade-in,
    .supplier-main > .animate-fade-in-up,
    .supplier-main > [class*="max-w-"] {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Les grilles principales deviennent une colonne. */
    .client-main .grid-cols-2,
    .client-main .grid-cols-3,
    .client-main .grid-cols-4,
    .client-main .grid-cols-5,
    .supplier-main .grid-cols-2,
    .supplier-main .grid-cols-3,
    .supplier-main .grid-cols-4,
    .supplier-main .grid-cols-5,
    .supplier-form-grid,
    .supplier-detail-grid,
    .fs-metrics,
    .fs-grid-two {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /* Les en-têtes et groupes d'actions reviennent à la ligne. */
    .client-main .flex,
    .supplier-main .flex,
    .supplier-modal-footer,
    .modal-footer {
        min-width: 0;
    }

    .supplier-actions-footer {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .supplier-actions-footer > button,
    .supplier-actions-footer > a {
        width: 100% !important;
    }

    /* Champs toujours exploitables sur téléphone. */
    .client-main input,
    .client-main select,
    .client-main textarea,
    .supplier-main input,
    .supplier-main select,
    .supplier-main textarea {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    /* Cibles tactiles. */
    .client-main button,
    .client-main a.btn,
    .supplier-main button,
    .supplier-main a.btn,
    .supplier-primary-button,
    .supplier-secondary-button,
    .supplier-warning-button,
    .supplier-danger-button {
        min-height: 44px;
    }

    /* Tableau : ne pas écraser les colonnes, scroller proprement. */
    .overflow-x-auto table,
    .table-responsive table,
    .table-container table,
    .supplier-table-wrap table,
    .fs-table-wrap table {
        min-width: 680px;
    }

    /* Modales en quasi plein écran. */
    .modal-content,
    .modal-premium,
    .supplier-modal {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
        border-radius: 16px !important;
    }

    .modal-header,
    .modal-footer,
    .supplier-modal-header,
    .supplier-modal-footer {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        flex-wrap: wrap !important;
    }

    .modal-body,
    .supplier-modal-body {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .client-main h1,
    .supplier-main h1 {
        font-size: clamp(1.25rem, 6vw, 1.75rem) !important;
        line-height: 1.2 !important;
    }

    .client-main h2,
    .supplier-main h2 {
        font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
        line-height: 1.25 !important;
    }
}

/* ============================================================
   TRES PETITS ECRANS
   ============================================================ */
@media (max-width: 420px) {

    .client-menu-toggle,
    .client-menu-toggle.is-open {
        top: max(8px, env(safe-area-inset-top)) !important;
        left: max(8px, env(safe-area-inset-left)) !important;
        width: 42px !important;
        height: 42px !important;
    }

    .main-content > header {
        min-height: 58px !important;
        padding-left: 60px !important;
    }

    .client-main,
    .supplier-main {
        padding: .6rem !important;
    }

    .client-main .p-6,
    .client-main .p-8,
    .supplier-main .p-6,
    .supplier-main .p-8 {
        padding: 1rem !important;
    }

    .client-main .px-6,
    .client-main .px-8,
    .supplier-main .px-6,
    .supplier-main .px-8 {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .modal-footer > button,
    .modal-footer > .btn,
    .supplier-modal-footer > button,
    .supplier-modal-footer > .btn-premium {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* ============================================================
   BUREAU
   ============================================================ */
@media (min-width: 1024px) {

    .client-sidebar {
        width: 280px !important;
        max-width: 280px !important;
        transform: translateX(0) !important;
        box-shadow: none !important;
    }

    .client-menu-toggle,
    .client-sidebar-overlay {
        display: none !important;
    }

    .main-content {
        margin-left: 280px !important;
        width: calc(100% - 280px) !important;
        max-width: calc(100% - 280px) !important;
    }

    #fournisseurSidebar.sidebar {
        width: 280px !important;
        max-width: 280px !important;
        transform: translateX(0) !important;
    }

    #fournisseurSidebarBackdrop,
    .topbar-menu-button {
        display: none !important;
    }

    .supplier-content {
        margin-left: 280px !important;
        width: calc(100% - 280px) !important;
        max-width: calc(100% - 280px) !important;
    }
}

/* ============================================================
   ABSTECH — CORRECTIF TABLEAUX ORIGINAL V3
   Élèves + Utilisateurs uniquement.
   Aucun changement de logique ou de colonnes.
   ============================================================ */

/*
 * Le responsive global précédent imposait width:max-content aux tables
 * placées dans .overflow-x-auto. Sur les tableaux courts (5/6 colonnes),
 * cela réduisait visuellement le tableau à la largeur de son contenu
 * et créait le grand vide blanc à droite.
 */
#usersTableCard,
#studentTableCard {
    width: 100% !important;
    max-width: 100% !important;
}

#usersTableCard > .overflow-x-auto,
#studentTableCard > .overflow-x-auto {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

#usersTableCard table,
#studentTableCard table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
}

/* -------- Utilisateurs : structure originale à 5 colonnes -------- */
#usersTableCard th:nth-child(1),
#usersTableCard td:nth-child(1) {
    width: 13%;
}

#usersTableCard th:nth-child(2),
#usersTableCard td:nth-child(2) {
    width: 13%;
}

#usersTableCard th:nth-child(3),
#usersTableCard td:nth-child(3) {
    width: 27%;
}

#usersTableCard th:nth-child(4),
#usersTableCard td:nth-child(4) {
    width: 19%;
}

#usersTableCard th:nth-child(5),
#usersTableCard td:nth-child(5) {
    width: 28%;
}

#usersTableCard th,
#usersTableCard td {
    vertical-align: middle;
}

/* -------- Élèves : structure originale à 6 colonnes -------- */
#studentTableCard th:nth-child(1),
#studentTableCard td:nth-child(1) {
    width: 12%;
}

#studentTableCard th:nth-child(2),
#studentTableCard td:nth-child(2) {
    width: 15%;
}

#studentTableCard th:nth-child(3),
#studentTableCard td:nth-child(3) {
    width: 15%;
}

#studentTableCard th:nth-child(4),
#studentTableCard td:nth-child(4) {
    width: 14%;
}

#studentTableCard th:nth-child(5),
#studentTableCard td:nth-child(5) {
    width: 18%;
}

#studentTableCard th:nth-child(6),
#studentTableCard td:nth-child(6) {
    width: 26%;
}

#studentTableCard th,
#studentTableCard td {
    vertical-align: middle;
}

/* Pagination : conserver l'alignement original et toute la largeur. */
#usersPaginationWrap {
    width: 100% !important;
    max-width: 100% !important;
}

#usersPagination,
#studentPagination {
    flex-wrap: wrap;
}

/* Sur tablette/téléphone, on ne compresse pas les colonnes :
   le tableau défile horizontalement dans sa carte. */
@media (max-width: 767px) {
    #usersTableCard table {
        min-width: 760px !important;
    }

    #studentTableCard table {
        min-width: 720px !important;
    }

    #usersTableCard > .overflow-x-auto,
    #studentTableCard > .overflow-x-auto {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* ============================================================
   ABSTECH PRO — HIDDEN PRIORITAIRE GLOBAL
   Restaure le comportement HTML natif de l'attribut hidden.
   Nécessaire car certaines modales ont display:flex!important.
   ============================================================ */
html body [hidden]:not([hidden="until-found"]) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* ============================================================
   ABSTECH PRO — FOURNISSEUR RESPONSIVE + MODALES FINAL
   05/09/2026
   Correctif placé en fin de fichier pour prendre la priorité.
   ============================================================ */

/* Toutes les modales fournisseur utilisent le viewport réel. */
html body .supplier-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding:
        max(12px, env(safe-area-inset-top))
        max(12px, env(safe-area-inset-right))
        max(12px, env(safe-area-inset-bottom))
        max(12px, env(safe-area-inset-left))
        !important;

    overflow: hidden !important;
    z-index: 10000 !important;
}

/* hidden doit toujours gagner sur display:flex!important. */
html body .supplier-modal-overlay[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html body .supplier-modal {
    position: relative !important;
    inset: auto !important;
    transform: none !important;

    display: flex !important;
    flex-direction: column !important;

    width: min(620px, 100%) !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 24px) !important;

    margin: 0 auto !important;
    overflow: hidden !important;
}

html body .supplier-modal-wide {
    width: min(960px, 100%) !important;
}

html body .supplier-plan-modal {
    width: min(1040px, 100%) !important;
}

html body .supplier-modal-header,
html body .supplier-modal-footer {
    flex: 0 0 auto !important;
}

html body .supplier-modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* Nouveau résumé de prix des périodes. */
.supplier-period-base {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    min-height: 60px;
    padding: 10px 12px;
}

.supplier-period-base span,
.supplier-period-total span {
    color: #64748b;
    display: block;
    font-size: .68rem;
    font-weight: 700;
}

.supplier-period-base strong {
    color: #1e293b;
    display: block;
    font-size: .9rem;
    margin-top: 5px;
}

.supplier-period-discount-toggle {
    align-items: center !important;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between;
    min-height: 60px;
    padding: 10px 12px;
}

.supplier-period-discount-toggle input {
    accent-color: #2563eb;
    flex: 0 0 auto;
    height: 18px;
    width: 18px;
}

/* Les cartes et grilles fournisseur ne doivent jamais dépasser le viewport. */
.supplier-page,
.supplier-page-heading,
.supplier-metric-grid,
.supplier-plan-grid,
.supplier-detail-grid,
.supplier-form-grid,
.supplier-period-grid,
.supplier-panel,
.supplier-table-wrap {
    min-width: 0 !important;
    max-width: 100% !important;
}

.supplier-page-heading {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: space-between;
}

.supplier-page-heading > * {
    min-width: 0;
}

.supplier-plan-card,
.supplier-metric-card,
.supplier-panel {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Tablettes. */
@media (max-width: 1100px) {
    .supplier-plan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .supplier-period-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .supplier-detail-grid,
    .supplier-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Téléphones. */
@media (max-width: 767px) {
    .supplier-page-heading {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    .supplier-page-heading > .supplier-primary-button,
    .supplier-page-heading > button {
        width: 100% !important;
    }

    .supplier-plan-grid,
    .supplier-period-grid,
    .supplier-detail-grid,
    .supplier-form-grid,
    .supplier-metric-grid,
    .supplier-metric-grid-three,
    .supplier-metric-grid-four {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    html body .supplier-modal-overlay {
        padding:
            max(8px, env(safe-area-inset-top))
            max(8px, env(safe-area-inset-right))
            max(8px, env(safe-area-inset-bottom))
            max(8px, env(safe-area-inset-left))
            !important;
    }

    html body .supplier-modal,
    html body .supplier-modal-wide,
    html body .supplier-plan-modal {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100dvh - 16px) !important;
        border-radius: 15px !important;
    }

    html body .supplier-modal-header {
        min-height: 64px !important;
        padding: 14px 15px !important;
    }

    html body .supplier-modal-body {
        padding: 15px !important;
    }

    html body .supplier-modal-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        padding: 12px 15px !important;
    }

    html body .supplier-modal-footer > button,
    html body .supplier-modal-footer > a {
        width: 100% !important;
        min-width: 0 !important;
    }

    .supplier-period-fields {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Très petit écran. */
@media (max-width: 420px) {
    .supplier-main {
        padding: .55rem !important;
    }

    html body .supplier-modal-overlay {
        padding: 5px !important;
    }

    html body .supplier-modal,
    html body .supplier-modal-wide,
    html body .supplier-plan-modal {
        max-height: calc(100dvh - 10px) !important;
        border-radius: 12px !important;
    }
}


/* ============================================================
   ABSTECH PRO — TABLEAUX ADMIN PLEINE LARGEUR
   05/09/2026
   Corrige uniquement l'affichage des tableaux de :
   - Rapports (tous les onglets)
   - Suivi des appels

   Aucun changement PHP / JS / base de donnees.
   ============================================================ */

/* Les cartes et zones de tableau occupent toute la largeur disponible. */
#rapportContent,
#appelsTableCard {
    width: 100% !important;
    max-width: 100% !important;
}

#rapportContent .overflow-x-auto,
#appelsTableCard > .overflow-x-auto {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

/*
 * Sur ordinateur, le tableau remplit sa carte au lieu de rester
 * colle a gauche a la largeur de son contenu.
 */
#rapportContent .overflow-x-auto > table,
#appelsTableCard > .overflow-x-auto > table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
}

/*
 * Sur mobile, conserver un vrai tableau lisible et laisser le scroll
 * horizontal dans la carte, sans elargir toute la page.
 */
@media (max-width: 767px) {
    #rapportContent .overflow-x-auto,
    #appelsTableCard > .overflow-x-auto {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    #rapportContent .overflow-x-auto > table {
        min-width: 680px !important;
    }

    #appelsTableCard > .overflow-x-auto > table {
        min-width: 900px !important;
    }
}


/* ============================================================
   ABSTECH PRO — CORRECTIONS VISUELLES SUIVI DES APPELS
   ============================================================ */
.abstech-prof-absent-action,.abstech-prof-absent-confirm{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.375rem;min-height:42px;border:1px solid #e11d48!important;border-radius:.75rem;background:#e11d48!important;color:#fff!important;opacity:1!important;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(225,29,72,.18);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease}
.abstech-prof-absent-action:hover,.abstech-prof-absent-confirm:hover{border-color:#be123c!important;background:#be123c!important;box-shadow:0 10px 22px rgba(190,18,60,.22);transform:translateY(-1px)}
.abstech-prof-absent-confirm.is-cancel{border-color:#4f46e5!important;background:#4f46e5!important;box-shadow:0 8px 18px rgba(79,70,229,.18)}
.abstech-prof-absent-confirm.is-cancel:hover{border-color:#4338ca!important;background:#4338ca!important}
.abstech-prof-absent-action:disabled,.abstech-prof-absent-confirm:disabled{opacity:.62!important;cursor:wait;transform:none}
#appelDetailsLoading[hidden]{display:none!important}
