*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;background-color:#f5f5f5;font-family:Inter,system-ui,-apple-system,sans-serif}#root{width:100%}.sidebar{background-color:#1a1a2e;flex-direction:column;width:240px;min-height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{border-bottom:1px solid #ffffff1a;justify-content:center;padding:24px 20px;display:flex}.sidebar-logo img{border-radius:8px;width:160px;height:auto}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex}.sidebar-link{color:#ffffffb3;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar-link:hover{color:#fff;background-color:#ffffff14}.sidebar-link.active{color:#fff;background-color:#e63946}.sidebar-footer{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:10px;padding:16px;display:flex}.sidebar-user{flex-direction:column;display:flex;overflow:hidden}.sidebar-user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-role{color:#ffffff80;text-transform:capitalize;font-size:11px}.sidebar-logout{color:#fff9;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.sidebar-logout:hover{color:#fff;background-color:#e63946;border-color:#e63946}.layout{min-height:100vh;display:flex}.main-content{background-color:#f5f5f5;flex:1;margin-left:240px;padding:32px}.usuarios-page{width:100%}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{color:#1a1a2e;margin:0;font-size:24px;font-weight:700}.btn-primary{color:#fff;cursor:pointer;background-color:#e63946;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background-color .2s;display:flex}.btn-primary:hover{background-color:#c1121f}.btn-secondary{color:#333;cursor:pointer;background-color:#e5e5e5;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background-color .2s}.btn-secondary:hover{background-color:#d0d0d0}.btn-danger-sm{color:#e63946;cursor:pointer;background-color:#0000;border:1px solid #e63946;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.btn-danger-sm:hover{color:#fff;background-color:#e63946}.btn-icon{color:#666;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.btn-icon:hover{background-color:#e5e5e5}.table-container{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #00000014}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:#888;background-color:#fafafa;border-bottom:1px solid #eee;padding:14px 16px;font-size:12px;font-weight:600}.table td{color:#333;border-bottom:1px solid #f0f0f0;padding:14px 16px;font-size:14px}.table tbody tr:hover{background-color:#fafafa}.table td.empty{text-align:center;color:#999;padding:40px 16px}.badge{color:#1a1a2e;text-transform:capitalize;background-color:#eef;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.modal-overlay{z-index:100;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:#fff;border-radius:12px;width:440px;max-width:90vw;padding:24px;box-shadow:0 20px 60px #00000026}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{color:#1a1a2e;margin:0;font-size:18px;font-weight:700}.form-group{margin-bottom:16px}.form-group label{color:#555;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input,.form-group select{color:#333;box-sizing:border-box;background-color:#fff;border:1px solid #ddd;border-radius:8px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#e63946;outline:none}.form-error{color:#dc2626;background-color:#fef2f2;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.loading{color:#999;justify-content:center;align-items:center;height:200px;font-size:16px;display:flex}.header-actions{align-items:center;gap:12px;display:flex}.filtro-tabs{background-color:#e5e5e5;border-radius:8px;padding:3px;display:flex}.filtro-tab{color:#666;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600;transition:all .15s}.filtro-tab.active{color:#1a1a2e;background-color:#fff;box-shadow:0 1px 3px #0000001a}.status-badge{border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge.ativo{color:#166534;background-color:#dcfce7}.status-badge.inativo{color:#9ca3af;background-color:#f3f4f6}.row-inativo td{opacity:.55}.acoes-cell{gap:6px;display:flex}.btn-icon-sm{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:all .15s;display:flex}.btn-edit{color:#3b82f6;border-color:#bfdbfe}.btn-edit:hover{color:#fff;background-color:#3b82f6;border-color:#3b82f6}.btn-delete{color:#e63946;border-color:#fecaca}.btn-delete:hover{color:#fff;background-color:#e63946;border-color:#e63946}.btn-reativar{color:#16a34a;border-color:#bbf7d0}.btn-reativar:hover{color:#fff;background-color:#16a34a;border-color:#16a34a}.input-password-wrapper{position:relative}.input-password-wrapper input{padding-right:40px}.input-password-toggle{color:#888;cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input-password-toggle:hover{color:#e63946}.pp{box-sizing:border-box;max-width:1400px;padding:28px 32px}.pp-loading{color:#666;padding:40px}.pp-header{align-items:center;gap:10px;margin-bottom:18px;display:flex}.pp-header h1{margin:0;font-size:1.4rem}.pp-erro{color:#b71c1c;background:#fdecea;border-radius:8px;margin-bottom:12px;padding:10px 14px}.pp-tabs{border-bottom:1px solid #e3e3e3;gap:4px;margin-bottom:24px;display:flex}.pp-tabs button{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:.95rem}.pp-tabs button.ativo{color:#1a1a1a;border-bottom-color:#1a1a1a;font-weight:600}.pp-grid{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:28px;display:grid}.pp-roles{flex-direction:column;gap:8px;display:flex}.pp-role{text-align:left;cursor:pointer;background:#fafafa;border:1px solid #e3e3e3;border-radius:10px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.pp-role:hover{border-color:#bbb}.pp-role.sel{background:#fff;border-color:#1a1a1a;box-shadow:0 1px 4px #0000000f}.pp-role strong{text-transform:capitalize;font-size:.95rem}.pp-role span{color:#888;font-size:.78rem;line-height:1.3}.pp-perms{min-width:0}.pp-perms h2{margin:0 0 4px;font-size:1.1rem}.pp-perms h2 em{color:#2563eb;text-transform:capitalize;font-style:normal}.pp-hint{color:#888;margin:0 0 16px;font-size:.85rem}.pp-vazio{color:#999;padding:12px 0}.pp-checklist{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.pp-checklist label{cursor:pointer;border:1px solid #e8e8e8;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:background .12s,border-color .12s;display:flex}.pp-checklist label:hover{background:#fafafa;border-color:#d5d5d5}.pp-checklist input[type=checkbox]{cursor:pointer;accent-color:#2563eb;flex:none;width:17px;height:17px;margin:0}.pp-svc-info{flex-direction:column;gap:1px;min-width:0;display:flex}.pp-svc-nome{font-size:.92rem;font-weight:500}.pp-svc-desc{color:#999;font-size:.8rem;line-height:1.3}.pp-servicos{max-width:none}.pp-novo{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.pp-novo input{border:1px solid #ddd;border-radius:8px;flex:1;min-width:180px;padding:9px 12px;font-size:.9rem}.pp-novo button{color:#fff;cursor:pointer;white-space:nowrap;background:#1a1a1a;border:none;border-radius:8px;align-items:center;gap:6px;padding:9px 16px;display:inline-flex}.pp-table{border-collapse:collapse;width:100%}.pp-table th,.pp-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #eee;padding:11px 12px}.pp-table th{color:#999;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.pp-table th:last-child,.pp-table td:last-child{white-space:nowrap;width:1%}.pp-table input{border:1px solid #ddd;border-radius:6px;width:100%;padding:6px 8px}.pp-acoes{justify-content:flex-end;gap:6px;display:flex}.pp-acoes button{cursor:pointer;color:#444;background:#f3f3f3;border:1px solid #e3e3e3;border-radius:6px;padding:6px;display:inline-flex}.pp-acoes button:hover{background:#e9e9e9}.login-page{background-color:#1a1a2e;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background-color:#fff;border-radius:16px;width:400px;max-width:90vw;padding:40px;box-shadow:0 20px 60px #0000004d}.login-logo{border-radius:12px;width:120px;height:auto;margin-bottom:24px}.login-card h1{color:#1a1a2e;margin:0 0 6px;font-size:24px;font-weight:700}.login-subtitle{color:#888;margin:0 0 28px;font-size:14px}.login-field{text-align:left;margin-bottom:16px}.login-field label{color:#555;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-field input{color:#333;box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;padding:12px 14px;font-size:14px;transition:border-color .2s}.login-field input:focus{border-color:#e63946;outline:none}.password-wrapper{position:relative}.password-wrapper input{padding-right:44px}.password-toggle{color:#888;cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle:hover{color:#e63946}.login-btn{color:#fff;cursor:pointer;background-color:#e63946;border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600;transition:background-color .2s}.login-btn:hover{background-color:#c1121f}.login-error{color:#dc2626;background-color:#fef2f2;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-hint{color:#aaa;margin-top:20px;font-size:12px}
