:root{--navy:#08172f;--navy2:#0d2447;--blue:#2366d1;--cyan:#34b7c9;--red:#d64545;--gold:#d8b45a;--ink:#142036;--muted:#6e7890;--bg:#f5f7fb;--card:#fff;--radius:28px;--shadow:0 25px 70px rgba(7,25,54,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}a{text-decoration:none;color:inherit}.container{width:min(1200px,92vw);margin:auto}.progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--gold));width:0;z-index:100}.topbar{background:#07152b;color:#d8e3f2;font-size:.9rem}.topbarin{display:flex;justify-content:space-between;gap:20px;padding:9px 0}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(15,42,78,.08)}.navin{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:54px;height:54px;object-fit:contain;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.1)}.brand b{display:block;font-size:1rem}.brand small{display:block;color:var(--muted);margin-top:2px}.links{display:flex;align-items:center;gap:22px;font-weight:700;font-size:.94rem}.links>a:not(.btn){position:relative}.links>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:var(--blue);transition:.25s}.links>a:not(.btn):hover:after{right:0}.menuBtn{display:none;background:none;border:0;font-size:1.7rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;border-radius:15px;padding:13px 19px;font-weight:800;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--blue),#17458f);color:#fff;box-shadow:0 13px 30px rgba(35,102,209,.25)}.btn-glass{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(12px)}.btn-lg{padding:15px 22px}.hero{position:relative;min-height:760px;display:grid;align-items:center;overflow:hidden;background:radial-gradient(circle at 75% 20%,#174c87 0,#0b2344 35%,#061326 75%);color:#fff}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(5,17,35,.25),rgba(5,17,35,.75));pointer-events:none}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;padding:90px 0}.hero-copy h1{font-size:clamp(3.7rem,6vw,6.8rem);line-height:.91;letter-spacing:-.055em;margin:22px 0 26px;max-width:760px}.hero-copy h1 span{background:linear-gradient(90deg,#8adbea,#f0d88c);-webkit-background-clip:text;color:transparent}.hero-copy p{font-size:1.15rem;line-height:1.75;color:#d7e4f4;max-width:700px}.eyebrow{display:inline-flex;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.09);font-weight:750}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:50px}.hero-meta div{padding:16px 0;border-top:1px solid rgba(255,255,255,.18)}.hero-meta b{display:block;font-size:1.5rem}.hero-meta span{display:block;color:#b9cce3;font-size:.9rem;margin-top:3px}.hero-visual{position:relative}.hero-card{position:relative;border-radius:36px;overflow:hidden;box-shadow:0 35px 100px rgba(0,0,0,.38);transform:rotate(1.5deg);border:1px solid rgba(255,255,255,.2)}.hero-card>img{width:100%;height:590px;object-fit:cover;display:block;transition:.7s}.hero-card:hover>img{transform:scale(1.035)}.hero-badge{position:absolute;left:20px;right:20px;bottom:20px;background:rgba(7,22,45,.76);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.2);border-radius:22px;padding:13px;display:flex;gap:12px;align-items:center}.hero-badge img{width:48px;height:48px;object-fit:contain;border-radius:12px;background:#fff}.hero-badge strong,.hero-badge small{display:block}.hero-badge small{color:#c9d8e9;margin-top:2px}.hero-orb{position:absolute;border-radius:50%;filter:blur(3px);opacity:.2;animation:float 7s ease-in-out infinite}.orb1{width:320px;height:320px;background:var(--cyan);right:8%;top:7%}.orb2{width:220px;height:220px;background:var(--gold);left:35%;bottom:-80px;animation-delay:-3s}@keyframes float{50%{transform:translateY(-22px) translateX(12px)}}
.section{padding:100px 0}.section-soft{background:#fff}.section-dark{background:#07152b;color:#fff}.section-head{max-width:850px;margin-bottom:42px}.section-head h2{font-size:clamp(2.3rem,4vw,4rem);line-height:1.06;letter-spacing:-.035em;margin:14px 0}.section-head p{font-size:1.08rem;line-height:1.75;color:var(--muted);max-width:760px}.section-head.light p{color:#b7c8dd}.badge{display:inline-flex;font-size:.76rem;padding:7px 10px;border-radius:999px;background:#eaf1ff;color:#174f9f;font-weight:900;letter-spacing:.06em}.mission-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center}.mission-photo{position:relative;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);min-height:620px}.mission-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.floating-note{position:absolute;left:22px;bottom:22px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);padding:15px 18px;border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,.12)}.floating-note b,.floating-note span{display:block}.floating-note span{color:var(--muted);margin-top:3px}.mission-list{display:grid;gap:14px}.mission-list article{display:flex;gap:18px;padding:22px;border-radius:22px;background:#fff;border:1px solid #e5ebf4;transition:.25s}.mission-list article:hover{transform:translateX(6px);box-shadow:0 14px 35px rgba(10,35,69,.08)}.mission-list article>span{width:42px;height:42px;border-radius:13px;background:#eaf2ff;color:var(--blue);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.mission-list h3{margin:0 0 7px}.mission-list p{margin:0;color:var(--muted);line-height:1.6}.faculty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.faculty-card{background:#f8faff;border:1px solid #e5ebf4;padding:28px;border-radius:26px;transition:.3s;position:relative;overflow:hidden}.faculty-card:before{content:"";position:absolute;inset:auto -40px -50px auto;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,rgba(35,102,209,.12),rgba(52,183,201,.12))}.faculty-card:hover{transform:translateY(-8px);box-shadow:0 22px 55px rgba(11,38,75,.12);background:#fff}.faculty-icon{width:50px;height:50px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:1.4rem;box-shadow:0 8px 20px rgba(0,0,0,.06)}.faculty-card h3{font-size:1.2rem;margin:18px 0 12px}.faculty-card ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.7}.campus-section{background:linear-gradient(180deg,#f5f7fb,#edf4ff)}.campus-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:center}.campus-copy h2{font-size:clamp(2.3rem,4vw,4rem);line-height:1.05;margin:14px 0}.campus-copy p{color:var(--muted);font-size:1.08rem;line-height:1.75}.feature-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.feature-pills span{background:#fff;border:1px solid #dfe8f4;padding:10px 13px;border-radius:999px;font-weight:750}.campus-collage{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:280px 280px;gap:14px}.campus-collage img{width:100%;height:100%;object-fit:cover;border-radius:24px;box-shadow:0 15px 40px rgba(11,35,66,.12);cursor:zoom-in;transition:.35s}.campus-collage img:first-child{grid-row:1/3}.campus-collage img:hover{transform:scale(1.02)}.adv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.adv{padding:26px;border-radius:22px;background:#fff;border:1px solid #e5ebf4;box-shadow:0 9px 28px rgba(8,30,58,.05)}.adv b{color:var(--blue);font-size:1.5rem}.adv h3{margin:12px 0 0;font-size:1.05rem}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:12px}.gallery-item{padding:0;border:0;background:none;border-radius:20px;overflow:hidden;cursor:zoom-in;position:relative}.gallery-item:after{content:"＋";position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:50%;background:rgba(7,21,43,.72);color:#fff;display:grid;place-items:center;font-size:1.3rem;opacity:0;transform:scale(.8);transition:.25s}.gallery-item:hover:after{opacity:1;transform:scale(1)}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:.45s}.gallery-item:hover img{transform:scale(1.07)}.gallery-item:nth-child(1),.gallery-item:nth-child(8),.gallery-item:nth-child(15){grid-column:span 2;grid-row:span 2}.pre-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:start}.pre-copy h2{font-size:clamp(2.4rem,4vw,4rem);margin:14px 0}.pre-copy p{color:var(--muted);line-height:1.75}.pre-photo{width:100%;height:420px;object-fit:cover;border-radius:28px;margin-top:25px;box-shadow:var(--shadow);cursor:zoom-in}.form-card{background:#fff;border:1px solid #e5ebf4;border-radius:30px;padding:30px;box-shadow:var(--shadow)}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:750;font-size:.92rem}.field input,.field select,.field textarea{width:100%;border:1px solid #dbe4ef;background:#fbfdff;padding:14px 15px;border-radius:13px;font:inherit;outline:none;transition:.2s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6d9be2;box-shadow:0 0 0 4px rgba(35,102,209,.08);background:#fff}.btn-submit{width:100%;padding:15px}.notice{padding:14px 16px;border-radius:14px;background:#e9f8ee;color:#126b36;margin-bottom:18px}.contact-section{padding-top:35px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-card{background:linear-gradient(135deg,#fff,#f4f8ff);border:1px solid #e2e9f3;border-radius:30px;padding:35px;display:flex;gap:22px;align-items:flex-start}.contact-card>img{width:88px;height:88px;object-fit:contain;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.1)}.contact-card h2{font-size:2.2rem;margin:12px 0}.contact-card p{color:var(--muted);line-height:1.7}.contact-photo{border-radius:30px;overflow:hidden;min-height:420px}.contact-photo img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.footer{background:#061326;color:#dce7f4;padding:55px 0 25px;margin-top:70px}.footergrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer-brand{display:flex;align-items:center;gap:14px}.footer-brand img{width:64px;height:64px;object-fit:contain;border-radius:16px;background:#fff}.footer-brand b,.footer-brand span{display:block}.footer-brand span{color:#9db0c8;margin-top:4px}.footer a{display:block;color:#afc0d3;margin:9px 0}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:20px;color:#8fa3bb}.lightbox{position:fixed;inset:0;background:rgba(3,10,20,.94);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.25s}.lightbox.open{opacity:1;visibility:visible}.lightbox>img{max-width:min(92vw,1400px);max-height:88vh;object-fit:contain;border-radius:14px;box-shadow:0 30px 100px rgba(0,0,0,.6);transform:scale(.94);transition:.25s}.lightbox.open>img{transform:scale(1)}.lb-close,.lb-prev,.lb-next{position:absolute;border:0;background:rgba(255,255,255,.1);color:#fff;backdrop-filter:blur(8px);cursor:pointer}.lb-close{right:25px;top:20px;width:48px;height:48px;border-radius:50%;font-size:2rem}.lb-prev,.lb-next{top:50%;transform:translateY(-50%);width:52px;height:70px;border-radius:16px;font-size:2.4rem}.lb-prev{left:22px}.lb-next{right:22px}.lb-count{position:absolute;bottom:18px;color:#fff;background:rgba(255,255,255,.1);padding:8px 12px;border-radius:999px}.to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border:0;border-radius:50%;background:#173f7f;color:white;font-size:1.25rem;box-shadow:0 10px 26px rgba(0,0,0,.2);cursor:pointer;opacity:0;transform:translateY(15px);transition:.25s;z-index:60}.to-top.show{opacity:1;transform:translateY(0)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}.reveal.delay{transition-delay:.12s}.zoomable{cursor:zoom-in}
@media(max-width:980px){.links{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:22px;flex-direction:column;box-shadow:0 20px 45px rgba(0,0,0,.14)}.links.open{display:flex}.menuBtn{display:block}.hero-grid,.mission-grid,.campus-grid,.pre-grid,.contact-grid{grid-template-columns:1fr}.hero{min-height:auto}.hero-grid{padding:70px 0}.hero-card>img{height:500px}.faculty-grid,.adv-grid{grid-template-columns:1fr 1fr}.mission-photo{min-height:520px}.gallery{grid-template-columns:repeat(2,1fr)}.footergrid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:640px){.topbarin{flex-direction:column;gap:3px}.navin{height:72px}.brand img{width:46px;height:46px}.hero-copy h1{font-size:3.4rem}.hero-meta{grid-template-columns:1fr}.hero-card>img{height:390px}.section{padding:72px 0}.faculty-grid,.adv-grid{grid-template-columns:1fr}.campus-collage{grid-template-columns:1fr;grid-template-rows:repeat(3,250px)}.campus-collage img:first-child{grid-row:auto}.gallery{grid-template-columns:1fr;grid-auto-rows:260px}.gallery-item:nth-child(1),.gallery-item:nth-child(8),.gallery-item:nth-child(15){grid-column:auto;grid-row:auto}.form{grid-template-columns:1fr}.field.full{grid-column:auto}.contact-card{flex-direction:column}.footergrid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.lb-prev{left:8px}.lb-next{right:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ===== UPT Portal Pro additions ===== */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.news-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 18px 55px rgba(13,41,68,.09);border:1px solid rgba(13,41,68,.08);transition:.35s ease}.news-card:hover{transform:translateY(-8px);box-shadow:0 26px 70px rgba(13,41,68,.15)}.news-card img{width:100%;height:220px;object-fit:cover;cursor:zoom-in}.news-body{padding:22px}.news-body h3{margin:7px 0 10px}.news-date{font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#8b5e34}.empty-card{padding:28px;background:#fff;border:1px dashed #b8c5d3;border-radius:20px;color:#64748b}.documents-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.document-card{display:flex;gap:16px;align-items:center;padding:22px;border-radius:20px;background:#fff;border:1px solid rgba(13,41,68,.08);box-shadow:0 12px 32px rgba(13,41,68,.07);text-decoration:none;color:inherit;transition:.3s}.document-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(13,41,68,.13)}.document-card h3{margin:4px 0 6px;font-size:1.05rem}.document-card small{color:#7a8897}.document-card>div>span{font-size:.85rem;font-weight:800;color:#0e6072}.doc-icon{display:grid;place-items:center;min-width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#e8f5f2,#f7eadb);font-size:1.4rem;font-weight:900;color:#0e6072}.map-photo{position:relative;display:block;overflow:hidden;border-radius:28px;min-height:360px}.map-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.map-photo:hover img{transform:scale(1.06)}.map-overlay{position:absolute;left:22px;right:22px;bottom:22px;padding:16px 18px;border-radius:18px;background:rgba(7,25,37,.82);backdrop-filter:blur(10px);color:#fff;font-weight:800}.map-overlay small{font-weight:500;opacity:.82}.admin-body,.student-body{background:linear-gradient(180deg,#f3f7f8,#eef4f0)}.admin-section{padding-top:30px}.login-card{max-width:560px;margin:20px auto}.admin-logo{width:90px;height:90px;object-fit:contain;border-radius:18px;margin-bottom:16px}.muted{color:#6b7b8f}.adminbar{padding:18px 20px;background:#0c2534;color:#fff;border-radius:18px;margin-bottom:14px;display:flex;justify-content:space-between;gap:20px}.adminbar a{color:#fff}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}.admin-nav a{padding:10px 14px;border-radius:12px;background:#fff;border:1px solid #dbe4e8;color:#173042;text-decoration:none;font-weight:700}.admin-nav a:hover,.admin-nav a.active{background:#0e6072;color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}.stat{background:#fff;padding:20px;border-radius:18px;border:1px solid #dde7e9;box-shadow:0 10px 30px rgba(13,41,68,.05)}.stat b{display:block;font-size:1.55rem;color:#0e6072}.stat span{color:#6b7b8f;font-size:.9rem}.stat.wide b{font-size:1.05rem}.admin-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:22px}.admin-list-item{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid #e6edef}.admin-list-item small{display:block;color:#7b8894;margin-top:4px}.inline{display:inline}.btn-sm{padding:8px 11px;font-size:.85rem}.btn-danger{background:#fff0f0!important;color:#b42318!important;border-color:#ffd1ce!important}.faculty-admin-block{padding:14px 0;border-bottom:1px solid #e6edef}.faculty-admin-title{display:flex;justify-content:space-between;gap:20px;padding:8px 0 12px}.filterbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.filterbar input,.filterbar select{padding:10px 12px;border:1px solid #ccd8df;border-radius:11px;min-width:210px}.detail-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.detail-grid>div{background:#f7faf9;padding:16px;border-radius:15px}.detail-grid p{margin:6px 0 0}.inner-card{box-shadow:none;background:#fbfdfc}.status{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef6f3;color:#0e6072;font-size:.82rem;font-weight:800}.student-head{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:20px;padding:14px 18px;margin-bottom:20px;box-shadow:0 10px 30px rgba(13,41,68,.06)}.student-head>div:first-child{display:flex;align-items:center;gap:12px}.student-head img{width:55px;height:55px;object-fit:contain}.student-head span small,.student-head span b{display:block}.student-hero{display:grid;grid-template-columns:1.2fr .8fr;min-height:300px;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,#0c2534,#0e6072);color:#fff;margin-bottom:22px}.student-hero>div{padding:40px}.student-hero h1{font-size:2.4rem;margin:12px 0}.student-hero img{width:100%;height:100%;object-fit:cover}.student-hero .badge{background:rgba(255,255,255,.12);color:#fff}.contact-card .btn{margin-top:10px}.gallery-item img,.zoomable{cursor:zoom-in}
@media(max-width:980px){.news-grid,.documents-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.student-hero{grid-template-columns:1fr}.student-hero img{height:260px}}
@media(max-width:640px){.news-grid,.documents-grid,.detail-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.adminbar,.student-head{align-items:flex-start;flex-direction:column}.admin-list-item{align-items:flex-start;flex-direction:column}.student-hero>div{padding:28px}.student-hero h1{font-size:1.9rem}}
.notice-error{background:#fff1f1;color:#a12626}.upload-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;border:1px dashed #afc4d3;border-radius:16px;background:#f8fbfd}.upload-box input[type=file]{position:absolute;left:-9999px}.upload-btn{margin:0}.news-image-preview{margin-top:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.news-image-preview img{width:180px;height:110px;object-fit:cover;border-radius:14px;border:1px solid #dce6ec}.news-admin-summary{display:flex;align-items:center;gap:12px;min-width:0}.news-admin-summary img{width:74px;height:54px;object-fit:cover;border-radius:10px;border:1px solid #dce6ec;flex:0 0 auto}.news-admin-summary>div{min-width:0}

/* ===== Vidéo officielle UPT ===== */
.btn-video{background:rgba(214,69,69,.16);border:1px solid rgba(255,255,255,.28);color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.14)}.btn-video:hover{background:rgba(214,69,69,.28)}.play-dot{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;color:#d64545;font-size:.72rem;margin-right:8px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.video-section{position:relative;overflow:hidden;background:linear-gradient(135deg,#07152b 0%,#0d2f58 55%,#12365e 100%);color:#fff}.video-section:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(52,183,201,.13);filter:blur(1px);right:-120px;top:-160px}.video-grid{position:relative;z-index:2;display:grid;grid-template-columns:.82fr 1.18fr;gap:58px;align-items:center}.video-copy h2{font-size:clamp(2.5rem,4.4vw,4.8rem);line-height:1.02;letter-spacing:-.045em;margin:16px 0 22px}.video-copy p{color:#c8d8ea;font-size:1.08rem;line-height:1.8;max-width:640px}.badge-video{background:rgba(255,255,255,.12);color:#f7d98f;border:1px solid rgba(255,255,255,.16)}.video-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px}.video-link{color:#d8e8fa;font-weight:800;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:4px}.video-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:14px;box-shadow:0 35px 90px rgba(0,0,0,.34);backdrop-filter:blur(12px)}.video-frame{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#000}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-caption{display:flex;gap:12px;align-items:center;padding:17px 10px 6px}.video-caption strong,.video-caption small{display:block}.video-caption small{color:#9fb5ce;margin-top:3px}.video-pulse{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#d64545;color:#fff;font-size:.85rem;box-shadow:0 0 0 0 rgba(214,69,69,.55);animation:videoPulse 2s infinite}@keyframes videoPulse{70%{box-shadow:0 0 0 15px rgba(214,69,69,0)}100%{box-shadow:0 0 0 0 rgba(214,69,69,0)}}
@media(max-width:980px){.video-grid{grid-template-columns:1fr;gap:34px}}
@media(max-width:640px){.video-section{padding:72px 0}.video-card{padding:8px;border-radius:22px}.video-frame{border-radius:16px}.video-copy h2{font-size:2.55rem}}
/* Portail académique V7 */
.hero-admin{padding:26px 0 10px}.hero-admin h1{font-size:clamp(2rem,5vw,4rem);margin:.3rem 0}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:22px 0}.module-card{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:20px;background:#fff;box-shadow:0 14px 40px rgba(15,32,70,.08);text-decoration:none;color:inherit;transition:.25s}.module-card:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(15,32,70,.14)}.module-card b{font-size:1.1rem}.module-card span{color:#667085}.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.subnav a,.chip{padding:9px 13px;border-radius:999px;background:#edf4ff;text-decoration:none;font-weight:700;color:#154a9d}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.perm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.perm-grid label{background:#f7f9fc;border:1px solid #e8edf5;padding:10px;border-radius:12px}.perm-grid small{display:block;color:#7d8799;margin-left:22px}.portal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;margin-top:22px}.portal-sidebar{position:sticky;top:16px;align-self:start;background:#fff;border-radius:20px;padding:15px;box-shadow:0 14px 40px rgba(15,32,70,.08)}.course-link{display:flex;flex-direction:column;padding:12px;border-radius:14px;text-decoration:none;color:inherit;margin-bottom:8px}.course-link:hover,.course-link.active{background:#edf4ff}.course-link b{color:#1652a4}.course-link small{color:#6f7a8e}.course-hero{padding:25px;border-radius:22px;background:linear-gradient(135deg,#0f2e63,#1f66d1);color:#fff;margin-bottom:15px}.course-hero h1{margin:.4rem 0}.content-list{display:grid;gap:12px}.content-item{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:16px;border:1px solid #e7ecf3;border-radius:16px}.content-item h3{margin:0 0 6px}.submission-form{display:grid;gap:8px;margin-top:12px;padding:12px;border-radius:12px;background:#f6f8fb}.submission-form textarea{min-height:70px}.result-box{margin-top:8px;padding:10px;border-radius:10px;background:#eefaf2}.chat-list{display:grid;gap:10px;max-height:460px;overflow:auto}.chat-msg{padding:12px 14px;border-radius:14px;background:#f5f7fb}.chat-msg p{margin:.4rem 0}.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.chat-form textarea{min-height:70px}.inline-grade{display:grid;grid-template-columns:80px 1fr auto;gap:6px}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.schedule-grid>div{display:flex;flex-direction:column;padding:13px;border-radius:14px;background:#f5f8fd}.schedule-grid strong{margin-top:6px}.schedule-grid small{color:#69758a}.student-material .badge{align-self:start}@media(max-width:900px){.admin-grid,.portal-layout{grid-template-columns:1fr}.portal-sidebar{position:static}.perm-grid{grid-template-columns:1fr}.content-item{grid-template-columns:1fr}.chat-form{grid-template-columns:1fr}.inline-grade{grid-template-columns:1fr}}

/* ===== V9 : listes professionnelles, impression, rapports et thèmes ===== */
.list-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0;padding:12px;border:1px solid #e1e8f0;border-radius:14px;background:var(--card)}
.list-tools-main{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.list-search{min-width:260px;max-width:460px;padding:10px 12px;border:1px solid #cfd9e5;border-radius:11px;background:var(--card);color:var(--ink)}.list-count{font-size:.86rem;color:var(--muted);font-weight:700}.column-panel{width:100%;padding:10px;border-top:1px solid #e7edf4;display:flex;gap:10px;flex-wrap:wrap}.column-panel[hidden]{display:none}.column-choice{padding:7px 10px;border-radius:10px;background:#f4f7fb;border:1px solid #e3e9f1;font-size:.85rem}.table th[draggable=true]{cursor:grab;user-select:none}.table th[draggable=true]:active{cursor:grabbing}.row-num{font-weight:800;color:var(--muted)}
.report-header{display:flex;align-items:center;gap:18px;padding:18px 0 22px;border-bottom:2px solid var(--blue);margin-bottom:18px}.report-header img{width:78px;height:78px;object-fit:contain}.report-header h1,.report-header h2{margin:0}.report-header p{margin:5px 0 0;color:var(--muted)}.report-meta{margin-left:auto;text-align:right;font-size:.9rem;color:var(--muted)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.report-card{padding:22px;background:var(--card);border:1px solid #e1e8f0;border-radius:18px;box-shadow:0 10px 30px rgba(10,30,60,.06)}.report-card h3{margin:0 0 8px}.report-card p{color:var(--muted);min-height:44px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.theme-card{border:2px solid transparent;border-radius:20px;padding:18px;background:var(--card);cursor:pointer;box-shadow:0 10px 30px rgba(10,30,60,.07);transition:.2s}.theme-card:hover{transform:translateY(-3px);border-color:var(--blue)}.theme-preview{height:105px;border-radius:14px;margin-bottom:12px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.theme-preview span:nth-child(2){opacity:.72}.theme-blue .theme-preview{background:linear-gradient(135deg,#2366d1,#34b7c9)}.theme-green .theme-preview{background:linear-gradient(135deg,#146c43,#55b786)}.theme-violet .theme-preview{background:linear-gradient(135deg,#6f42c1,#b36de0)}.theme-multi .theme-preview{background:linear-gradient(135deg,#2366d1,#7f4cc9,#e75d8d,#f3a536,#31b57b)}.theme-dark .theme-preview{background:linear-gradient(135deg,#0c111b,#232a3a)}.theme-select{padding:8px 10px;border:1px solid #ccd8e5;border-radius:10px;background:var(--card);color:var(--ink)}
/* themes */
:root[data-theme="bleu"]{--navy:#08172f;--navy2:#0d2447;--blue:#2366d1;--cyan:#34b7c9;--gold:#d8b45a;--ink:#142036;--muted:#6e7890;--bg:#f5f7fb;--card:#fff}
:root[data-theme="vert"]{--navy:#0b2b24;--navy2:#124337;--blue:#198754;--cyan:#55b786;--gold:#d4af37;--ink:#17352e;--muted:#6b7f78;--bg:#f2f8f5;--card:#fff}
:root[data-theme="violet"]{--navy:#21133c;--navy2:#3a2265;--blue:#7048c7;--cyan:#b36de0;--gold:#d8b45a;--ink:#2d2340;--muted:#7d718f;--bg:#f7f3fb;--card:#fff}
:root[data-theme="multicolore"]{--navy:#18213c;--navy2:#25315b;--blue:#315fd4;--cyan:#22b6ae;--gold:#eea529;--red:#e45376;--ink:#20283b;--muted:#727b8c;--bg:#f7f8fc;--card:#fff}
:root[data-theme="multicolore"] .btn-primary,:root[data-theme="multicolore"] .progress{background:linear-gradient(90deg,#315fd4,#7f4cc9,#e45376,#eea529,#22b67d)!important}
:root[data-theme="sombre"]{--navy:#080b12;--navy2:#111827;--blue:#5e8cff;--cyan:#46c6d4;--gold:#e1bd62;--ink:#edf2f7;--muted:#aab4c4;--bg:#0d1119;--card:#151b26;--shadow:0 25px 70px rgba(0,0,0,.4)}
:root[data-theme="sombre"] body,:root[data-theme="sombre"] .admin-body,:root[data-theme="sombre"] .student-body{background:var(--bg);color:var(--ink)}
:root[data-theme="sombre"] .card,:root[data-theme="sombre"] .module-card,:root[data-theme="sombre"] .portal-sidebar,:root[data-theme="sombre"] .student-head,:root[data-theme="sombre"] .form-card,:root[data-theme="sombre"] .list-tools,:root[data-theme="sombre"] .report-card,:root[data-theme="sombre"] .theme-card{background:var(--card);color:var(--ink);border-color:#293244}
:root[data-theme="sombre"] .table th,:root[data-theme="sombre"] .table td{border-color:#2a3445;color:var(--ink)}
:root[data-theme="sombre"] .field input,:root[data-theme="sombre"] .field select,:root[data-theme="sombre"] .field textarea,:root[data-theme="sombre"] .filterbar input,:root[data-theme="sombre"] .filterbar select,:root[data-theme="sombre"] .list-search,:root[data-theme="sombre"] .theme-select{background:#0f1520;color:#edf2f7;border-color:#344054}
:root[data-theme="sombre"] .subnav a,:root[data-theme="sombre"] .chip,:root[data-theme="sombre"] .column-choice{background:#202a3a;color:#cfe0ff;border-color:#344054}
:root[data-theme="sombre"] .admin-nav a{color:#e8edf6}
@media print{.no-print,.admin-nav,.adminbar,.subnav,.list-tools,.btn,.filterbar{display:none!important}body{background:#fff!important;color:#000!important}.section,.admin-section{padding:0!important}.container{width:100%!important;max-width:none!important}.card{box-shadow:none!important;border:0!important;padding:0!important}.tablewrap{overflow:visible!important}.table{width:100%!important;border-collapse:collapse!important;font-size:10pt!important}.table th,.table td{border:1px solid #777!important;padding:6px!important;color:#000!important;background:#fff!important}.report-header{display:flex!important}.printing-list .card:not(:has(.print-target)){display:none!important}.printing-list .hero-admin,.printing-list .module-grid,.printing-list .stat-grid{display:none!important}@page{size:A4 landscape;margin:12mm}}
@media(max-width:700px){.list-tools-main{width:100%}.list-search{min-width:0;width:100%}.report-meta{margin-left:0;text-align:left;width:100%}}
.print-only{display:none}.public-theme-switch{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:14px;background:var(--card);box-shadow:0 12px 35px rgba(0,0,0,.16);border:1px solid rgba(120,135,155,.22)}
@media print{.print-only{display:flex!important}.dynamic-print-header{break-after:avoid}.printing-list .dynamic-print-header{display:flex!important}.printing-list .print-target{display:table!important}.printing-list .print-target *{visibility:visible!important}}

/* ===== V10 : administration premium, moderne et dynamique ===== */
.modern-admin{background:var(--bg);min-height:100vh}.modern-admin .admin-section{padding:0}.admin-app{min-height:100vh;display:flex}.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:282px;z-index:120;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 62%,#07101f 100%);color:#fff;padding:20px 16px 16px;display:flex;flex-direction:column;box-shadow:18px 0 55px rgba(7,23,47,.16);overflow-y:auto;overflow-x:hidden}.admin-sidebar:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:var(--cyan);filter:blur(70px);opacity:.13;right:-90px;top:70px;pointer-events:none}.admin-brand{position:relative;display:flex;align-items:center;gap:12px;padding:4px 5px 18px;border-bottom:1px solid rgba(255,255,255,.10)}.admin-brand-logo{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.2);overflow:hidden}.admin-brand-logo img{width:43px;height:43px;object-fit:contain}.admin-brand strong{font-size:1.15rem;letter-spacing:.03em;display:block}.admin-brand span{display:block;color:#a9bed8;font-size:.78rem;margin-top:2px}.sidebar-close{display:none;margin-left:auto;background:rgba(255,255,255,.1);border:0;color:#fff;border-radius:10px;width:34px;height:34px;font-size:1.35rem}.admin-profile-mini{display:flex;align-items:center;gap:11px;margin:16px 2px 8px;padding:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);border-radius:16px}.profile-avatar{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-weight:900;font-size:.82rem;color:#fff;background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 8px 20px rgba(0,0,0,.18)}.profile-avatar.small{width:35px;height:35px;border-radius:11px;font-size:.72rem}.admin-profile-mini b,.admin-profile-mini small{display:block}.admin-profile-mini b{font-size:.86rem}.admin-profile-mini small{font-size:.72rem;color:#a9bed8;margin-top:3px}.admin-menu{display:flex;flex-direction:column;gap:3px;padding:8px 0 18px}.menu-label{font-size:.65rem;font-weight:900;letter-spacing:.13em;color:#6f8ba9;margin:17px 10px 7px}.menu-item{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:9px 11px;border-radius:13px;color:#cdd9e8!important;font-size:.88rem;font-weight:720;transition:.2s ease}.menu-item:before{content:"";position:absolute;left:-16px;width:4px;height:0;border-radius:0 4px 4px 0;background:linear-gradient(var(--cyan),#fff);transition:.2s}.menu-item:hover{color:#fff!important;background:rgba(255,255,255,.075);transform:translateX(3px)}.menu-item.active{color:#fff!important;background:linear-gradient(90deg,rgba(35,102,209,.32),rgba(52,183,201,.10));box-shadow:inset 0 0 0 1px rgba(129,205,255,.12)}.menu-item.active:before{height:25px}.menu-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.07);font-size:.94rem;flex:0 0 auto}.menu-item.active .menu-icon{background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 7px 18px rgba(0,0,0,.18)}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:12px;display:grid;gap:4px}.sidebar-footer a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;color:#b9c9dd;font-size:.84rem;font-weight:700}.sidebar-footer a:hover{background:rgba(255,255,255,.07);color:#fff}.sidebar-footer .logout-link:hover{background:rgba(214,69,69,.14);color:#ffd2d2}.admin-main{width:100%;min-width:0;margin-left:282px}.admin-topbar{height:78px;position:sticky;top:0;z-index:90;background:rgba(255,255,255,.86);backdrop-filter:blur(20px);border-bottom:1px solid rgba(18,46,83,.08);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 30px}.admin-topbar-left,.admin-topbar-actions{display:flex;align-items:center;gap:13px}.sidebar-toggle{display:none;border:0;background:var(--card);color:var(--ink);width:40px;height:40px;border-radius:12px;box-shadow:0 4px 16px rgba(10,30,60,.08);font-size:1.15rem}.admin-page-title small,.admin-page-title b{display:block}.admin-page-title small{font-size:.62rem;font-weight:900;letter-spacing:.12em;color:var(--muted)}.admin-page-title b{font-size:.96rem;margin-top:2px}.quick-search{height:41px;min-width:230px;display:flex;align-items:center;gap:8px;border:1px solid rgba(105,125,150,.2);border-radius:13px;padding:0 11px;background:var(--card);box-shadow:0 4px 16px rgba(10,30,60,.04)}.quick-search input{border:0;outline:0;background:transparent;color:var(--ink);width:100%;font-size:.85rem}.quick-search span{font-size:1.2rem;color:var(--muted)}.theme-select.compact{height:41px}.topbar-site{width:41px;height:41px;display:grid;place-items:center;border-radius:13px;background:var(--card);border:1px solid rgba(105,125,150,.2);font-size:1.1rem;font-weight:900}.topbar-user{display:flex;align-items:center;gap:9px;padding-left:4px}.topbar-user b,.topbar-user small{display:block}.topbar-user b{font-size:.83rem}.topbar-user small{font-size:.69rem;color:var(--muted);margin-top:2px}.admin-content{padding:28px 30px 50px}.admin-content-inner{width:min(1480px,100%);margin:auto}.modern-admin .hero-admin{position:relative;overflow:hidden;padding:32px 34px;margin-bottom:20px;border-radius:26px;background:linear-gradient(120deg,var(--navy),var(--navy2) 62%,var(--blue));color:#fff;box-shadow:0 20px 55px rgba(9,31,63,.18)}.modern-admin .hero-admin:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-70px;top:-130px;background:rgba(255,255,255,.10)}.modern-admin .hero-admin:after{content:"UPT";position:absolute;right:35px;bottom:-28px;font-size:8rem;font-weight:950;letter-spacing:-.08em;color:rgba(255,255,255,.035)}.modern-admin .hero-admin h1{position:relative;z-index:1;font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.04em;margin:.4rem 0}.modern-admin .hero-admin p{position:relative;z-index:1;color:#d6e5f4;max-width:760px;margin:0;font-size:1rem}.modern-admin .hero-admin .badge{position:relative;z-index:1;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.16)}.modern-admin .stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:20px 0 24px}.modern-admin .stat{position:relative;overflow:hidden;background:var(--card);border:1px solid rgba(100,120,145,.12);padding:18px 18px 17px;border-radius:18px;box-shadow:0 8px 28px rgba(10,30,60,.055);transition:.25s}.modern-admin .stat:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(10,30,60,.1)}.modern-admin .stat:after{content:"";position:absolute;right:-18px;bottom:-22px;width:65px;height:65px;border-radius:50%;background:var(--blue);opacity:.06}.modern-admin .stat b{font-size:1.72rem;color:var(--blue);letter-spacing:-.03em}.modern-admin .stat span{font-size:.78rem;font-weight:750}.modern-admin .module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.modern-admin .module-card{position:relative;overflow:hidden;min-height:142px;border-radius:20px;padding:21px;border:1px solid rgba(100,120,145,.13);box-shadow:0 10px 30px rgba(13,41,68,.055);transition:.28s ease}.modern-admin .module-card:after{content:"→";position:absolute;right:18px;bottom:16px;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:rgba(35,102,209,.08);color:var(--blue);font-weight:900;transition:.25s}.modern-admin .module-card:hover{transform:translateY(-6px);border-color:rgba(35,102,209,.25);box-shadow:0 22px 50px rgba(13,41,68,.12)}.modern-admin .module-card:hover:after{transform:translateX(4px);background:var(--blue);color:#fff}.modern-admin .module-card b{font-size:1rem}.modern-admin .module-card span{font-size:.86rem;line-height:1.55;color:var(--muted)}.modern-admin .card{border-radius:20px;border:1px solid rgba(100,120,145,.12);box-shadow:0 10px 34px rgba(10,30,60,.055)}.modern-admin .tablewrap{border-radius:15px}.modern-admin .table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:rgba(105,125,150,.055)}.modern-admin .table tr{transition:.16s}.modern-admin .table tr:hover td{background:rgba(35,102,209,.025)}.sidebar-overlay{display:none}.modern-admin .adminbar,.modern-admin .admin-nav{display:none!important}
:root[data-theme="sombre"] .admin-topbar{background:rgba(15,21,32,.88);border-color:#263043}:root[data-theme="sombre"] .admin-sidebar{box-shadow:18px 0 55px rgba(0,0,0,.35)}:root[data-theme="sombre"] .quick-search,:root[data-theme="sombre"] .topbar-site{background:var(--card);border-color:#303b4e}:root[data-theme="sombre"] .quick-search input{color:var(--ink)}:root[data-theme="sombre"] .modern-admin .table th{background:#1a2331}
@media(max-width:1280px){.modern-admin .stat-grid{grid-template-columns:repeat(3,1fr)}.modern-admin .module-grid{grid-template-columns:repeat(3,1fr)}.topbar-user>div:last-child{display:none}.quick-search{min-width:190px}}
@media(max-width:1100px){.admin-sidebar{transform:translateX(-102%);transition:.28s}.sidebar-open .admin-sidebar{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(5,15,30,.55);backdrop-filter:blur(3px);z-index:110;opacity:0;pointer-events:none;transition:.25s}.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar-close,.sidebar-toggle{display:grid;place-items:center}.admin-main{margin-left:0}.admin-content{padding:24px}.admin-topbar{padding:0 24px}.modern-admin .module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.admin-topbar{height:auto;min-height:68px;padding:11px 15px}.admin-topbar-actions{gap:7px}.quick-search,.topbar-user,.theme-select.compact{display:none}.admin-content{padding:16px}.modern-admin .hero-admin{padding:25px 22px;border-radius:20px}.modern-admin .hero-admin:after{font-size:5rem}.modern-admin .stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.modern-admin .module-grid{grid-template-columns:1fr}.modern-admin .stat{padding:15px}.admin-sidebar{width:min(286px,88vw)}}
@media print{.admin-sidebar,.admin-topbar,.sidebar-overlay{display:none!important}.admin-main{margin-left:0!important}.admin-content{padding:0!important}}

/* V12 — actions directement sur chaque ligne */
.row-actions{display:flex!important;gap:.4rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;white-space:nowrap}.row-actions .inline{display:inline-flex;margin:0}.table td.row-actions,.table th:last-child{position:sticky;right:0;z-index:2;background:var(--surface,#fff);box-shadow:-8px 0 16px rgba(15,23,42,.05)}.btn-danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important}.table tbody tr:hover td.row-actions{background:var(--surface,#fff)}@media(max-width:800px){.row-actions{justify-content:flex-start}.table td.row-actions{position:static;box-shadow:none}}

/* V13 — WhatsApp admissions */
.btn-whatsapp{background:#18a957!important;color:#fff!important;border-color:#18a957!important;box-shadow:0 8px 22px rgba(24,169,87,.22)}.btn-whatsapp:hover{transform:translateY(-2px);filter:brightness(.96)}.admission-whatsapp,.admin-wa-banner,.wa-success{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#ecfff3,#f7fffa);border:1px solid #bfe8cf;margin:20px 0}.admission-whatsapp>div,.admin-wa-banner>div,.wa-success>div{flex:1}.admission-whatsapp b,.admission-whatsapp small,.admin-wa-banner b,.admin-wa-banner span,.wa-success b,.wa-success span{display:block}.admission-whatsapp small,.admin-wa-banner span,.wa-success span{margin-top:4px;color:#567066}.wa-mark{width:44px;height:44px;border-radius:14px;background:#18a957;color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-.03em;flex:0 0 auto}.wa-success{margin-top:0;margin-bottom:20px;background:linear-gradient(135deg,#e6fff0,#f5fff9)}@media(max-width:760px){.admission-whatsapp,.admin-wa-banner,.wa-success{align-items:stretch;flex-direction:column}.admission-whatsapp .btn,.admin-wa-banner .btn,.wa-success .btn{width:100%;text-align:center}.wa-mark{display:none}}


/* V16 — Formulaires administration premium */
.modern-admin .card > h2,
.modern-admin .card > h3{
  display:flex;align-items:center;gap:10px;margin-top:0;
  letter-spacing:-.025em;color:var(--ink)
}
.modern-admin .card > h2:before,
.modern-admin .card > h3:before{
  content:"";width:9px;height:28px;border-radius:999px;
  background:linear-gradient(180deg,var(--blue),var(--cyan));
  box-shadow:0 5px 15px rgba(35,102,209,.2)
}
.modern-admin form{
  position:relative
}
.modern-admin .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 20px;
  padding-top:6px
}
.modern-admin .form-grid > .full{grid-column:1/-1}
.modern-admin .form-grid label,
.modern-admin form > label,
.modern-admin fieldset label{
  position:relative;
  display:grid;
  gap:8px;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.025em;
  color:#52627a
}
.modern-admin .form-grid label:focus-within,
.modern-admin form > label:focus-within{
  color:var(--blue)
}
.modern-admin input[type="text"],
.modern-admin input[type="email"],
.modern-admin input[type="password"],
.modern-admin input[type="number"],
.modern-admin input[type="date"],
.modern-admin input[type="time"],
.modern-admin input[type="datetime-local"],
.modern-admin input[type="tel"],
.modern-admin input[type="url"],
.modern-admin input[type="search"],
.modern-admin select,
.modern-admin textarea{
  width:100%;
  min-height:49px;
  border:1px solid rgba(100,120,145,.20);
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fbfcff);
  color:var(--ink);
  padding:12px 14px;
  font:inherit;
  font-size:.93rem;
  font-weight:600;
  outline:none;
  box-shadow:0 5px 16px rgba(13,41,68,.035), inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .2s,box-shadow .2s,transform .2s,background .2s
}
.modern-admin textarea{min-height:112px;resize:vertical;line-height:1.55}
.modern-admin select{
  appearance:auto;
  cursor:pointer
}
.modern-admin input:hover,
.modern-admin select:hover,
.modern-admin textarea:hover{
  border-color:rgba(35,102,209,.34)
}
.modern-admin input:focus,
.modern-admin select:focus,
.modern-admin textarea:focus{
  border-color:var(--blue);
  background:#fff;
  box-shadow:0 0 0 4px rgba(35,102,209,.10),0 12px 28px rgba(13,41,68,.08);
  transform:translateY(-1px)
}
.modern-admin input[disabled],
.modern-admin select[disabled],
.modern-admin textarea[disabled]{
  opacity:.68;
  cursor:not-allowed;
  background:#f1f4f8
}
.modern-admin input[type="checkbox"],
.modern-admin input[type="radio"]{
  width:18px;height:18px;
  accent-color:var(--blue);
  vertical-align:middle
}
.modern-admin input[type="file"]{
  width:100%;
  padding:12px;
  border:1px dashed rgba(35,102,209,.30);
  border-radius:14px;
  background:rgba(35,102,209,.035);
  color:var(--muted)
}
.modern-admin input[type="file"]::file-selector-button{
  border:0;border-radius:10px;
  padding:9px 12px;margin-right:10px;
  background:linear-gradient(135deg,var(--blue),#17458f);
  color:#fff;font-weight:800;cursor:pointer
}
.modern-admin .form-grid .btn,
.modern-admin form .btn{
  min-height:44px
}
.modern-admin .form-grid > div.full:last-child,
.modern-admin .form-actions{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  padding-top:6px
}
.modern-admin .card:has(.form-grid){
  position:relative;
  overflow:hidden;
  padding:24px;
  background:
    radial-gradient(circle at 100% 0,rgba(35,102,209,.035),transparent 32%),
    var(--card)
}
.modern-admin .card:has(.form-grid):before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--blue),var(--cyan),transparent 85%);
  opacity:.85
}
.modern-admin fieldset{
  border:1px solid rgba(100,120,145,.16);
  border-radius:16px;
  padding:16px;
  margin:0 0 16px;
  background:rgba(105,125,150,.025)
}
.modern-admin legend{
  padding:0 8px;
  font-size:.78rem;
  font-weight:900;
  color:var(--blue);
  text-transform:uppercase;
  letter-spacing:.07em
}
.modern-admin .filterbar{
  padding:14px;
  border-radius:16px;
  background:var(--card);
  border:1px solid rgba(100,120,145,.12);
  box-shadow:0 8px 24px rgba(13,41,68,.045)
}
.modern-admin .filterbar input,
.modern-admin .filterbar select{
  min-width:190px;
  min-height:43px
}
.modern-admin .notice,
.modern-admin .notice-error{
  border-radius:14px;
  padding:13px 15px;
  border:1px solid rgba(100,120,145,.14)
}
.modern-admin .help-text{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.73rem;
  font-weight:600;
  line-height:1.45
}
.modern-admin .field-group-title{
  grid-column:1/-1;
  display:flex;align-items:center;gap:10px;
  margin:4px 0 -2px;
  padding:11px 13px;
  border-radius:12px;
  background:linear-gradient(90deg,rgba(35,102,209,.07),rgba(52,183,201,.03));
  color:var(--blue);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase
}
.modern-admin .finance-categories{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 22px
}
.modern-admin .finance-category{
  padding:16px;border-radius:16px;background:var(--card);
  border:1px solid rgba(100,120,145,.12);
  box-shadow:0 8px 24px rgba(13,41,68,.045)
}
.modern-admin .finance-category b{display:block;color:var(--blue);margin-bottom:5px}
.modern-admin .finance-category span{font-size:.76rem;color:var(--muted)}
:root[data-theme="sombre"] .modern-admin input,
:root[data-theme="sombre"] .modern-admin select,
:root[data-theme="sombre"] .modern-admin textarea{
  background:linear-gradient(180deg,#182231,#141d2a);
  border-color:#303b4e;color:var(--ink)
}
:root[data-theme="sombre"] .modern-admin input:focus,
:root[data-theme="sombre"] .modern-admin select:focus,
:root[data-theme="sombre"] .modern-admin textarea:focus{
  background:#182231;border-color:var(--blue)
}
@media(max-width:1000px){
  .modern-admin .finance-categories{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .modern-admin .form-grid{grid-template-columns:1fr}
  .modern-admin .form-grid > .full{grid-column:auto}
  .modern-admin .finance-categories{grid-template-columns:1fr}
  .modern-admin .card:has(.form-grid){padding:18px}
}


/* V17 — Recherche intégrée dans toutes les listes déroulantes */
.upt-search-select{
  position:relative;
  width:100%;
}
.upt-search-select .upt-select-trigger{
  position:relative;
  display:flex;
  align-items:center;
  min-height:49px;
  width:100%;
  padding:0;
  border:1px solid rgba(100,120,145,.20);
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fbfcff);
  box-shadow:0 5px 16px rgba(13,41,68,.035), inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .2s,box-shadow .2s,transform .2s,background .2s;
  overflow:hidden;
}
.upt-search-select.open .upt-select-trigger,
.upt-search-select .upt-select-trigger:focus-within{
  border-color:var(--blue);
  background:#fff;
  box-shadow:0 0 0 4px rgba(35,102,209,.10),0 12px 28px rgba(13,41,68,.08);
  transform:translateY(-1px);
}
.upt-search-select .upt-select-search{
  flex:1;
  min-width:0;
  min-height:47px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:10px 42px 10px 14px !important;
  font-size:.93rem !important;
  font-weight:600 !important;
  color:var(--ink) !important;
  outline:none !important;
  transform:none !important;
}
.upt-search-select .upt-select-chevron{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  color:#6f7f93;
  font-size:13px;
  pointer-events:none;
  transition:transform .2s;
}
.upt-search-select.open .upt-select-chevron{
  transform:translateY(-50%) rotate(180deg);
}
.upt-search-select .upt-select-dropdown{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 7px);
  z-index:1000;
  display:none;
  max-height:320px;
  overflow:auto;
  padding:7px;
  border:1px solid rgba(100,120,145,.18);
  border-radius:15px;
  background:var(--card,#fff);
  box-shadow:0 18px 44px rgba(13,41,68,.16);
  overscroll-behavior:contain;
}
.upt-search-select.open .upt-select-dropdown{
  display:block;
  animation:uptSelectOpen .16s ease-out;
}
@keyframes uptSelectOpen{
  from{opacity:0;transform:translateY(-5px)}
  to{opacity:1;transform:translateY(0)}
}
.upt-search-select .upt-select-option{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:9px 11px;
  border-radius:10px;
  color:var(--ink);
  cursor:pointer;
  font-size:.88rem;
  font-weight:650;
  line-height:1.3;
  user-select:none;
}
.upt-search-select .upt-select-option:hover,
.upt-search-select .upt-select-option.active{
  background:rgba(35,102,209,.09);
  color:var(--blue);
}
.upt-search-select .upt-select-option.selected{
  background:linear-gradient(90deg,rgba(35,102,209,.13),rgba(52,183,201,.06));
  color:var(--blue);
  font-weight:850;
}
.upt-search-select .upt-select-option.disabled{
  opacity:.45;
  cursor:not-allowed;
}
.upt-search-select .upt-select-group{
  padding:8px 10px 5px;
  margin-top:4px;
  color:#8090a4;
  font-size:.67rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.upt-search-select .upt-select-empty{
  padding:16px 12px;
  text-align:center;
  color:var(--muted);
  font-size:.82rem;
}
.upt-search-select .upt-select-meta{
  margin-left:auto;
  font-size:.67rem;
  color:#8b98a9;
}
.upt-search-select + select,
.upt-search-select select.upt-native-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
:root[data-theme="sombre"] .upt-search-select .upt-select-trigger{
  background:linear-gradient(180deg,#182231,#141d2a);
  border-color:#303b4e;
}
:root[data-theme="sombre"] .upt-search-select .upt-select-dropdown{
  background:#17202d;
  border-color:#303b4e;
}
:root[data-theme="sombre"] .upt-search-select .upt-select-option:hover,
:root[data-theme="sombre"] .upt-search-select .upt-select-option.active{
  background:rgba(75,137,255,.14);
}
@media(max-width:760px){
  .upt-search-select .upt-select-dropdown{
    max-height:260px;
  }
}

/* V21 — listes déroulantes avec recherche directement intégrée */
.upt-native-select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;overflow:hidden!important}
.upt-smart-select{position:relative;width:100%;min-width:0}
.upt-smart-trigger,.upt-multi-box{display:flex;align-items:center;min-height:49px;width:100%;border:1px solid rgba(100,120,145,.22);border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:0 5px 16px rgba(13,41,68,.035);transition:.2s}
.upt-smart-select.open .upt-smart-trigger,.upt-smart-select.open .upt-multi-box,.upt-smart-trigger:focus-within,.upt-multi-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(35,102,209,.10),0 12px 28px rgba(13,41,68,.08);background:#fff}
.upt-smart-search{flex:1;min-width:0;min-height:47px!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:10px 42px 10px 14px!important;font-size:.93rem!important;font-weight:600!important;color:var(--ink)!important;outline:0!important}
.upt-smart-chevron{position:absolute;right:13px;top:24px;transform:translateY(-50%);font-size:18px;color:#718096;pointer-events:none;transition:.2s}
.upt-smart-select.open .upt-smart-chevron{transform:translateY(-50%) rotate(180deg)}
.upt-smart-list{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:3500;display:none;max-height:360px;overflow:auto;padding:7px;border:1px solid rgba(100,120,145,.18);border-radius:15px;background:var(--card,#fff);box-shadow:0 24px 58px rgba(8,30,65,.20)}
.upt-smart-select.open .upt-smart-list{display:block;animation:uptDrop .15s ease-out}
@keyframes uptDrop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.upt-smart-option{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:10px;padding:9px 10px;text-align:left;color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}
.upt-smart-option:hover,.upt-smart-option.active{background:rgba(35,102,209,.09)}
.upt-smart-option.selected{background:rgba(35,102,209,.12);color:var(--blue);font-weight:800}
.upt-smart-option.disabled{opacity:.45;cursor:not-allowed}
.upt-smart-group{padding:9px 10px 5px;color:#7c899b;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.upt-smart-empty{padding:15px 12px;color:#8793a4;text-align:center;font-size:.86rem}
.upt-multi-box{align-items:flex-start;gap:6px;flex-wrap:wrap;padding:6px 8px;cursor:text}
.upt-multi-box .upt-smart-search{min-height:35px!important;min-width:145px!important;padding:7px 8px!important}
.upt-multi-chips{display:flex;flex-wrap:wrap;gap:5px}
.upt-multi-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(35,102,209,.10);color:var(--blue);border:1px solid rgba(35,102,209,.15);border-radius:999px;padding:6px 8px 6px 10px;font-size:.78rem;font-weight:800}
.upt-multi-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:15px;line-height:1;padding:0}
.upt-checkmark{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:6px;border:1px solid #c9d4e4;color:transparent}
.upt-smart-option.selected .upt-checkmark{background:var(--blue);border-color:var(--blue);color:#fff}
html[data-theme="sombre"] .upt-smart-trigger,html[data-theme="sombre"] .upt-multi-box,html[data-theme="sombre"] .upt-smart-list{background:#172235;border-color:#33415a}
html[data-theme="sombre"] .upt-smart-search,html[data-theme="sombre"] .upt-smart-option{color:#eef5ff!important}
html[data-theme="sombre"] .upt-smart-option:hover{background:#22314a}
