.app-header{background:var(--surface-color);border-bottom:1px solid var(--border-color);padding:.5rem 2rem;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #00000014}.app-header__warning{background:#d68910;color:#2c3e50;text-align:center;padding:.25rem 1rem;font-size:.85rem;font-weight:500}.app-header__content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem}.app-header__title{text-decoration:none;color:var(--text-color)}.app-header__title h1{font-size:1.4rem;margin:0;transition:color .2s}.app-header__title:hover h1{color:#2980b9}.app-header__actions{display:flex;align-items:center;gap:1rem}.app-header__create-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#27ae60;color:#fff;border-radius:8px;font-weight:600;transition:background .2s;text-decoration:none;height:40px}.app-header__create-btn:hover{background:#1e8449}@media (max-width: 768px){.app-header{padding:.5rem 1rem}.app-header__content{flex-wrap:wrap}.app-header__title h1{font-size:1.1rem}}.language-selector{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.language-selector__flags{display:flex;gap:2px;background:var(--surface-color);border:2px solid var(--border-color);border-radius:8px;padding:2px;height:40px}.language-selector__btn{display:flex;align-items:center;justify-content:center;padding:4px 6px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:1rem;opacity:.6;transition:all .2s}.language-selector__btn:hover{opacity:1}.language-selector__btn--active{background:var(--border-color);opacity:1}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--surface-color);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;color:var(--text-color);transition:all .2s;box-shadow:0 2px 4px #00000014}.theme-toggle:hover{background:var(--border-color);box-shadow:0 2px 8px #0000001f}.user-card{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--surface-color);border-radius:12px;box-shadow:0 2px 8px #0000001f;transition:transform .2s,box-shadow .2s;position:relative}.user-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000002e}.user-card__link{display:flex;align-items:center;gap:1rem;flex:1;color:inherit;text-decoration:none}.user-card__edit{position:absolute;top:1rem;right:1rem;padding:.5rem;color:var(--text-muted);opacity:.8;transition:opacity .2s,color .2s;text-decoration:none}.user-card__edit:hover{color:#2980b9}.user-card:hover .user-card__edit{opacity:1}.user-card__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--border-color)}.user-card__info{flex:1}.user-card__name{font-size:1.1rem;margin-bottom:.25rem;color:var(--text-color)}.user-card__email,.user-card__phone{font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.user-card__role{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.user-card__role--administrador{background:#e74c3c;color:#fff}.user-card__role--usuario{background:#2980b9;color:#fff}.user-card__role--editor{background:#f39c12;color:#fff}.user-card__role--moderador{background:#9b59b6;color:#fff}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-rows:min-content;gap:1.5rem;overflow-y:auto;flex:1;padding-right:.25rem;padding-bottom:.25rem}.users-grid--overflow-bottom{-webkit-mask-image:linear-gradient(to bottom,black 0%,black 90%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 90%,transparent 100%)}.user-list{max-width:1200px;margin:0 auto;padding:1rem 1rem 0;display:flex;flex-direction:column;height:calc(100vh - 80px)}.user-list__filters{margin-bottom:1rem;position:sticky;top:0;background:var(--bg-color);z-index:10;padding-bottom:.5rem}.user-list__search{flex:1;max-width:400px}.user-list__search-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--surface-color);color:var(--text-color)}.user-list__search-input:focus{outline:none;border-color:#2980b9}.user-list__search-toggle{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.user-list__roles{display:flex;flex-wrap:wrap;gap:.5rem}.user-list__role-btn{padding:.5rem 1rem;background:var(--surface-color);border:2px solid var(--border-color);border-radius:20px;cursor:pointer;font-size:.9rem;color:var(--text-muted);transition:all .2s;box-shadow:0 2px 4px #00000014}.user-list__role-btn:hover{border-color:#2980b9;color:#2980b9}.user-list__role-btn--active{background:#2980b9;border-color:#2980b9;color:#fff;box-shadow:0 2px 8px #0000001f}.user-list__role-btn--active:hover{background:#1a5276;border-color:#1a5276;color:#fff}.user-list__view-toggle{display:flex;gap:.25rem}@media (max-width: 768px){.user-list__view-toggle{display:none}}.user-list__sort{display:flex;align-items:center;margin-left:auto}.user-list__sort-select{padding:.5rem 1rem;background:var(--surface-color);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;font-size:.9rem;color:var(--text-color);transition:all .2s;min-width:140px}.user-list__sort-select:hover{border-color:#2980b9}.user-list__sort-select:focus{outline:none;border-color:#2980b9}.user-list__view-btn{padding:.5rem;background:var(--surface-color);border:2px solid var(--border-color);border-radius:6px;cursor:pointer;color:var(--text-muted);transition:all .2s;display:flex;align-items:center;justify-content:center}.user-list__view-btn:hover{border-color:#2980b9;color:#2980b9}.user-list__view-btn--active{background:#2980b9;border-color:#2980b9;color:#fff}.user-list__table{overflow-x:auto;overflow-y:auto;flex:1}.user-list__table--overflow-bottom{-webkit-mask-image:linear-gradient(to bottom,black 0%,black 90%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 90%,transparent 100%)}.user-list__table table{width:100%;border-collapse:collapse;background:var(--surface-color);border-radius:8px;overflow:hidden}.user-list__table table thead{position:sticky;top:0;z-index:5}.user-list__table th,.user-list__table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.user-list__table th{background:var(--bg-color);color:var(--text-muted);position:sticky;top:0;z-index:5}.user-list__table td{color:var(--text-color)}.user-list__table tr{cursor:pointer;transition:background .2s}.user-list__table tr:hover td{background:var(--bg-color)}.user-list__table-avatar{width:40px;height:40px;object-fit:cover}.user-list__table-edit{display:inline-flex;align-items:center;justify-content:center;padding:.5rem;color:var(--text-muted);border-radius:6px;transition:all .2s}.user-list__table-edit:hover{background:var(--border-color);color:#2980b9}.user-list__empty{text-align:center;padding:3rem;color:var(--text-muted);font-size:1rem}.user-list__error{padding:1rem;margin-bottom:1rem;background:#fef3f2;border:1px solid #fecaca;border-radius:8px;color:#c0392b;font-size:.9rem}.user-list__pagination{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding:1rem;background:var(--surface-color);border-radius:12px;box-shadow:0 2px 8px #0000001f;position:sticky;bottom:0;z-index:10}.user-list__pagination-left,.user-list__pagination-right{display:flex;align-items:center;gap:.5rem}.user-list__pagination-center{display:flex;align-items:center;gap:.25rem}.user-list__pagination-label{font-size:.9rem;color:var(--text-muted)}.user-list__pagination-select{padding:.4rem .6rem;border:2px solid var(--border-color);border-radius:6px;font-size:.9rem;color:var(--text-color);background:var(--surface-color);cursor:pointer}.user-list__pagination-select:focus{outline:none;border-color:#2980b9}.user-list__page-btn{padding:.5rem .75rem;background:var(--border-color);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;color:var(--text-color);transition:background .2s}.user-list__page-btn:hover:not(:disabled){background:var(--text-muted)}.user-list__page-btn:disabled{opacity:.5;cursor:not-allowed}.user-list__page-btn--active{background:#2980b9;color:#fff}.user-list__page-btn--active:hover{background:#1a5276}.user-list__page-ellipsis{padding:.5rem;color:var(--text-muted)}.user-list__page-form{display:flex;align-items:center;gap:.5rem}.user-list__page-input{width:50px;padding:.4rem;border:2px solid var(--border-color);border-radius:6px;font-size:.9rem;text-align:center;background:var(--surface-color);color:var(--text-color)}.user-list__page-input:focus{outline:none;border-color:#2980b9}.user-list__page-input::-webkit-inner-spin-button,.user-list__page-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.user-list__page-go{padding:.4rem .75rem;background:var(--text-color);color:var(--surface-color);border:none;border-radius:6px;cursor:pointer;font-size:.85rem;transition:opacity .2s}.user-list__page-go:hover{opacity:.8}.user-list__page-info{font-size:.85rem;color:var(--text-muted)}@media (max-width: 768px){.user-list__pagination{flex-direction:column;align-items:stretch}.user-list__pagination-center{justify-content:center;order:-1}.user-list__pagination-left,.user-list__pagination-right{justify-content:center}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-color: #f5f7fa;--text-color: #2c3e50;--text-muted: #7f8c8d;--surface-color: #ffffff;--border-color: #ecf0f1}[data-theme=dark]{--bg-color: #1a1a2e;--text-color: #eaeaea;--text-muted: #a0a0a0;--surface-color: #16213e;--border-color: #2a2a4a}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-color);color:var(--text-color);min-height:100vh;transition:background-color .2s,color .2s}a{text-decoration:none;color:inherit}.app__loading,.app__error{text-align:center;padding:2rem;font-size:1rem;color:var(--text-muted)}.app__error{color:#c0392b}.toast-container{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px}.toast{padding:12px 20px;border-radius:8px;color:#fff;font-weight:500;cursor:pointer;animation:slideIn .3s ease;box-shadow:0 4px 12px #00000026}.toast--success{background-color:#27ae60}.toast--error{background-color:#c0392b}.toast--info{background-color:#2980b9}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}
