/* VeloPay Admin — login + painel simples */

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--grad-hero);position:relative;overflow:hidden}
.login-wrap::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Ccircle cx='30' cy='30' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.login-card{position:relative;z-index:1;width:100%;max-width:430px;background:#fff;border-radius:24px;padding:2.75rem;box-shadow:var(--shadow-lg);border:1px solid rgba(255,102,0,.1)}
.login-logo{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:.5rem}
.login-logo img{width:46px;height:46px;border-radius:12px;object-fit:contain}
.login-logo span{font-size:1.6rem;font-weight:800;color:var(--primary);letter-spacing:-.5px}
.login-logo span b{color:var(--primary-light)}
.login-card h1{text-align:center;font-size:1.35rem;color:var(--dark);margin:.5rem 0 .25rem}
.login-card .sub{text-align:center;color:var(--gray);font-size:.92rem;margin-bottom:1.75rem}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--dark);margin-bottom:.4rem}
.field input{width:100%;padding:.85rem 1rem;border:2px solid #e8ecef;border-radius:12px;font-size:.95rem;font-family:inherit;transition:.2s}
.field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,102,0,.12)}
.btn-login{width:100%;padding:.95rem;border:none;border-radius:12px;background:var(--grad);color:#fff;font-weight:700;font-size:1rem;cursor:pointer;transition:.2s;font-family:inherit;margin-top:.5rem}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,102,0,.35)}
.btn-login:disabled{opacity:.6;cursor:wait;transform:none}
.login-err{background:#fef2f2;color:var(--error);border:1px solid #fecaca;padding:.7rem 1rem;border-radius:10px;font-size:.85rem;margin-bottom:1rem;display:none}
.login-err.show{display:block}
.login-back{text-align:center;margin-top:1.5rem}
.login-back a{color:var(--gray);text-decoration:none;font-size:.85rem}
.login-back a:hover{color:var(--primary)}

/* Botões / util */
.btn{padding:.6rem 1.1rem;border:none;border-radius:10px;font-weight:600;font-size:.88rem;cursor:pointer;font-family:inherit;transition:.2s;display:inline-flex;align-items:center;gap:.4rem;text-decoration:none}
.btn-ghost{background:#fff;color:var(--dark);border:1px solid var(--border)}
.btn-ghost:hover{background:#f8fafb}
.btn-danger{background:var(--error);color:#fff}
.btn-danger:hover{background:#c82333}
.btn-ok{background:var(--primary);color:#fff}
.btn-ok:hover{background:var(--primary-dark)}
.btn-warn{background:#ff9800;color:#fff}
.btn-warn:hover{background:#e68900}
.btn-sm{padding:.45rem .8rem;font-size:.8rem}

.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:capitalize}
.badge-warn{background:#fff8e1;color:#8a6d00}
.badge-ok{background:#ffe8d6;color:#b34700}
.badge-err{background:#f8d7da;color:#721c24}

/* Painel simples */
.simple-wrap{max-width:980px;margin:0 auto;padding:1.25rem 1.25rem 3rem}
.simple-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;padding:1rem 1.25rem;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}
.simple-brand{display:flex;align-items:center;gap:.75rem}
.simple-brand img{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff}
.simple-brand strong{display:block;font-size:1.15rem;font-weight:800;color:var(--primary);letter-spacing:-.3px;line-height:1.1}
.simple-brand span{display:block;font-size:.8rem;color:var(--gray);font-weight:500}
.simple-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.simple-user{font-size:.85rem;font-weight:600;color:var(--dark);margin-right:.25rem}
.simple-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}
.tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.tab{padding:.5rem .95rem;border:2px solid var(--border);border-radius:999px;background:#fff;color:var(--gray);font-weight:600;font-size:.8rem;cursor:pointer;font-family:inherit;transition:.2s}
.tab:hover{border-color:rgba(255,102,0,.35);color:var(--primary)}
.tab.active{background:var(--grad);border-color:var(--primary);color:#fff}
.search-input{padding:.55rem 1rem;border:2px solid var(--border);border-radius:10px;font-size:.88rem;font-family:inherit;min-width:240px;background:#fff}
.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,102,0,.12)}
.simple-list{display:flex;flex-direction:column;gap:.75rem}
.sol-card{width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-radius:14px;padding:1rem 1.15rem;cursor:pointer;font-family:inherit;transition:.2s;box-shadow:var(--shadow-sm)}
.sol-card:hover{border-color:rgba(255,102,0,.4);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.sol-top{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem}
.sol-name{font-weight:700;font-size:1rem;color:var(--dark)}
.sol-meta{display:flex;flex-wrap:wrap;gap:.55rem 1rem;font-size:.82rem;color:var(--gray)}
.sol-valor{font-weight:700;color:var(--primary)}
.sol-hint{margin-top:.55rem;font-size:.75rem;color:#a0a7b0}

/* Modal */
.overlay{position:fixed;inset:0;background:rgba(17,17,17,.55);backdrop-filter:blur(4px);z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem}
.overlay.show{display:flex}
.modal{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.modal.modal-wide{max-width:820px}
.modal-head{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:2}
.modal-head h2{font-size:1.15rem;font-weight:700;color:var(--dark);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.modal-close{background:#f4f4f4;border:none;width:34px;height:34px;border-radius:8px;cursor:pointer;font-size:1.1rem;color:var(--gray)}
.modal-close:hover{background:#e8e8e8}
.modal-body{padding:1.5rem}
.modal-body h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.6px;color:var(--gray);margin:1.25rem 0 .65rem;font-weight:700}
.modal-body h3:first-child{margin-top:0}
.modal-foot{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;position:sticky;bottom:0;background:#fff}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.detail-field{background:#fafafa;border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem}
.detail-field label{display:block;font-size:.72rem;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.25rem}
.detail-field .val{font-size:.95rem;font-weight:600;color:var(--dark);word-break:break-word}
.detail-field.field-sensitive{background:#FFF7F0;border-color:rgba(255,102,0,.25)}
.detail-field.field-sensitive .val{color:#CC4D00;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.3px}
.pwd-hint{font-size:.8rem;color:var(--gray);margin-top:.25rem}
.modal .field{margin-bottom:1rem}
.modal .field label{display:block;font-size:.82rem;font-weight:600;color:var(--dark);margin-bottom:.4rem}
.modal .field input{width:100%;padding:.85rem 1rem;border:2px solid #e8ecef;border-radius:12px;font-size:.95rem;font-family:inherit}
.modal .field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,102,0,.12)}

.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--dark);color:#fff;padding:.9rem 1.3rem;border-radius:12px;box-shadow:var(--shadow-lg);z-index:2000;transform:translateY(150%);transition:.3s;font-weight:600;font-size:.9rem;max-width:340px}
.toast.show{transform:translateY(0)}
.toast.ok{background:var(--success)}
.toast.err{background:var(--error)}
.empty{text-align:center;padding:3rem 1rem;color:var(--gray)}

@media(max-width:640px){
  .simple-wrap{padding:1rem}
  .detail-grid{grid-template-columns:1fr}
  .search-input{min-width:0;width:100%}
}
