@charset "UTF-8";.app-footer{background-color:#fff;border-top:1px solid #e5e7eb;padding:32px 0;margin-top:auto;position:relative;z-index:10}.page-container>.app-footer:not(:last-child),.page-container .app-footer+.app-footer,.content-area .app-footer,.main-container .app-footer,.app-footer~.app-footer{display:none!important}.page-container>.app-footer:last-of-type{display:block!important}*:not(.page-container)>.app-footer{display:none!important}.footer-content{max-width:1200px;margin:0 auto;padding:0 24px;text-align:center}.footer-links{margin-bottom:20px;font-size:14px;display:flex;justify-content:center;align-items:center;gap:24px}.footer-links a{color:#6b7280;text-decoration:none;transition:color .2s ease;font-weight:400}.footer-links a:hover{color:#3b82f6;text-decoration:underline}.footer-links .separator{color:#e5e7eb;font-size:12px}.footer-copyright{font-size:13px;color:#9ca3af;line-height:1.5}.footer-copyright p{margin:0}.main-layout{min-height:100vh;display:flex;flex-direction:column}.main-layout .app-content{flex:1}.security-settings-page~.app-footer,.admin-page~.app-footer,.settings-form~.app-footer{display:none!important}body .app-footer:nth-of-type(n+2){display:none!important}@media (max-width: 768px){.app-footer{padding:24px 0}.footer-links{font-size:13px;flex-wrap:wrap;gap:16px}.footer-links .separator{display:none}}@media (max-width: 480px){.footer-links{flex-direction:column;gap:12px}.footer-copyright{font-size:12px}}.auth-page{display:flex;min-height:100vh;background-color:#f5f7fa}.auth-page .auth-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}@media (max-width: 768px){.auth-page .auth-container{width:100%}}.auth-page .auth-header{margin-bottom:2rem;text-align:center}.auth-page .auth-header .logo{display:flex;align-items:center;justify-content:center}.auth-page .auth-header .logo .logo-image{height:40px;margin-right:.5rem}.auth-page .auth-header .logo .logo-text{font-size:1.5rem;font-weight:600;color:#333}.auth-page .auth-card{width:100%;max-width:400px;background-color:#fff;box-shadow:0 4px 12px #0000001a;border-radius:.5rem;padding:2rem}.auth-page .auth-card h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.auth-page .auth-background{display:none;flex:1;background-color:#4361ee;padding:2rem;color:#fff}@media (min-width: 992px){.auth-page .auth-background{display:flex;align-items:center;justify-content:center}}.auth-page .auth-background .auth-info{max-width:500px}.auth-page .auth-background .auth-info h2{font-size:2rem;font-weight:600;margin-bottom:1rem}.auth-page .auth-background .auth-info p{font-size:1rem;line-height:1.6;margin-bottom:2rem;opacity:.9}.auth-page .auth-background .auth-info .auth-features .feature-item{display:flex;align-items:center;margin-bottom:1rem}.auth-page .auth-background .auth-info .auth-features .feature-item .feature-icon{font-size:1.5rem;margin-right:1rem}.auth-page .auth-background .auth-info .auth-features .feature-item .feature-text{font-size:1rem}.auth-page .password-reset-steps{margin-top:2rem;margin-bottom:2rem}.auth-page .password-reset-steps .step-item{display:flex;align-items:center;margin-bottom:1rem}.auth-page .password-reset-steps .step-item .step-number{width:30px;height:30px;border-radius:50%;background-color:#fff3;display:flex;align-items:center;justify-content:center;margin-right:1rem;font-weight:600}.auth-page .password-reset-steps .step-item .step-text{font-size:1rem}.auth-page .security-note{display:flex;align-items:flex-start;background-color:#ffffff1a;padding:1rem;border-radius:.5rem}.auth-page .security-note .note-icon{font-size:1.5rem;margin-right:1rem}.auth-page .security-note .note-text{font-size:.875rem;opacity:.9}.login-form .form-group,.signup-form .form-group,.forgot-password-form .form-group{margin-bottom:1.25rem}.login-form .form-group label,.signup-form .form-group label,.forgot-password-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem}.login-form .form-group input,.signup-form .form-group input,.forgot-password-form .form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:.25rem;font-size:1rem}.login-form .form-group input.error,.signup-form .form-group input.error,.forgot-password-form .form-group input.error{border-color:#e53e3e}.login-form .form-group input:focus,.signup-form .form-group input:focus,.forgot-password-form .form-group input:focus{outline:none;border-color:#4361ee;box-shadow:0 0 0 3px #4361ee33}.login-form .form-group .validation-error,.signup-form .form-group .validation-error,.forgot-password-form .form-group .validation-error{color:#e53e3e;font-size:.75rem;margin-top:.25rem}.login-form .form-check,.signup-form .form-check,.forgot-password-form .form-check{display:flex;align-items:center;margin-bottom:1.25rem}.login-form .form-check input,.signup-form .form-check input,.forgot-password-form .form-check input{margin-right:.5rem}.login-form .form-check label,.signup-form .form-check label,.forgot-password-form .form-check label{font-size:.875rem}.login-form .form-actions,.signup-form .form-actions,.forgot-password-form .form-actions{margin-bottom:1.5rem}.login-form .form-actions button,.signup-form .form-actions button,.forgot-password-form .form-actions button{width:100%;padding:.75rem;border:none;border-radius:.25rem;background-color:#4361ee;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.login-form .form-actions button:hover:not(:disabled),.signup-form .form-actions button:hover:not(:disabled),.forgot-password-form .form-actions button:hover:not(:disabled){background-color:#3652d9}.login-form .form-actions button:disabled,.signup-form .form-actions button:disabled,.forgot-password-form .form-actions button:disabled{opacity:.65;cursor:not-allowed}.login-form .error-message,.signup-form .error-message,.forgot-password-form .error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}.login-form .error-message:before,.signup-form .error-message:before,.forgot-password-form .error-message:before{content:"⚠️";font-size:16px}.login-form .form-link,.signup-form .form-link,.forgot-password-form .form-link{margin-top:1rem;text-align:center}.login-form .form-links,.signup-form .form-links,.forgot-password-form .form-links{margin-top:1rem;display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}.signup-form .required{color:#e53e3e;margin-left:.25rem}.signup-form .validation-error{color:#e53e3e;font-size:.75rem;margin-top:.25rem}.forgot-password-success{text-align:center;padding:1rem}.forgot-password-success h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.forgot-password-success p{margin-bottom:1.5rem;color:#555}.forgot-password-success .form-actions{margin-top:2rem}.social-login{margin-top:1.5rem;border-top:1px solid #eee;padding-top:1.5rem}.social-login h3{font-size:1rem;font-weight:500;text-align:center;margin-bottom:1rem}.social-login .social-buttons{display:flex;flex-direction:column;gap:.75rem}.social-login .social-buttons button{padding:.75rem;border:1px solid #ddd;border-radius:.25rem;font-size:.875rem;font-weight:500;cursor:pointer;background-color:#fff;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.social-login .social-buttons button:hover:not(:disabled){background-color:#f8fafc}.social-login .social-buttons button:disabled{opacity:.65;cursor:not-allowed}.social-login .social-buttons button.google-button{color:#ea4335}.social-login .social-buttons button.github-button{color:#333}.social-login .social-buttons button.apple-button{color:#000}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}.error-message:before{content:"!";width:20px;height:20px;background:#fbbf24;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-size:16px}.validation-error{color:#c33;font-size:12px;margin-top:4px}.form-group input.error{border-color:#c33}.success-message{background-color:#efe;border:1px solid #cfc;color:#3c3;padding:12px 16px;border-radius:4px;margin-bottom:16px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}.success-message:before{content:"";width:16px;height:16px;border:3px solid #22c55e;border-radius:50%;position:relative}.auth-message.success:before:after{content:"";position:absolute;width:5px;height:9px;border:solid #22c55e;border-width:0 2px 2px 0;transform:rotate(45deg);top:1px;left:4px;font-size:16px}.forgot-password-form .button-primary{background-color:#2563eb!important;color:#fff!important;border:none!important;padding:14px 24px!important;font-size:16px!important;font-weight:600!important;border-radius:8px!important;box-shadow:0 2px 8px #2563eb40!important;cursor:pointer;transition:all .2s ease-in-out;display:inline-block;text-align:center;width:100%;margin-top:8px}.forgot-password-form .button-primary:hover:not(:disabled){background-color:#1d4ed8!important;box-shadow:0 4px 12px #2563eb59!important;transform:translateY(-1px)}.forgot-password-form .button-primary:disabled{background-color:#94a3b8!important;cursor:not-allowed;box-shadow:none!important}.forgot-password-form .button-primary .button-text{color:#fff!important;font-weight:600!important}.forgot-password-success .button-primary{margin-top:20px}.reset-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden}.reset-password-container:before{content:"";position:absolute;width:200%;height:200%;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");animation:backgroundMove 20s linear infinite}@keyframes backgroundMove{0%{transform:translate(0)}to{transform:translate(30px,30px)}}.reset-password-wrapper{display:flex;max-width:1200px;width:90%;background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;overflow:hidden;position:relative;z-index:1}.reset-password-form-section{flex:1;padding:60px;display:flex;flex-direction:column;justify-content:center}.reset-password-info-section{flex:1;background:linear-gradient(135deg,#5c67f2,#7b83ff);color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.reset-password-info-section:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:pulse 4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:.8}}.reset-password-logo{display:flex;align-items:center;margin-bottom:40px;font-size:24px;font-weight:700;color:#333}.reset-password-logo-icon{background:#e8ebff;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-right:10px;font-size:16px;color:#5c67f2}.reset-password-form{width:100%}.reset-password-form h2{font-size:32px;font-weight:700;margin-bottom:40px;color:#333}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px;font-size:14px;color:#555;font-weight:500}.form-group input{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:16px;transition:all .3s;background:#f9f9f9}.form-group input:focus{outline:none;border-color:#5c67f2;background:#fff;box-shadow:0 0 0 3px #5c67f21a}.form-group input.error{border-color:#e74c3c;background:#fff5f5}.error{color:#e74c3c;font-size:12px;margin-top:5px;display:block}.password-hint{font-size:12px;color:#666;margin-top:5px;line-height:1.4}.password-toggle{position:relative}.password-toggle button{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#666;cursor:pointer;padding:4px;font-size:14px;transition:color .3s}.password-toggle button:hover{color:#333}.form-actions{margin-top:30px}.reset-password-button{width:100%;padding:14px 24px;background:#5c67f2;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center}.reset-password-button:hover{background:#4a55e0;transform:translateY(-2px);box-shadow:0 10px 20px #5c67f24d}.reset-password-button:disabled{background:#bbb;cursor:not-allowed;transform:none;box-shadow:none}.form-links{text-align:center;margin-top:30px}.form-links a{color:#5c67f2;text-decoration:none;font-size:14px;transition:color .3s}.form-links a:hover{color:#4a55e0;text-decoration:underline}.reset-password-info-content{position:relative;z-index:1}.reset-password-info-content h3{font-size:36px;font-weight:700;margin-bottom:24px;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.reset-password-info-content p{font-size:18px;line-height:1.6;margin-bottom:40px;opacity:.95}.password-requirements{background:#ffffff1a;border-radius:12px;padding:30px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.password-requirements h4{font-size:20px;margin-bottom:20px;display:flex;align-items:center}.password-requirements h4:before{content:"🔒";margin-right:10px;font-size:24px}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{margin-bottom:12px;padding-left:30px;position:relative;font-size:16px;line-height:1.5}.password-requirements li:before{content:"";width:5px;height:9px;border:solid #22c55e;border-width:0 2px 2px 0;display:inline-block;transform:rotate(45deg);margin-left:4px;position:absolute;left:0;top:0;font-size:18px;color:#4ade80}.security-note{margin-top:30px;background:#ffffff1a;border-radius:8px;padding:20px;display:flex;align-items:flex-start}.security-note:before{content:"";display:inline-block;width:24px;height:24px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:50%;vertical-align:middle;margin-right:12px;font-size:24px;flex-shrink:0}.security-note p{margin:0;font-size:14px;line-height:1.6}.reset-password-loading,.reset-password-error,.reset-password-success{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;padding:40px}.reset-password-loading h2,.reset-password-error h2,.reset-password-success h2{font-size:32px;margin-bottom:20px}.reset-password-loading p,.reset-password-error p,.reset-password-success p{font-size:18px;margin-bottom:30px;max-width:500px;line-height:1.6}.loading-spinner{width:50px;height:50px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}.error-message{background:#fee;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}@media (max-width: 768px){.reset-password-wrapper{flex-direction:column;width:95%}.reset-password-form-section,.reset-password-info-section{padding:40px 30px}.reset-password-info-section{display:none}.reset-password-form h2{font-size:24px}}.security-settings,.devices-page,.profile-page,.security-page{padding:0;margin:0;width:100%}.page-header-banner{background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem;margin:0 16px 24px;border-radius:16px;box-shadow:0 4px 12px #0000001a;color:#fff}.page-header-banner h1{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:#fff}.page-header-banner p{font-size:1rem;color:#ffffffe6;line-height:1.5;margin:0}.security-settings .card,.devices-page .card,.profile-page .card,.security-page .card{margin:0 16px 24px}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem;text-transform:none}.form-control{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.9375rem;color:#1f2937;background:#f9fafb;transition:all .2s ease}.form-control:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.form-control.error{border-color:#ef4444}.form-help{font-size:.8125rem;color:#6b7280;margin-top:.5rem;line-height:1.5}.validation-error{color:#ef4444;font-size:.8125rem;margin-top:.25rem}.alert{padding:1rem 1.25rem;border-radius:8px;margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.alert-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.password-change-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.sessions-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.session-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;transition:all .2s ease}.session-item:hover{background:#f3f4f6;border-color:#d1d5db;transform:translate(2px)}.current-session{background:linear-gradient(to right,#eff6ff,#e0f2fe);border-color:#3b82f6}.session-icon{font-size:2.5rem;flex-shrink:0}.session-info{flex:1}.session-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.device-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.current-badge{display:inline-block;background:#3b82f6;color:#fff;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.session-details{display:flex;flex-direction:column;gap:.25rem}.session-details p{margin:0;font-size:.875rem;color:#6b7280}.session-actions{flex-shrink:0}.security-tips{display:flex;flex-direction:column;gap:1.5rem}.tip-item{display:flex;gap:1rem;align-items:flex-start}.tip-icon{font-size:2rem;flex-shrink:0;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border-radius:12px}.tip-content h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.tip-content p{font-size:.875rem;color:#6b7280;line-height:1.5;margin:0}.loading-sessions{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.loading-sessions p{color:#6b7280;font-size:.875rem}.bulk-actions{padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;justify-content:center}.terminate-all-container{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb;text-align:center}@media (max-width: 768px){.page-header-banner{padding:1.5rem;margin:0 1rem 1.5rem}.page-header-banner h1{font-size:1.5rem}.security-settings .card,.devices-page .card{margin:0 1rem 1rem}.session-item{flex-direction:column;text-align:center}.session-header{flex-direction:column;gap:.5rem}.session-actions{width:100%;margin-top:1rem}.session-actions button{width:100%}.password-change-form .form-actions{flex-direction:column-reverse}.password-change-form .form-actions button{width:100%}}.profile-page .account-info-display{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.profile-page .account-avatar-box{width:60px;height:60px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center}.profile-page .avatar-content{color:#fff;font-size:1.5rem;font-weight:700}.profile-page .account-details-info{flex:1}.profile-page .account-display-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.profile-page .account-display-email{font-size:.875rem;color:#6b7280}.profile-page .account-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.profile-page .meta-info-item{text-align:center;padding:.75rem;background:#f9fafb;border-radius:8px}.profile-page .meta-info-label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.profile-page .meta-info-value{font-size:.875rem;font-weight:600;color:#1f2937}.profile-page .status-badge{padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.profile-page .status-badge.active{background:#d1fae5;color:#065f46}.profile-page .status-badge.enabled{background:#dbeafe;color:#1e40af}.profile-page .status-badge.disabled{background:#fee2e2;color:#991b1b}.profile-page .related-links-list{list-style:none;padding:0;margin:0}.profile-page .related-links-list li{margin-bottom:.5rem}.profile-page .related-links-list a{display:flex;align-items:center;gap:.75rem;padding:.75rem;color:#374151;text-decoration:none;border-radius:8px;transition:all .2s ease;background:#f9fafb}.profile-page .related-links-list a:hover{background:#f3f4f6;color:#1f2937;text-decoration:none;transform:translate(2px)}.profile-page .link-icon{font-size:1.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a}.profile-page .profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.profile-page .loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@media (max-width: 768px){.profile-page .account-meta-grid{grid-template-columns:1fr}.profile-page .account-info-display{flex-direction:column;text-align:center}}.security-settings .password-policy-form,.security-settings .session-settings-form,.security-settings .mfa-settings-form{padding:0}.security-settings .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.checkbox-group{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.875rem;color:#374151}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0}.api-keys-page .modal-backdrop{background-color:#0000004d}.api-keys-page .modal-content{max-width:450px;border-radius:8px;box-shadow:0 4px 12px #00000026}.api-keys-page .modal-header{padding:20px 24px;border-bottom:none}.api-keys-page .modal-header h2{font-size:18px;font-weight:600;margin:0;color:#333}.api-keys-page .modal-body{padding:0 24px 24px}.api-keys-page .form-group{margin-bottom:20px}.api-keys-page .form-group label{display:block;font-size:14px;font-weight:500;color:#333;margin-bottom:8px}.api-keys-page .form-text{font-size:12px;color:#666;margin-top:4px;margin-bottom:8px}.api-keys-page .form-control{width:100%;padding:8px 12px;font-size:14px;border:1px solid #ddd;border-radius:4px;transition:border-color .15s}.api-keys-page .form-control:focus{outline:none;border-color:#4a5568}.api-keys-page select.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill="%23333" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M5.3 7.3a1 1 0 011.4 0L10 10.6l3.3-3.3a1 1 0 111.4 1.4l-4 4a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4z"/></svg>');background-repeat:no-repeat;background-position:right 8px center;background-size:20px;padding-right:40px}.api-keys-page .modal-footer{padding:16px 24px;border-top:1px solid #e5e7eb;background-color:#f9fafb;border-radius:0 0 8px 8px;display:flex;justify-content:flex-end;gap:12px}.api-keys-page .btn{padding:8px 16px;font-size:14px;font-weight:500;border-radius:4px;border:none;cursor:pointer;transition:all .15s}.api-keys-page .btn-secondary{background-color:#e5e7eb;color:#374151}.api-keys-page .btn-secondary:hover{background-color:#d1d5db}.api-keys-page .btn-primary{background-color:#3b82f6;color:#fff}.api-keys-page .btn-primary:hover{background-color:#2563eb}.api-keys-page .btn:disabled{opacity:.6;cursor:not-allowed}.api-keys-page .required{display:none}.api-keys-page .page-header h1{font-size:24px;font-weight:600;color:#1a202c}.api-keys-page .api-key-display{background-color:#f3f4f6;padding:16px;border-radius:6px;margin:16px 0}.api-keys-page .credential-value{display:flex;align-items:center;gap:12px;margin-top:8px}.api-keys-page .credential-value code{flex:1;font-family:monospace;font-size:13px;background-color:#fff;padding:8px;border-radius:4px;border:1px solid #e5e7eb}.modal-content .form-check-input{position:relative;opacity:1;pointer-events:auto!important;cursor:pointer!important;z-index:1;-webkit-appearance:checkbox;-moz-appearance:checkbox;appearance:checkbox}.modal-content .form-check{position:relative;z-index:1}.modal-content .form-check-label{cursor:pointer!important;pointer-events:auto!important}.modal-content input,.modal-content button,.modal-content textarea,.modal-content select{pointer-events:auto!important}.modal-content .form-check-input:hover{outline:2px solid blue!important}.application-detail-page{padding:1rem;max-width:none;margin:0;width:100%}.application-detail-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.application-detail-page .page-header h1{font-size:1.875rem;font-weight:600;color:#1f2937;margin:0}.application-detail-page .status-section{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.application-detail-page .status-section .status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.application-detail-page .status-section .status-badge.active{background-color:#d1fae5;color:#065f46}.application-detail-page .status-section .status-badge.inactive{background-color:#fee2e2;color:#991b1b}.application-detail-page .status-section .status-text{color:#6b7280;font-size:.875rem}.application-detail-page .info-box{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.application-detail-page .info-box:first-child{display:flex;gap:1.5rem;align-items:flex-start}.application-detail-page .info-box h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 1rem}.application-detail-page .info-box .app-icon{width:48px;height:48px;background-color:#e5e7eb;border-radius:.375rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;color:#6b7280;flex-shrink:0}.application-detail-page .info-box .app-info{flex:1}.application-detail-page .info-box .app-info h2{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.application-detail-page .info-box .app-info .app-type{color:#6b7280;font-size:.875rem;margin:0 0 .5rem}.application-detail-page .info-box .app-info .app-description{color:#6b7280;font-size:.875rem;margin:0}.application-detail-page .form-group{margin-bottom:1.5rem}.application-detail-page .form-group:last-child{margin-bottom:0}.application-detail-page .form-group label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.application-detail-page .form-group .input-with-button{display:flex;gap:.5rem}.application-detail-page .form-group .form-control{flex:1;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-family:Consolas,Monaco,monospace;background-color:#f9fafb}.application-detail-page .form-group .form-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.application-detail-page .form-group .help-text,.application-detail-page .form-group .warning-text{font-size:.75rem;margin-top:.25rem}.application-detail-page .form-group .help-text{color:#6b7280}.application-detail-page .form-group .warning-text{color:#ef4444}.application-detail-page .btn-copy,.application-detail-page .btn-regenerate{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.application-detail-page .btn-copy{background-color:#f3f4f6;color:#374151}.application-detail-page .btn-copy:hover{background-color:#e5e7eb}.application-detail-page .btn-regenerate{background-color:#fbbf24;color:#78350f}.application-detail-page .btn-regenerate:hover{background-color:#f59e0b}.application-detail-page .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.application-detail-page .section-header h3{margin:0}.application-detail-page .section-header .btn-edit{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid #d1d5db;background-color:#fff;border-radius:.375rem;font-size:.875rem;color:#374151;cursor:pointer;transition:all .2s}.application-detail-page .section-header .btn-edit:hover{background-color:#f9fafb;border-color:#9ca3af}.application-detail-page .uri-list .uri-item{padding:.75rem 0;border-bottom:1px solid #e5e7eb}.application-detail-page .uri-list .uri-item:last-child{border-bottom:none}.application-detail-page .uri-list .uri-item code{background-color:#f3f4f6;padding:.25rem .5rem;border-radius:.25rem;font-size:.875rem;font-family:Consolas,Monaco,monospace}.application-detail-page .uri-list .empty-text{color:#6b7280;font-size:.875rem}.application-detail-page .uri-edit-mode .uri-edit-item,.application-detail-page .uri-edit-mode .uri-add-item{display:flex;gap:.5rem;margin-bottom:.75rem}.application-detail-page .uri-edit-mode .uri-edit-item .form-control,.application-detail-page .uri-edit-mode .uri-add-item .form-control{flex:1}.application-detail-page .uri-edit-mode .uri-edit-item .btn-remove,.application-detail-page .uri-edit-mode .uri-edit-item .btn-add,.application-detail-page .uri-edit-mode .uri-add-item .btn-remove,.application-detail-page .uri-edit-mode .uri-add-item .btn-add{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:.375rem;cursor:pointer;transition:all .2s}.application-detail-page .uri-edit-mode .uri-edit-item .btn-remove,.application-detail-page .uri-edit-mode .uri-add-item .btn-remove{background-color:#fee2e2;color:#dc2626}.application-detail-page .uri-edit-mode .uri-edit-item .btn-remove:hover,.application-detail-page .uri-edit-mode .uri-add-item .btn-remove:hover{background-color:#fecaca}.application-detail-page .uri-edit-mode .uri-edit-item .btn-add,.application-detail-page .uri-edit-mode .uri-add-item .btn-add{background-color:#d1fae5;color:#16a34a}.application-detail-page .uri-edit-mode .uri-edit-item .btn-add:hover:not(:disabled),.application-detail-page .uri-edit-mode .uri-add-item .btn-add:hover:not(:disabled){background-color:#bbf7d0}.application-detail-page .uri-edit-mode .uri-edit-item .btn-add:disabled,.application-detail-page .uri-edit-mode .uri-add-item .btn-add:disabled{opacity:.5;cursor:not-allowed}.application-detail-page .uri-edit-mode .edit-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.application-detail-page .uri-edit-mode .edit-actions .btn-cancel,.application-detail-page .uri-edit-mode .edit-actions .btn-save{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.application-detail-page .uri-edit-mode .edit-actions .btn-cancel{background-color:#fff;border:1px solid #d1d5db;color:#374151}.application-detail-page .uri-edit-mode .edit-actions .btn-cancel:hover{background-color:#f9fafb}.application-detail-page .uri-edit-mode .edit-actions .btn-save{background-color:#3b82f6;color:#fff}.application-detail-page .uri-edit-mode .edit-actions .btn-save:hover:not(:disabled){background-color:#2563eb}.application-detail-page .uri-edit-mode .edit-actions .btn-save:disabled{opacity:.5;cursor:not-allowed}.application-detail-page .scope-list{display:flex;flex-wrap:wrap;gap:.5rem}.application-detail-page .scope-list .scope-badge{display:inline-block;padding:.25rem .75rem;background-color:#e5e7eb;color:#374151;border-radius:.375rem;font-size:.875rem}.application-detail-page .info-grid .info-item{margin-bottom:1rem}.application-detail-page .info-grid .info-item:last-child{margin-bottom:0}.application-detail-page .info-grid .info-item label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.25rem}.application-detail-page .info-grid .info-item p{color:#6b7280;font-size:.875rem;margin:0}.secret-modal,.regenerate-modal{padding:1rem}.secret-modal .warning-text,.regenerate-modal .warning-text{color:#dc2626;margin-bottom:1rem}.secret-modal .warning-text strong,.regenerate-modal .warning-text strong{font-weight:600}.secret-modal .secret-display,.regenerate-modal .secret-display{display:flex;gap:.5rem;margin-bottom:1.5rem}.secret-modal .secret-display .form-control,.regenerate-modal .secret-display .form-control{flex:1;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-family:Consolas,Monaco,monospace;background-color:#f9fafb}.secret-modal .modal-actions,.regenerate-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.secret-modal .modal-actions .btn-primary,.secret-modal .modal-actions .btn-cancel,.secret-modal .modal-actions .btn-danger,.regenerate-modal .modal-actions .btn-primary,.regenerate-modal .modal-actions .btn-cancel,.regenerate-modal .modal-actions .btn-danger{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.secret-modal .modal-actions .btn-primary,.regenerate-modal .modal-actions .btn-primary{background-color:#3b82f6;color:#fff}.secret-modal .modal-actions .btn-primary:hover,.regenerate-modal .modal-actions .btn-primary:hover{background-color:#2563eb}.secret-modal .modal-actions .btn-cancel,.regenerate-modal .modal-actions .btn-cancel{background-color:#fff;border:1px solid #d1d5db;color:#374151}.secret-modal .modal-actions .btn-cancel:hover,.regenerate-modal .modal-actions .btn-cancel:hover{background-color:#f9fafb}.secret-modal .modal-actions .btn-danger,.regenerate-modal .modal-actions .btn-danger{background-color:#dc2626;color:#fff}.secret-modal .modal-actions .btn-danger:hover:not(:disabled),.regenerate-modal .modal-actions .btn-danger:hover:not(:disabled){background-color:#b91c1c}.secret-modal .modal-actions .btn-danger:disabled,.regenerate-modal .modal-actions .btn-danger:disabled{opacity:.5;cursor:not-allowed}.secret-modal .loading,.regenerate-modal .loading{text-align:center;padding:4rem 2rem;color:#6b7280;font-size:1rem}.secret-modal .error-message,.regenerate-modal .error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#991b1b}.secret-modal .error-message .error-actions button,.regenerate-modal .error-message .error-actions button{margin:0 .5rem}.users-page{padding:24px;background-color:#f8f9fa;min-height:100vh}.users-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.search-section{padding:20px;display:flex;gap:16px;align-items:center;border-bottom:1px solid #e5e7eb}.search-wrapper{flex:1;position:relative;display:flex;align-items:center}.search-input::placeholder{color:#9ca3af}.status-filter{padding:10px 16px;border:1px solid #e5e7eb;border-radius:4px;font-size:14px;color:#374151;background-color:#fff;cursor:pointer;min-width:180px}.status-filter:focus{outline:none;border-color:#3b82f6}.users-table-container{overflow-x:auto}.users-table{width:100%;border-collapse:collapse;font-size:14px}.users-table th{background-color:#f9fafb;padding:12px 20px;text-align:left;font-weight:500;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap}.users-table td{padding:16px 20px;border-bottom:1px solid #f3f4f6;color:#374151}.users-table tbody tr:hover{background-color:#f9fafb}.users-table tbody tr:last-child td{border-bottom:none}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:16px;flex-shrink:0}.user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.email-cell{color:#374151}.date-cell{color:#6b7280}.role-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;background-color:#e0e7ff;color:#4c1d95}.status-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500}.status-badge.status-active{background-color:#d1fae5;color:#065f46}.status-badge.status-locked{background-color:#fee2e2;color:#991b1b}.status-badge.status-pending_verification{background-color:#fef3c7;color:#92400e}.status-badge.status-disabled{background-color:#e5e7eb;color:#374151}.action-buttons{display:flex;gap:8px;align-items:center}.action-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.action-btn span{display:inline-block}.details-btn{background-color:transparent;color:#6b7280;border:1px solid #e5e7eb}.details-btn:hover{background-color:#f3f4f6;border-color:#d1d5db}.lock-btn{background-color:#fef2f2;color:#dc2626;border:1px solid #fee2e2}.lock-btn:hover{background-color:#fee2e2;border-color:#fecaca}.activate-btn{background-color:#10b981;color:#fff;border:1px solid #10b981}.activate-btn:hover{background-color:#059669;border-color:#059669}.delete-btn{background-color:#ef4444;color:#fff;border:1px solid #ef4444}.delete-btn:hover{background-color:#dc2626;border-color:#dc2626}.modal-content{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;max-width:600px;width:90%;max-height:90vh;overflow:hidden;animation:slideIn .3s ease}.modal-content.large{max-width:800px}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1f2937}.modal-body{padding:24px;max-height:calc(90vh - 160px);overflow-y:auto}.modal-footer{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.user-detail{display:flex;flex-direction:column;gap:20px}.detail-row{display:flex;align-items:center;gap:16px}.detail-row label{font-weight:500;color:#6b7280;min-width:140px}.detail-row span{color:#1f2937;flex:1}@media (max-width: 1024px){.users-table{font-size:13px}.users-table th,.users-table td{padding:12px 16px}.action-buttons{flex-wrap:wrap}}@media (max-width: 768px){.search-section{flex-direction:column;align-items:stretch}.status-filter{width:100%}.users-table th:nth-child(5),.users-table td:nth-child(5),.users-table th:nth-child(6),.users-table td:nth-child(6){display:none}.modal-content{width:95%;margin:10px}.action-btn span{display:none}.action-btn{padding:6px 8px}}@media (max-width: 576px){.users-page{padding:16px}.users-table th:nth-child(3),.users-table td:nth-child(3){display:none}.user-cell{flex-direction:column;align-items:flex-start;gap:8px}.detail-row{flex-direction:column;align-items:flex-start;gap:4px}.detail-row label{min-width:unset}}.action-btn.role-btn{background-color:#8b5cf6;color:#fff;border:1px solid #8b5cf6}.action-btn.role-btn:hover{background-color:#7c3aed;border-color:#7c3aed}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background-color:#f3f4f6;color:#374151}.user-info-section{background-color:#f9fafb;padding:16px;border-radius:8px;margin-bottom:24px}.user-info-row{display:flex;align-items:center;margin-bottom:8px}.user-info-row:last-child{margin-bottom:0}.user-info-row label{font-weight:500;color:#6b7280;margin-right:12px;min-width:80px}.user-info-row span{color:#111827;font-weight:500}.roles-section{margin-bottom:24px}.roles-section h3{font-size:16px;font-weight:600;color:#111827;margin-bottom:16px}.roles-list{display:flex;flex-direction:column;gap:12px}.role-checkbox-item{display:flex;align-items:flex-start;padding:12px;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.role-checkbox-item:hover{background-color:#f9fafb;border-color:#d1d5db}.role-checkbox-item input[type=checkbox]{margin-right:12px;margin-top:2px;width:16px;height:16px;cursor:pointer}.role-radio-item{display:flex;align-items:flex-start;padding:12px;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;margin-bottom:8px}.role-radio-item:hover{background-color:#f9fafb;border-color:#d1d5db}.role-radio-item:has(input[type=radio]:checked){background-color:#eff6ff;border-color:#3b82f6}.role-radio-item input[type=radio]{margin-right:12px;margin-top:2px;width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.role-info{display:flex;flex-direction:column;gap:4px;flex:1}.role-name{font-weight:500;color:#111827;font-size:14px}.role-description{font-size:12px;color:#6b7280;line-height:1.4}.selected-roles-preview{background-color:#eff6ff;padding:16px;border-radius:8px;border:1px solid #bfdbfe}.selected-roles-preview h4{font-size:14px;font-weight:500;color:#1e40af;margin-bottom:12px}.role-tags{display:flex;flex-wrap:wrap;gap:8px}.role-tag{display:inline-block;padding:4px 12px;background-color:#3b82f6;color:#fff;border-radius:16px;font-size:12px;font-weight:500}.no-roles{color:#6b7280;font-size:14px;font-style:italic}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.roles-page{padding:1rem;max-width:none;margin:0;width:100%}.page-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.page-header h1{font-size:2rem;font-weight:700;color:var(--text-primary, #111827);margin-bottom:1rem}.header-actions{display:flex;gap:1rem;margin-top:1rem}.page-description{color:#1f2937;font-size:1rem;line-height:1.6;margin-bottom:2rem}.roles-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem}.role-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.75rem;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.role-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.role-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.role-name{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.system-role-badge{background:#f3f4f6;color:#6b7280;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.role-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin-bottom:1.25rem;min-height:2.5rem}.role-permissions{background:#f9fafb;border-radius:8px;padding:1rem;margin-bottom:1.25rem}.role-permissions h3{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.permissions-list,.permission-tags{display:flex;flex-wrap:wrap;gap:.5rem}.permission-tag{background:#3b82f6;color:#fff;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:500}.no-permissions{color:#9ca3af;font-size:.875rem;font-style:italic}.role-meta{display:flex;gap:2rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid #e5e7eb}.role-meta>div{display:flex;align-items:center;gap:.5rem}.role-meta .label{color:#6b7280;font-size:.875rem}.role-meta .value{color:#1f2937;font-weight:600;font-size:.875rem}.role-actions{display:flex;gap:.75rem}.role-actions button{flex:1;padding:.5rem 1rem;font-size:.875rem;border-radius:6px;transition:all .15s ease;color:inherit!important;border:1px solid transparent;cursor:pointer}.role-actions button:only-child{max-width:50%}.role-actions .button-secondary{background-color:#f3f4f6!important;color:#374151!important;border-color:#e5e7eb!important}.role-actions .button-secondary:hover{background-color:#e5e7eb!important;color:#111827!important}.role-actions .button-danger{background-color:#fee2e2!important;color:#dc2626!important;border-color:#fecaca!important}.role-actions .button-danger:hover:not(:disabled){background-color:#fecaca!important;color:#b91c1c!important}.role-actions .button-danger:disabled{background-color:#f9fafb!important;color:#9ca3af!important;border-color:#e5e7eb!important;cursor:not-allowed!important;opacity:.6!important}.system-role-note,.role-in-use-note{margin-top:.75rem;padding:.5rem .75rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;color:#78350f;font-size:.75rem;text-align:center}.role-form{padding:1rem 0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-group input,.form-group textarea{width:100%;padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .15s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.required{color:#ef4444}.permissions-selector{max-height:400px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;background:#f9fafb}.permission-category{margin-bottom:1.5rem}.permission-category h4{font-size:.875rem;font-weight:600;color:#1f2937;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.permission-options{display:flex;flex-direction:column;gap:.75rem}.permission-option{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#fff;border-radius:6px;cursor:pointer;transition:background-color .15s ease}.permission-option:hover{background:#f3f4f6}.permission-option input[type=checkbox]{margin-top:.125rem;cursor:pointer}.permission-name{font-weight:500;color:#1f2937;margin-bottom:.25rem}.permission-description{font-size:.75rem;color:#6b7280;line-height:1.4}.modal-actions{display:flex;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.modal-actions button{flex:1;padding:.625rem 1.25rem}.loading{text-align:center;padding:4rem 2rem;color:#6b7280;font-size:1rem}.error-message{text-align:center;padding:3rem 2rem;background:#fee;border:1px solid #fcc;border-radius:8px;color:#991b1b}.error-message button{margin-top:1rem}@media (max-width: 768px){.roles-page{padding:1rem}.roles-list{grid-template-columns:1fr}.header-actions{flex-direction:column}.role-meta{flex-direction:column;gap:.5rem}}.system-role-warning{color:#ef4444;font-size:.875rem;font-style:italic;margin-top:.75rem;padding:.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;text-align:center}@media (prefers-color-scheme: dark){.roles-page{color:#e5e7eb}.role-card{background:#1f2937;border-color:#374151}.role-card:hover{border-color:#60a5fa}.role-name{color:#f3f4f6}.role-description{color:#9ca3af}.role-permissions{background:#111827}.permission-tag{background:#2563eb}.role-meta .label{color:#9ca3af}.role-meta .value{color:#e5e7eb}.system-role-warning{background:#1f2937;border-color:#374151;color:#fca5a5}}.modal-overlay{background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;padding:0}.modal-header{padding:24px 24px 0;border-bottom:1px solid #e5e7eb;margin-bottom:24px}.modal-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 8px}.modal-description{font-size:14px;color:#6b7280;margin:0 0 20px}.modal-body{padding:0 24px 24px}.role-form .form-group{margin-bottom:20px}.role-form label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.role-form label .required{color:#ef4444;margin-left:4px}.role-form input[type=text],.role-form textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#111827!important;background-color:#fff!important;transition:all .2s;-webkit-text-fill-color:#111827!important}.role-form input[type=text]:focus,.role-form textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;background-color:#fff!important;color:#111827!important;-webkit-text-fill-color:#111827!important}.modal-content .input-field{color:#111827!important;background-color:#fff!important;-webkit-text-fill-color:#111827!important}.role-form textarea{min-height:80px;resize:vertical;font-family:inherit}.permissions-section{margin-top:24px}.permissions-section h3{font-size:16px;font-weight:600;color:#111827;margin-bottom:12px}.permissions-selector{border:1px solid #e5e7eb;border-radius:8px;max-height:300px;overflow-y:auto;background-color:#f9fafb}.permission-category{padding:16px;border-bottom:1px solid #e5e7eb}.permission-category:last-child{border-bottom:none}.permission-category h4{font-size:14px;font-weight:600;color:#374151;margin-bottom:12px}.permission-option{display:flex;align-items:flex-start;padding:8px;margin:0 -8px;border-radius:6px;cursor:pointer;transition:background-color .15s}.permission-option:hover{background-color:#f3f4f6}.permission-option input[type=checkbox]{margin-top:2px;margin-right:12px;cursor:pointer}.permission-info{flex:1}.permission-name{font-size:14px;font-weight:500;color:#111827;margin-bottom:4px}.permission-description{font-size:12px;color:#6b7280;line-height:1.4}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;background-color:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 12px 12px;margin:0 -24px -24px}.modal-actions button{padding:10px 20px;font-size:14px;font-weight:600;border-radius:6px;transition:all .2s;cursor:pointer}.button-secondary{background-color:#fff;color:#374151;border:1px solid #d1d5db}.button-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.button-primary{background-color:#6366f1;color:#fff;border:none}.button-primary:hover{background-color:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.button-primary:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none}.modal-close{position:absolute;top:20px;right:20px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s;color:#6b7280}.modal-close:hover{background-color:#f3f4f6;color:#111827}.modal-content .loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#6b7280}.modal-content .error-message{background-color:#fef2f2;color:#991b1b;padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px}.modal-content input[type=text],.modal-content input[type=email],.modal-content input[type=password],.modal-content input[type=number],.modal-content textarea,.modal-content select,.modal-content .input-field,.modal-content .form-control,.modal-content .form-input,.modal input[type=text],.modal input[type=email],.modal input[type=password],.modal input[type=number],.modal textarea,.modal select,.modal .input-field,.modal .form-control,.modal .form-input{color:#1e293b!important;background-color:#fff!important;-webkit-text-fill-color:#1e293b!important;opacity:1!important;visibility:visible!important}.role-form input,.role-form textarea,.role-form select,.role-edit-modal input,.role-edit-modal textarea,.role-edit-modal select{color:#1e293b!important;background-color:#fff!important;-webkit-text-fill-color:#1e293b!important;opacity:1!important}.modal-content input:focus,.modal-content textarea:focus,.modal-content select:focus,.modal input:focus,.modal textarea:focus,.modal select:focus{color:#1e293b!important;background-color:#fff!important;-webkit-text-fill-color:#1e293b!important}.modal-content label,.modal label,.role-form label{color:#374151!important;opacity:1!important}.modal-content input::placeholder,.modal-content textarea::placeholder,.modal input::placeholder,.modal textarea::placeholder{color:#9ca3af!important;-webkit-text-fill-color:#9ca3af!important;opacity:1!important}button,.button,[class*=button-]{color:inherit!important;-webkit-text-fill-color:unset!important;opacity:1!important;visibility:visible!important}.role-actions button{color:inherit!important;-webkit-text-fill-color:unset!important;text-shadow:none!important;font-weight:500!important}.role-actions .button-secondary{color:#374151!important;-webkit-text-fill-color:#374151!important}.role-actions .button-danger{color:#dc2626!important;-webkit-text-fill-color:#dc2626!important}.role-actions .button-danger:disabled{color:#9ca3af!important;-webkit-text-fill-color:#9ca3af!important}.header-actions button,.header-actions .button-primary{color:#667eea!important;-webkit-text-fill-color:#667eea!important}.modal-actions button{color:inherit!important;-webkit-text-fill-color:unset!important}.modal-actions .button-primary{color:#fff!important;-webkit-text-fill-color:white!important}.modal-actions .button-secondary{color:#374151!important;-webkit-text-fill-color:#374151!important}.modal-actions .button-danger{color:#fff!important;-webkit-text-fill-color:white!important}.api-monitoring-page{padding:0 16px 24px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-title{font-size:24px;font-weight:600;margin:0 0 8px}.page-description{color:#666;margin:0;font-size:14px}.header-actions{display:flex;align-items:center;gap:16px}.time-range-selector{display:flex;align-items:center;gap:8px}.time-range-selector label{font-size:14px;color:#4b5563}.time-range-selector select{padding:8px 28px 8px 12px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;font-size:14px;color:#1f2937}.stats-overview{margin-bottom:24px}.stats-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #00000014}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.stat-box{padding:16px;border-radius:6px;background-color:#f9fafb;transition:background-color .2s}.stat-box:hover{background-color:#f3f4f6}.stat-label{font-size:14px;color:#6b7280;margin-bottom:8px}.stat-value{font-size:24px;font-weight:600;color:#1f2937;margin-bottom:4px}.stat-period{font-size:12px;color:#9ca3af}.table-container{width:100%;overflow-x:auto;margin-bottom:16px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.data-table th{background-color:#f9fafb;font-weight:600;color:#374151}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background-color:#f9fafb}.user-name{font-weight:500;margin-bottom:4px}.user-email{color:#666;font-size:13px}.endpoint-cell{font-family:monospace;color:#1f2937}.error-cell{min-width:120px}.error-code{font-weight:600;margin-bottom:4px}.error-message{color:#dc2626;font-size:13px}.error-rate-high{color:#dc2626;font-weight:600}.filter-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.filter-control{display:flex;align-items:center;gap:8px}.filter-control label{font-size:14px;white-space:nowrap}.filter-control select{padding:8px 24px 8px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;font-size:14px;min-width:120px}.loading-container .spinner{width:48px;height:48px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@media (max-width: 1024px){.page-header{flex-direction:column;align-items:flex-start}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.data-table th:nth-child(5),.data-table td:nth-child(5){display:none}}@media (max-width: 576px){.stats-grid{grid-template-columns:1fr 1fr}.data-table th:nth-child(4),.data-table td:nth-child(4),.data-table th:nth-child(6),.data-table td:nth-child(6){display:none}}.settings-page{padding:24px;background-color:#f8f9fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;flex-wrap:wrap;gap:16px}.page-title{font-size:32px;font-weight:700;color:#1a1a1a;margin:0 0 8px;letter-spacing:-.5px}.page-description{color:#6b7280;font-size:15px;line-height:1.6;max-width:600px;margin:0}.alert{padding:16px;border-radius:8px;margin-bottom:24px;font-size:14px}.alert-info{background-color:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.settings-content{display:flex;flex-direction:column;gap:32px}.settings-category{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:box-shadow .3s ease}.settings-category:hover{box-shadow:0 4px 12px #00000014}.category-title{font-size:18px;font-weight:600;color:#1f2937;margin:0;padding:20px 24px;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.settings-grid{padding:24px;display:flex;flex-direction:column;gap:24px}.setting-item{display:flex;flex-direction:column;gap:8px;padding-bottom:24px;border-bottom:1px solid #f3f4f6}.setting-item:last-child{padding-bottom:0;border-bottom:none}.setting-header{display:flex;align-items:center;gap:8px}.setting-label{font-size:15px;font-weight:600;color:#374151;margin:0}.restart-badge{font-size:11px;font-weight:500;color:#dc2626;background-color:#fee2e2;padding:2px 8px;border-radius:12px;white-space:nowrap}.setting-control{display:flex;align-items:center}.setting-description{font-size:13px;color:#6b7280;line-height:1.5;margin:0}.setting-input,.setting-select,.setting-textarea{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#374151;background-color:#fff;transition:all .2s ease}.setting-input:focus,.setting-select:focus,.setting-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.setting-input:disabled,.setting-select:disabled,.setting-textarea:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.setting-textarea{resize:vertical;min-height:100px;line-height:1.5}.toggle-switch{position:relative;display:inline-block;width:48px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-label{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#e5e7eb;transition:.3s;border-radius:24px}.toggle-switch-handle{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-label{background-color:#3b82f6}.toggle-switch input:checked+.toggle-label .toggle-switch-handle{transform:translate(24px)}.toggle-switch input:disabled+.toggle-label{opacity:.5;cursor:not-allowed}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.btn-primary:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-secondary:hover:not(:disabled){background-color:#4b5563;transform:translateY(-1px);box-shadow:0 4px 12px #6b72804d}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;max-width:500px;width:90%;max-height:90vh;overflow:hidden;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:24px;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:20px;font-weight:600;color:#1f2937}.modal-body{padding:24px}.warning-text{font-size:16px;font-weight:500;color:#dc2626;margin:0 0 16px;display:flex;align-items:center;gap:8px}.modal-body p{font-size:14px;color:#6b7280;line-height:1.6;margin:0}.modal-footer{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px;background-color:#f9fafb}@media (max-width: 768px){.settings-page{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.page-title{font-size:24px}.header-actions{width:100%;justify-content:flex-start}.settings-grid{padding:16px}.setting-item{gap:12px}.modal-content{width:95%;margin:10px}}.setting-item:has(.toggle-switch) .setting-control{min-height:44px}.setting-item:hover .setting-label{color:#1f2937}.settings-page[data-editing=true] .setting-input:not(:disabled),.settings-page[data-editing=true] .setting-select:not(:disabled),.settings-page[data-editing=true] .setting-textarea:not(:disabled){border-color:#3b82f6;background-color:#eff6ff}.category-title:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;vertical-align:middle;background-size:contain}.category-title:contains("基本設定"):before{content:"";display:inline-block;width:20px;height:20px;background:linear-gradient(135deg,#6b7280,#4b5563);border-radius:50%;margin-right:8px;vertical-align:middle}.category-title:contains("メール設定"):before{content:"📧"}.category-title:contains("地域設定"):before{content:"🌍"}.category-title:contains("認証設定"):before{content:"";display:inline-block;width:20px;height:20px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:4px;margin-right:8px;vertical-align:middle}.category-title:contains("メンテナンス"):before{content:"";display:inline-block;width:20px;height:20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:4px;margin-right:8px;vertical-align:middle}.audit-logs-page{padding:24px;background-color:#f8f9fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-title{font-size:28px;font-weight:600;color:#1a1a1a;margin:0 0 8px}.page-description{color:#6b7280;font-size:14px;line-height:1.5;max-width:600px;margin:0}.header-actions{display:flex;gap:12px;align-items:center}.alert{padding:16px;border-radius:8px;margin-bottom:20px;font-size:14px}.alert-danger{background-color:#fee2e2;color:#dc2626;border:1px solid #fecaca}.audit-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.filter-section{padding:20px;display:flex;gap:12px;align-items:center;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}.search-wrapper{flex:1;min-width:250px;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:16px;font-size:18px;color:#6b7280;pointer-events:none}.search-input{width:100%;padding:10px 16px 10px 45px;border:1px solid #e5e7eb;border-radius:4px;font-size:14px;color:#374151;background-color:#f9fafb;transition:all .2s ease}.search-input:focus{outline:none;border-color:#3b82f6;background-color:#fff}.filter-select,.date-input{padding:10px 16px;border:1px solid #e5e7eb;border-radius:4px;font-size:14px;color:#374151;background-color:#fff;cursor:pointer;min-width:150px}.filter-select:focus,.date-input:focus{outline:none;border-color:#3b82f6}.date-input{min-width:200px}.logs-summary{padding:16px 20px;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:14px;color:#6b7280}.logs-table-container{overflow-x:auto}.logs-table{width:100%;border-collapse:collapse;font-size:14px}.logs-table th{background-color:#f9fafb;padding:12px 20px;text-align:left;font-weight:500;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap}.logs-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.logs-table th.sortable:hover{background-color:#f3f4f6}.logs-table th.sorted{color:#3b82f6}.sort-icon{margin-left:4px;font-size:10px;vertical-align:middle}.logs-table td{padding:16px 20px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:top}.logs-table tbody tr:hover{background-color:#f9fafb}.logs-table tbody tr:last-child td{border-bottom:none}.timestamp-cell{color:#6b7280;font-size:13px;white-space:nowrap}.user-cell .user-info{display:flex;flex-direction:column;gap:2px}.user-name{font-weight:500;color:#1f2937}.user-id{font-size:12px;color:#6b7280;font-family:monospace}.resource-cell .resource-info{display:flex;flex-direction:column;gap:4px}.resource-type{font-size:13px;font-weight:500;color:#4b5563}.resource-id{font-size:12px;color:#6b7280;font-family:monospace;background-color:#f3f4f6;padding:2px 6px;border-radius:4px;display:inline-block}.details-cell{font-size:13px;color:#6b7280;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.severity-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;text-transform:uppercase}.severity-badge.severity-info{background-color:#dbeafe;color:#1e40af}.severity-badge.severity-warning{background-color:#fef3c7;color:#92400e}.severity-badge.severity-critical{background-color:#fee2e2;color:#991b1b}.ip-cell{font-family:monospace;font-size:13px;color:#6b7280}tr.severity-critical{background-color:#fee2e21a}tr.severity-critical:hover{background-color:#fee2e233}tr.severity-warning{background-color:#fef3c71a}tr.severity-warning:hover{background-color:#fef3c733}.empty-row td{padding:0!important}.empty-state{text-align:center;padding:60px 20px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{font-size:16px;margin:0}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px;border-top:1px solid #e5e7eb}.pagination-btn{padding:8px 16px;border:1px solid #e5e7eb;border-radius:4px;background-color:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:14px;color:#6b7280}.current-page{font-weight:600;color:#3b82f6}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-primary:disabled{background-color:#93bbfc;cursor:not-allowed}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.reset-btn{padding:10px 16px;font-size:14px}.export-btn{display:flex;align-items:center;gap:6px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#6b7280}.spinner{width:48px;height:48px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (max-width: 1024px){.filter-section{flex-wrap:wrap}.search-wrapper{width:100%;min-width:unset}.filter-select,.date-input{flex:1;min-width:140px}}@media (max-width: 768px){.audit-logs-page{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.header-actions{width:100%;justify-content:flex-start}.filter-section{flex-direction:column;align-items:stretch}.filter-select,.date-input{width:100%}.logs-table{font-size:13px}.logs-table th,.logs-table td{padding:12px 16px}.logs-table th:nth-child(5),.logs-table td:nth-child(5),.logs-table th:nth-child(7),.logs-table td:nth-child(7){display:none}}@media (max-width: 576px){.logs-table th,.logs-table td{padding:10px 12px}.logs-table th:nth-child(4),.logs-table td:nth-child(4){display:none}.pagination-btn{padding:6px 12px;font-size:13px}}.legal-page{min-height:100vh;background-color:#f8f9fa;padding:40px 20px}.legal-container{max-width:800px;margin:0 auto;background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #00000014;overflow:hidden}.legal-header{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:60px 40px;text-align:center}.legal-header h1{font-size:36px;font-weight:700;margin:0 0 12px;letter-spacing:-.5px}.legal-subtitle{font-size:18px;font-weight:400;margin:0 0 20px;opacity:.9}.legal-date{font-size:14px;opacity:.8;margin:0}.legal-content{padding:60px 40px;line-height:1.8;color:#374151}.legal-content section{margin-bottom:48px}.legal-content section:last-child{margin-bottom:0}.legal-content h2{font-size:24px;font-weight:600;color:#1f2937;margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.legal-content h3{font-size:18px;font-weight:600;color:#374151;margin:24px 0 12px}.legal-content p{margin:0 0 16px;font-size:16px}.legal-content .intro{font-size:17px;line-height:1.8;color:#4b5563;margin-bottom:32px}.legal-content ul,.legal-content ol{margin:0 0 16px;padding-left:32px}.legal-content li{margin-bottom:8px;font-size:16px}.legal-content ul ul,.legal-content ol ul{margin-top:8px;margin-bottom:8px}.contact-info{background-color:#f3f4f6;border-radius:6px;padding:24px;margin-top:16px}.contact-info p{margin:0 0 8px;font-size:15px}.contact-info p:last-child{margin-bottom:0}.contact-info strong{color:#1f2937}.legal-footer{padding:32px 40px;background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.back-link,.legal-link{display:inline-flex;align-items:center;padding:10px 20px;border-radius:6px;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s ease}.back-link{background-color:#6b7280;color:#fff}.back-link:hover{background-color:#4b5563;transform:translateY(-1px)}.legal-link{background-color:#fff;color:#3b82f6;border:1px solid #3b82f6}.legal-link:hover{background-color:#3b82f6;color:#fff}.legal-content a{color:#3b82f6;text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s ease}.legal-content a:hover{border-bottom-color:#3b82f6}@media (max-width: 768px){.legal-page{padding:20px 16px}.legal-header{padding:40px 24px}.legal-header h1{font-size:28px}.legal-subtitle{font-size:16px}.legal-content{padding:40px 24px}.legal-content h2{font-size:20px}.legal-content h3{font-size:17px}.legal-content p,.legal-content li{font-size:15px}.legal-content ul,.legal-content ol{padding-left:24px}.legal-footer{padding:24px}.back-link,.legal-link{font-size:14px;padding:8px 16px}}@media (max-width: 480px){.legal-header{padding:32px 20px}.legal-header h1{font-size:24px}.legal-content{padding:32px 20px}.legal-content section{margin-bottom:36px}.legal-footer{flex-direction:column;align-items:stretch;gap:12px}.back-link,.legal-link{text-align:center;width:100%}}@media print{.legal-page{background-color:#fff;padding:0}.legal-container{box-shadow:none;border-radius:0}.legal-header{background:none;color:#000;padding:20px 0}.legal-header h1,.legal-subtitle,.legal-date{color:#000}.legal-footer{display:none}.legal-content a{color:#000;text-decoration:underline}}.mobile-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:99}@media (max-width: 768px){.mobile-menu-open .mobile-overlay{display:block}.mobile-menu-open .app-sidebar,.app-sidebar.mobile-open{transform:translate(0)!important}.main-container{margin-left:0!important;padding-left:0!important}.content-area{margin-left:0!important;padding:1rem!important}.page-container{padding-left:0!important}.app-sidebar{position:fixed;top:64px;left:0;height:calc(100vh - 64px);width:280px!important;max-width:80vw;transform:translate(-100%);transition:transform .3s ease;box-shadow:2px 0 8px #00000026;z-index:100}.app-sidebar.mobile-open{transform:translate(0)}.app-sidebar .collapse-button{display:none!important}}@media (max-width: 480px){.app-header{padding:.5rem!important}.logo-text{font-size:1rem!important}.app-sidebar{width:240px!important}.content-area{padding:.5rem!important}.card{padding:.75rem!important}table{font-size:.875rem!important}}@media (max-width: 768px){.app-footer{margin-left:0!important;padding:1rem!important}.footer-content{flex-direction:column!important;gap:2rem!important}.footer-links{flex-direction:column!important;gap:2rem!important;width:100%!important}.footer-bottom{flex-direction:column!important;gap:1rem!important;text-align:center!important}}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5;color:#333;background-color:#f8fafc}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}a{color:#4361ee;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}.error-message{background-color:#fff5f5;color:#e53e3e;padding:.75rem;border-radius:.25rem;margin-bottom:1.25rem;font-size:.875rem;border-left:3px solid #e53e3e}.modal input,.modal textarea,.modal-content input,.modal-content textarea,.modal-backdrop input,.modal-backdrop textarea,input.input-field,textarea.input-field{background:#fff!important;background-color:#fff!important;color:#000!important;-webkit-text-fill-color:#000000!important;opacity:1!important;border:2px solid #cbd5e1!important}.modal label,.modal-content label{color:#000!important;-webkit-text-fill-color:#000000!important}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.loading-container .spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#4361ee;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-container p{color:#666;font-size:.875rem}@keyframes spin{to{transform:rotate(360deg)}}.not-found-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.not-found-container .not-found-content{text-align:center;max-width:500px}.not-found-container .not-found-content h1{font-size:6rem;font-weight:700;color:#4361ee;margin-bottom:0;line-height:1}.not-found-container .not-found-content h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.not-found-container .not-found-content p{color:#666;margin-bottom:2rem}.not-found-container .not-found-content button{padding:.75rem 1.5rem;border:none;border-radius:.25rem;background-color:#4361ee;color:#fff;font-weight:500;transition:background-color .2s}.not-found-container .not-found-content button:hover{background-color:#3652d9}.btn-primary{display:inline-block;background-color:#1e40af!important;color:#fff!important;font-weight:700!important;padding:.875rem 2rem!important;border:2px solid #1e40af!important;border-radius:.375rem!important;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 3px rgba(0,0,0,.3)!important;box-shadow:0 2px 4px #0003!important;letter-spacing:.025em!important}.btn-primary:hover:not(:disabled){background-color:#1e3a8a!important;border-color:#1e3a8a!important;transform:translateY(-1px);box-shadow:0 4px 12px #1e40af66!important}.btn-primary:active:not(:disabled){background-color:#172554!important;border-color:#172554!important;transform:translateY(0);box-shadow:0 1px 3px #0000004d!important}.btn-primary:focus:not(:disabled){outline:3px solid #60a5fa!important;outline-offset:2px!important}.btn-primary:disabled{background-color:#6b7280!important;border-color:#6b7280!important;opacity:.8!important;cursor:not-allowed;box-shadow:none!important}.text-center{text-align:center}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:2rem}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background-color:#fff;height:64px;border-bottom:1px solid #e5e7eb;position:fixed;top:0;left:0;right:0;z-index:1000;box-shadow:0 1px 3px #0000000d}.header-left{display:flex;align-items:center}.header-left .sidebar-toggle{background:none;border:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin-right:1rem;border-radius:4px;cursor:pointer}.header-left .sidebar-toggle:hover{background-color:#f3f4f6}.header-left .sidebar-toggle .toggle-icon{width:18px;height:2px;background-color:#4b5563;position:relative}.header-left .sidebar-toggle .toggle-icon:before,.header-left .sidebar-toggle .toggle-icon:after{content:"";width:18px;height:2px;background-color:#4b5563;position:absolute;left:0}.header-left .sidebar-toggle .toggle-icon:before{top:-6px}.header-left .sidebar-toggle .toggle-icon:after{bottom:-6px}.header-left .logo{display:flex;align-items:center;text-decoration:none}.header-left .logo a{display:flex;align-items:center;text-decoration:none;color:#1f2937}.header-left .logo .logo-image{width:32px;height:32px;margin-right:.5rem}.header-left .logo .logo-text{font-size:1.25rem;font-weight:600}.header-center{display:flex;align-items:center;justify-content:center;flex:1}.header-center .region-selector{display:flex;align-items:center}.header-center .region-selector .region-label{margin-right:.5rem;font-size:.875rem;color:#6b7280}.header-center .region-selector .region-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#f9fafb;border:1px solid #e5e7eb;padding:.375rem 2rem .375rem .75rem;border-radius:4px;font-size:.875rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3e%3cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.header-center .region-selector .region-select:focus{outline:none;border-color:#4361ee;box-shadow:0 0 0 2px #4361ee33}.header-right{display:flex;align-items:center}.header-right .header-actions{display:flex;align-items:center;position:relative}.header-right .notification-button{background:none;border:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin-right:1rem;border-radius:4px;position:relative;cursor:pointer}.header-right .notification-button:hover{background-color:#f3f4f6}.header-right .notification-button.active{background-color:#e5e7eb}.header-right .notification-button .notification-icon{font-size:1.25rem}.header-right .notification-button .notification-badge{position:absolute;top:0;right:0;background-color:#ef4444;color:#fff;font-size:.75rem;font-weight:600;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.user-menu-container{position:relative}.user-menu-container .user-button{display:flex;align-items:center;background:none;border:none;padding:.5rem;border-radius:4px;cursor:pointer}.user-menu-container .user-button:hover{background-color:#f3f4f6}.user-menu-container .user-button .user-avatar{width:32px;height:32px;border-radius:50%;margin-right:.5rem}.user-menu-container .user-button .user-initials{width:32px;height:32px;border-radius:50%;background-color:#4361ee;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;margin-right:.5rem}.user-menu-container .user-button .user-name{margin-right:.5rem;font-weight:500}.user-menu-container .user-button .dropdown-icon{font-size:.75rem;color:#6b7280}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;width:280px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1000;overflow:hidden}.user-dropdown .user-dropdown-header{padding:1rem;border-bottom:1px solid #e5e7eb}.user-dropdown .user-dropdown-header .user-info .user-name{font-weight:600;margin-bottom:.25rem}.user-dropdown .user-dropdown-header .user-info .user-email{font-size:.875rem;color:#6b7280}.user-dropdown .user-dropdown-items{padding:.5rem 0}.user-dropdown .user-dropdown-items .dropdown-item{display:flex;align-items:center;padding:.75rem 1rem;color:#1f2937;text-decoration:none;transition:background-color .2s}.user-dropdown .user-dropdown-items .dropdown-item:hover{background-color:#f3f4f6;text-decoration:none}.user-dropdown .user-dropdown-items .dropdown-item .item-icon{margin-right:.75rem;width:20px;display:flex;align-items:center;justify-content:center}.user-dropdown .user-dropdown-items .dropdown-item.text-danger{color:#dc2626}.user-dropdown .user-dropdown-items .dropdown-divider{height:1px;background-color:#e5e7eb;margin:.5rem 0}.user-dropdown .user-dropdown-items button.dropdown-item{width:100%;text-align:left;background:none;border:none;cursor:pointer;font:inherit}.notifications-dropdown{position:absolute;top:calc(100% + .5rem);right:0;width:360px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1000;overflow:hidden}.notifications-dropdown .notifications-header{padding:1rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.notifications-dropdown .notifications-header h3{margin:0;font-size:1rem;font-weight:600}.notifications-dropdown .notifications-header .mark-all-read{font-size:.875rem;color:#4361ee;background:none;border:none;cursor:pointer}.notifications-dropdown .notifications-header .mark-all-read:hover{text-decoration:underline}.notifications-dropdown .notifications-list{max-height:360px;overflow-y:auto}.notifications-dropdown .notifications-list .notification-item{display:flex;padding:1rem;border-bottom:1px solid #e5e7eb}.notifications-dropdown .notifications-list .notification-item:last-child{border-bottom:none}.notifications-dropdown .notifications-list .notification-item.unread{background-color:#f0f7ff}.notifications-dropdown .notifications-list .notification-item .notification-icon{margin-right:1rem;font-size:1.25rem}.notifications-dropdown .notifications-list .notification-item .notification-content{flex:1}.notifications-dropdown .notifications-list .notification-item .notification-content .notification-title{font-weight:600;margin-bottom:.25rem}.notifications-dropdown .notifications-list .notification-item .notification-content .notification-message{font-size:.875rem;color:#4b5563;margin-bottom:.5rem}.notifications-dropdown .notifications-list .notification-item .notification-content .notification-time{font-size:.75rem;color:#6b7280}.notifications-dropdown .notifications-footer{padding:.75rem;text-align:center;border-top:1px solid #e5e7eb}.notifications-dropdown .notifications-footer .view-all{font-size:.875rem;color:#4361ee}.notifications-dropdown .notifications-footer .view-all:hover{text-decoration:underline}.auth-buttons{display:flex;align-items:center}.auth-buttons .login-button{margin-right:1rem;color:#4361ee;font-weight:500}.auth-buttons .login-button:hover{text-decoration:underline}.auth-buttons .signup-button{padding:.5rem 1rem;background-color:#4361ee;color:#fff;border-radius:4px;font-weight:500}.auth-buttons .signup-button:hover{background-color:#3652d9;text-decoration:none}@media (max-width: 768px){.app-header{padding:.75rem 1rem}.header-center{display:none}.logo-text{display:block}.user-button .user-name{display:none}.notifications-dropdown{width:320px;right:-8px}.sidebar-toggle{display:flex!important}}@media (max-width: 480px){.notifications-dropdown{width:calc(100vw - 2rem);right:-8px}}:root{--header-height: 64px;--sidebar-width: 240px;--sidebar-collapsed-width: 64px}.page-container{display:flex;flex-direction:column;min-height:100vh;background-color:#f8fafc}.app-footer{margin-top:auto}.main-container{display:flex;flex:1;padding-top:var(--header-height)}.content-area{margin-left:240px;margin-left:var(--sidebar-width, 240px);flex:1;padding:1.5rem;background-color:#f8fafc;min-height:calc(100vh - var(--header-height, 64px));transition:margin-left .3s ease}.sidebar-collapsed .content-area{margin-left:var(--sidebar-collapsed-width, 64px)}@media (max-width: 768px){.content-area{margin-left:0;padding:1rem}}.debug-layout .page-container{border:2px solid red}.debug-layout .main-container{border:2px solid blue}.debug-layout .app-header{border:2px solid green}.debug-layout .app-sidebar{border:2px solid orange}.debug-layout .content-area{border:2px solid purple}.delete-account-page{max-width:800px;margin:0 auto;padding:2rem 1rem}.warning-card{background-color:#fee2e24d}.warning-card .warning-icon{font-size:2rem;color:#e53e3e;margin-right:1rem;display:flex;align-items:center;justify-content:center}.warning-card .warning-message{display:flex;align-items:flex-start}.warning-card .warning-message .warning-content{flex:1}.warning-card .warning-message .warning-content h3{color:#e53e3e;margin-bottom:1rem;font-size:1.25rem}.warning-card .warning-message .warning-content p{margin-bottom:.75rem}.warning-card .warning-message .warning-content ul{margin-left:1.5rem;margin-bottom:1rem}.warning-card .warning-message .warning-content strong{font-weight:600;color:#e53e3e}.confirmation-form .account-info{margin-bottom:1.5rem;padding:1rem;background-color:#f8fafc;border-radius:4px}.confirmation-form .account-info .info-row{display:flex;margin-bottom:.5rem}.confirmation-form .account-info .info-row label{width:150px;font-weight:500}.confirmation-form .account-info .info-row .value{font-weight:400}.confirmation-form .form-group{margin-bottom:1.25rem}.confirmation-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500}.confirmation-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.final-confirmation p{margin-bottom:1.5rem;line-height:1.5}.final-confirmation .modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.feedback-form p,.feedback-form .radio-group{margin-bottom:1rem}.feedback-form .radio-group .radio-option{margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.feedback-form textarea{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:4px;margin-bottom:1rem}.feedback-form .modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.contact-page{max-width:1200px;margin:0 auto;padding:2rem 1rem}.contact-header{margin-bottom:2rem}.contact-header h2{font-size:1.8rem;margin-bottom:.5rem;color:#4361ee}.contact-header p{color:#64748b;font-size:1rem;line-height:1.5;max-width:800px}.contact-content{display:flex;flex-direction:column;gap:1.5rem}@media (min-width: 768px){.contact-content{flex-direction:row}}.contact-form-container{flex:1;min-width:0}.contact-sidebar{width:100%}@media (min-width: 768px){.contact-sidebar{width:350px}}.contact-sidebar{display:flex;flex-direction:column;gap:1.5rem}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.contact-form .form-group{display:flex;flex-direction:column;gap:.5rem}.contact-form .form-group label{font-weight:500;color:#334155}.contact-form .form-group .form-control{padding:.75rem;border:1px solid #e2e8f0;border-radius:4px;font-size:1rem}.contact-form .form-group .form-control:focus{outline:none;border-color:#4361ee;box-shadow:0 0 0 2px #4361ee33}.contact-form .form-group textarea.form-control{resize:vertical;min-height:120px}.contact-form .form-actions{margin-top:1rem;display:flex;justify-content:flex-end}.success-card{text-align:center;padding:2rem}.success-card .success-icon{width:60px;height:60px;border-radius:50%;background-color:#10b981;color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.success-card h3{font-size:1.5rem;margin-bottom:1rem;color:#4361ee}.success-card p{color:#64748b;margin-bottom:1.5rem;line-height:1.5}.contact-info-card{margin-bottom:1.5rem}.contact-info-card .contact-info{display:flex;flex-direction:column;gap:1.25rem}.contact-info-card .contact-item{display:flex;gap:1rem}.contact-info-card .contact-item .contact-icon{font-size:1.5rem;line-height:1;color:#4361ee}.contact-info-card .contact-item .contact-detail h4{font-size:1rem;font-weight:600;margin-bottom:.25rem;color:#334155}.contact-info-card .contact-item .contact-detail p{color:#64748b;font-size:.9rem;line-height:1.5}.faq-card p{color:#64748b;margin-bottom:1rem;font-size:.9rem;line-height:1.5}.faq-card .btn-outline{width:100%;text-align:center;color:#4361ee;background-color:transparent;border:1px solid #4361ee;transition:all .2s}.faq-card .btn-outline:hover{background-color:#4361ee0d}.audit-log-page{padding:1.5rem 0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.header-content{flex:1}.page-title{font-size:1.75rem;font-weight:600;margin-bottom:.5rem;color:#1f2937}.page-description{color:#6b7280;margin-bottom:1rem;max-width:800px}.header-actions{display:flex;gap:.75rem}.filter-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem;background-color:#f9fafb;border-radius:.375rem;border:1px solid #e5e7eb}.filter-section{display:flex;flex-wrap:wrap;gap:1rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;font-size:.875rem;color:#4b5563;white-space:nowrap}.filter-group select,.search-box input{border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem;color:#1f2937;background-color:#fff;outline:none;transition:border-color .2s}.filter-group select:focus,.search-box input:focus{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.search-box{min-width:240px}.search-box input{width:100%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.75rem center;background-size:1rem;padding-left:2.5rem}.log-table-container{width:100%;overflow-x:auto;margin-bottom:1rem;border-radius:.375rem;border:1px solid #e5e7eb}.log-table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.log-table th{background-color:#f3f4f6;color:#4b5563;font-weight:600;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;position:sticky;top:0;white-space:nowrap}.log-table td{padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;vertical-align:middle}.log-table tbody tr:hover{background-color:#f9fafb}.log-table .no-logs-row{text-align:center;color:#6b7280;padding:2rem}.timestamp-cell{white-space:nowrap;color:#4b5563;font-size:.8125rem}.action-cell{font-weight:500;color:#1f2937}.user-cell{min-width:180px}.user-info .user-name{font-weight:500;color:#1f2937;margin-bottom:.25rem}.user-info .user-email{font-size:.8125rem;color:#6b7280}.system-user{font-style:italic;color:#6b7280}.resource-cell{display:flex;flex-direction:column}.resource-type{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;margin-bottom:.25rem}.resource-id{font-family:monospace;font-size:.8125rem;color:#4b5563;background-color:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;display:inline-block}.severity-cell{text-align:center}.severity-badge{display:inline-block;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-align:center;min-width:80px}.severity-badge.info{background-color:#e0f2fe;color:#1e40af}.severity-badge.warning{background-color:#fef3c7;color:#92400e}.severity-badge.error{background-color:#fee2e2;color:#b91c1c}.severity-badge.critical{background-color:#dc2626;color:#fff;font-weight:600}.details-cell{text-align:center;white-space:nowrap}.details-button{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;border-radius:.25rem}.details-button svg{width:.875rem;height:.875rem}.table-pagination{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-top:1px solid #e5e7eb;font-size:.875rem}.pagination-info{color:#6b7280}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-button{background-color:#fff;border:1px solid #d1d5db;color:#374151;padding:.25rem .5rem;border-radius:.25rem;font-size:.875rem;transition:all .2s;cursor:pointer}.pagination-button:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-page{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background-color:#4f46e5;color:#fff;border-radius:.25rem;font-weight:500}button.export-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#374151;font-weight:500;cursor:pointer;transition:all .2s}button.export-button:hover{background-color:#f3f4f6;border-color:#9ca3af}button.export-button svg{width:1rem;height:1rem}tr.severity-critical{background-color:#fee2e24d}tr.severity-critical:hover{background-color:#fee2e280!important}tr.severity-error{background-color:#fef2f233}tr.severity-warning{background-color:#fffbeb33}@media (max-width: 992px){.filter-toolbar{flex-direction:column;align-items:stretch}.filter-section{margin-bottom:1rem}.search-box{width:100%}}@media (max-width: 768px){.page-header{flex-direction:column}.header-actions{margin-top:1rem;width:100%}.filter-section{flex-direction:column;width:100%}.filter-group,.filter-group select{width:100%}}.api-keys-page,.applications-page{padding:1.5rem;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:1.875rem;font-weight:600;color:#1f2937}.table{width:100%;border-collapse:collapse}.table thead th{background-color:#f9fafb;padding:.75rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.table tbody td{padding:.75rem;border-bottom:1px solid #e5e7eb}.table tbody tr:hover{background-color:#f9fafb}.api-key-display{background-color:#f3f4f6;padding:1rem;border-radius:.375rem;margin:1rem 0;font-family:monospace;word-break:break-all}.applications-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.application-card{border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;background-color:#fff;transition:box-shadow .2s}.application-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.app-header h3{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.inactive{background-color:#fee2e2;color:#991b1b}.app-description{color:#6b7280;margin-bottom:1rem}.app-info{margin-bottom:1.5rem}.info-item{margin-bottom:.5rem;font-size:.875rem}.info-item strong{color:#374151;margin-right:.5rem}.info-item code{background-color:#f3f4f6;padding:.125rem .25rem;border-radius:.25rem;font-size:.75rem}.app-actions{display:flex;gap:.5rem}.redirect-uri-input{display:flex;gap:.5rem;margin-bottom:.5rem}.redirect-uri-input input{flex:1}.empty-state{text-align:center;padding:3rem}.empty-state p{color:#6b7280;margin-bottom:1.5rem}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#fff;border-radius:.5rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content.large{max-width:700px}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:1.5rem;font-weight:600;margin:0}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}.form-check{margin-bottom:1rem;display:flex;align-items:flex-start;padding:.5rem;border-radius:.25rem;transition:background-color .2s}.form-check:hover{background-color:#f8f9fa}.form-check-input{margin-right:.75rem;margin-top:.25rem;width:1.25rem;height:1.25rem;cursor:pointer;accent-color:#0d6efd;flex-shrink:0}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-label{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1}.form-check-label strong{display:block;margin-bottom:.25rem;color:#212529}.credential-display{background-color:#f8f9fa;padding:1.5rem;border-radius:.5rem;margin:1rem 0}.credential-item{margin-bottom:1rem}.credential-item label{display:block;font-weight:600;margin-bottom:.5rem;color:#495057}.credential-item .credential-value{display:flex;align-items:center;gap:.5rem}.credential-item .credential-value code{flex:1;padding:.5rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;font-family:Consolas,Monaco,monospace;font-size:.875rem;word-break:break-all}.env-example{margin-top:1.5rem}.env-example h4{font-size:1rem;font-weight:600;margin-bottom:.5rem}.env-example pre{background-color:#f8f9fa;padding:1rem;border-radius:.5rem;border:1px solid #dee2e6;font-size:.875rem;overflow-x:auto}.scope-badge,.grant-badge{display:inline-block;padding:.25rem .75rem;margin:.25rem;background-color:#e9ecef;color:#495057;border-radius:.25rem;font-size:.875rem}.scope-badge-mini{display:inline-block;padding:.125rem .5rem;margin:.125rem;background-color:#e0e7ff;color:#4338ca;border-radius:.25rem;font-size:.75rem}.scope-description{color:#6c757d;font-size:.875rem;font-weight:400}.app-detail-section{margin-bottom:2rem}.app-detail-section h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:#212529}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.detail-item label{display:block;font-weight:500;color:#6c757d;margin-bottom:.25rem;font-size:.875rem}.detail-item code,.detail-item span{font-size:.875rem}.uri-list{list-style:none;padding:0}.uri-list li{padding:.5rem 0;border-bottom:1px solid #e9ecef}.uri-list li:last-child{border-bottom:none}.required{color:#dc3545}.form-text{font-size:.875rem;color:#6c757d;margin-top:.25rem;margin-bottom:.5rem}.api-key-display-inline{display:inline-flex;align-items:center;gap:.25rem}.api-key-display-inline code{font-size:.875rem}.scope-badges{display:flex;flex-wrap:wrap;gap:.25rem}.form-section{margin-bottom:2rem}.form-section h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:#212529}.users-page{padding:1.5rem;max-width:1400px;margin:0 auto}.filters{display:flex;gap:1rem;margin-bottom:1.5rem}.search-box{flex:1}.filter-select{width:200px}.users-table{overflow-x:auto}.user-info{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-initials{width:36px;height:36px;border-radius:50%;background-color:#4361ee;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.user-name{font-weight:500}.role-badge{background-color:#e0e7ff;color:#4338ca;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;display:inline-block}.status-badge.active{background-color:#d1fae5;color:#065f46}.status-badge.pending_verification{background-color:#fef3c7;color:#92400e}.status-badge.locked{background-color:#fee2e2;color:#991b1b}.status-badge.disabled{background-color:#f3f4f6;color:#4b5563}.status-badge.deleted{background-color:#1f2937;color:#fff}.action-buttons{display:flex;gap:.5rem}.btn-sm{padding:.25rem .5rem;font-size:.875rem}.btn-warning{background-color:#f59e0b;color:#fff;border:none}.btn-warning:hover{background-color:#d97706}.btn-success{background-color:#10b981;color:#fff;border:none}.btn-success:hover{background-color:#059669}.user-detail{display:flex;flex-direction:column;gap:1rem}.detail-row{display:flex;align-items:center}.detail-row label{font-weight:600;color:#374151;width:150px;flex-shrink:0}.detail-row span{color:#1f2937}@media (max-width: 768px){.filters{flex-direction:column}.filter-select{width:100%}.users-table{font-size:.875rem}.action-buttons{flex-direction:column}.btn-sm{width:100%}}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.95rem;font-weight:500;line-height:1.5;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .2s ease;outline:none;text-decoration:none;white-space:nowrap}.button:focus{outline:2px solid rgba(30,64,175,.5);outline-offset:2px}.button:disabled,.button.button-disabled{opacity:.6;cursor:not-allowed}.button.button-loading{position:relative}.button.button-loading .button-spinner{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.button.button-loading .button-spinner .spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.button.button-loading .button-text{margin-left:20px}.button .button-icon{display:inline-flex;align-items:center;font-size:1.1em}.button-primary{background:linear-gradient(135deg,#3b82f6,#2563eb)!important;color:#fff!important;border:none!important;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.2);letter-spacing:.025em;box-shadow:0 4px 15px #2563eb40,inset 0 1px #fff3,inset 0 -2px 4px #0000001a;position:relative;overflow:hidden;z-index:1}.button-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:50%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);transition:left .5s ease;z-index:-1;pointer-events:none}.button-primary>*{position:relative;z-index:2}.button-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;transform:translateY(-2px);box-shadow:0 6px 20px #2563eb59,inset 0 1px #fff3,inset 0 -2px 4px #00000026}.button-primary:hover:not(:disabled):before{left:100%}.button-primary:active:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af)!important;transform:translateY(0);box-shadow:0 2px 8px #2563eb4d,inset 0 2px 4px #0003}.button-primary:focus:not(:disabled){outline:3px solid rgba(96,165,250,.5);outline-offset:2px}.button-primary .spinner{border-color:#ffffff4d;border-top-color:#fff}.dark-mode .button-primary{background:linear-gradient(135deg,#4b5ff6,#3b4ff6)!important;box-shadow:0 4px 15px #3b82f64d,inset 0 1px #ffffff1a}.dark-mode .button-primary:hover:not(:disabled){background:linear-gradient(135deg,#3b4ff6,#2b3fe6)!important;box-shadow:0 6px 20px #3b82f666,inset 0 1px #ffffff1a}.button-secondary{background-color:#fff;color:#111827;border-color:#e5e7eb}.button-secondary:hover:not(:disabled){background-color:#f3f4f6;border-color:#c8ccd5}.button-secondary:active:not(:disabled){background-color:#e4e7eb}.dark-mode .button-secondary{background-color:#1f2937;color:#fff;border-color:#4b5563}.dark-mode .button-secondary:hover:not(:disabled){background-color:#283547;border-color:#616e80}.button-danger{background-color:#ef4444;color:#fff;border-color:#ef4444}.button-danger:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.button-danger:active:not(:disabled){background-color:#b91c1c}.dark-mode .button-danger{background-color:#f87171;border-color:#f87171}.dark-mode .button-danger:hover:not(:disabled){background-color:#fa9898;border-color:#fa9898}.button-text{background:transparent;color:#2563eb;border:none;padding:.5rem 1rem;font-weight:500;box-shadow:none}.button-text:hover:not(:disabled){background-color:#2563eb14;color:#1d4ed8;transform:none;box-shadow:none}.button-text:active:not(:disabled){background-color:#2563eb1f;color:#1e40af}.dark-mode .button-text{color:#60a5fa}.dark-mode .button-text:hover:not(:disabled){background-color:#60a5fa1a;color:#93bbfc}.button-small{padding:.375rem .875rem;font-size:.875rem}.button-small .button-spinner .spinner{width:14px;height:14px}.button-large{padding:.75rem 1.5rem;font-size:1.05rem}.button-large .button-spinner .spinner{width:18px;height:18px}.button-full-width{width:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-sidebar{width:var(--sidebar-width, 240px);background:#fff;border-right:1px solid #e2e8f0;transition:width .3s ease;overflow-y:auto;height:calc(100vh - var(--header-height, 64px));position:fixed;top:var(--header-height, 64px);left:0;bottom:0;z-index:100;display:flex;flex-direction:column}.app-sidebar.collapsed{width:var(--sidebar-collapsed-width, 64px)}.app-sidebar.collapsed .nav-label,.app-sidebar.collapsed .nav-badge,.app-sidebar.collapsed .nav-chevron,.app-sidebar.collapsed .nav-children,.app-sidebar.collapsed .app-version{display:none}.app-sidebar.collapsed .nav-item{justify-content:center}.app-sidebar.collapsed .nav-icon{margin-right:0}.app-sidebar .collapse-button{position:absolute;top:10px;right:-12px;width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;z-index:101;transition:all .2s}.app-sidebar .collapse-button:hover{background:#f8fafc;border-color:#cbd5e1}.sidebar-nav{flex:1;padding:1rem 0}.nav-section{margin-bottom:.5rem}.nav-section.expanded .nav-chevron{transform:rotate(90deg)}.nav-item{display:flex;align-items:center;padding:.75rem 1rem;color:#475569;text-decoration:none;transition:all .2s ease;cursor:pointer;position:relative}.nav-item:hover{background-color:#f8fafc;color:#1e293b}.nav-item.active{background-color:#e0e7ff;color:#4338ca;font-weight:500}.nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:#4338ca}.nav-icon{font-size:1.25rem;margin-right:.75rem;flex-shrink:0;width:1.5rem;text-align:center}.nav-label{flex:1;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-badge{background-color:#dc2626;color:#fff;font-size:.75rem;padding:.125rem .375rem;border-radius:9999px;margin-left:.5rem;font-weight:500}.nav-chevron{font-size:.75rem;margin-left:.5rem;transition:transform .2s ease;color:#94a3b8}.nav-children .nav-item{padding-left:3rem;font-size:.875rem}.nav-children .nav-item:before{display:none}.sidebar-footer{padding:1rem;border-top:1px solid #e2e8f0;background-color:#f8fafc}.sidebar-footer-content{text-align:center}.app-version{font-size:.75rem;color:#64748b;font-weight:500}.sidebar-unauthenticated{padding:2rem 1rem;text-align:center;color:#64748b;font-size:.875rem}@media (max-width: 768px){.app-sidebar{position:fixed;transform:translate(-100%);transition:transform .3s ease;box-shadow:2px 0 8px #0000001a}.app-sidebar.mobile-open{transform:translate(0)}.app-sidebar .collapse-button{display:none}}.profile-dropdown{position:relative;display:inline-block}.profile-dropdown select{width:100%;padding:.5rem 2.5rem .5rem 1rem;font-size:.875rem;line-height:1.5;color:#1f2937;background-color:#fff;background-clip:padding-box;border:1px solid #d1d5db;border-radius:.375rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.profile-dropdown select:focus{border-color:#4361ee;outline:0;box-shadow:0 0 0 .2rem #4361ee40}.profile-dropdown select:disabled{background-color:#e9ecef;opacity:1}.profile-settings-section{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.profile-settings-section label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#374151}.profile-settings-section .icon{font-size:1.25rem}.security-icon{color:#f59e0b}.action-buttons{display:flex;gap:.5rem;margin-top:1rem}.action-buttons button{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.375rem;border:1px solid transparent;transition:all .15s ease-in-out;cursor:pointer}.action-buttons .btn-primary{background-color:#4361ee;color:#fff;border-color:#4361ee}.action-buttons .btn-primary:hover{background-color:#3a56d4;border-color:#3a56d4}.action-buttons .btn-secondary{background-color:#fff;color:#374151;border-color:#d1d5db}.action-buttons .btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.settings-links{display:flex;gap:1rem;margin-top:.5rem}.settings-links a{display:inline-flex;align-items:center;gap:.25rem;color:#4361ee;font-size:.875rem;text-decoration:none;transition:color .15s ease-in-out}.settings-links a:hover{color:#3a56d4;text-decoration:underline}.card{background-color:#fff;border-radius:4px;overflow:hidden;transition:all .2s ease-in-out;box-shadow:0 1px 3px #0000001a}.card.card-bordered{border:1px solid #e2e8f0}.card.card-elevation-1{box-shadow:0 1px 3px #0000001a}.card.card-elevation-2{box-shadow:0 2px 5px #0000001a}.card.card-elevation-3{box-shadow:0 4px 8px #0000001a}.card.warning-card{border-left:4px solid #f56565}.card .card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.card .card-header-content{display:flex;flex-direction:column}.card .card-header .card-actions{display:flex;align-items:center;gap:.5rem}.card .card-title{font-size:1.25rem;font-weight:600;margin:0;color:#2d3748}.card .card-subtitle{font-size:.875rem;color:#718096;margin-top:.25rem}.card .card-content{padding:1.25rem}.card .card-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid #e2e8f0;gap:.75rem}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;padding:1.5rem}.modal-header{margin-bottom:1rem}.modal-header h2{font-size:1.25rem;font-weight:600;margin:0}
