/* ═══════════════════════════════════════════════════
   © 2026 OFPPT — Direction Régionale Souss-Massa, Agadir
   Application de Gestion des Achats & Marchés Publics
   Décret n° 2-22-431 du 08/03/2023
   Développé pour usage interne DRSM uniquement.
   Toute reproduction ou redistribution est interdite.
   Design System 2026 — Glassmorphism · Gradients · Animations
═══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');:root{--gr:#0f7a3c;--grd:#0a5c2d;--gr2:#16a34a;--grl:#dcfce7;--grg:linear-gradient(135deg,#0f7a3c 0%,#16a34a 100%);--bl:#1e3a8a;--bl2:#2563eb;--bll:#eff6ff;--blg:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%);--em:#059669;--or:#f59e0b;--rd:#dc2626;--am:#d97706;--pu:#7c3aed;--wh:#ffffff;--gy:#f8fafc;--gy2:#f1f5f9;--gy3:#e2e8f0;--gyd:#64748b;--gyd2:#94a3b8;--tx:#0f172a;--tx2:#1e293b;--bd:#e2e8f0;--sh:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);--shm:0 4px 16px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.04);--shl:0 20px 60px rgba(0,0,0,0.12),0 8px 20px rgba(0,0,0,0.08);--shg:0 8px 32px rgba(15,122,60,0.25);--shb:0 8px 32px rgba(30,58,138,0.2);--r:12px;--rs:8px;--rx:20px;--tr:all 0.2s cubic-bezier(0.4,0,0.2,1);}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:'Inter','Segoe UI',Arial,sans-serif;background:var(--gy);color:var(--tx);min-height:100vh;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gy3);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--gyd2)}.app-header{background:var(--wh);border-bottom:1px solid var(--bd);box-shadow:0 2px 20px rgba(0,0,0,0.06);position:sticky;top:0;z-index:100}.ht{background:var(--grg);color:rgba(255,255,255,0.92);font-size:9.5px;font-weight:500;text-align:center;padding:5px 16px;letter-spacing:1.5px;text-transform:uppercase}.hm{display:flex;align-items:center;gap:16px;padding:10px 20px}.hm img{height:48px;width:48px;object-fit:contain;border-radius:12px;background:var(--grl);padding:4px;box-shadow:0 2px 8px rgba(15,122,60,0.15)}.ht1{font-size:14px;font-weight:700;color:var(--gr);line-height:1.2;letter-spacing:-0.3px}.ht2{font-size:10px;color:var(--gyd);font-weight:500;text-transform:uppercase;letter-spacing:0.8px;margin-top:1px}.hdv{width:1px;height:40px;background:var(--bd);flex-shrink:0}.hi2{font-size:13px;font-weight:700;color:var(--bl);letter-spacing:-0.2px}.hi3{font-size:11px;color:var(--gyd);margin-top:1px}.hbg{margin-left:auto;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;color:var(--bl);font-size:9px;font-weight:700;padding:6px 10px;border-radius:var(--rs);text-align:center;line-height:1.5;box-shadow:0 2px 8px rgba(30,58,138,0.1)}.nbl{position:relative;background:var(--gy2);border:1px solid var(--bd);cursor:pointer;padding:7px;margin-left:4px;border-radius:10px;transition:var(--tr)}.nbl:hover{background:var(--gy3);transform:translateY(-1px);box-shadow:var(--sh)}.nbl svg{width:18px;height:18px;stroke:var(--gyd);fill:none;stroke-width:2}.nbg{position:absolute;top:-4px;right:-4px;background:var(--rd);color:white;border-radius:99px;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white}.nav{display:flex;overflow-x:auto;scrollbar-width:none;background:var(--wh);border-top:1px solid var(--bd);padding:0 12px;gap:2px}.nav::-webkit-scrollbar{display:none}.nb{background:none;border:none;color:var(--gyd);font-family:inherit;font-size:11.5px;font-weight:500;padding:10px 14px;cursor:pointer;border-bottom:2.5px solid transparent;transition:all .2s cubic-bezier(0.4,0,0.2,1);white-space:nowrap;border-radius:8px 8px 0 0;position:relative}.nb::after{content:'';position:absolute;bottom:0;left:50%;right:50%;height:2.5px;background:var(--grg);transition:all .25s cubic-bezier(0.4,0,0.2,1);border-radius:2px 2px 0 0}.nb:hover{color:var(--gr);background:var(--grl)}.nb:hover::after{left:8px;right:8px}.nb.active{color:var(--gr);background:var(--grl);font-weight:700;border-bottom-color:transparent}.nb.active::after{left:0;right:0}main{padding:20px;max-width:1440px;margin:0 auto}.pn{display:none}.pn.active{display:block;animation:pageEnter .35s cubic-bezier(0.34,1.56,0.64,1) both}@keyframes pageEnter{from{opacity:0;transform:translateY(16px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{from{opacity:0;transform:translateY(-8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(15,122,60,0.4)}50%{box-shadow:0 0 0 8px rgba(15,122,60,0)}}@keyframes pulseRed{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0.4)}50%{box-shadow:0 0 0 8px rgba(220,38,38,0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes bounceIn{0%{transform:scale(0.3);opacity:0}50%{transform:scale(1.08)}70%{transform:scale(0.95)}100%{transform:scale(1);opacity:1}}@keyframes countUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{transform:scale(0);opacity:0.6}100%{transform:scale(4);opacity:0}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.card{background:var(--wh);border-radius:var(--r);border:1px solid var(--bd);box-shadow:var(--sh);margin-bottom:18px;overflow:hidden;transition:box-shadow .25s ease,transform .25s cubic-bezier(0.4,0,0.2,1)}.card:hover{box-shadow:var(--shm);transform:translateY(-2px)}.ch{padding:12px 18px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px;letter-spacing:0.2px;border-bottom:1px solid rgba(255,255,255,0.15)}.ch.gr{background:var(--grg);color:white}.ch.bl{background:var(--blg);color:white}.ch.em{background:linear-gradient(135deg,#059669,#10b981);color:white}.ch.or{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:var(--tx)}.ch.rd{background:linear-gradient(135deg,#dc2626,#ef4444);color:white}.cb{padding:18px}.kpig{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:18px}.kpi{background:var(--wh);border-radius:var(--r);padding:16px;border:1px solid var(--bd);box-shadow:var(--sh);position:relative;overflow:hidden;transition:all .3s cubic-bezier(0.34,1.56,0.64,1);opacity:0;animation:fadeInUp .5s cubic-bezier(0.34,1.56,0.64,1) forwards}.kpi:nth-child(1){animation-delay:.05s}.kpi:nth-child(2){animation-delay:.1s}.kpi:nth-child(3){animation-delay:.15s}.kpi:nth-child(4){animation-delay:.2s}.kpi:nth-child(5){animation-delay:.25s}.kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--grg);border-radius:var(--r) var(--r) 0 0;transition:height .3s ease}.kpi.b::before{background:var(--blg)}.kpi.e::before{background:linear-gradient(135deg,#059669,#10b981)}.kpi.o::before{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.kpi.r::before{background:linear-gradient(135deg,#dc2626,#ef4444)}.kpi::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,122,60,0.04),transparent);opacity:0;transition:opacity .3s ease;pointer-events:none}.kpi:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 12px 40px rgba(0,0,0,0.12),0 4px 12px rgba(0,0,0,0.06)}.kpi:hover::before{height:6px}.kpi:hover::after{opacity:1}.kl{font-size:9.5px;text-transform:uppercase;letter-spacing:1px;color:var(--gyd);font-weight:600}.kv{font-size:28px;font-weight:800;color:var(--tx);margin-top:6px;letter-spacing:-1px;line-height:1;animation:countUp .6s ease both;animation-delay:.3s}.ks{font-size:10px;color:var(--gyd2);margin-top:4px}.fg{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.fi{display:flex;flex-direction:column;gap:5px}.fi.full{grid-column:1/-1}.fi label{font-size:10.5px;font-weight:600;color:var(--tx2);text-transform:uppercase;letter-spacing:0.6px}.fc{border:1.5px solid var(--bd);border-radius:var(--rs);padding:8px 12px;font-family:inherit;font-size:12.5px;color:var(--tx);background:var(--wh);outline:none;transition:var(--tr);width:100%}.fc:hover{border-color:#93c5fd}.fc:focus{border-color:var(--gr);box-shadow:0 0 0 3px rgba(15,122,60,0.1)}.fc[readonly]{background:var(--gy2);color:var(--gyd);cursor:default}select.fc{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}textarea.fc{resize:vertical;min-height:60px}.eg{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin-top:6px}.el{display:flex;align-items:center;gap:7px;padding:7px 11px;border:1.5px solid var(--bd);border-radius:var(--rs);cursor:pointer;transition:var(--tr);font-size:11.5px;font-weight:500;user-select:none;background:var(--gy2)}.el:hover{border-color:var(--gr);background:var(--grl);color:var(--gr)}.el.sel{border-color:var(--gr);background:var(--grl);color:var(--gr);font-weight:700;box-shadow:0 0 0 3px rgba(15,122,60,0.1)}.el input{accent-color:var(--gr);width:14px;height:14px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--rs);border:none;font-family:inherit;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(0.4,0,0.2,1);letter-spacing:0.2px;white-space:nowrap;position:relative;overflow:hidden}.btn::after{content:'';position:absolute;inset:0;border-radius:inherit;background:rgba(255,255,255,0.15);opacity:0;transition:opacity .15s ease}.btn:hover::after{opacity:1}.btn:active{transform:scale(0.95)!important}.btn:focus-visible{outline:2px solid var(--gr);outline-offset:2px}.bgr{background:var(--grg);color:white;box-shadow:0 2px 8px rgba(15,122,60,0.3)}.bgr:hover{background:linear-gradient(135deg,#0a5c2d,#0f7a3c);box-shadow:var(--shg);transform:translateY(-1px)}.bbl{background:var(--blg);color:white;box-shadow:0 2px 8px rgba(30,58,138,0.3)}.bbl:hover{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);box-shadow:var(--shb);transform:translateY(-1px)}.bem{background:linear-gradient(135deg,#059669,#10b981);color:white;box-shadow:0 2px 8px rgba(5,150,105,0.3)}.bem:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(5,150,105,0.35)}.bor{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:var(--tx);box-shadow:0 2px 8px rgba(245,158,11,0.3)}.bor:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(245,158,11,0.35)}.bout{background:var(--wh);color:var(--bl);border:1.5px solid #bfdbfe}.bout:hover{background:var(--bll);border-color:var(--bl2);transform:translateY(-1px)}.brd{background:#fff1f2;color:var(--rd);border:1.5px solid #fecdd3}.brd:hover{background:#ffe4e6;transform:translateY(-1px)}.bsm{padding:5px 10px;font-size:10.5px}.bbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--bd)}.tw{overflow-x:auto;border-radius:var(--rs);border:1px solid var(--bd)}table{width:100%;border-collapse:collapse;min-width:500px}thead th{background:var(--blg);color:white;font-size:10.5px;font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap;letter-spacing:0.3px;text-transform:uppercase}thead th.c{text-align:center}tbody tr{border-bottom:1px solid var(--gy3);transition:background .2s ease,transform .15s ease;animation:slideInLeft .3s ease both}tbody tr:nth-child(1){animation-delay:.03s}tbody tr:nth-child(2){animation-delay:.06s}tbody tr:nth-child(3){animation-delay:.09s}tbody tr:nth-child(4){animation-delay:.12s}tbody tr:nth-child(5){animation-delay:.15s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:linear-gradient(90deg,#f0f9ff,#f8faff);transform:scale(1.001)}tbody td{padding:10px 12px;font-size:12px;vertical-align:middle}tbody td.c{text-align:center}tbody td.r{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.bds{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:10px;font-weight:600;gap:4px}.bok{background:#dcfce7;color:#15803d;border:1px solid #86efac}.bec{background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd}.bat{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}.brd2{background:#fee2e2;color:var(--rd);border:1px solid #fca5a5}.ib{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-left:4px solid var(--bl2);border-radius:var(--rs);padding:10px 14px;font-size:11.5px;color:#1e40af;margin-bottom:14px;animation:fadeInUp .4s ease both}.wb{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fcd34d;border-left:4px solid var(--or);border-radius:var(--rs);padding:10px 14px;font-size:11.5px;color:#92400e;margin-bottom:14px;animation:fadeInUp .4s ease both}.ab{background:linear-gradient(135deg,#fff1f2,#fee2e2);border:1px solid #fca5a5;border-left:4px solid var(--rd);border-radius:var(--rs);padding:10px 14px;font-size:11.5px;color:#991b1b;margin-bottom:14px;animation:fadeInUp .4s ease both}.sb{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac;border-left:4px solid var(--em);border-radius:var(--rs);padding:10px 14px;font-size:11.5px;color:#14532d;margin-bottom:14px;animation:fadeInUp .4s ease both}.sdv{display:flex;align-items:center;gap:12px;margin:20px 0 14px}.sdv::before,.sdv::after{content:'';flex:1;height:1px;background:var(--bd)}.sdv span{font-size:10.5px;font-weight:700;color:var(--gyd);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;background:var(--wh);padding:0 8px}.sr{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:var(--gy2);border-radius:var(--rs);border:1px solid var(--bd)}.sr input,.sr select{padding:7px 12px;border:1.5px solid var(--bd);border-radius:var(--rs);font-size:12px;outline:none;font-family:inherit;background:var(--wh);transition:var(--tr)}.sr input:focus,.sr select:focus{border-color:var(--gr);box-shadow:0 0 0 3px rgba(15,122,60,0.08)}#np{display:none;position:fixed;top:82px;right:16px;width:340px;background:var(--wh);border-radius:var(--rx);box-shadow:var(--shl);border:1px solid var(--bd);z-index:200;max-height:450px;overflow-y:auto}#np.open{display:block;animation:slideDown .2s ease}@keyframes slideDown{from{opacity:0;transform:translateY(-8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}.nh{padding:14px 16px;border-bottom:1px solid var(--bd);font-weight:700;font-size:12.5px;display:flex;justify-content:space-between;align-items:center;color:var(--bl);background:var(--gy2);border-radius:var(--rx) var(--rx) 0 0}.ni{padding:10px 14px;border-bottom:1px solid var(--gy3);cursor:pointer;transition:background .15s}.ni:hover{background:var(--gy2)}.ni:last-child{border-bottom:none}.ni.urg{border-left:3px solid var(--rd)}.ni.wrn{border-left:3px solid var(--or)}.nt{font-size:11.5px;color:var(--tx);font-weight:500}.ns{font-size:10.5px;color:var(--gyd2);margin-top:3px}#modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,0.5);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center}#modal.open{display:flex;animation:fadeIn .2s ease}.mbox{background:var(--wh);border-radius:var(--rx);padding:28px;max-width:480px;width:90%;box-shadow:var(--shl);border:1px solid var(--bd)}.mbox h3{font-size:16px;font-weight:800;margin-bottom:10px;color:var(--gr);letter-spacing:-0.3px}.mbox p{font-size:12.5px;color:var(--gyd);line-height:1.7}#pp{display:none;position:fixed;inset:0;background:rgba(15,23,42,0.7);backdrop-filter:blur(4px);z-index:999;overflow-y:auto;padding:20px;flex-direction:column;align-items:center}#pp.open{display:flex}.ptb{display:flex;gap:8px;margin-bottom:14px;background:var(--wh);padding:10px 18px;border-radius:12px;box-shadow:var(--shl);align-items:center}.ppage{background:white;width:210mm;min-height:297mm;padding:16mm 14mm;box-shadow:0 20px 60px rgba(0,0,0,0.25);margin-bottom:12px;font-size:9.5pt;color:#000;position:relative;font-family:Arial,sans-serif;border-radius:4px}.phdr{display:flex;align-items:center;justify-content:space-between;border-bottom:2.5px solid #0f7a3c;padding-bottom:8px;margin-bottom:10px}.pttl{text-align:center;font-size:13pt;font-weight:700;color:#1e3a8a;margin:7px 0 2px;text-transform:uppercase;letter-spacing:.5px}.psub{text-align:center;font-size:8.5pt;color:#555;margin-bottom:7px}.pref{text-align:center;font-size:11pt;font-weight:700;color:#0f7a3c;margin-bottom:9px}.pig{display:grid;grid-template-columns:1fr 1fr;border:1px solid #ccc;margin-bottom:9px}.pil{background:#f5f5f5;padding:4px 7px;font-size:8pt;font-weight:700;border-bottom:1px solid #ddd}.piv{padding:4px 7px;font-size:8pt;border-bottom:1px solid #ddd}.psec{background:#1e3a8a;color:white;padding:6px 9px;font-weight:700;font-size:9pt;margin:9px 0 4px}.ptbl{width:100%;border-collapse:collapse;font-size:8pt;margin-bottom:9px}.ptbl th{background:#1e3a8a;color:white;padding:5px 6px;text-align:left;font-size:7.5pt}.ptbl td{padding:4px 6px;border-bottom:1px solid #ddd}.ptbl tr:nth-child(even) td{background:#f9f9f9}.psign{margin-top:26px;display:flex;justify-content:flex-end}.psb{text-align:center;width:200px}.psl{border-top:1px solid #333;margin-top:46px;padding-top:4px;font-size:8.5pt;font-weight:700}.pftr{position:absolute;bottom:10mm;left:14mm;right:14mm;display:flex;justify-content:space-between;font-size:7pt;color:#888;border-top:1px solid #ddd;padding-top:4px}.dv-table{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:8px}.dv-table th{background:var(--blg);color:white;padding:9px 12px;text-align:left;font-size:10.5px;letter-spacing:0.3px}.dv-table td{padding:9px 12px;border-bottom:1px solid var(--gy3)}.dv-table tr:nth-child(even) td{background:#f8faff}.dv-table tr.sel-row td{background:#f0fdf4;font-weight:600}.drop-zone{border:2px dashed #93c5fd;border-radius:var(--r);padding:28px;text-align:center;cursor:pointer;transition:var(--tr);margin-bottom:12px;background:linear-gradient(135deg,#f8faff,#eff6ff)}.drop-zone:hover,.drop-zone.over{border-color:var(--gr);background:var(--grl);transform:scale(1.01)}.drop-zone p{font-size:12px;color:var(--gyd);margin-top:6px}.art-tbl{width:100%;border-collapse:collapse;font-size:11.5px}.art-tbl th{background:linear-gradient(135deg,#059669,#10b981);color:white;padding:8px 10px;font-size:10.5px;text-align:left;letter-spacing:0.3px}.art-tbl td{padding:7px 10px;border-bottom:1px solid var(--gy3);vertical-align:middle}.art-tbl tr:nth-child(even) td{background:#f8fffc}.art-tbl input[type=number]{width:85px;padding:4px 7px;border:1.5px solid var(--bd);border-radius:6px;font-size:11.5px;text-align:right}.art-tbl input[type=number]:focus{border-color:var(--gr);outline:none;box-shadow:0 0 0 3px rgba(15,122,60,0.1)}.lchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.lchip{padding:6px 14px;border-radius:99px;font-size:11px;font-weight:600;cursor:pointer;border:1.5px solid var(--bd);background:var(--wh);color:var(--gyd);transition:var(--tr)}.lchip:hover{border-color:var(--gr);color:var(--gr);background:var(--grl)}.lchip.active{background:var(--grg);color:white;border-color:transparent;box-shadow:0 2px 8px rgba(15,122,60,0.3)}.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:10px}.mcard{border:1.5px solid var(--bd);border-radius:var(--rs);padding:12px;background:var(--gy2);display:flex;gap:8px;align-items:flex-start;transition:var(--tr)}.mcard:hover{border-color:#93c5fd;background:var(--bll)}.mnum{width:26px;height:26px;background:var(--blg);color:white;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;box-shadow:0 2px 6px rgba(30,58,138,0.25)}.ii{border:1.5px solid var(--bd);border-radius:var(--rs);padding:5px 9px;font-size:12px;font-family:inherit;color:var(--tx);outline:none;width:100%;transition:var(--tr);background:var(--wh)}.ii:focus{border-color:var(--gr);box-shadow:0 0 0 3px rgba(15,122,60,0.08)}.app-header{animation:slideDown .4s cubic-bezier(0.34,1.56,0.64,1) both}.ht{animation:fadeIn .3s ease .1s both}.hm{animation:fadeIn .4s ease .15s both}.nav .nb{animation:fadeInUp .3s ease both}.nav .nb:nth-child(1){animation-delay:.05s}.nav .nb:nth-child(2){animation-delay:.08s}.nav .nb:nth-child(3){animation-delay:.11s}.nav .nb:nth-child(4){animation-delay:.14s}.nav .nb:nth-child(5){animation-delay:.17s}.nav .nb:nth-child(6){animation-delay:.20s}.nav .nb:nth-child(7){animation-delay:.23s}.nav .nb:nth-child(8){animation-delay:.26s}.lchip{transition:all .2s cubic-bezier(0.34,1.56,0.64,1)}.lchip:hover{transform:translateY(-2px) scale(1.04)}.lchip.active{animation:bounceIn .35s cubic-bezier(0.34,1.56,0.64,1)}.bds{transition:all .2s ease}.nbg{animation:pulse 2s infinite}#modal.open .mbox{animation:scaleIn .3s cubic-bezier(0.34,1.56,0.64,1) both}.fc{transition:all .25s cubic-bezier(0.4,0,0.2,1)}.fc:focus{transform:translateY(-1px)}tbody tr:hover td{transition:color .15s ease}@keyframes ripple{0%{transform:scale(0);opacity:0.5}100%{transform:scale(1);opacity:0}}.shimmer{background:linear-gradient(90deg,var(--gy2) 25%,var(--gy3) 50%,var(--gy2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.drop-zone{transition:all .3s cubic-bezier(0.34,1.56,0.64,1)}.drop-zone:hover,.drop-zone.over{transform:scale(1.02);box-shadow:0 8px 24px rgba(15,122,60,0.15)}.ni{transition:all .2s ease}.ni:hover{transform:translateX(4px)}.mcard{transition:all .25s cubic-bezier(0.4,0,0.2,1)}.mcard:hover{transform:translateY(-3px);box-shadow:var(--shm)}@media(max-width:768px){main{padding:12px}.kpig{grid-template-columns:repeat(2,1fr)}.fg{grid-template-columns:1fr}.ppage{width:100%;min-height:auto;padding:8mm}.hm{padding:8px 12px;gap:10px}.hm img{height:38px;width:38px}}@media print{.app-header,.nav,.btn,.bbar,.ptb,#modal,#np{display:none!important}.ppage{box-shadow:none;margin:0;border-radius:0}body{background:white}}