/* ---------- gestão de usuários ---------- */
  .user-admin-header,.user-list-title{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  }
  .user-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .user-form-actions{
    grid-column:1/-1;
    display:flex;
    gap:10px;
    justify-content:flex-end;
  }
  .user-success{
    grid-column:1/-1;
    color:#187a44;
    font-size:13px;
    font-weight:700;
    margin:0;
  }
  .users-table{
    width:100%;
    border-collapse:collapse;
    min-width:760px;
    font-size:12.5px;
  }
  .users-table th{
    text-align:left;
    color:var(--muted);
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:.35px;
    padding:10px;
    border-bottom:1.5px solid var(--line);
  }
  .users-table td{
    padding:12px 10px;
    border-bottom:1px solid var(--line);
    vertical-align:middle;
  }
  .users-table tr:last-child td{border-bottom:0;}
  .role-badge{
    display:inline-block;
    padding:4px 9px;
    border-radius:999px;
    font-size:10.5px;
    font-weight:900;
    background:#f1eaff;
    color:var(--purple-dark);
  }
  .role-badge.admin{background:#ffe3d1;color:#9a3500;}
  .status-dot{
    display:inline-block;width:8px;height:8px;border-radius:50%;
    background:#b6b6b6;margin-right:6px;
  }
  .status-dot.active{background:#28a862;}
  .user-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .user-action-btn{
    border:1px solid var(--line);
    background:var(--bg-card);
    color:var(--black);
    border-radius:999px;
    padding:7px 10px;
    font-family:inherit;
    font-size:10.5px;
    font-weight:800;
    cursor:pointer;
  }
  .user-action-btn:hover{border-color:var(--purple);}
  .user-action-btn.danger{
    color:#b52e27;
    border-color:#efc7c4;
  }
  .user-action-btn.danger:hover{
    color:#fff;
    background:#d94339;
    border-color:#d94339;
  }
  body.dark-mode .user-action-btn{background:#292d36;}
  body.dark-mode .user-action-btn.danger{color:#ffaaa4;border-color:#63312e;}
  body.dark-mode .role-badge{background:#392b55;color:#ddcaff;}
  body.dark-mode .role-badge.admin{background:#4b2e20;color:#ffc39d;}
  body.dark-mode .user-success{color:#85d9a8;}

  @media(max-width:700px){
    .user-form-grid{grid-template-columns:1fr;}
    .user-form-actions{grid-column:1;flex-direction:column;}
    .user-form-actions .btn{width:100%;}
  }

  @media print{
    header.top, .toolbar-actions, #filterPanel, footer.foot, .theme-toggle,
    #usersView, .divider{display:none !important;}
    body{background:#fff !important;color:#111 !important;}
    .app{max-width:none;padding:0;}
    .panel,.stat-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid;}
  }

  /* ---------- presença online em tempo real ---------- */
  .user-identity{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
  }
  .presence-wrap{
    display:inline-flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto;
  }
  .status-dot{
    width:9px;
    height:9px;
    margin-right:0;
    background:#9aa0aa;
    border:2px solid var(--bg-card);
    box-shadow:0 0 0 1px rgba(0,0,0,.08);
    transition:background .2s ease,box-shadow .2s ease;
  }
  .status-dot.online{
    background:#22c76a;
    box-shadow:0 0 0 3px rgba(34,199,106,.13);
  }
  .status-dot.offline{
    background:#9aa0aa;
    box-shadow:none;
  }
  .presence-label{
    font-size:9.5px;
    font-weight:800;
    color:var(--muted);
    white-space:nowrap;
  }
  .presence-label.online{color:#16894a;}
  body.dark-mode .status-dot{
    border-color:#22252d;
  }
  body.dark-mode .status-dot.online{
    background:#38d77d;
    box-shadow:0 0 0 3px rgba(56,215,125,.16);
  }
  body.dark-mode .status-dot.offline{
    background:#6e7581;
  }
  body.dark-mode .presence-label{color:#aeb6c2;}
  body.dark-mode .presence-label.online{color:#72e6a4;}

  /* ---------- modal premium de alteração de senha ---------- */
  .password-modal{
    position:fixed;
    inset:0;
    z-index:10020;
    display:grid;
    place-items:center;
    padding:20px;
  }
  .password-modal.hidden{display:none!important;}
  .password-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(12,15,21,.68);
    backdrop-filter:blur(6px);
  }
  .password-modal-dialog{
    position:relative;
    width:min(520px,100%);
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:22px;
    background:var(--bg-card);
    box-shadow:0 32px 90px rgba(0,0,0,.28);
    animation:passwordModalIn .2s ease;
  }
  @keyframes passwordModalIn{
    from{opacity:0;transform:translateY(8px) scale(.985);}
    to{opacity:1;transform:translateY(0) scale(1);}
  }
  .password-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:22px 24px 18px;
    border-bottom:1px solid var(--line);
  }
  .password-modal-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-bottom:6px;
    color:var(--orange);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .password-modal-header h3{
    margin:0;
    color:var(--black);
    font-size:21px;
    line-height:1.15;
  }
  .password-modal-header p{
    margin:6px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
  }
  .password-modal-close{
    width:36px;
    height:36px;
    flex:0 0 36px;
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--bg-card);
    color:var(--black);
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }
  .password-modal-close:hover{
    border-color:var(--purple);
    color:var(--purple);
  }
  .password-modal-body{
    padding:22px 24px 16px;
  }
  .password-user-summary{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:rgba(102,22,216,.045);
  }
  .password-user-avatar{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:linear-gradient(135deg,var(--purple),var(--orange));
    color:#fff;
    font-size:15px;
    font-weight:900;
  }
  .password-user-summary strong{
    display:block;
    color:var(--black);
    font-size:12px;
  }
  .password-user-summary span{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:10.5px;
    word-break:break-word;
  }
  .password-modal-fields{
    display:grid;
    gap:14px;
  }
  .password-modal-field label{
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:9.5px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
  }
  .password-modal-input-wrap{
    position:relative;
  }
  .password-modal-input{
    width:100%;
    min-height:44px;
    padding:11px 42px 11px 12px;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--bg-card);
    color:var(--black);
    font:inherit;
    font-size:13px;
    outline:none;
    transition:border-color .2s ease,box-shadow .2s ease;
  }
  .password-modal-input:focus{
    border-color:var(--purple);
    box-shadow:0 0 0 3px rgba(102,22,216,.12);
  }
  .password-modal-toggle{
    position:absolute;
    top:50%;
    right:8px;
    transform:translateY(-50%);
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--muted);
    cursor:pointer;
  }
  .password-modal-toggle:hover{
    background:rgba(102,22,216,.08);
    color:var(--purple);
  }
  .password-requirements{
    display:grid;
    gap:7px;
    margin-top:14px;
    padding:12px 14px;
    border-radius:12px;
    background:rgba(102,22,216,.05);
  }
  .password-requirement{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-size:10.5px;
  }
  .password-requirement::before{
    content:'';
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:50%;
    background:#a0a5ad;
  }
  .password-requirement.valid{
    color:#16894a;
  }
  .password-requirement.valid::before{
    background:#22c76a;
    box-shadow:0 0 0 3px rgba(34,199,106,.12);
  }
  .password-modal-message{
    margin-top:14px;
    padding:10px 12px;
    border-radius:10px;
    font-size:11px;
    font-weight:800;
  }
  .password-modal-message.hidden{display:none!important;}
  .password-modal-message.error{
    color:#a9231c;
    background:#fff0ef;
    border:1px solid #f3c0bc;
  }
  .password-modal-message.success{
    color:#127341;
    background:#ebfff4;
    border:1px solid #bce8ce;
  }
  .password-modal-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:16px 24px 22px;
  }
  .password-modal-footer .btn{
    min-width:112px;
  }
  body.password-modal-open{overflow:hidden;}

  body.dark-mode .password-modal-backdrop{
    background:rgba(4,6,10,.8);
  }
  body.dark-mode .password-modal-dialog{
    background:#1b1e25;
    border-color:#3b404b;
    box-shadow:0 32px 100px rgba(0,0,0,.55);
  }
  body.dark-mode .password-modal-header{
    border-color:#353a44;
  }
  body.dark-mode .password-modal-header h3,
  body.dark-mode .password-modal-close,
  body.dark-mode .password-user-summary strong,
  body.dark-mode .password-modal-input{
    color:#fff;
  }
  body.dark-mode .password-modal-header p,
  body.dark-mode .password-user-summary span,
  body.dark-mode .password-modal-field label,
  body.dark-mode .password-requirement{
    color:#b8c0cb;
  }
  body.dark-mode .password-modal-close{
    background:#232730;
    border-color:#454b57;
  }
  body.dark-mode .password-user-summary,
  body.dark-mode .password-requirements{
    background:#20242c;
    border-color:#3a3f49;
  }
  body.dark-mode .password-modal-input{
    background:#111318;
    border-color:#454b57;
  }
  body.dark-mode .password-modal-input:focus{
    border-color:#9c5cff;
    box-shadow:0 0 0 3px rgba(156,92,255,.17);
  }
  body.dark-mode .password-requirement.valid{
    color:#75e6a6;
  }
  body.dark-mode .password-modal-message.error{
    color:#ffaaa4;
    background:#321d20;
    border-color:#6a3437;
  }
  body.dark-mode .password-modal-message.success{
    color:#84ebb1;
    background:#163023;
    border-color:#2f6748;
  }

  @media (max-width:600px){
    .password-modal{padding:12px;}
    .password-modal-dialog{border-radius:18px;}
    .password-modal-header,
    .password-modal-body,
    .password-modal-footer{
      padding-left:18px;
      padding-right:18px;
    }
    .password-modal-footer{
      display:grid;
      grid-template-columns:1fr 1fr;
    }
    .password-modal-footer .btn{
      width:100%;
      min-width:0;
    }
  }

