.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;position:relative;overflow:hidden}.login-background{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(102,126,234,.1) 0%,transparent 50%);pointer-events:none;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%,to{opacity:1}50%{opacity:1.1}}.login-card{background:#fff;padding:3rem 2.5rem;border-radius:20px;box-shadow:0 20px 60px #0000004d,0 0 1px #0000001a;width:100%;max-width:420px;text-align:center;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);animation:slideIn .6s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:2.5rem}.login-icon{font-size:3.5rem;display:block;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-title{color:#667eea;font-size:2.2rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.5px}.login-subtitle{color:#999;font-size:1rem;font-weight:400;letter-spacing:.5px}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{text-align:left}.form-label{display:block;color:#333;font-size:.9rem;font-weight:600;margin-bottom:.7rem;text-transform:uppercase;letter-spacing:.5px}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:15px;font-size:1.2rem;pointer-events:none;opacity:.6;transition:opacity .3s ease}.login-input{width:100%;padding:1rem 1rem 1rem 3.2rem;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;font-family:inherit;background:#f9f9f9;transition:all .3s ease;color:#333}.login-input::placeholder{color:#bbb}.login-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 4px #667eea26}.login-input:focus+.input-icon{opacity:1;color:#667eea}.password-toggle{position:absolute;right:15px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:all .3s ease;color:#999;opacity:.7}.password-toggle:hover{opacity:1;color:#667eea;transform:translateY(-50%) scale(1.1)}.password-toggle:active{transform:translateY(-50%) scale(.95)}.error-box{background:#fee;color:#d32f2f;padding:1rem;border-radius:10px;border-left:4px solid #d32f2f;font-size:.9rem;animation:shake .5s ease-in-out;margin-top:-.5rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.login-button{padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;letter-spacing:.5px;text-transform:uppercase;margin-top:.5rem}.button-arrow{font-size:1.2rem;transition:transform .3s ease}.login-button:hover{transform:translateY(-3px);box-shadow:0 10px 30px #667eea66}.login-button:hover .button-arrow{transform:translate(5px)}.login-button:active{transform:translateY(-1px)}.login-footer{margin-top:2rem;padding-top:2rem;border-top:1px solid #f0f0f0}.footer-text{color:#bbb;font-size:.85rem;letter-spacing:.3px}.roles-title h2{margin:4px 0 6px;font-size:1.5rem;letter-spacing:-.3px;color:#0f172a}.roles-kicker{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.12rem;color:#64748b;font-weight:600}.roles-subtitle{margin:0;color:#64748b;font-size:.95rem}.roles-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#6366f10f,#0ea5e908);border:1px solid rgba(99,102,241,.15);border-radius:12px;margin-bottom:1.5rem}.roles-toolbar-left{display:flex;align-items:center;gap:12px}.roles-toolbar-right{display:flex;align-items:center;gap:10px}.roles-meta{font-size:.8rem;color:#667eea;font-weight:700;padding:8px 12px;border-radius:8px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);letter-spacing:.3px;text-transform:uppercase}.btn-add-role{padding:.65rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 4px 15px #667eea4d}.btn-add-role:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66;background:linear-gradient(135deg,#5568d3,#6a3f8f)}.btn-add-role:active{transform:translateY(0);box-shadow:0 2px 10px #667eea4d}.btn-add-role:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-back{padding:.65rem 1.25rem;background:linear-gradient(135deg,#64748b,#475569);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 4px 15px #64748b4d}.btn-back:hover{transform:translateY(-2px);box-shadow:0 6px 20px #64748b66;background:linear-gradient(135deg,#576b82,#3d4a5c)}.btn-back:active{transform:translateY(0);box-shadow:0 2px 10px #64748b4d}.btn-back:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-save{padding:.65rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 4px 15px #667eea4d}.btn-save:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66;background:linear-gradient(135deg,#5568d3,#6a3f8f)}.btn-save:active{transform:translateY(0);box-shadow:0 2px 10px #667eea4d}.roles-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.parent-role-select{padding:10px 36px 10px 12px;border:1.5px solid rgba(99,102,241,.2);background-color:#fff;color:var(--text-primary);border-radius:10px;min-width:260px;font-size:.95rem;font-weight:500;box-shadow:inset 0 1px 2px #0f172a0a,0 2px 6px #6366f114;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.parent-role-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='%23667eea' d='M7 8L0 0h14z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;cursor:pointer}.parent-role-select:hover{border-color:#6366f14d;background-color:#6366f105}.parent-role-select:focus{outline:none;border-color:#667eea;box-shadow:inset 0 1px 2px #0f172a0a,0 0 0 3px #6366f133,0 2px 8px #6366f126}.roles-state{border:1px dashed rgba(99,102,241,.2);border-radius:12px;background:#6366f108}.loading-container.roles-state,.loading-container.roles-state p{color:#667eea}.no-data-container.roles-state .no-data-icon{font-size:1.1rem;font-weight:600;color:#667eea}.roles-table-wrapper{border-radius:14px;border:1px solid rgba(99,102,241,.15);box-shadow:0 10px 30px #0f172a1a;animation:slideIn .4s ease-out}.roles-table{width:100%;border-collapse:collapse;background-color:var(--bg-primary);flex:1}.roles-table thead{background:var(--table-header-bg)}.roles-table th{padding:.9rem .8rem;text-align:left;font-weight:700;color:#667eea;border-bottom:2px solid var(--border-light);font-size:.85rem;text-transform:uppercase;letter-spacing:.4px}.roles-table td{padding:.8rem;border-bottom:1px solid var(--border-muted);color:var(--text-secondary);font-size:.9rem}.action-btn{padding:.65rem 1rem;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s ease;box-shadow:0 2px 6px #0f172a14}.action-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166;background:linear-gradient(135deg,#fff,#f8f9fa)}.view-btn{border-color:#6366f133;background:linear-gradient(135deg,#6366f114,#6366f10a);color:#667eea}.view-btn:hover:not(:disabled){background:linear-gradient(135deg,#6366f11f,#6366f114);border-color:#667eea}.icon-btn{width:38px;height:38px;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-right:8px;transition:all .2s ease;box-shadow:0 2px 6px #0f172a14;font-size:.95rem}.icon-btn svg{width:16px;height:16px;fill:none;stroke:#334155;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166}.icon-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.icon-btn.edit-btn{border-color:#6366f14d;background:linear-gradient(135deg,#6366f114,#6366f10a);color:#667eea}.icon-btn.edit-btn:hover:not(:disabled){background:linear-gradient(135deg,#6366f11f,#6366f114);border-color:#667eea}.icon-btn.delete-btn{border-color:#ef44444d;background:linear-gradient(135deg,#ef444414,#ef44440a);color:#ef4444}.icon-btn.delete-btn:hover:not(:disabled){background:linear-gradient(135deg,#ef44441f,#ef444414);border-color:#ef4444}.roles-pagination{margin-top:1.5rem;background:linear-gradient(135deg,#6366f10f,#0ea5e908);border:1px solid rgba(99,102,241,.12);border-radius:12px}.roles-pagination .pagination-btn{background:linear-gradient(135deg,#667eea1f,#764ba21a);color:#667eea;border:1.5px solid rgba(99,102,241,.25);box-shadow:0 2px 8px #6366f11a}.roles-pagination .pagination-btn:hover:not(:disabled){background:linear-gradient(135deg,#667eea2e,#764ba226);border-color:#6366f166;box-shadow:0 6px 14px #6366f126}.roles-pagination .pagination-btn:disabled{background:#6366f114;color:#6366f166;border-color:#6366f11a}.mapped-user-subtitle{font-size:.8rem;color:#64748b;margin-top:2px}.mapped-user-row{border:1px solid #edf0f6;background:#fbfcff}.modal-empty-icon{font-size:1rem;font-weight:600;color:#94a3b8}.modal-empty-text{color:#64748b}.perm-view{display:flex;flex-direction:column;gap:18px;background:linear-gradient(180deg,rgba(99,102,241,.06),transparent 40%);border-radius:18px;padding:14px}.perm-header{display:flex;align-items:center;gap:14px;padding:20px 22px;background:linear-gradient(135deg,#6366f114,#0ea5e90a);border:1px solid rgba(99,102,241,.12);border-radius:14px;box-shadow:0 4px 12px #6366f114}.perm-header .perm-btn{padding:.65rem 1.2rem;border-radius:10px;font-size:.9rem;font-weight:700;border:1.5px solid rgba(99,102,241,.25);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);transition:all .2s ease;box-shadow:0 2px 8px #0f172a14}.perm-header .perm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166}.perm-header .perm-btn:disabled{opacity:.5;cursor:not-allowed}.perm-header .perm-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;box-shadow:0 8px 20px #667eea59!important;font-weight:800!important;font-size:.95rem!important;padding:.75rem 1.8rem!important;border-radius:10px!important;text-shadow:0 1px 3px rgba(0,0,0,.15);transition:all .3s cubic-bezier(.34,1.56,.64,1)!important;letter-spacing:.3px}.perm-header .perm-btn-primary:hover:not(:disabled){box-shadow:0 12px 32px #667eea73!important;transform:translateY(-3px) scale(1.02)!important}.perm-header .perm-btn-primary:active:not(:disabled){transform:translateY(-1px) scale(.98)!important;box-shadow:0 6px 16px #667eea4d!important}.perm-title{flex:1;min-width:0}.perm-title-text{margin:0;font-size:1.2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.4px}.perm-subtitle{margin:3px 0 0;font-size:.85rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-btn{padding:.65rem 1.05rem;border-radius:12px;border:1px solid rgba(99,102,241,.25);background:#ffffffd9;color:var(--text-primary);font-weight:700;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;transition:all .2s ease;box-shadow:0 2px 8px #0f172a14}.perm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #6366f12e;border-color:#6366f166;background:#fff}.perm-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.perm-btn-primary{border:none!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;box-shadow:0 8px 20px #667eea59!important;font-weight:800!important;font-size:.95rem!important;padding:.7rem 1.6rem!important;border-radius:10px!important;text-shadow:0 1px 3px rgba(0,0,0,.15);transition:all .3s cubic-bezier(.34,1.56,.64,1)!important;letter-spacing:.3px}.perm-btn-primary:hover:not(:disabled){box-shadow:0 12px 32px #667eea73!important;transform:translateY(-3px) scale(1.02)!important}.perm-btn-primary:active:not(:disabled){transform:translateY(-1px) scale(.98)!important;box-shadow:0 6px 16px #667eea4d!important}.perm-btn-primary:disabled{opacity:.6!important;cursor:not-allowed!important}.roles-toolbar .perm-btn-primary,.perm-header .perm-btn-primary,.add-role-actions .perm-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #667eea4d!important;font-weight:700!important;text-shadow:0 1px 2px rgba(0,0,0,.1)}.roles-toolbar .perm-btn,.perm-header .perm-btn,.add-role-actions .perm-btn{background:var(--bg-primary)!important;color:var(--text-primary)!important;border-color:var(--border-light)!important}.perm-btn-secondary{background:transparent}.perm-matrix{border:1px solid rgba(99,102,241,.18);border-radius:16px;overflow:hidden;background:var(--bg-primary);box-shadow:0 14px 36px #0f172a14}.perm-matrix-head,.perm-row{display:grid;grid-template-columns:minmax(220px,1fr) repeat(4,92px);align-items:center}.perm-matrix-head{background:linear-gradient(90deg,#6366f11f,#0ea5e914);color:var(--text-primary);font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.08rem}.perm-feature-col,.perm-action-col{padding:10px 12px}.perm-row{border-top:1px solid var(--border-muted);transition:background .2s ease}.perm-row:hover{background:linear-gradient(90deg,#6366f10f,#0ea5e90a)}.perm-feature{padding:12px 14px;min-width:0}.perm-feature-name{font-weight:800;color:var(--text-primary);line-height:1.1}.perm-feature-code{margin-top:3px;font-size:.78rem;color:var(--text-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.perm-cell{padding:12px;display:flex;align-items:center;justify-content:center}.perm-check{display:inline-flex;align-items:center;justify-content:center;width:100%}.perm-check input{width:18px;height:18px;accent-color:var(--primary-gradient-start);cursor:pointer}.perm-check.is-disabled{opacity:.5}.perm-check input:disabled{cursor:not-allowed}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}@keyframes permCardIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.perm-card{background:var(--bg-primary, #fff);border:1.5px solid var(--border-light, #e2e8f0);border-radius:16px;padding:0;overflow:hidden;transition:all .3s cubic-bezier(.22,.61,.36,1);box-shadow:0 2px 8px #0f172a0a;animation:permCardIn .4s ease-out both}.perm-card:hover{border-color:#6366f14d;box-shadow:0 8px 28px #6366f11a;transform:translateY(-2px)}.perm-card--active{border-color:#6366f140;background:linear-gradient(180deg,rgba(99,102,241,.03) 0%,var(--bg-primary, #fff) 100%)}.perm-card-header{display:flex;align-items:center;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--border-light, #f1f5f9)}.perm-card-icon{font-size:1.2rem;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#6366f114}.perm-card-info{flex:1;min-width:0}.perm-card-name{font-weight:700;font-size:.95rem;color:var(--text-primary, #0f172a);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-card-code{font-size:.72rem;color:var(--text-tertiary, #94a3b8);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;margin-top:2px;letter-spacing:.3px}.perm-card-badge{font-size:.72rem;font-weight:700;color:#667eea;background:#667eea1a;border:1px solid rgba(102,126,234,.2);padding:3px 10px;border-radius:20px;white-space:nowrap}.perm-card-toggles{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.perm-toggle{display:flex;align-items:center;gap:8px;padding:11px 18px;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border-light, #f1f5f9);-webkit-user-select:none;user-select:none}.perm-toggle:nth-child(odd){border-right:1px solid var(--border-light, #f1f5f9)}.perm-toggle:nth-last-child(-n+2){border-bottom:none}.perm-toggle:hover:not(.perm-toggle--disabled){background:#6366f10a}.perm-toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.perm-toggle-icon{font-size:.85rem;flex-shrink:0}.perm-toggle-label{font-size:.78rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.5px;flex:1}.perm-toggle--on .perm-toggle-label{color:var(--text-primary, #0f172a)}.perm-toggle-switch{position:relative;width:36px;height:20px;background:#cbd5e1;border-radius:12px;flex-shrink:0;transition:background .25s ease}.perm-toggle--on .perm-toggle-switch{background:linear-gradient(135deg,#667eea,#764ba2)}.perm-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000026;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.perm-toggle--on .perm-toggle-knob{transform:translate(16px)}.perm-toggle--disabled{opacity:.4;cursor:not-allowed}.perm-toggle--disabled .perm-toggle-switch{background:#e2e8f0}@media (max-width: 700px){.perm-grid,.perm-card-toggles{grid-template-columns:1fr}.perm-toggle:nth-child(odd){border-right:none}.perm-toggle:nth-last-child(2){border-bottom:1px solid var(--border-light, #f1f5f9)}}.perm-save-error{padding:12px 14px;border-radius:10px;border:1.5px solid rgba(239,68,68,.25);background:linear-gradient(135deg,#ef444414,#ef44440a);color:#c62828;font-weight:700;font-size:.9rem;margin-bottom:12px;display:flex;align-items:center;gap:10px}.perm-save-error:before{content:"⚠️";font-size:1.1rem;flex-shrink:0}.success-message{padding:14px 16px;border-radius:10px;border:1.5px solid rgba(76,175,80,.25);background:linear-gradient(135deg,#4caf5014,#4caf500a);color:#2e7d32;font-weight:600;font-size:.95rem;margin-bottom:14px;display:flex;align-items:center;gap:10px}.success-message:before{content:"✓";font-size:1.2rem;font-weight:800;flex-shrink:0}.add-role-form{display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,rgba(99,102,241,.04),transparent 50%);border-radius:14px;padding:0}.add-role-field{display:flex;flex-direction:column;gap:8px;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.add-role-label{font-size:.85rem;font-weight:700;color:var(--text-primary);text-transform:capitalize;letter-spacing:.2px}.add-role-input,.add-role-select{padding:12px 14px;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);font-size:.95rem;font-weight:500;outline:none;transition:all .2s ease;box-shadow:inset 0 1px 2px #0f172a0a}.add-role-input:hover,.add-role-select:hover{border-color:#6366f14d;background:linear-gradient(135deg,#fff,#f8f9fa)}.add-role-input:focus,.add-role-select:focus{border-color:#667eea;box-shadow:inset 0 1px 2px #0f172a0a,0 0 0 3px #6366f133;background:linear-gradient(135deg,#fff,#f8f9fa)}.add-role-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='%23667eea' d='M7 8L0 0h14z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;padding-right:36px;cursor:pointer}.add-role-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:16px;border-top:1px solid rgba(99,102,241,.1)}.add-role-actions .perm-btn{padding:.7rem 1.4rem;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:.9rem;transition:all .2s ease;box-shadow:0 2px 8px #0f172a14;display:inline-flex;align-items:center;justify-content:center}.add-role-actions .perm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166;background:linear-gradient(135deg,#fff,#f8f9fa)}.add-role-actions .perm-btn-secondary{background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);border-color:#6366f133}.add-role-actions .perm-btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#fff,#f8f9fa);border-color:#6366f166;color:var(--text-primary)}.add-role-actions .perm-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;font-weight:800!important;font-size:.95rem!important;padding:.65rem 1.3rem!important;border-radius:10px!important;box-shadow:0 8px 20px #667eea59!important;text-shadow:0 1px 3px rgba(0,0,0,.15);transition:all .3s cubic-bezier(.34,1.56,.64,1)!important;letter-spacing:.3px}.add-role-actions .perm-btn-primary:hover:not(:disabled){box-shadow:0 12px 32px #667eea73!important;transform:translateY(-3px) scale(1.02)!important}.add-role-actions .perm-btn-primary:disabled{opacity:.6;cursor:not-allowed}.confirm-text{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:20px}.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(99,102,241,.1)}.confirm-actions .perm-btn{padding:.7rem 1.2rem;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:.9rem;transition:all .2s ease;box-shadow:0 2px 8px #0f172a14;display:inline-flex;align-items:center;justify-content:center}.confirm-actions .perm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166;background:linear-gradient(135deg,#fff,#f8f9fa)}.confirm-actions .perm-btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#fff,#f8f9fa);border-color:#6366f166;color:var(--text-primary)}.confirm-actions .perm-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;font-weight:800!important;font-size:.95rem!important;padding:.65rem 1.3rem!important;border-radius:10px!important;box-shadow:0 8px 20px #667eea59!important;text-shadow:0 1px 3px rgba(0,0,0,.15);transition:all .3s cubic-bezier(.34,1.56,.64,1)!important;letter-spacing:.3px}.confirm-actions .perm-btn-primary:hover:not(:disabled){box-shadow:0 12px 32px #667eea73!important;transform:translateY(-3px) scale(1.02)!important}.confirm-actions .perm-btn-primary:active:not(:disabled){transform:translateY(-1px) scale(.98)!important;box-shadow:0 6px 16px #667eea4d!important}.confirm-actions .perm-btn-primary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 900px){.roles-toolbar{flex-direction:column;align-items:flex-start}.parent-role-select{min-width:220px}.perm-header{flex-direction:column;align-items:stretch}.perm-subtitle{white-space:normal}.perm-matrix{overflow-x:auto}}.modal-dialog-content{display:flex;flex-direction:column;gap:16px}.modal-section{display:flex;flex-direction:column;gap:12px}.modal-section-title{font-size:.9rem;font-weight:700;color:var(--text-primary);text-transform:capitalize;letter-spacing:.3px}.modal-field{display:flex;flex-direction:column;gap:8px}.modal-field-label{font-size:.85rem;font-weight:700;color:var(--text-primary);letter-spacing:.2px}.modal-field-input{padding:11px 13px;border-radius:9px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff5,#f8f9faf5);color:var(--text-primary);font-size:.9rem;font-weight:500;outline:none;transition:all .2s ease;box-shadow:inset 0 1px 2px #0f172a0a}.modal-field-input:hover{border-color:#6366f14d}.modal-field-input:focus{border-color:#667eea;box-shadow:inset 0 1px 2px #0f172a0a,0 0 0 3px #6366f126}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:16px;border-top:1px solid rgba(99,102,241,.1)}.modal-action-btn{padding:.65rem 1.3rem;border-radius:9px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:.9rem;transition:all .2s ease;box-shadow:0 2px 8px #0f172a14;display:inline-flex;align-items:center;justify-content:center}.modal-action-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166;background:linear-gradient(135deg,#fff,#f8f9fa)}.modal-action-btn:disabled{opacity:.5;cursor:not-allowed}.modal-action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;box-shadow:0 6px 16px #667eea40;font-weight:700}.modal-action-btn.primary:hover:not(:disabled){box-shadow:0 10px 24px #667eea59!important}.modal-action-btn.secondary{background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);border-color:#6366f133}.modal-action-btn.secondary:hover:not(:disabled){background:linear-gradient(135deg,#fff,#f8f9fa);border-color:#6366f166}.modal-message{padding:12px 14px;border-radius:10px;font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:10px}.modal-message.info{border:1.5px solid rgba(99,102,241,.25);background:linear-gradient(135deg,#6366f114,#6366f10a);color:#667eea}.modal-message.success{border:1.5px solid rgba(76,175,80,.25);background:linear-gradient(135deg,#4caf5014,#4caf500a);color:#2e7d32}.modal-message.error{border:1.5px solid rgba(239,68,68,.25);background:linear-gradient(135deg,#ef444414,#ef44440a);color:#c62828}.modal-message.warning{border:1.5px solid rgba(251,191,36,.25);background:linear-gradient(135deg,#fbbf2414,#fbbf240a);color:#b8860b}.modal-message:before{font-size:1.1rem;flex-shrink:0}.modal-message.success:before{content:"✓"}.modal-message.error:before{content:"✕"}.modal-message.warning:before{content:"⚠"}.modal-message.info:before{content:"ⓘ"}@media (max-width: 600px){.app-modal{width:95%;max-height:90vh}.app-modal-header,.app-modal-body{padding:18px 16px}.modal-actions{flex-direction:column-reverse}.modal-action-btn{width:100%}}.app-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#080c189e;z-index:100000;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-modal{width:min(94%,700px);max-height:85vh;background-color:var(--bg-primary, #ffffff)!important;background-image:none!important;color:var(--text-primary, #0f172a);border-radius:18px;box-shadow:0 35px 90px #02061773!important;border:1px solid rgba(99,102,241,.15)!important;overflow:hidden;display:flex;flex-direction:column;animation:modalIn .26s cubic-bezier(.34,1.56,.64,1);opacity:1!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-clip:padding-box;z-index:100001!important}.app-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1.5px solid rgba(99,102,241,.1);background:linear-gradient(135deg,#6366f10f,#0ea5e908)}.app-modal-title{margin:0;font-size:1.25rem;font-weight:800;letter-spacing:-.3px;color:var(--text-primary, #0f172a)}.app-modal-close{background:transparent;border:1.5px solid rgba(99,102,241,.2);border-radius:10px;font-size:1rem;cursor:pointer;color:var(--text-secondary, #475569);padding:8px 10px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0}.app-modal-close:hover{color:var(--text-primary, #0f172a);background:#6366f114;border-color:#6366f14d;box-shadow:0 6px 16px #6366f11f;transform:scale(1.05)}.app-modal-close:active{transform:scale(.98)}.app-modal-body{padding:24px;overflow-y:auto;color:var(--text-secondary, #334155);flex:1;scrollbar-width:none;-ms-overflow-style:none}.app-modal-body::-webkit-scrollbar{display:none}@keyframes modalIn{0%{transform:translateY(12px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.users-list{margin:0;padding:0;list-style:none}.mapped-users-list{display:flex;flex-direction:column;gap:12px}.mapped-user-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(99,102,241,.1);background:linear-gradient(135deg,#6366f10a,#0ea5e905);transition:all .2s ease}.mapped-user-row:hover{background:linear-gradient(135deg,#6366f114,#0ea5e90d);border-color:#6366f133;transform:translateY(-2px);box-shadow:0 6px 16px #6366f11f}.mapped-user-avatar{width:48px;height:48px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);flex-shrink:0;font-size:.9rem;box-shadow:0 4px 12px #667eea4d}.mapped-user-info{display:flex;flex-direction:column;gap:2px;flex:1}.mapped-user-name{font-weight:800;color:var(--text-primary);font-size:.95rem;letter-spacing:-.2px}.mapped-user-subtitle{font-size:.8rem;color:var(--text-tertiary);font-weight:500}.mapped-user-badge{margin-left:auto;background:linear-gradient(135deg,#6366f126,#6366f114);color:#667eea;padding:6px 12px;border-radius:8px;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;border:1px solid rgba(99,102,241,.2);flex-shrink:0}.modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 24px;color:#6366f199;text-align:center}.modal-empty-icon{font-size:48px;opacity:.8}.modal-empty-text{font-weight:600;font-size:.95rem;color:var(--text-secondary)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#080c1899;z-index:100002;animation:confirmFadeIn .2s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{width:min(90%,420px);background:var(--bg-primary, #fff);border-radius:16px;box-shadow:0 30px 80px #02061766;border:1px solid rgba(99,102,241,.12);padding:28px;animation:confirmSlideIn .25s cubic-bezier(.34,1.56,.64,1)}@keyframes confirmSlideIn{0%{transform:translateY(10px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.confirm-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.confirm-icon{font-size:1.5rem}.confirm-title{margin:0;font-size:1.15rem;font-weight:700;color:var(--text-primary, #0f172a)}.confirm-message{margin:0 0 24px;color:var(--text-secondary, #475569);font-size:.93rem;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-btn{padding:9px 20px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid transparent}.confirm-btn.cancel{background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569);border-color:var(--border-light, #e2e8f0)}.confirm-btn.cancel:hover{background:var(--hover-bg, #e2e8f0)}.confirm-btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:#ef4444}.confirm-btn.danger:hover{box-shadow:0 4px 14px #ef444459;transform:translateY(-1px)}.confirm-btn.primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#6366f1}.confirm-btn.primary:hover{box-shadow:0 4px 14px #6366f159;transform:translateY(-1px)}.confirm-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.toast-container{position:fixed;top:20px;right:20px;z-index:200000;display:flex;flex-direction:column;gap:8px;max-width:400px}.toast-item{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;box-shadow:0 8px 28px #0000002e;animation:toastIn .3s cubic-bezier(.34,1.56,.64,1);font-size:.9rem;font-weight:500;min-width:280px}@keyframes toastIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.toast-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.toast-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.toast-icon{font-size:1.1rem;flex-shrink:0}.toast-message{flex:1;line-height:1.4}.toast-close{background:transparent;border:none;font-size:.85rem;cursor:pointer;padding:2px 6px;border-radius:4px;color:inherit;opacity:.6;transition:opacity .2s;min-width:auto;box-shadow:none}.toast-close:hover{opacity:1;transform:none;box-shadow:none}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px 0 0;flex-wrap:wrap;gap:12px}.pagination-info{font-size:.85rem;color:var(--text-secondary, #64748b);font-weight:500}.pagination-controls{display:flex;align-items:center;gap:4px}.pagination-btn{padding:7px 14px;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s ease;background:var(--bg-primary, #fff);color:var(--text-secondary, #475569);border:1.5px solid var(--border-light, #e2e8f0);min-width:36px;text-align:center}.pagination-btn:hover:not(:disabled){background:#667eea14;border-color:#667eea;color:#667eea}.pagination-btn.page-num.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 3px 10px #667eea4d}.pagination-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.add-user-page{width:100%;animation:fadeIn .3s ease-in}.user-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:0 4px}.user-form-header-left{display:flex;align-items:center;gap:16px}.add-user-page .btn-back{padding:8px 16px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.add-user-page .btn-back:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.user-form-title{font-size:1.3rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.add-user-card{width:100%;background:#fff;border-radius:12px;box-shadow:0 12px 40px #0000001f;overflow:hidden;transition:all .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.add-user-card:hover{box-shadow:0 16px 50px #00000026}.card-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;text-align:center}.card-title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;letter-spacing:-.5px}.card-subtitle{margin:0;font-size:.95rem;opacity:.9;font-weight:500}.add-user-form{padding:2.5rem}.form-section{margin-bottom:2.5rem;animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.form-section:last-of-type{margin-bottom:2rem}.section-title{margin:0 0 1.5rem;font-size:1.15rem;font-weight:600;color:#2d3748;display:flex;align-items:center;gap:.5rem}.section-icon{font-size:1.3rem}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 600px){.form-fields{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column}.form-label{margin-bottom:.6rem;font-size:.95rem;font-weight:600;color:#4a5568;display:flex;align-items:center;gap:.3rem}.required{color:#ef4444;font-weight:700}.form-input,.form-select{padding:.85rem 1rem;font-size:.95rem;border:2px solid #e2e8f0;border-radius:8px;background:#f5f7fa;color:#2d3748;font-family:inherit;transition:all .3s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus,.form-select:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.form-input:hover:not(:disabled),.form-select:hover:not(:disabled){border-color:#cbd5e0;background:#fff}.form-input:disabled,.form-select:disabled{background:#edf2f7;color:#a0aec0;cursor:not-allowed}.form-input.input-error,.form-select.input-error{border-color:#ef4444;background:#fef2f2}.form-input.input-error:focus,.form-select.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:2.8rem}.password-toggle-btn{position:absolute;right:.75rem;background:none;border:none;font-size:1.1rem;cursor:pointer;padding:.5rem;transition:opacity .2s ease}.password-toggle-btn:hover:not(:disabled){opacity:.7}.password-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.country-code-select{padding:.85rem 1rem;font-size:.9rem;border:2px solid #e2e8f0;border-radius:8px;background:#f5f7fa;color:#2d3748;cursor:pointer;outline:none;font-family:inherit;font-weight:500;min-width:110px;transition:all .3s ease;flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.country-code-select:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.country-code-select:hover:not(:disabled){border-color:#cbd5e0;background:#fff}.country-code-select:disabled{background:#edf2f7;color:#a0aec0;cursor:not-allowed}.error-message{margin-top:.5rem;font-size:.85rem;color:#ef4444;display:flex;align-items:center;gap:.25rem;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.error-message:before{content:"⚠️";font-size:.9rem}.loading-spinner{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;background:#f0f4f8;border-radius:8px;color:#667eea;font-weight:500;font-size:.9rem}.spinner{display:inline-block;width:16px;height:16px;border:2px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .6s linear infinite}.form-select{cursor:pointer;padding-right:2.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2.5rem;padding-top:2rem;border-top:2px solid #e2e8f0}@media (max-width: 600px){.form-actions{flex-direction:column-reverse;gap:.75rem}}.btn{padding:.85rem 1.75rem;font-size:.95rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:140px}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0000001f}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#6a3f8f)}.btn-secondary{background:#e2e8f0;color:#4a5568;border:2px solid #cbd5e0}.btn-secondary:hover:not(:disabled){background:#cbd5e0;border-color:#a0aec0}.toast-stack{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;gap:1rem;z-index:9999;pointer-events:none}@media (max-width: 600px){.toast-stack{top:10px;right:10px;left:10px}}.toast{padding:1rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:600;box-shadow:0 8px 20px #0000001f;animation:slideInRight .3s ease;pointer-events:auto;display:flex;align-items:center;gap:.75rem;max-width:90vw}.toast.success{background:#dcfce7;color:#166534;border-left:4px solid #22c55e}.toast.success:before{content:"✓";font-weight:700;font-size:1.1rem}.toast.error{background:#fee2e2;color:#991b1b;border-left:4px solid #ef4444}.toast.error:before{content:"✕";font-weight:700;font-size:1.1rem}@media (max-width: 768px){.add-user-container{min-height:auto;padding:1rem}.add-user-card{border-radius:8px}.card-header{padding:1.5rem}.card-title{font-size:1.5rem}.add-user-form{padding:1.5rem}.form-section{margin-bottom:1.5rem}.section-title{font-size:1rem}.form-fields{gap:1rem}.form-input,.form-select{padding:.75rem .875rem;font-size:.9rem}.form-label{font-size:.9rem;margin-bottom:.5rem}.btn{padding:.75rem 1.5rem;font-size:.9rem;min-width:120px}.form-actions{margin-top:1.5rem;padding-top:1.5rem}}@media (max-width: 480px){.card-title{font-size:1.25rem}.section-title{font-size:.95rem}.form-fields{gap:.75rem}.phone-input-container{flex-direction:column}.country-code-select{min-width:100%}.phone-input{width:100%}.btn{padding:.7rem 1.25rem;font-size:.85rem;min-width:100px}}.success-modal-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem 0;text-align:center}.success-icon{font-size:3rem;animation:scaleIn .5s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.success-message{font-size:1.1rem;color:#166534;margin:0;font-weight:500;line-height:1.5}.modal-actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;margin-bottom:0!important;font-weight:500}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.checkbox-label span{color:#2d3748}.rp-form{display:flex;flex-direction:column;gap:18px}.rp-user-info{padding:10px 14px;border-radius:10px;border-left:3px solid rgba(99,102,241,.3);background:#6366f10a;font-size:.92rem;color:var(--text-secondary, #475569)}.rp-user-info strong{color:var(--text-primary, #0f172a)}.rp-field{display:flex;flex-direction:column;gap:6px}.rp-label{font-weight:700;font-size:.88rem;color:var(--text-primary, #0f172a)}.rp-required{color:#ef4444}.rp-input-wrap{position:relative;display:flex;align-items:center}.rp-input{width:100%;padding:.7rem 2.8rem .7rem .9rem;border:1.5px solid rgba(99,102,241,.25);border-radius:10px;font-size:.92rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #ffffff);transition:all .2s ease;outline:none}.rp-input::placeholder{color:var(--text-tertiary, #94a3b8)}.rp-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.rp-input-error{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.rp-toggle{position:absolute;right:6px;background:transparent;border:none;cursor:pointer;font-size:1.1rem;padding:6px;line-height:1;border-radius:8px;transition:background .15s}.rp-toggle:hover{background:#6366f114}.rp-error{font-size:.8rem;font-weight:600;color:#ef4444;display:flex;align-items:center;gap:4px}.rp-error:before{content:"⚠";font-size:.75rem}.rp-strength{display:flex;align-items:center;gap:10px;margin-top:2px}.rp-strength-bar{display:flex;gap:4px;flex:1}.rp-strength-seg{height:5px;flex:1;border-radius:999px;transition:background .3s ease}.rp-strength-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.rp-rules{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;font-size:.78rem;font-weight:500}.rp-rules li{display:flex;align-items:center;gap:5px;padding:2px 0;transition:color .2s}.rp-rules li:before{font-size:.72rem;flex-shrink:0}.rp-rules li.pass{color:#22c55e}.rp-rules li.pass:before{content:"✓"}.rp-rules li.fail{color:var(--text-tertiary, #94a3b8)}.rp-rules li.fail:before{content:"✕"}.rp-confirm-step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:8px 0 0}.rp-confirm-icon{font-size:2.8rem;line-height:1}.rp-confirm-msg{font-size:1.02rem;font-weight:600;color:var(--text-primary, #0f172a);margin:0;max-width:340px}.rp-confirm-user{font-size:.9rem;color:var(--text-secondary, #475569);margin:0 0 8px}.rp-confirm-user strong{color:var(--text-primary, #0f172a)}.rp-submit-btn{min-width:160px}.rp-submit-btn .spinner{width:16px;height:16px;border-width:2px;margin-bottom:0;display:inline-block;vertical-align:middle}@media (max-width: 480px){.rp-rules{grid-template-columns:1fr}}.user-list{display:flex;flex-direction:column;gap:16px}.user-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.user-table-wrapper{border-radius:14px;border:1px solid rgba(99,102,241,.15);box-shadow:0 10px 30px #0f172a1a;animation:slideIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.skeleton-line{height:12px;border-radius:999px;background:linear-gradient(90deg,#e5e7eb,#f3f4f6,#e5e7eb);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton-pill{height:18px;width:70px;border-radius:999px;background:linear-gradient(90deg,#e5e7eb,#f3f4f6,#e5e7eb);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:0% 0%}to{background-position:200% 0%}}.toast-stack{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:9999}.toast{background:linear-gradient(135deg,#1f2937,#111827);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 10px 25px #00000040;font-size:.9rem;font-weight:500;animation:slideInRight .3s ease-out;border-left:3px solid #667eea;max-width:300px}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.confirm-header{margin-bottom:16px}.confirm-title{margin:0;font-size:1.15rem;font-weight:800;color:var(--text-primary);letter-spacing:-.3px}.confirm-subtitle{margin:4px 0 0;font-size:.85rem;color:var(--text-secondary)}.confirm-text{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:20px;padding:12px 14px;border-left:3px solid rgba(99,102,241,.3);background:#6366f10a;border-radius:8px}.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(99,102,241,.1)}.confirm-actions button{padding:.65rem 1.3rem;border-radius:10px;border:1.5px solid rgba(99,102,241,.2);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:.9rem;transition:all .2s ease;box-shadow:0 2px 8px #0f172a14;display:inline-flex;align-items:center;justify-content:center}.confirm-actions button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f12e;border-color:#6366f166;background:linear-gradient(135deg,#fff,#f8f9fa)}.confirm-actions button:disabled{opacity:.5;cursor:not-allowed}.confirm-actions .perm-btn-secondary{background:linear-gradient(135deg,#fffffff2,#f8f9faf2);color:var(--text-primary);border-color:#6366f133}.confirm-actions .perm-btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#fff,#f8f9fa);border-color:#6366f166}.confirm-actions .perm-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;box-shadow:0 6px 16px #667eea40;font-weight:700}.confirm-actions .perm-btn-primary:hover:not(:disabled){box-shadow:0 10px 24px #667eea59!important;transform:translateY(-2px)!important}.confirm-actions .perm-btn-primary:disabled{opacity:.6!important;cursor:not-allowed!important}.success-notification{padding:14px 16px;border-radius:10px;border:1.5px solid rgba(76,175,80,.25);background:linear-gradient(135deg,#4caf5014,#4caf500a);color:#2e7d32;font-weight:600;font-size:.95rem;margin-bottom:16px;display:flex;align-items:center;gap:10px}.success-notification:before{content:"✓";font-size:1.2rem;font-weight:800;flex-shrink:0}.error-notification{padding:14px 16px;border-radius:10px;border:1.5px solid rgba(239,68,68,.25);background:linear-gradient(135deg,#ef444414,#ef44440a);color:#c62828;font-weight:600;font-size:.95rem;margin-bottom:16px;display:flex;align-items:center;gap:10px}.error-notification:before{content:"✕";font-size:1.2rem;font-weight:800;flex-shrink:0}.user-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#6366f10f,#0ea5e908);border:1px solid rgba(99,102,241,.15);border-radius:12px;margin-bottom:.5rem}.user-toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-toolbar-right{display:flex;align-items:center;gap:10px;margin-left:auto}.add-user-btn{padding:.65rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 4px 15px #667eea4d}.add-user-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66;background:linear-gradient(135deg,#5568d3,#6a3f8f)}.add-user-btn:active{transform:translateY(0);box-shadow:0 2px 10px #667eea4d}.add-user-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 768px){.user-toolbar{flex-direction:column;align-items:stretch}.user-toolbar-left{width:100%}.user-toolbar-right{margin-left:0;width:100%}.add-user-btn{width:100%;justify-content:center}}.parent-role-row{display:flex;align-items:center;gap:10px}.parent-role-label{font-weight:700;color:var(--text-primary);font-size:.9rem;white-space:nowrap}.parent-role-select{padding:.6rem 2rem .6rem .8rem;border:1.5px solid rgba(99,102,241,.25);border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='%23667eea' d='M7 8L0 0h14z'/%3E%3C/svg%3E") no-repeat right .8rem center;background-size:12px 8px;color:var(--text-primary);font-size:.9rem;font-weight:500;min-width:180px;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none}.parent-role-select:hover:not(:disabled){border-color:#6366f166;box-shadow:0 2px 8px #6366f11a}.parent-role-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.parent-role-select:disabled{opacity:.6;cursor:not-allowed;background:#6366f10d}.user-pagination{margin-top:4px;background:linear-gradient(135deg,#6366f10f,#0ea5e908);border:1px solid rgba(99,102,241,.12);border-radius:12px}.user-pagination .pagination-btn{background:linear-gradient(135deg,#667eea1f,#764ba21a);color:#667eea;border:1.5px solid rgba(99,102,241,.25);box-shadow:0 2px 8px #6366f11a}.user-pagination .pagination-btn:hover:not(:disabled){background:linear-gradient(135deg,#667eea2e,#764ba226);border-color:#6366f166;box-shadow:0 6px 14px #6366f126}.user-pagination .pagination-btn:disabled{background:#6366f114;color:#6366f166;border-color:#6366f11a}.table-wrapper{border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #00000014;animation:slideIn .4s ease-out;flex:1;display:flex;flex-direction:column}.user-table{width:100%;border-collapse:collapse;background-color:var(--bg-primary);flex:1}.user-table thead{background:var(--table-header-bg)}.user-table th{padding:.9rem .8rem;text-align:left;font-weight:700;color:#667eea;border-bottom:2px solid var(--border-light);font-size:.85rem;text-transform:uppercase;letter-spacing:.4px}.th-content{display:flex;align-items:center;gap:.5rem}.user-table td{padding:.8rem;border-bottom:1px solid var(--border-muted);color:var(--text-secondary);font-size:.9rem}.table-row{transition:all .3s ease}.table-row:hover{background-color:var(--hover-bg);box-shadow:inset 0 0 0 1px #667eea1a}.table-row:last-child td{border-bottom:none}.id-cell{font-weight:600;color:#667eea;font-family:Courier New,monospace}.code-cell{background:#667eea0d;padding:.6rem 1rem;border-radius:6px;font-family:Courier New,monospace;font-weight:500;color:#667eea}.email-cell{color:var(--text-secondary);word-break:break-word}.phone-cell{font-weight:500;color:var(--text-primary)}.address-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-cell{padding:.6rem 1rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 2rem;color:#666}.spinner{width:35px;height:35px;border:3px solid rgba(102,126,234,.2);border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:.8rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{font-size:.95rem;color:#667eea;font-weight:500;margin:0}.no-data-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.no-data-icon{font-size:3.5rem;margin-bottom:.8rem;opacity:.7}.no-data{color:var(--text-tertiary);font-size:1rem;font-weight:500;margin:0}.pagination{display:flex;justify-content:center;align-items:center;gap:1.5rem;padding:1.2rem;background:linear-gradient(135deg,#667eea0d,#764ba20d);border-radius:10px;border:1px solid var(--border-light)}.pagination-btn{padding:.6rem 1.2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;letter-spacing:.2px}.pagination-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.pagination-btn:active:not(:disabled){transform:translateY(0)}.pagination-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.page-info{display:flex;align-items:center;gap:.6rem;font-size:.95rem;font-weight:600;color:var(--text-primary)}.current-page{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.1rem}.page-separator{color:#bbb;font-size:1rem}.total-pages{color:#667eea;font-weight:700}@media (max-width: 768px){.list-header{flex-direction:column;gap:1rem;align-items:flex-start}.header-title h2{font-size:1.3rem}.user-table th,.user-table td{padding:.8rem .5rem;font-size:.85rem}.th-content{flex-direction:column}.pagination{flex-wrap:wrap;gap:1rem}.pagination-btn{padding:.6rem 1rem;font-size:.8rem}}.category-form{display:flex;flex-direction:column;gap:18px}.form-group.toggle-group{flex-direction:row;align-items:center;justify-content:space-between;padding:8px 0}.form-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #334155);letter-spacing:.2px}.toggle-switch{position:relative;display:inline-block;width:46px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:24px;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,#667eea,#764ba2)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.file-upload-wrapper{display:flex;flex-direction:column;gap:8px}.file-input{padding:8px 10px;border:1.5px dashed var(--border-light, #cbd5e1);border-radius:8px;font-size:.85rem;color:var(--text-primary, #334155);background:var(--bg-primary, #fff);cursor:pointer;transition:border-color .2s ease}.file-input:hover{border-color:#667eea}.file-input::file-selector-button{padding:5px 14px;border-radius:6px;border:1px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f1f5f9);color:var(--text-primary, #334155);font-size:.82rem;font-weight:600;cursor:pointer;margin-right:10px;transition:background .2s ease}.file-input::file-selector-button:hover{background:var(--hover-bg, #e2e8f0)}.preview-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--border-light, #e2e8f0)}.existing-path{font-size:.8rem;color:var(--text-secondary, #64748b);word-break:break-all;flex:1;min-width:0}.category-page{animation:catFadeIn .4s ease-out}@keyframes catFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.category-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-category{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-category:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.category-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.category-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow-x:auto}.category-table{width:100%;border-collapse:collapse;min-width:700px}.category-table thead{background:var(--table-header-bg, rgba(102, 126, 234, .08))}.category-table th{padding:13px 16px;font-size:.8rem;font-weight:700;color:#667eea;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light, #e2e8f0)}.category-table td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid var(--border-light, #f1f5f9);vertical-align:middle}.category-table tbody tr{transition:background .15s ease}.category-table tbody tr:hover{background:#667eea0a}.category-icon-thumb{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc);flex-shrink:0}.category-icon-placeholder{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--bg-secondary, #f1f5f9);font-size:.9rem;flex-shrink:0}.badge-yes{background:#6366f11f;color:#6366f1}.badge-no{background:var(--bg-secondary, #f1f5f9);color:var(--text-tertiary, #94a3b8)}.badge-active{background:var(--status-active-bg, rgba(76, 175, 80, .15));color:var(--status-active-text, #2e7d32)}.badge-inactive{background:var(--status-inactive-bg, rgba(244, 67, 54, .15));color:var(--status-inactive-text, #c62828)}@media (max-width: 768px){.category-controls{flex-direction:column;align-items:stretch}.search-group{min-width:100%}.category-header{flex-direction:column;align-items:flex-start}.btn-add-category{width:100%;text-align:center}}.pc-form{display:flex;flex-direction:column;gap:18px}.pc-form .form-group{display:flex;flex-direction:column;gap:6px}.pc-form .form-group.toggle-group{flex-direction:row;align-items:center;justify-content:space-between;padding:8px 0}.pc-form .form-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #334155);letter-spacing:.2px}.pc-form .form-input{padding:10px 14px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);transition:all .2s ease;outline:none;font-family:inherit}.pc-form .form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.pc-form .form-input.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.pc-form .field-error{font-size:.78rem;color:#ef4444;font-weight:500}.pc-form .toggle-switch{position:relative;display:inline-block;width:46px;height:24px;flex-shrink:0}.pc-form .toggle-switch input{opacity:0;width:0;height:0}.pc-form .toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:24px;transition:all .3s ease}.pc-form .toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 1px 3px #00000026}.pc-form .toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,#667eea,#764ba2)}.pc-form .toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.pc-form .form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--border-light, #e2e8f0);margin-top:6px}.pc-form .btn-cancel{padding:10px 22px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569);border:1.5px solid var(--border-light, #e2e8f0);transition:all .2s ease}.pc-form .btn-cancel:hover{background:var(--hover-bg, #e2e8f0)}.pc-form .btn-save{padding:10px 28px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .2s ease}.pc-form .btn-save:hover{box-shadow:0 4px 16px #667eea59;transform:translateY(-1px)}.pc-form .btn-save:disabled,.pc-form .btn-cancel:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.pc-page{animation:pcFadeIn .4s ease-out}@keyframes pcFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.pc-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-pc{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-pc:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.pc-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.pc-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow-x:auto}.pc-table{width:100%;border-collapse:collapse;min-width:600px}.pc-table thead{background:var(--table-header-bg, rgba(102, 126, 234, .08))}.pc-table th{padding:13px 16px;font-size:.8rem;font-weight:700;color:#667eea;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light, #e2e8f0)}.pc-table td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid var(--border-light, #f1f5f9);vertical-align:middle}.pc-table tbody tr{transition:background .15s ease}.pc-table tbody tr:hover{background:#667eea0a}@media (max-width: 768px){.pc-controls{flex-direction:column;align-items:stretch}.pc-header{flex-direction:column;align-items:flex-start}.btn-add-pc{width:100%;text-align:center}}.product-page{animation:prodFadeIn .4s ease-out}@keyframes prodFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.product-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.product-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-product{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-product:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-add-product:disabled{opacity:.6;cursor:not-allowed;transform:none}.product-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.search-clear-btn{position:absolute;right:8px;bottom:6px;width:28px;height:28px;border:none;background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #64748b);border-radius:6px;font-size:1.25rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.search-clear-btn:hover{background:var(--text-secondary, #64748b);color:#fff}.control-select{min-width:130px;padding:9px 12px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;color:var(--text-primary);background:var(--bg-primary, #fff);outline:none;transition:all .2s ease;font-family:inherit;cursor:pointer}.direction-btn{padding:9px 14px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s ease}.direction-btn:hover{border-color:#667eea;color:#667eea}.direction-btn.active{background:#667eea;color:#fff;border-color:#667eea}.product-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:18px}.table-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffb3;display:flex;align-items:center;justify-content:center;gap:10px;z-index:10;font-size:.9rem;color:var(--text-secondary, #64748b);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.spinner{width:18px;height:18px;border:2px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .6s linear infinite}.product-table{width:100%;border-collapse:collapse}.product-table thead{background:var(--bg-secondary, #f8fafc);border-bottom:2px solid var(--border-light, #e2e8f0)}.product-table th{padding:12px 14px;text-align:left;font-size:.8rem;font-weight:700;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.4px}.product-table tbody tr{border-bottom:1px solid var(--border-light, #e2e8f0);transition:all .15s ease}.product-table tbody tr:hover{background:var(--bg-secondary, #f8fafc)}.product-table td{padding:12px 14px;font-size:.88rem;color:var(--text-primary, #0f172a)}.cell-image{width:50px;text-align:center}.product-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;border:1px solid var(--border-light, #e2e8f0)}.product-image-placeholder{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:6px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-light, #e2e8f0);font-size:1.1rem}.cell-name{max-width:150px;font-weight:500;color:var(--text-primary, #0f172a)}.cell-code,.cell-hsn{font-family:Courier New,monospace;font-size:.8rem;color:var(--text-secondary, #64748b)}.cell-brand,.cell-category{font-size:.85rem;color:var(--text-secondary, #64748b)}.cell-mrp,.cell-cost{font-weight:600;color:#059669;font-family:Courier New,monospace}.cell-status{text-align:center}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-active{background:#10b9811a;color:#10b981}.badge-inactive{background:#ef44441a;color:#ef4444}.badge-yes{background:#10b9811a;color:#10b981}.badge-no{background:#e2e8f0;color:#64748b}.cell-featured{text-align:center}.cell-actions{display:flex;gap:6px;justify-content:center;align-items:center}.action-btn{width:32px;height:32px;border:none;border-radius:6px;font-size:1rem;cursor:pointer;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-light, #e2e8f0);transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.action-btn:hover:not(:disabled){border-color:currentColor;transform:scale(1.1)}.action-btn.edit:hover:not(:disabled){background:#667eea1a;color:#667eea;border-color:#667eea}.action-btn.delete:hover:not(:disabled){background:#ef44441a;color:#ef4444;border-color:#ef4444}.action-btn:disabled{opacity:.5;cursor:not-allowed}.no-data{padding:40px 20px;text-align:center;color:var(--text-secondary, #64748b);font-size:.95rem}.no-data-content{display:flex;flex-direction:column;align-items:center;gap:12px}.no-data-icon{font-size:3rem;opacity:.6}.no-data-container.roles-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:12px;color:var(--text-secondary, #64748b)}@media (max-width: 768px){.product-controls{flex-direction:column}.search-group,.control-group{width:100%}.product-table{font-size:.75rem}.product-table th,.product-table td{padding:10px 8px}.btn-add-product{width:100%;text-align:center}.cell-name{max-width:100px}}.product-form-page{width:100%}.product-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:0 4px}.product-form-header-left{display:flex;align-items:center;gap:16px}.btn-back{padding:8px 16px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-back:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.product-form-title{font-size:1.3rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.product-form{display:flex;flex-direction:column;gap:0}.accordion-section{border:1px solid var(--border-light, #e2e8f0);border-top:none;overflow:hidden}.accordion-section:first-child{border-top:1px solid var(--border-light, #e2e8f0);border-radius:10px 10px 0 0}.accordion-section:last-of-type{border-radius:0 0 10px 10px}.accordion-header{width:100%;padding:14px 16px;background:var(--bg-secondary, #f8fafc);border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:.95rem;font-weight:600;color:var(--text-primary, #0f172a);transition:all .2s ease;text-align:left;font-family:inherit}.accordion-header:hover{background:var(--bg-primary, #fff)}.accordion-header.expanded{background:var(--bg-primary, #fff);color:#667eea}.accordion-title{font-weight:600}.accordion-chevron{display:inline-block;font-size:1rem;transition:transform .25s ease;color:#667eea}.accordion-chevron.open{transform:rotate(90deg)}.accordion-content{padding:20px 16px;background:var(--bg-primary, #fff);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:1000px}}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.form-row:last-child{margin-bottom:0}.form-label{font-size:.8rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.3px}.form-input{padding:10px 12px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);outline:none;transition:all .2s ease;font-family:inherit}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input:disabled{background:var(--bg-secondary, #f8fafc);color:var(--text-tertiary, #94a3b8);cursor:not-allowed}.form-input.input-error{border-color:#ef4444}.form-input.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:100px;font-family:inherit}.field-error{font-size:.75rem;color:#ef4444;margin-top:2px}.toggle-group{flex-direction:row;align-items:center;justify-content:space-between}.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{display:none}.toggle-slider{width:44px;height:24px;background:var(--border-light, #e2e8f0);border-radius:12px;position:relative;transition:background .3s ease;display:inline-block}.toggle-slider:before{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform .3s ease;box-shadow:0 2px 4px #0000001a}.toggle-switch input:checked+.toggle-slider{background:#10b981}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.file-upload-wrapper{position:relative;display:flex;flex-direction:column;gap:8px}.file-input{padding:12px;border:2px dashed var(--border-light, #e2e8f0);border-radius:8px;background:var(--bg-secondary, #f8fafc);cursor:pointer;transition:all .2s ease;font-size:.85rem;color:var(--text-secondary, #64748b)}.file-input:hover{border-color:#667eea;background:#667eea0d}.file-input::file-selector-button{all:revert;padding:6px 12px;margin-right:8px;border:none;border-radius:6px;background:#667eea;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.file-input::file-selector-button:hover{background:#5568d3}.file-preview{position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px;background:var(--bg-secondary, #f8fafc);border-radius:8px;border:1px solid var(--border-light, #e2e8f0)}.preview-thumb-lg{width:80px;height:80px;object-fit:cover;border-radius:6px;border:1px solid var(--border-light, #e2e8f0)}.file-selected{display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg-secondary, #f8fafc);border-radius:8px;border:1px solid var(--border-light, #e2e8f0)}.file-icon{font-size:1.5rem}.file-name{flex:1;font-size:.85rem;color:var(--text-primary, #0f172a);word-break:break-all}.clear-file-btn{width:28px;height:28px;border:none;background:#ef44441a;color:#ef4444;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.clear-file-btn:hover{background:#ef4444;color:#fff}.form-actions{display:flex;gap:10px;justify-content:flex-end;padding:20px 16px;border-top:1px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc);margin-top:20px;border-radius:0 0 10px 10px}.btn-cancel{padding:10px 22px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);transition:all .2s ease;font-family:inherit}.btn-cancel:hover:not(:disabled){border-color:var(--text-secondary, #64748b);background:var(--bg-secondary, #f8fafc)}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-save{padding:10px 22px;border:none;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transition:all .25s ease;font-family:inherit}.btn-save:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 768px){.product-form-header{flex-direction:column;align-items:flex-start;gap:12px}.form-row{grid-template-columns:1fr}.toggle-group{flex-direction:column;align-items:flex-start}.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-save{width:100%;text-align:center}}.brand-form{display:flex;flex-direction:column;gap:18px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #334155);letter-spacing:.2px;display:flex;align-items:center;justify-content:space-between}.char-counter{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-left:auto}.form-input{padding:10px 14px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);transition:all .2s ease;outline:none;font-family:inherit}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.form-input.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:70px}.field-error{font-size:.78rem;color:#ef4444;font-weight:500}.file-upload-zone{display:flex;align-items:center;justify-content:center;padding:20px 16px;border:2px dashed var(--border-light, #cbd5e1);border-radius:10px;background:var(--bg-primary, #fafbfc);cursor:pointer;transition:all .25s ease}.file-upload-zone:hover{border-color:#667eea;background:#667eea08}.file-upload-zone.drag-over{border-color:#667eea;background:#667eea0f;box-shadow:0 0 0 3px #667eea1a}.file-upload-zone.zone-error{border-color:#ef4444}.file-input-hidden{display:none}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.upload-icon{font-size:1.6rem;opacity:.55}.upload-text{font-size:.82rem;color:var(--text-tertiary, #94a3b8);font-weight:500;text-align:center}.file-preview{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--bg-secondary, #f8fafc);border-radius:8px;border:1px solid var(--border-light, #e2e8f0)}.preview-thumb-lg{width:80px;height:80px;object-fit:cover;border-radius:8px;border:1.5px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc)}.clear-file-btn{background:none;border:none;color:#ef4444;font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;flex-shrink:0;transition:background .15s ease}.clear-file-btn:hover{background:#ef44441a}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--border-light, #e2e8f0);margin-top:6px}.btn-cancel{padding:10px 22px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569);border:1.5px solid var(--border-light, #e2e8f0);transition:all .2s ease}.btn-cancel:hover{background:var(--hover-bg, #e2e8f0);transform:none;box-shadow:none}.btn-save{padding:10px 28px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .2s ease}.btn-save:hover{box-shadow:0 4px 16px #667eea59;transform:translateY(-1px)}.btn-save:disabled,.btn-cancel:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.brand-page{animation:brandFadeIn .4s ease-out}@keyframes brandFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.brand-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.brand-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-brand{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-brand:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.brand-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.control-group{display:flex;flex-direction:column;gap:4px}.control-label{font-size:.75rem;font-weight:600;color:var(--text-tertiary, #94a3b8);text-transform:uppercase;letter-spacing:.5px}.search-group{flex:1;min-width:200px;position:relative}.search-icon{position:absolute;left:12px;bottom:9px;font-size:.95rem;pointer-events:none}.search-input{width:100%;padding:9px 32px 9px 38px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;color:var(--text-primary);background:var(--bg-primary, #fff);outline:none;transition:all .2s ease;font-family:inherit}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.search-clear-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.25rem;line-height:1;color:var(--text-secondary, #94a3b8);cursor:pointer;padding:2px 6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s}.search-clear-btn:hover{color:var(--text-primary, #1e293b);background:var(--border-light, #e2e8f0)}.control-select{padding:9px 12px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.85rem;color:var(--text-primary);background:var(--bg-primary, #fff);outline:none;cursor:pointer;font-family:inherit;transition:all .2s ease;min-width:100px}.control-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.direction-btn{padding:9px 18px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569);border:1.5px solid var(--border-light, #e2e8f0);transition:all .2s ease;white-space:nowrap}.direction-btn.active,.direction-btn:hover{background:#667eea1a;border-color:#667eea;color:#667eea;box-shadow:none;transform:none}.brand-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow-x:auto}.table-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:5;border-radius:12px;font-size:.9rem;color:var(--text-secondary);font-weight:500}.spinner{width:32px;height:32px;border:3px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand-table{width:100%;border-collapse:collapse;min-width:850px}.brand-table thead{background:var(--table-header-bg, rgba(102, 126, 234, .08))}.brand-table th{padding:13px 16px;font-size:.8rem;font-weight:700;color:#667eea;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light, #e2e8f0)}.brand-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.brand-table th.sortable-th:hover{color:#4f5fcc}.brand-table td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid var(--border-light, #f1f5f9);vertical-align:middle}.brand-table tbody tr{transition:background .15s ease}.brand-table tbody tr:hover{background:#667eea0a}.cell-id{font-weight:600;color:var(--text-tertiary);font-size:.82rem}.cell-name{font-weight:600}.cell-meta{font-size:.83rem;color:var(--text-secondary, #64748b);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-with-icon{display:flex;align-items:center;gap:10px}.name-link{cursor:pointer;color:#667eea;transition:color .2s ease}.name-link:hover{color:#4f5fcc;text-decoration:underline}.brand-logo-thumb{width:32px;height:32px;border-radius:6px;object-fit:cover;border:1.5px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc);flex-shrink:0}.brand-logo-cell{width:40px;height:40px;border-radius:6px;object-fit:cover;border:1.5px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc)}.brand-logo-placeholder{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:var(--bg-secondary, #f1f5f9);font-size:.9rem;flex-shrink:0}.brand-logo-placeholder-sm{color:var(--text-tertiary, #94a3b8)}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.76rem;font-weight:600;letter-spacing:.3px}.badge-active{background:#10b9811f;color:#10b981}.badge-inactive{background:#ef44441f;color:#ef4444}.cell-actions{display:flex;gap:6px}.action-btn{padding:6px 8px;border-radius:7px;cursor:pointer;font-size:.95rem;background:transparent;border:1.5px solid transparent;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:34px;min-height:34px}.action-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.action-btn.edit:hover{background:#6366f114;border-color:#6366f133;transform:none;box-shadow:none}.action-btn.delete:hover{background:#ef444414;border-color:#ef444433;transform:none;box-shadow:none}.no-data{text-align:center;padding:48px 16px!important}.no-data-content{display:flex;flex-direction:column;align-items:center;gap:8px}.no-data-icon{font-size:2.5rem;opacity:.5}.no-data-content p{margin:0;font-size:.95rem;color:var(--text-tertiary, #94a3b8);font-weight:500}@media (max-width: 768px){.brand-controls{flex-direction:column;align-items:stretch}.search-group{min-width:100%}.brand-header{flex-direction:column;align-items:flex-start}.btn-add-brand{width:100%;text-align:center}.brand-table{min-width:600px}.cell-meta{max-width:120px}}@media (max-width: 480px){.brand-table{min-width:500px}.cell-meta{max-width:80px}}.sticker-page{animation:stickerFadeIn .4s ease-out}@keyframes stickerFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sticker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.sticker-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-sticker{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-sticker:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.sticker-page .btn-empty-state{margin-top:12px;font-size:.85rem;padding:8px 20px}.sticker-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.sticker-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow-x:auto}.sticker-table{width:100%;border-collapse:collapse;min-width:1100px}.sticker-table thead{background:var(--table-header-bg, rgba(102, 126, 234, .08))}.sticker-table th{padding:13px 16px;font-size:.8rem;font-weight:700;color:#667eea;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light, #e2e8f0)}.sticker-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.sticker-table th.sortable-th:hover{color:#4f5fcc}.sticker-table td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid var(--border-light, #f1f5f9);vertical-align:middle}.sticker-table tbody tr{transition:background .15s ease}.sticker-table tbody tr:hover{background:#667eea0a}.badge-veg{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.76rem;font-weight:600;letter-spacing:.3px;background:#10b9811f;color:#10b981}.badge-nonveg{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.76rem;font-weight:600;letter-spacing:.3px;background:#ef44441f;color:#ef4444}.cell-actions{display:flex;gap:6px;align-items:center}.action-btn{border:none;background:none;cursor:pointer;font-size:1rem;padding:4px 6px;border-radius:6px;transition:background .2s ease,transform .15s ease}.action-btn:hover:not(:disabled){background:#667eea1a;transform:scale(1.15)}.action-btn:disabled{opacity:.35;cursor:not-allowed}.action-btn.btn-loading{opacity:.7;pointer-events:none}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(102,126,234,.25);border-top-color:#667eea;border-radius:50%;animation:btnSpin .6s linear infinite}@keyframes btnSpin{to{transform:rotate(360deg)}}.action-btn.view-pdf:hover{background:#3b82f61f}.action-btn.download-pdf:hover{background:#10b9811f}.action-btn.edit:hover{background:#f59e0b1f}.action-btn.delete:hover:not(:disabled){background:#ef44441f}@media (max-width: 768px){.sticker-controls{flex-direction:column;align-items:stretch}.sticker-header{flex-direction:column;align-items:flex-start}.btn-add-sticker{width:100%;text-align:center}.sticker-table{min-width:900px}}@media (max-width: 480px){.sticker-table{min-width:700px}}.pdf-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;animation:pdfOverlayIn .25s ease-out}.pdf-viewer-overlay::-webkit-scrollbar{display:none}@keyframes pdfOverlayIn{0%{opacity:0}to{opacity:1}}.pdf-viewer-modal{width:92vw;max-width:960px;margin:30px auto;background:var(--bg-primary, #fff);border-radius:16px;box-shadow:0 24px 80px #00000059;overflow:visible;animation:pdfModalIn .3s cubic-bezier(.16,1,.3,1)}@keyframes pdfModalIn{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-light, #e2e8f0);background:linear-gradient(135deg,#667eea0f,#764ba20f);position:sticky;top:0;z-index:2}.pdf-viewer-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1rem;color:var(--text-primary, #0f172a);min-width:0}.pdf-viewer-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-viewer-icon{font-size:1.3rem;flex-shrink:0}.pdf-viewer-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.pdf-viewer-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;text-decoration:none}.pdf-viewer-download{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.pdf-viewer-download:hover{box-shadow:0 4px 14px #667eea66;transform:translateY(-1px)}.pdf-viewer-print{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.pdf-viewer-print:hover{box-shadow:0 4px 14px #10b98166;transform:translateY(-1px)}.pdf-viewer-close{background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #64748b);font-size:1.1rem;padding:7px 12px}.pdf-viewer-close:hover{background:#ef44441a;color:#ef4444}.pdf-viewer-body{background:#fff}.pdf-viewer-iframe{width:100%;aspect-ratio:1 / 1.414;border:none;display:block;background:#fff}@media (max-width: 768px){.pdf-viewer-modal{width:98vw;margin:10px auto;border-radius:10px}.pdf-viewer-header{flex-direction:column;gap:10px;padding:12px 14px}.pdf-viewer-actions{width:100%;justify-content:flex-end}.pdf-viewer-download span{display:none}}.sticker-form-page{width:100%;animation:stickerFormFadeIn .4s ease-out}@keyframes stickerFormFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sticker-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:0 4px}.sticker-form-header-left{display:flex;align-items:center;gap:16px}.sticker-form-page .btn-back{padding:8px 16px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.sticker-form-page .btn-back:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.sticker-form-title{font-size:1.3rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.sticker-form-page .sticker-form{display:flex;flex-direction:column;gap:0;max-height:none;overflow-y:visible;padding-right:0}.sticker-form-page .accordion-section{border:1px solid var(--border-light, #e2e8f0);border-top:none;overflow:hidden}.sticker-form-page .accordion-section:first-child{border-top:1px solid var(--border-light, #e2e8f0);border-radius:10px 10px 0 0}.sticker-form-page .accordion-section:last-of-type{border-radius:0 0 10px 10px}.sticker-form-page .accordion-header{width:100%;padding:14px 16px;background:var(--bg-secondary, #f8fafc);border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:.95rem;font-weight:600;color:var(--text-primary, #0f172a);transition:all .2s ease;text-align:left;font-family:inherit}.sticker-form-page .accordion-header:hover{background:var(--bg-primary, #fff)}.sticker-form-page .accordion-header.expanded{background:var(--bg-primary, #fff);color:#667eea}.sticker-form-page .accordion-title{font-weight:600}.sticker-form-page .accordion-chevron{display:inline-block;font-size:1rem;transition:transform .25s ease;color:#667eea}.sticker-form-page .accordion-chevron.open{transform:rotate(90deg)}.sticker-form-page .accordion-content{padding:20px 16px;background:var(--bg-primary, #fff);animation:stickerSlideDown .2s ease-out}@keyframes stickerSlideDown{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:1000px}}.sticker-form-page .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:0}.sticker-form-page .form-group{display:flex;flex-direction:column;gap:6px}.sticker-form-page .form-label{font-size:.8rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.3px}.sticker-form-page .form-input{padding:10px 12px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);outline:none;transition:all .2s ease;font-family:inherit}.sticker-form-page .form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.sticker-form-page .form-input.input-error{border-color:#ef4444}.sticker-form-page .form-input.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.sticker-form-page .form-textarea{resize:vertical;min-height:80px;font-family:inherit}.sticker-form-page .form-select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.sticker-form-page .field-error{font-size:.75rem;color:#ef4444;margin-top:2px}.sticker-form-page .form-actions{display:flex;gap:10px;justify-content:flex-end;padding:20px 16px;border-top:1px solid var(--border-light, #e2e8f0);background:var(--bg-secondary, #f8fafc);margin-top:20px;border-radius:0 0 10px 10px;position:static}.sticker-form-page .btn-cancel{padding:10px 22px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:var(--bg-primary, #fff);color:var(--text-secondary, #64748b);transition:all .2s ease;font-family:inherit}.sticker-form-page .btn-cancel:hover:not(:disabled){border-color:var(--text-secondary, #64748b);background:var(--bg-secondary, #f8fafc)}.sticker-form-page .btn-cancel:disabled{opacity:.6;cursor:not-allowed}.sticker-form-page .btn-save{padding:10px 22px;border:none;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transition:all .25s ease;font-family:inherit}.sticker-form-page .btn-save:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.sticker-form-page .btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 768px){.sticker-form-header{flex-direction:column;align-items:flex-start;gap:12px}.sticker-form-page .form-row{grid-template-columns:1fr}.sticker-form-page .form-actions{flex-direction:column-reverse}.sticker-form-page .btn-cancel,.sticker-form-page .btn-save{width:100%;text-align:center}}.warehouse-form{display:flex;flex-direction:column;gap:18px}.warehouse-form .form-group{display:flex;flex-direction:column;gap:6px}.warehouse-form .form-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #334155);letter-spacing:.2px;display:flex;align-items:center;justify-content:space-between}.warehouse-form .char-counter{font-size:.75rem;font-weight:500;color:var(--text-tertiary, #94a3b8);margin-left:auto}.warehouse-form .form-input{padding:10px 14px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);transition:all .2s ease;outline:none;font-family:inherit}.warehouse-form .form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.warehouse-form .form-input.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.phone-input-container{display:flex;gap:8px;align-items:stretch}.country-code-select{padding:10px 12px;border:1.5px solid var(--border-light, #e2e8f0);border-radius:8px;font-size:.85rem;color:var(--text-primary, #0f172a);background:var(--bg-primary, #fff);cursor:pointer;outline:none;font-family:inherit;font-weight:500;min-width:110px;transition:all .2s ease;flex-shrink:0}.country-code-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f}.country-code-select:hover{border-color:#cbd5e1}.phone-input{flex:1}.warehouse-form .form-textarea{resize:vertical;min-height:70px}.warehouse-form .field-error{font-size:.78rem;color:#ef4444;font-weight:500}.warehouse-form .form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--border-light, #e2e8f0);margin-top:6px}.warehouse-form .btn-cancel{padding:10px 22px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:var(--bg-secondary, #f1f5f9);color:var(--text-secondary, #475569);border:1.5px solid var(--border-light, #e2e8f0);transition:all .2s ease}.warehouse-form .btn-cancel:hover{background:var(--hover-bg, #e2e8f0);transform:none;box-shadow:none}.warehouse-form .btn-save{padding:10px 28px;border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .2s ease}.warehouse-form .btn-save:hover{box-shadow:0 4px 16px #667eea59;transform:translateY(-1px)}.warehouse-form .btn-save:disabled,.warehouse-form .btn-cancel:disabled{opacity:.6;cursor:not-allowed;transform:none!important}@media (max-width: 480px){.phone-input-container{flex-direction:column}.country-code-select{min-width:100%}.phone-input{width:100%}}.warehouse-page{animation:warehouseFadeIn .4s ease-out}@keyframes warehouseFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.warehouse-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.warehouse-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);letter-spacing:-.3px}.btn-add-warehouse{padding:10px 22px;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;transition:all .25s ease;white-space:nowrap}.btn-add-warehouse:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-empty-state{margin-top:12px;font-size:.85rem;padding:8px 20px}.warehouse-controls{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap;background:var(--bg-primary, #fff);padding:16px 18px;border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm)}.warehouse-table-wrapper{position:relative;background:var(--bg-primary, #fff);border-radius:12px;border:1px solid var(--border-light, #e2e8f0);box-shadow:var(--shadow-sm);overflow-x:auto}.warehouse-table{width:100%;border-collapse:collapse;min-width:900px}.warehouse-table thead{background:var(--table-header-bg, rgba(102, 126, 234, .08))}.warehouse-table th{padding:13px 16px;font-size:.8rem;font-weight:700;color:#667eea;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:2px solid var(--border-light, #e2e8f0)}.warehouse-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.warehouse-table th.sortable-th:hover{color:#4f5fcc}.warehouse-table td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid var(--border-light, #f1f5f9);vertical-align:middle}.warehouse-table tbody tr{transition:background .15s ease}.warehouse-table tbody tr:hover{background:#667eea0a}.warehouse-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:var(--bg-secondary, #f1f5f9);font-size:.9rem;flex-shrink:0}.cell-address{font-size:.83rem;color:var(--text-secondary, #64748b);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.warehouse-controls{flex-direction:column;align-items:stretch}.warehouse-header{flex-direction:column;align-items:flex-start}.btn-add-warehouse{width:100%;text-align:center}.warehouse-table{min-width:650px}.cell-address{max-width:120px}}@media (max-width: 480px){.warehouse-table{min-width:550px}.cell-address{max-width:80px}}*{margin:0;padding:0;box-sizing:border-box}.admin-dashboard{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background-color .3s ease}.top-bar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea,#5a67d8 40%,#764ba2);padding:0 1.5rem;height:64px;box-shadow:0 4px 20px #667eea4d,0 1px #ffffff1a inset;position:sticky;top:0;z-index:100;gap:1rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.top-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#ffffff14,#fff0 40%,#ffffff0d,#fff0);pointer-events:none}.top-bar-left{display:flex;align-items:center;gap:1rem}.hamburger-btn{background:#ffffff1f;border:1.5px solid rgba(255,255,255,.2);font-size:1.15rem;cursor:pointer;padding:.45rem .6rem;border-radius:10px;transition:all .25s ease;color:#fff;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hamburger-btn:hover{background:#ffffff40;border-color:#ffffff73;transform:scale(1.08);box-shadow:0 4px 12px #0000001a}.brand-logo{display:flex;align-items:center;gap:.6rem;color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:-.3px}.logo-icon{font-size:1.3rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;animation:float 3s ease-in-out infinite}.logo-text{text-shadow:0 1px 3px rgba(0,0,0,.15)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.top-bar-center{flex:1;text-align:center}.page-title{color:#fff;font-size:1.1rem;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.12);background:#ffffff1a;padding:.35rem 1.2rem;border-radius:20px;border:1px solid rgba(255,255,255,.12);display:inline-block;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.top-bar-right{display:flex;align-items:center;gap:1.5rem}.lang-switch{display:inline-flex;align-items:center;gap:6px;padding:4px;border-radius:999px;background:#fff3;border:1px solid rgba(255,255,255,.25)}.lang-btn{padding:6px 10px;border-radius:999px;background:transparent;color:#fff;border:1px solid transparent;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease}.lang-btn.active{background:#ffffffe6;color:#3b3f6b}.user-info{display:flex;align-items:center;gap:.7rem;background:#ffffff1a;padding:.45rem .9rem;border-radius:12px;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s}.user-info:hover{background:#ffffff2e}.user-avatar{font-size:1rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border-radius:50%}.user-details{text-align:left}.user-role{color:#fffc;font-size:.65rem;text-transform:uppercase;letter-spacing:.8px;margin-bottom:.1rem;font-weight:500}.user-name{color:#fff;font-weight:600;font-size:.85rem}.logout-btn{background:#ffffff1a;color:#fff;border:1.5px solid rgba(255,255,255,.18);padding:.45rem 1rem;border-radius:10px;cursor:pointer;font-weight:600;transition:all .25s ease;font-size:.82rem;letter-spacing:.3px;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.logout-btn:hover{background:#ef444440;border-color:#ef444480;transform:translateY(-1px);box-shadow:0 4px 14px #ef444440}.theme-toggle-btn{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;padding:.5rem .8rem;border-radius:8px;cursor:pointer;font-size:1.1rem;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:40px}.theme-toggle-btn:hover{background:#ffffff4d;border-color:#ffffff80;transform:scale(1.05) rotate(20deg)}.theme-toggle-btn:active{transform:scale(.95)}.main-content{display:flex;flex:1;gap:0}.sidebar{width:240px;background:var(--sidebar-bg);box-shadow:4px 0 20px #00000014;transition:width .3s cubic-bezier(.4,0,.2,1);position:sticky;top:64px;height:calc(100vh - 64px);overflow-y:auto;border-right:1px solid var(--border-light);flex-shrink:0}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#bbb}.sidebar.hidden{width:68px;min-width:68px;overflow:visible;z-index:50}.sidebar.hidden .sidebar-header,.sidebar.hidden .btn-text{display:none}.sidebar.hidden .tab-btn{justify-content:center;padding:.8rem .5rem;position:relative;overflow:visible}.sidebar.hidden .tab-btn:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#1e293b;color:#fff;padding:6px 12px;border-radius:8px;font-size:.78rem;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;transform:translateY(-50%) translate(-4px);box-shadow:0 4px 16px #0003;z-index:200;letter-spacing:.2px}.sidebar.hidden .tab-btn:before{content:"";position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#1e293b;pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:200}.sidebar.hidden .tab-btn:hover:after{opacity:1;transform:translateY(-50%) translate(0)}.sidebar.hidden .tab-btn:hover:before{opacity:1}.sidebar-header{padding:1rem 1.2rem;border-bottom:2px solid var(--border-lighter);background:linear-gradient(135deg,#667eea0d,#764ba20d)}.sidebar-title{color:#667eea;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin:0}.sidebar-content{padding:1rem .8rem;display:flex;flex-direction:column;gap:.6rem}.tab-btn{display:flex;align-items:center;gap:.8rem;width:100%;padding:.8rem 1rem;background:transparent;border:2px solid transparent;text-align:left;cursor:pointer;border-radius:10px;transition:all .3s ease;font-size:.9rem;font-weight:500;color:#666;position:relative;overflow:hidden}.btn-icon{font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-text{flex:1}.tab-btn:hover{background:#f8f9fa;border-color:#e8eef7;color:#667eea;transform:translate(4px)}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 6px 20px #667eea59}.tab-btn.active .btn-icon{animation:pulse .6s ease-out}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.content-area{flex:1;padding:1.5rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);overflow-y:visible;transition:background-color .3s ease}.content-header{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between}.content-title{color:var(--text-primary);font-size:1.4rem;font-weight:700;letter-spacing:-.5px;margin:0}.collapsible-header{position:relative}.collapsible-header .chevron{font-size:1.1rem;font-weight:700;transition:transform .3s ease;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:#667eea1a;color:#667eea;line-height:1}.collapsible-header .chevron.open{transform:rotate(90deg);background:#667eea2e}.collapsible-header.active .chevron{background:#fff3;color:#fff}.collapsible-header.expanded{background:#667eea0f;color:#667eea}.collapsible-header.parent-active{border-color:#667eea26}.collapsible-body{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .25s ease;opacity:0}.collapsible-body.open{max-height:300px;opacity:1}.sub-tab{padding-left:2.2rem!important;font-size:.85rem}.sidebar.hidden .collapsible-header .chevron,.sidebar.hidden .collapsible-header .btn-text{display:none}.sidebar.hidden .collapsible-body{max-height:0!important;opacity:0!important;overflow:hidden;transition:none!important}.sidebar.hidden .collapsible-group{position:relative}.sidebar.hidden .collapsible-group:hover .collapsible-body{max-height:300px!important;opacity:1!important;overflow:visible;position:absolute;left:calc(100% + 6px);top:0;width:200px;background:var(--bg-primary, #fff);border:1px solid var(--border-light, #e2e8f0);border-radius:12px;box-shadow:0 8px 30px #0f172a2e;padding:6px;z-index:9999;display:flex;flex-direction:column;gap:2px;transition:none!important}.sidebar.hidden .collapsible-group:hover .collapsible-body .sub-tab{padding-left:.8rem!important;border-radius:8px;font-size:.82rem;opacity:1;width:100%}.sidebar.hidden .collapsible-group:hover .collapsible-body .sub-tab .btn-text{display:inline!important}.sidebar.hidden .collapsible-group:hover .collapsible-body .sub-tab:hover{background:#667eea14}.sidebar.hidden .collapsible-group:hover .collapsible-header:after,.sidebar.hidden .collapsible-group:hover .collapsible-header:before{opacity:0!important}.sidebar.hidden .collapsible-group:hover .collapsible-body .sub-tab:after,.sidebar.hidden .collapsible-group:hover .collapsible-body .sub-tab:before{display:none!important}.tab-content{background:transparent;padding:0;border-radius:0;box-shadow:none;border:none;animation:slideIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.top-bar{flex-wrap:wrap;gap:.8rem;padding:.7rem 1rem}.top-bar-center{flex-basis:100%;order:3}.page-title{font-size:1.1rem}.top-bar-right{gap:.8rem}.user-info{display:none}.logout-btn{padding:.5rem .9rem;font-size:.8rem}.sidebar{width:220px;top:64px;height:calc(100vh - 64px)}.content-area{padding:1rem}.tab-content{padding:1.2rem}.content-title{font-size:1.1rem}}
