/*
  VM Manager - theme.css
  Variables de theme (clair / sombre) + reset + primitives partagees
  (boutons, champs, messages, mot de passe) reprises de l'ancien front.
*/

[data-theme="dark"]{--bg:#0a0a0f;--bg2:#111118;--bg3:#1a1a24;--bg4:#222230;--border:#2a2a3a;--border2:#3a3a4a;--accent:#6c63ff;--accent-hover:#7c74ff;--accent-dim:rgba(108,99,255,.15);--green:#00d68f;--orange:#ffaa00;--red:#ff4757;--text:#e8e8f0;--text2:#8888aa;--text3:#555570;--shadow:0 4px 24px rgba(0,0,0,.4);--card-hover:rgba(255,255,255,.02)}
[data-theme="light"]{--bg:#f0f2f8;--bg2:#ffffff;--bg3:#f5f6fa;--bg4:#eceef5;--border:#dde0ea;--border2:#c8ccd8;--accent:#5b54e8;--accent-hover:#4a44d0;--accent-dim:rgba(91,84,232,.1);--green:#00a86b;--orange:#e07800;--red:#e03040;--text:#1a1a2e;--text2:#6670aa;--text3:#9098bb;--shadow:0 4px 24px rgba(80,80,140,.12);--card-hover:rgba(0,0,0,.02)}

*{margin:0;padding:0;box-sizing:border-box;transition:background-color .2s,border-color .2s,color .2s}
body{background:var(--bg);color:var(--text);font-family:'Syne',sans-serif;min-height:100vh}

/* Champs de formulaire */
.field{margin-bottom:16px}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text2);margin-bottom:7px}
.field input{width:100%;background:var(--bg3);border:1.5px solid var(--border);border-radius:10px;padding:12px 16px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}

/* Boutons */
.btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:13px 24px;font-family:'Syne',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}
.btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px rgba(108,99,255,.3)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.btn-full{width:100%}.btn-sm{padding:7px 14px;font-size:12px;border-radius:8px}.btn-xs{padding:5px 10px;font-size:11px;border-radius:6px}
.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--text2)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent;transform:none;box-shadow:none}
.btn-danger{background:var(--red)}.btn-danger:hover{background:#ff6070}
.btn-success{background:var(--green);color:#000}.btn-success:hover{filter:brightness(1.1)}
.btn-warn{background:var(--orange);color:#000}.btn-warn:hover{filter:brightness(1.1)}

/* Messages */
.err{color:var(--red);font-size:12px;margin-top:10px;font-family:'JetBrains Mono',monospace;text-align:center}
.ok-msg{color:var(--green);font-size:12px;margin-top:10px;font-family:'JetBrains Mono',monospace;text-align:center}

/* Champ mot de passe : oeil de revelation */
.pw-field-wrap{position:relative}
.pw-field-wrap input{padding-right:38px!important}
.pw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--text3);background:none;border:none;padding:4px;display:none;align-items:center;line-height:1;transition:color .15s;border-radius:4px}
.pw-eye:hover{color:var(--accent)}
.pw-eye.visible{display:flex}

/* Checklist de robustesse du mot de passe */
.pw-checks{margin:8px 0 12px;display:flex;flex-direction:column;gap:4px}
.pw-check{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text3);font-family:'JetBrains Mono',monospace;transition:color .2s}
.pw-check.ok{color:var(--green)}
.pw-check-icon{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--text3);display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;transition:all .2s;color:transparent}
.pw-check.ok .pw-check-icon{background:var(--green);border-color:var(--green);color:#fff}

/* Indicateur de chargement (partage login + app) */
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
