:root{--navy:#102a56;--blue:#1768e5;--light:#eef5ff;--bg:#f4f7fb;--text:#172033;--muted:#64748b;--line:#dfe7f1;--red:#dc2626;--orange:#d97706;--green:#15803d;--shadow:0 12px 34px rgba(15,42,86,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}.landing{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(135deg,#0c2349,#1768e5)}.landing-card{width:min(1050px,100%);padding:55px;border-radius:28px;background:#fff;box-shadow:0 35px 90px rgba(0,0,0,.28)}.brand{font-weight:900;letter-spacing:.5px}.brand span{color:#55a1ff}.brand.large{font-size:34px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.5px}.landing h1{max-width:800px;font-size:45px;line-height:1.1}.landing p{max-width:760px;color:var(--muted);line-height:1.7}.landing-actions,.actions{display:flex;gap:10px;flex-wrap:wrap}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:35px}.features article{display:grid;gap:5px;padding:18px;border:1px solid var(--line);border-radius:14px}.features span{color:var(--muted);font-size:12px}.shell{min-height:100vh;display:grid;grid-template-columns:255px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;color:white;background:linear-gradient(180deg,#102a56,#081a36)}.sidebar .brand{font-size:24px;margin:4px 10px 24px}.profile-chip{padding:14px;margin-bottom:20px;border-radius:13px;background:rgba(255,255,255,.09);cursor:pointer}.profile-chip b,.profile-chip small{display:block}.profile-chip small{margin-top:4px;color:#a8c9ff}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;color:#dbeafe;text-decoration:none}.nav a:hover,.nav a.active{color:white;background:var(--blue)}.sidebar-footer{position:absolute;bottom:20px;left:18px;right:18px}.content{min-width:0;padding:26px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.topbar small{color:var(--blue);font-weight:800}.topbar h2{margin:3px 0}.page-head{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:20px}.page-head h1{margin:0 0 5px;font-size:30px}.page-head p{margin:0;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:0;border-radius:9px;font-weight:700;text-decoration:none;cursor:pointer}.primary{color:white;background:var(--blue)}.secondary{color:#334155;background:#e8eef6}.danger{color:white;background:var(--red)}.warning{color:#92400e;background:#fef3c7}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.card,.panel{padding:18px;border:1px solid var(--line);border-radius:15px;background:white;box-shadow:0 5px 18px rgba(15,42,86,.04)}.stat{display:grid;gap:7px}.stat span{color:var(--muted);font-size:12px}.stat strong{font-size:31px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:17px;padding:13px;border:1px solid var(--line);border-radius:13px;background:white}.toolbar input{flex:1}.field{display:grid;gap:6px}.field label{color:#475569;font-size:12px;font-weight:700}.field input,.field select,.field textarea,.toolbar input,.toolbar select{width:100%;padding:10px 11px;border:1px solid #cbd5e1;border-radius:9px;background:white;outline:0}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,104,229,.12)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.item h3{margin:10px 0 6px}.item p,.item small{color:var(--muted);line-height:1.55}.badge{display:inline-flex;padding:5px 8px;border-radius:20px;color:var(--blue);background:#e8f1ff;font-size:10px;font-weight:800}.progress{height:7px;margin:12px 0;overflow:hidden;border-radius:20px;background:#e2e8f0}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#56a0ff)}.matrix{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quadrant{min-height:200px;padding:14px;border-radius:14px}.q1{background:#ffe5e8}.q2{background:#e4efff}.q3{background:#fff0db}.q4{background:#e9edf2}.task-card{margin-top:10px;padding:13px;border-radius:10px;background:white;box-shadow:0 3px 10px rgba(15,42,86,.07)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;background:white}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table th{color:#475569;font-size:11px}.expired td:first-child{border-left:5px solid var(--red)}.soon td:first-child{border-left:5px solid var(--orange)}.valid td:first-child{border-left:5px solid var(--green)}.status-expired{color:#991b1b;background:#fee2e2}.status-soon{color:#92400e;background:#fef3c7}.status-valid{color:#166534;background:#dcfce7}.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(8,26,54,.72);backdrop-filter:blur(4px)}.dialog{width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:18px;background:white;box-shadow:0 30px 80px rgba(0,0,0,.3)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;color:white;background:linear-gradient(135deg,var(--navy),var(--blue))}.dialog-head h2{margin:0}.dialog-body{padding:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}.alert{margin-bottom:15px;padding:11px 13px;border-radius:9px}.alert.success{color:#166534;background:#dcfce7}.alert.error{color:#991b1b;background:#fee2e2}.empty{padding:45px;text-align:center;color:var(--muted)}.action-type{font-size:10px;font-weight:800}.action-realisation{color:#1d4ed8}.action-suivi{color:#7e22ce}.footer-note{margin-top:25px;color:var(--muted);font-size:11px}@media(max-width:1000px){.stats,.features,.grid{grid-template-columns:repeat(2,1fr)}}

@media(max-width:760px){
    .shell{grid-template-columns:1fr}
    .sidebar{position:relative;height:auto}
    .sidebar-footer{position:static;margin-top:20px}
    .content{padding:15px}
    .page-head,.topbar,.toolbar{
        align-items:stretch;
        flex-direction:column
    }
    .stats,.features,.grid,.matrix,.form-grid{
        grid-template-columns:1fr
    }
    .landing-card{padding:28px}
    .landing h1{font-size:32px}
}

/* =====================================================
   PAGE DE CONNEXION SMARTWORK
   ===================================================== */

body.login-page {
    margin: 0*
    min-height: 100vh;
    paddin*: 24px;
    display: flex;
    ali*n-items: center;
    justify-conte*t: center;
    font-family: Inter,*"Segoe UI", Arial, sans-serif;
   *color: #172033;
    background:
  *     radial-gradient(
            *ircle at top right,
            rg*a(85, 161, 255, 0.35),
           *transparent 38%
        ),
       *linear-gradient(135deg, #0c2349 0%* #1768e5 100%);
}

.login-card {
 *  width: 100%;
    max-width: 420p*;
    padding: 40px;
    backgroun*: #ffffff;
    border: 1px solid r*ba(255, 255, 255, 0.45);
    borde*-radius: 18px;
    box-shadow: 0 2*px 65px rgba(0, 0, 0, 0.25);
}

.l*gin-card .logo {
    margin: 0 0 8*x;
    color: #102a56;
    text-al*gn: center;
    font-size: 34px;
 *  font-weight: 900;
    letter-spa*ing: 0.5px;
}

.login-card .logo s*an {
    color: #1768e5;
}

.login*card .subtitle {
    margin: 0 0 3*px;
    color: #64748b;
    text-a*ign: center;
    font-size: 15px;
*   line-height: 1.5;
}

.login-car* .form-group {
    margin-bottom: *0px;
}

.login-card label {
    di*play: block;
    margin-bottom: 7p*;
    color: #334155;
    font-siz*: 13px;
    font-weight: 700;
}

.*ogin-card input {
    display: blo*k;
    width: 100%;
    height: 46*x;
    padding: 11px 13px;
    col*r: #172033;
    font-family: inher*t;
    font-size: 15px;
    backgr*und: #ffffff;
    border: 1px soli* #cbd5e1;
    border-radius: 9px;
*   outline: none;
    transition:
*       border-color 0.2s ease,
   *    box-shadow 0.2s ease;
}

.logi*-card input::placeholder {
    col*r: #94a3b8;
}

.login-card input:h*ver {
    border-color: #94a3b8;
}*
.login-card input:focus {
    bor*er-color: #1768e5;
    box-shadow:*0 0 0 3px rgba(23, 104, 229, 0.14)*
}

.login-card .btn-login {
    d*splay: flex;
    align-items: cent*r;
    justify-content: center;
  * width: 100%;
    min-height: 46px*
    margin-top: 8px;
    padding:*12px 18px;
    color: #ffffff;
   *font-family: inherit;
    font-siz*: 15px;
    font-weight: 700;
    *ackground: #1768e5;
    border: 0;*    border-radius: 9px;
    cursor* pointer;
    transition:
        *ackground-color 0.2s ease,
       *box-shadow 0.2s ease,
        tran*form 0.2s ease;
}

.login-card .bt*-login:hover {
    background: #10*8c9;
    box-shadow: 0 10px 22px r*ba(23, 104, 229, 0.25);
    transf*rm: translateY(-1px);
}

.login-ca*d .btn-login:active {
    box-shad*w: none;
    transform: translateY*0);
}

.login-card .btn-login:focu*-visible {
    outline: 3px solid *gba(85, 161, 255, 0.45);
    outli*e-offset: 3px;
}

.login-card .err*r {
    display: none;
    min-hei*ht: 20px;
    margin-top: 14px;
  * padding: 10px 12px;
    color: #9*1b1b;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 9px;
}

.login-card .error:not(:empty) {
    display: block;
}

.login-card .footer {
    margin-top: 24px;
    color: #94a3b8;
    text-align: center;
    font-size: 12px;
}

@media (max-width: 520px) {
    body.login-page {
        padding: 16px;
    }

    .login-card {
        max-width: 100%;
        padding: 30px 22px;
        border-radius: 15px;
    }

    .login-card .logo {
        font-size: 30px;
    }
}