body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.status-indicator{position:fixed;top:20px;right:20px;z-index:1000;max-width:300px}.status-item{background:rgba(0,0,0,.8);color:#fff;padding:12px 16px;border-radius:8px;margin-bottom:8px;display:flex;align-items:center;gap:8px;font-size:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);animation:slideIn .3s ease-out}.status-item.offline{background:rgba(255,87,87,.9)}.status-item.api-error{background:rgba(255,107,107,.9)}.status-item.token-warning{background:rgba(255,193,7,.9);color:#333}.status-icon{font-size:16px;flex-shrink:0}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.status-indicator{top:10px;right:10px;left:10px;max-width:none}.status-item{font-size:13px;padding:10px 14px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:1rem}.login-card{background:white;border-radius:12px;padding:2rem;box-shadow:0 10px 25px #0003;width:100%;max-width:400px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:2rem}.login-logo{margin-bottom:1.5rem}.logo-image{width:80px;height:80px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));transition:transform .3s ease}.logo-image:hover{transform:scale(1.05)}.login-header h2{color:#333;margin-bottom:.5rem;font-size:1.8rem;font-weight:600}.login-header p{color:#666;font-size:.9rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#333;font-size:.9rem}.field-hint{color:#666;font-size:.75rem;margin-top:.25rem;font-style:italic}.form-group input{padding:.75rem;border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;transition:border-color .2s ease;width:100%}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-input-container{position:relative;display:flex;align-items:center}.password-input-container input{padding-right:3rem}.password-toggle-btn{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.2rem;padding:.25rem;border-radius:4px;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.password-toggle-btn:hover:not(:disabled){background-color:#f8f9fa}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.error-message{background-color:#fee;color:#c53030;padding:.75rem;border-radius:6px;border:1px solid #feb2b2;font-size:.9rem;text-align:center}.login-button{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;padding:.875rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.login-button:active{transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{margin-top:1.5rem;text-align:center}.demo-info{font-size:.8rem;color:#666;background-color:#f8f9fa;padding:.75rem;border-radius:6px;border-left:4px solid #667eea}@media (max-width: 480px){.login-container{padding:.5rem}.login-card{padding:1.5rem}.login-header h2{font-size:1.5rem}.logo-image{width:64px;height:64px}}.dashboard-container{min-height:100vh;background-color:#f8f9fa}.dashboard-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-700) 100%);color:#fff;padding:1.5rem 0;box-shadow:0 2px 10px #0000001a}.header-content{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:1rem}.header-logo{width:40px;height:40px;object-fit:contain;filter:brightness(0) invert(1)}.header-content h1{margin:0;font-size:2rem;font-weight:600}.user-info{display:flex;align-items:center;gap:1rem}.user-info span{font-size:1rem;opacity:.9}.logout-button{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.logout-button:hover{background:rgba(255,255,255,.3);transform:translateY(-1px)}.dashboard-main{max-width:1200px;margin:0 auto;padding:2rem 1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.dashboard-card{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d;border:1px solid #e1e5e9;transition:transform .2s ease,box-shadow .2s ease}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #0000001a}.dashboard-card h2,.dashboard-card h3{margin-top:0;color:#333}.dashboard-card h2{font-size:1.5rem;margin-bottom:1rem}.dashboard-card h3{font-size:1.2rem;margin-bottom:1rem;color:#667eea}.welcome-card{grid-column:span 2;background:linear-gradient(135deg,#667eea20 0%,#764ba220 100%)}.user-details{margin-top:1rem;padding:1rem;background-color:#fffc;border-radius:8px}.user-details p{margin:.5rem 0;color:#555}.admin-badge{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.token-card{border-left:4px solid #28a745}.token-info .token-status{color:#28a745;font-weight:600;margin-bottom:1rem;display:block}.token-details{margin:1rem 0;padding:1rem;background-color:#667eea1a;border-radius:8px;border-left:4px solid #667eea}.token-details p{margin:.5rem 0;font-size:.9rem}.auto-refresh-notice{color:#17a2b8!important;font-weight:600;background-color:#17a2b81a;padding:.5rem;border-radius:6px;border:1px solid rgba(23,162,184,.3)}.token-expired{color:#dc3545!important;font-weight:600;background-color:#dc35451a;padding:.5rem;border-radius:6px;border:1px solid rgba(220,53,69,.3)}.token-preview{background-color:#f8f9fa;padding:.75rem;border-radius:6px;font-family:Courier New,monospace;word-break:break-all}.data-card{border-left:4px solid #17a2b8}.data-info{color:#666;margin-bottom:1rem;font-size:.9rem}.data-list{max-height:200px;overflow-y:auto}.data-item{padding:.75rem;background-color:#f8f9fa;border-radius:6px;margin-bottom:.5rem}.data-item h4{margin:0 0 .25rem;color:#333;font-size:.9rem}.data-item p{margin:0;color:#666;font-size:.8rem}.stats-card{border-left:4px solid #ffc107}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:1rem}.stat-item{text-align:center;padding:1rem 0}.stat-number{display:block;font-size:2rem;font-weight:700;color:#667eea;margin-bottom:.25rem}.stat-label{font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.loading,.error{text-align:center;padding:2rem;color:#666;font-style:italic}.error{color:#dc3545}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem;text-align:center}.header-left{flex-direction:column;gap:.5rem}.header-logo{width:32px;height:32px}.user-info{flex-direction:column;gap:.5rem}.dashboard-grid{grid-template-columns:1fr}.welcome-card{grid-column:span 1}.dashboard-main{padding:1rem}.header-content h1{font-size:1.5rem}}@media (max-width: 480px){.dashboard-card{padding:1rem}.stats-grid{grid-template-columns:1fr}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa}.App{min-height:100vh}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f8f9fa}.loading-spinner{font-size:1.2rem;color:#667eea;font-weight:500}@media (max-width: 768px){body{font-size:14px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease-in-out}:root{--client-primary: #6366f1;--client-secondary: #8b5cf6;--client-accent: #a78bfa;--color-primary: var(--client-primary);--color-secondary: var(--client-secondary);--color-accent: var(--client-accent);--color-primary-50: color-mix(in srgb, var(--client-primary) 5%, transparent);--color-primary-100: color-mix(in srgb, var(--client-primary) 10%, transparent);--color-primary-200: color-mix(in srgb, var(--client-primary) 20%, transparent);--color-primary-500: var(--client-primary);--color-primary-600: color-mix(in srgb, var(--client-primary) 90%, black);--color-primary-700: color-mix(in srgb, var(--client-primary) 80%, black);--color-primary-800: color-mix(in srgb, var(--client-primary) 70%, black);--color-primary-900: color-mix(in srgb, var(--client-primary) 60%, black)}.bg-primary{background-color:var(--color-primary)}.bg-primary-50{background-color:var(--color-primary-50)}.bg-primary-100{background-color:var(--color-primary-100)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.border-primary{border-color:var(--color-primary)}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:text-primary:hover{color:var(--color-primary)}.btn-primary{background-color:var(--color-primary);color:#fff;border:1px solid var(--color-primary);transition:all .2s ease}.btn-primary:hover{background-color:var(--color-primary-600);border-color:var(--color-primary-600)}.btn-secondary{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary);transition:all .2s ease}.btn-secondary:hover{background-color:var(--color-primary-50)}*{transition:background-color .2s ease,color .2s ease,border-color .2s ease}
