:root{--primary:#135fb3;--secondary:#53b72b;--sidebar:#123e7b;--sidebar2:#0b2d5f;--bg:#f4f7fb;--surface:#fff;--ink:#172033;--muted:#718096;--line:#e7ebf2;--radius:14px;--shadow:0 10px 30px rgba(31,55,90,.08);--sidebar-w:264px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar2) 100%);color:#fff;z-index:1050;box-shadow:12px 0 35px rgba(12,43,86,.18)}
.sidebar-brand{height:78px;display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-logo{width:46px;height:46px;border-radius:10px;background:#fff;padding:3px;flex:0 0 auto}.sidebar-logo img{width:100%;height:100%;object-fit:contain;border-radius:8px}.sidebar-brand strong{display:block;font-size:15px;line-height:1.2}.sidebar-brand small{display:block;color:#cbd9f0;font-size:11px;margin-top:3px}.sidebar-close{margin-left:auto;border:0;background:transparent;color:#fff;font-size:20px}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);font-weight:800}.sidebar-user strong{display:block;font-size:13px}.sidebar-user span:last-child{display:block;font-size:10px;color:#c9d7ec;margin-top:2px;text-transform:capitalize}.sidebar-nav{padding:12px;overflow:auto;flex:1}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:8px}.sidebar-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#95add0;font-weight:800;padding:14px 12px 7px}.sidebar-nav a,.sidebar-logout{display:flex;align-items:center;gap:12px;color:#e7effa;padding:10px 12px;border-radius:9px;margin:2px 0;font-weight:600;transition:.2s}.sidebar-nav a i,.sidebar-logout i{font-size:18px;width:21px;text-align:center}.sidebar-nav a:hover{background:rgba(255,255,255,.1);color:#fff;transform:translateX(2px)}.sidebar-nav a.active{background:#fff;color:var(--sidebar2);box-shadow:0 8px 20px rgba(0,0,0,.16)}.sidebar-logout{margin:8px 12px 14px;color:#ffe3e8}.sidebar-logout:hover{background:rgba(220,53,69,.22);color:#fff}
.main-panel{margin-left:var(--sidebar-w);width:calc(100% - var(--sidebar-w));min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:1030}.menu-toggle{display:none;border:0;background:#f1f5fa;border-radius:9px;width:40px;height:40px;font-size:21px;color:var(--sidebar)}.topbar-title h1{font-size:18px;margin:0;font-weight:800;text-transform:capitalize}.topbar-title p{font-size:11px;margin:3px 0 0;color:var(--muted)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.icon-btn{position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#53647b}.icon-btn span{position:absolute;width:7px;height:7px;background:#ef4444;border-radius:50%;right:9px;top:8px}.top-user{display:flex;align-items:center;gap:9px}.top-user>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:800}.top-user strong{display:block;font-size:12px}.top-user small{display:block;font-size:10px;color:var(--muted);text-transform:capitalize}.content{padding:26px 28px 40px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.page-heading h2,.content>h2{font-size:24px;font-weight:800;margin:0}.page-heading p{color:var(--muted)}
.card{border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow);background:#fff}.card h4,.card h5{font-weight:800}.stat-card{padding:18px;min-height:118px}.stat-card small{color:var(--muted);font-weight:600}.stat-card h3{font-size:28px;margin:9px 0 0;font-weight:800}.stat-card i{width:42px;height:42px;display:grid;place-items:center;background:#edf4ff;border-radius:11px}.btn{border-radius:9px;font-weight:700;padding:.58rem .9rem}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:#0d4f96;border-color:#0d4f96}.btn-success{background:var(--secondary);border-color:var(--secondary)}.btn-outline-primary{color:var(--primary);border-color:#c6daf0}.btn-outline-primary:hover{background:#eef5fd;color:var(--primary);border-color:#9fc1e5}.form-label,label{font-weight:700;color:#49566a;font-size:12px}.form-control,.form-select{border:1px solid #dbe2ec;border-radius:9px;padding:.68rem .78rem;font-size:13px}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(19,95,179,.12)}.table-responsive{border:1px solid var(--line);border-radius:11px}.table{margin:0}.table>:not(caption)>*>*{padding:.8rem .75rem;border-color:#edf0f5}.table th{background:#f7f9fc!important;color:#657286;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:800;white-space:nowrap}.table tbody tr:hover{background:#fbfdff}.badge{border-radius:999px;padding:.4rem .62rem}.alert{border-radius:10px}.modal-content{border:0;border-radius:15px;box-shadow:0 25px 70px rgba(22,37,61,.25)}.nav-tabs .nav-link,.nav-pills .nav-link{font-weight:700;border-radius:9px}.settings-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.settings-nav{position:sticky;top:95px;height:max-content}.setting-preview{width:90px;height:90px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:5px;margin-top:8px}.sticky-save{position:sticky;bottom:15px;display:flex;justify-content:flex-end;margin-top:18px}.public-nav{height:72px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.public-nav a:first-child{display:flex;align-items:center;gap:10px;color:var(--ink)}.public-nav img{width:48px;height:48px;object-fit:contain}.public-content{min-height:calc(100vh - 72px);padding:25px;background:radial-gradient(circle at 10% 0%,rgba(83,183,43,.10),transparent 25%),radial-gradient(circle at 90% 0%,rgba(19,95,179,.13),transparent 28%),var(--bg)}.auth-shell{min-height:calc(100vh - 122px);display:grid;place-items:center}.auth-card{width:min(100%,430px);padding:30px!important}.sidebar-overlay{display:none}
.module-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.module-tabs a{padding:9px 13px;background:#fff;border:1px solid var(--line);border-radius:9px;color:#59677b;font-weight:700}.module-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
@media(max-width:991px){.sidebar{transform:translateX(-102%);transition:.28s}.sidebar.open{transform:translateX(0)}.main-panel{margin-left:0;width:100%}.menu-toggle{display:grid;place-items:center;margin-right:12px}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(10,24,45,.48);z-index:1040}.content{padding:22px 18px}.settings-grid{grid-template-columns:1fr}.settings-nav{position:static}.settings-nav .nav{display:grid!important;grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.topbar{height:68px;padding:0 14px}.top-user div{display:none}.content{padding:18px 12px 32px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .btn{width:100%}.page-heading h2,.content>h2{font-size:20px}.card.p-4{padding:1rem!important}.table-responsive{overflow:auto}.settings-nav .nav{grid-template-columns:repeat(2,1fr)}.public-content{padding:14px}.topbar-title h1{font-size:15px}}
@media(max-width:480px){.settings-nav .nav{grid-template-columns:1fr}.icon-btn{display:none}.stat-card{min-height:105px}.stat-card h3{font-size:23px}}
@media print{.sidebar,.topbar,.sidebar-overlay,.no-print{display:none!important}.main-panel{margin:0;width:100%}.content{padding:0}.card{box-shadow:none!important}body{background:#fff}}

/* Boutons d'action compacts */
.btn-icon{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;transition:.2s ease}
.btn-icon:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12)}
.btn-soft-primary{background:rgba(13,110,253,.11);color:#0d6efd}.btn-soft-primary:hover{background:#0d6efd;color:#fff}
.btn-soft-success{background:rgba(25,135,84,.12);color:#198754}.btn-soft-success:hover{background:#198754;color:#fff}
.btn-soft-warning{background:rgba(255,193,7,.18);color:#8a6500}.btn-soft-warning:hover{background:#ffc107;color:#212529}
.btn-soft-danger{background:rgba(220,53,69,.12);color:#dc3545}.btn-soft-danger:hover{background:#dc3545;color:#fff}
@media(max-width:575.98px){.page-heading{align-items:flex-start}.page-heading>.d-flex{width:100%;flex-wrap:wrap}.page-heading>.d-flex .btn{flex:1}.btn-icon{width:34px;height:34px}}
.permission-box{display:flex;align-items:center;gap:.65rem;padding:.8rem 1rem;border:1px solid #e6eaf0;border-radius:12px;background:#fff;cursor:pointer;transition:.2s;height:100%}.permission-box:hover{border-color:var(--primary,#1457a6);box-shadow:0 4px 14px rgba(18,62,120,.08)}.permission-box input{width:18px;height:18px;accent-color:var(--primary,#1457a6)}

/* Suite UI avancée : finances, admissions et cartes */
.eyebrow{display:block;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.16em;margin-bottom:7px}.filter-card{padding:18px;border:0!important}.data-card{overflow:hidden}.card-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}.card-section-head h5{margin:0;font-size:16px}.card-section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.mini-kpi{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:var(--shadow);height:100%}.mini-kpi-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;font-size:20px}.soft-primary{background:#eaf3ff;color:var(--primary)}.soft-success{background:#eaf8ee;color:#238636}.soft-warning{background:#fff7df;color:#b77900}.soft-danger{background:#ffebee;color:#dc3545}.mini-kpi small{display:block;color:var(--muted);font-weight:600}.mini-kpi strong{display:block;font-size:23px;line-height:1.15}.input-icon{position:relative}.input-icon i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8492a6}.input-icon .form-control{padding-left:38px}.person-cell{display:flex;align-items:center;gap:11px}.person-cell>img,.person-cell>span{width:42px;height:42px;border-radius:12px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:800}.person-cell strong,.person-cell small{display:block}.person-cell small{color:var(--muted);margin-top:2px}.action-group{display:flex;gap:6px}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800}.status-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}.status-success{background:#e9f8ee;color:#238636}.status-danger{background:#ffebee;color:#d9344b}.status-warning{background:#fff6dc;color:#a96f00}.empty-state{text-align:center;padding:42px 20px;color:var(--muted)}.empty-state>i{font-size:42px;color:#b7c3d2}.empty-state h5{color:var(--ink);margin:10px 0 4px}.modern-table td{vertical-align:middle}.ref-chip{background:#eef4fb;color:#47617e;padding:6px 9px;border-radius:8px;font-family:monospace;font-size:11px}
.finance-kpi{height:100%;min-height:152px;padding:20px;border-radius:18px;color:#fff;position:relative;overflow:hidden;box-shadow:0 14px 30px rgba(15,40,80,.13)}.finance-kpi:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.1);right:-35px;bottom:-50px}.kpi-income{background:linear-gradient(135deg,#14965f,#38b977)}.kpi-expense{background:linear-gradient(135deg,#e54b5f,#f47766)}.kpi-balance{background:linear-gradient(135deg,#135fb3,#257fcf)}.kpi-outstanding{background:linear-gradient(135deg,#8054c7,#a46cde)}.kpi-top{display:flex;justify-content:space-between;align-items:center;font-weight:700}.kpi-top i{font-size:22px;background:rgba(255,255,255,.16);padding:9px;border-radius:12px}.finance-kpi>strong{display:block;font-size:25px;margin:18px 0 5px;position:relative;z-index:1}.finance-kpi>small{opacity:.82}.chart-card{overflow:hidden}.chart-wrap{height:330px;padding:16px 20px 22px}.chart-wrap-small{height:330px}.balance-list{padding:8px 20px 18px}.balance-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.balance-row:last-child{border:0}.balance-row>div{display:flex;align-items:center;gap:11px}.balance-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#edf5ff;color:var(--primary)}.balance-row small,.recovery-panel small{display:block;color:var(--muted);font-size:11px}.recovery-panel{padding:25px}.recovery-number{display:flex;justify-content:space-between;align-items:end}.recovery-number span{font-weight:700;color:var(--muted)}.recovery-number strong{font-size:34px;color:var(--primary)}.recovery-progress{height:12px;border-radius:999px;margin:17px 0;background:#eaf0f7}.recovery-progress .progress-bar{background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:999px}.recovery-panel .row strong{display:block;font-size:16px;margin-top:5px}
.student-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:24px}.premium-student-card{position:relative;background:#fff;border:1px solid #dce6f1;border-radius:22px;overflow:hidden;box-shadow:0 18px 45px rgba(15,52,94,.13);break-inside:avoid}.card-accent{height:7px;background:linear-gradient(90deg,var(--primary) 0 68%,var(--secondary) 68%)}.premium-student-card header{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;background:linear-gradient(135deg,#f8fbff,#eef6ff)}.brand-block{display:flex;align-items:center;gap:11px}.brand-logo{width:48px;height:48px;padding:4px;background:#fff;border-radius:13px;box-shadow:0 5px 16px rgba(19,95,179,.13)}.brand-logo img{width:100%;height:100%;object-fit:contain}.brand-block strong,.brand-block small{display:block}.brand-block strong{font-size:14px;color:#123e7b}.brand-block small{font-size:9px;color:#6d8197;margin-top:2px}.card-year{background:#fff;color:var(--primary);padding:7px 10px;border-radius:999px;font-size:10px;font-weight:800;box-shadow:0 4px 14px rgba(19,95,179,.1)}.student-card-body{display:grid;grid-template-columns:100px 1fr 90px;align-items:center;gap:18px;padding:22px}.student-photo{width:100px;height:122px;border-radius:15px;background:linear-gradient(135deg,#e9f2fc,#dbeafe);overflow:visible;position:relative;display:grid;place-items:center}.student-photo img{width:100%;height:100%;object-fit:cover;border-radius:15px}.student-photo>span{font-size:34px;font-weight:800;color:var(--primary)}.verified-dot{position:absolute;right:-7px;bottom:-7px;background:#fff;border-radius:50%;color:var(--secondary);font-size:23px}.student-label{font-size:9px;letter-spacing:.16em;color:var(--secondary);font-weight:900}.student-identity h3{font-size:20px;margin:5px 0 13px;color:#123e7b;text-transform:uppercase}.student-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 15px}.student-meta div:first-child{grid-column:1/-1}.student-meta small,.student-meta strong{display:block}.student-meta small{font-size:9px;color:#8290a2;text-transform:uppercase;letter-spacing:.06em}.student-meta strong{font-size:11px;color:#293b50;margin-top:2px}.qr-zone{text-align:center}.qr-zone img{width:84px;height:84px;padding:5px;border:1px solid #dce6f1;border-radius:12px}.qr-zone small{display:block;font-size:8px;color:#7b8999;margin-top:4px}.premium-student-card footer{display:flex;align-items:center;gap:16px;padding:10px 20px;background:#123e7b;color:#dceaff;font-size:9px}.valid-chip{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:rgba(83,183,43,.18);color:#caffb6;padding:5px 8px;border-radius:999px;font-weight:800}.valid-chip i{width:6px;height:6px;background:#72dc4c;border-radius:50%}.card-actions{padding:12px 20px;text-align:right;background:#f8fbff}.single-card-stage{min-height:65vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at top left,rgba(19,95,179,.12),transparent 30%),radial-gradient(circle at bottom right,rgba(83,183,43,.12),transparent 30%);border-radius:22px}.premium-card-large{width:min(100%,780px);transform:scale(1.03)}.card-download-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
@media(max-width:650px){.student-card-grid{grid-template-columns:1fr}.student-card-body{grid-template-columns:80px 1fr;gap:13px}.student-photo{width:80px;height:98px}.qr-zone{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px}.qr-zone small{font-size:9px}.premium-student-card footer{flex-wrap:wrap}.valid-chip{margin-left:0}.card-download-toolbar{flex-direction:column;align-items:stretch}.card-download-toolbar>div{display:grid!important;grid-template-columns:1fr 1fr}.chart-wrap{height:270px}.finance-kpi>strong{font-size:21px}}
@media print{.student-card-grid{grid-template-columns:repeat(2,86mm);gap:7mm}.premium-student-card{width:86mm;box-shadow:none}.premium-student-card header{padding:8px 10px}.brand-logo{width:34px;height:34px}.student-card-body{grid-template-columns:21mm 1fr 18mm;padding:9px;gap:7px}.student-photo{width:21mm;height:27mm}.student-identity h3{font-size:12px;margin:3px 0 7px}.student-meta{gap:4px}.student-meta small{font-size:6px}.student-meta strong{font-size:7px}.qr-zone img{width:17mm;height:17mm}.premium-student-card footer{padding:6px 9px;font-size:6px}.card-actions{display:none}.single-card-stage{padding:0;background:#fff}.premium-card-large{width:86mm;transform:none}.card-accent{height:3px}.card-year{font-size:7px;padding:4px 6px}}

/* Carte d'étudiant IYF — format professionnel */
.id-card-stage{min-height:65vh;display:grid;place-items:center;padding:32px;border-radius:24px;background:radial-gradient(circle at 12% 15%,rgba(15,91,168,.16),transparent 32%),radial-gradient(circle at 88% 85%,rgba(80,181,49,.15),transparent 30%),#f4f8fd}.iyf-id-card{--iyf-blue:#0c4f98;--iyf-blue2:#1875ca;--iyf-green:#58b833;position:relative;width:min(100%,860px);aspect-ratio:1.586/1;background:#fff;border-radius:25px;overflow:hidden;box-shadow:0 24px 60px rgba(7,53,100,.2);border:1px solid rgba(12,79,152,.14);font-family:Inter,Arial,sans-serif}.id-card-pattern{position:absolute;inset:0;pointer-events:none;background:linear-gradient(118deg,transparent 0 69%,rgba(88,184,51,.08) 69% 77%,rgba(12,79,152,.06) 77%),radial-gradient(circle at 93% 9%,rgba(24,117,202,.15),transparent 23%)}.id-card-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:22px 28px 14px;background:linear-gradient(110deg,#fff 0 62%,#edf6ff 100%)}.id-brand{display:flex;align-items:center;gap:14px;min-width:0}.id-logo{display:grid;place-items:center;width:62px;height:62px;padding:6px;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(12,79,152,.16)}.id-logo img{width:100%;height:100%;object-fit:contain}.id-brand strong,.id-brand small{display:block}.id-brand strong{font-size:20px;color:var(--iyf-blue);line-height:1.15;text-transform:uppercase}.id-brand small{font-size:10px;color:#61748a;margin-top:5px;letter-spacing:.03em}.id-year{text-align:right;background:#fff;padding:9px 13px;border-radius:12px;box-shadow:0 5px 18px rgba(12,79,152,.1)}.id-year small,.id-year strong{display:block}.id-year small{font-size:8px;color:#77899b;letter-spacing:.09em}.id-year strong{font-size:12px;color:var(--iyf-blue);margin-top:2px}.id-card-title{position:relative;display:flex;justify-content:space-between;align-items:center;padding:9px 28px;color:#fff;background:linear-gradient(90deg,var(--iyf-blue),var(--iyf-blue2) 72%,var(--iyf-green))}.id-card-title span{font-size:14px;font-weight:900;letter-spacing:.18em}.id-card-title em{font-style:normal;font-size:9px;opacity:.8;letter-spacing:.14em}.id-card-content{position:relative;display:grid;grid-template-columns:155px minmax(0,1fr) 125px;align-items:center;gap:24px;padding:26px 30px 22px}.id-photo-wrap{position:relative;width:150px;height:184px;border-radius:18px;padding:5px;background:linear-gradient(145deg,var(--iyf-blue2),var(--iyf-green));box-shadow:0 13px 28px rgba(12,79,152,.2)}.id-photo-wrap>img{width:100%;height:100%;object-fit:cover;border-radius:14px;background:#eef4fa}.id-photo-wrap>span{display:grid;place-items:center;width:100%;height:100%;border-radius:14px;background:#e9f3fd;color:var(--iyf-blue);font-size:48px;font-weight:900}.id-approved{position:absolute;right:-9px;bottom:-9px;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#fff;color:var(--iyf-green);font-size:27px;box-shadow:0 5px 15px rgba(0,0,0,.14)}.id-details{min-width:0}.id-details h1{margin:0 0 12px;color:#103a67;font-size:27px;line-height:1.08;text-transform:uppercase;letter-spacing:.01em}.id-number{display:inline-flex;align-items:center;gap:12px;padding:8px 13px;border-radius:10px;background:#edf6ff;border-left:4px solid var(--iyf-green);margin-bottom:16px}.id-number small,.id-number strong{display:block}.id-number small{font-size:8px;color:#6b8095;letter-spacing:.12em}.id-number strong{font-size:16px;color:var(--iyf-blue);letter-spacing:.07em}.id-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 20px}.id-fields small,.id-fields strong{display:block}.id-fields small{font-size:8px;color:#8593a2;letter-spacing:.09em}.id-fields strong{font-size:12px;color:#283f57;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.id-qr{text-align:center}.id-qr img{width:112px;height:112px;padding:7px;border-radius:14px;background:#fff;border:1px solid #d9e5f0;box-shadow:0 7px 20px rgba(12,79,152,.12)}.id-qr small{display:block;font-size:8px;color:#72869a;margin-top:5px}.id-qr span{display:inline-block;margin-top:7px;padding:5px 9px;border-radius:99px;background:#eaf8e5;color:#318713;font-size:8px;font-weight:900;letter-spacing:.08em}.id-card-footer{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:22px;padding:10px 28px;background:#083f7c;color:#eaf4ff;font-size:9px}.id-card-footer i{color:#83db62;margin-right:4px}.id-signature{margin-left:auto;text-align:right}.id-signature span,.id-signature strong{display:block}.id-signature span{font-size:7px;opacity:.72}.id-signature strong{font-size:9px;color:#fff}.id-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(470px,1fr));gap:24px}.id-card-item{min-width:0}.iyf-id-card-mini{width:100%;border-radius:20px}.iyf-id-card-mini .id-card-header{padding:13px 17px 8px}.iyf-id-card-mini .id-logo{width:43px;height:43px;border-radius:11px}.iyf-id-card-mini .id-brand{gap:9px}.iyf-id-card-mini .id-brand strong{font-size:12px}.iyf-id-card-mini .id-brand small{font-size:7px;margin-top:2px}.iyf-id-card-mini .id-year{padding:6px 8px}.iyf-id-card-mini .id-year small{font-size:6px}.iyf-id-card-mini .id-year strong{font-size:8px}.iyf-id-card-mini .id-card-title{padding:6px 17px}.iyf-id-card-mini .id-card-title span{font-size:9px}.iyf-id-card-mini .id-card-title em{font-size:6px}.iyf-id-card-mini .id-card-content{grid-template-columns:92px 1fr 72px;gap:13px;padding:14px 17px 27px}.iyf-id-card-mini .id-photo-wrap{width:88px;height:108px;border-radius:12px;padding:3px}.iyf-id-card-mini .id-photo-wrap>img,.iyf-id-card-mini .id-photo-wrap>span{border-radius:9px}.iyf-id-card-mini .id-photo-wrap>span{font-size:29px}.iyf-id-card-mini .id-approved{width:23px;height:23px;font-size:18px;right:-5px;bottom:-5px}.iyf-id-card-mini .id-details h1{font-size:15px;margin-bottom:7px}.iyf-id-card-mini .id-number{gap:6px;padding:5px 8px;margin-bottom:8px;border-left-width:3px}.iyf-id-card-mini .id-number small{font-size:5px}.iyf-id-card-mini .id-number strong{font-size:9px}.iyf-id-card-mini .id-fields{gap:6px}.iyf-id-card-mini .id-fields small{font-size:5px}.iyf-id-card-mini .id-fields strong{font-size:7px}.iyf-id-card-mini .id-qr img{width:67px;height:67px;padding:4px;border-radius:9px}.iyf-id-card-mini .id-qr small,.iyf-id-card-mini .id-qr span{font-size:5px}.iyf-id-card-mini .id-qr span{padding:3px 6px;margin-top:3px}.iyf-id-card-mini .id-card-footer{padding:6px 17px;font-size:6px;gap:10px}.id-card-actions{padding:12px;text-align:right}
@media(max-width:700px){.id-card-stage{padding:10px}.iyf-id-card{aspect-ratio:auto;min-height:550px}.id-card-header{padding:16px}.id-logo{width:48px;height:48px}.id-brand strong{font-size:13px}.id-brand small{font-size:7px}.id-year{padding:6px}.id-year small{font-size:6px}.id-year strong{font-size:8px}.id-card-title{padding:8px 16px}.id-card-title span{font-size:10px}.id-card-content{grid-template-columns:100px 1fr;gap:14px;padding:20px 16px 75px}.id-photo-wrap{width:96px;height:125px}.id-details h1{font-size:18px}.id-fields{grid-template-columns:1fr}.id-qr{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px}.id-qr img{width:78px;height:78px}.id-card-footer{flex-wrap:wrap;padding:9px 16px}.id-signature{display:none}.id-card-list{grid-template-columns:1fr}.iyf-id-card-mini{min-height:330px}.iyf-id-card-mini .id-card-content{grid-template-columns:82px 1fr 60px}.iyf-id-card-mini .id-photo-wrap{width:78px;height:99px}}
@media print{.no-print,.sidebar,.topbar{display:none!important}.main-content{margin:0!important;padding:0!important}.id-card-stage{min-height:0;padding:0;background:#fff}.iyf-id-card{width:85.6mm;height:54mm;min-height:0;border-radius:4mm;box-shadow:none;break-inside:avoid}.id-card-header{padding:3mm 4mm 1.5mm}.id-logo{width:10mm;height:10mm;border-radius:2mm;padding:1mm}.id-brand{gap:2mm}.id-brand strong{font-size:8pt}.id-brand small{font-size:4pt}.id-year{padding:1mm 1.5mm}.id-year small{font-size:3.5pt}.id-year strong{font-size:5pt}.id-card-title{padding:1mm 4mm}.id-card-title span{font-size:5.5pt}.id-card-title em{font-size:3.5pt}.id-card-content{grid-template-columns:20mm 1fr 16mm;gap:3mm;padding:3mm 4mm 7mm}.id-photo-wrap{width:19mm;height:24mm;border-radius:2mm;padding:.6mm}.id-photo-wrap>img,.id-photo-wrap>span{border-radius:1.5mm}.id-approved{width:5mm;height:5mm;font-size:4mm}.id-details h1{font-size:9pt;margin-bottom:1.2mm}.id-number{padding:1mm 1.5mm;margin-bottom:1.5mm}.id-number small{font-size:3pt}.id-number strong{font-size:5.5pt}.id-fields{gap:1mm 2mm}.id-fields small{font-size:3pt}.id-fields strong{font-size:4pt}.id-qr img{width:15mm;height:15mm;padding:.7mm}.id-qr small,.id-qr span{font-size:3pt}.id-card-footer{padding:1.2mm 4mm;font-size:3.2pt}.id-card-list{grid-template-columns:repeat(2,85.6mm);gap:6mm}.iyf-id-card-mini{width:85.6mm;height:54mm;min-height:0}.id-card-actions{display:none}}

/* Bilingual language selector */
.language-switcher{display:inline-flex;align-items:center;gap:3px;padding:3px;background:#eef3f8;border:1px solid #dbe5ef;border-radius:999px;flex-shrink:0}.lang-option{min-width:34px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:12px;font-weight:800;text-decoration:none;color:#506176;transition:.2s}.lang-option:hover{color:var(--primary);background:#fff}.lang-option.active{background:var(--primary);color:#fff;box-shadow:0 3px 10px rgba(19,95,179,.22)}.public-nav .language-switcher{margin-left:auto}.topbar-actions .language-switcher{margin-right:4px}@media(max-width:575.98px){.language-switcher{padding:2px}.lang-option{min-width:30px;height:28px}.topbar-title p{display:none}}
