.token-table-header{display:grid;grid-template-columns:80px 120px 150px 150px 150px 80px 120px;gap:.25rem;padding:.75rem .5rem;background-color:#f8f9fa;font-weight:600;border-bottom:2px solid #dee2e6;align-items:center;white-space:nowrap}.token-table-row{display:grid;grid-template-columns:80px 120px 150px 150px 150px 80px 120px;gap:.25rem;padding:.75rem .5rem;border-bottom:1px solid #dee2e6;align-items:center;transition:background-color .2s ease;white-space:nowrap}.user-token-details .token-table .token-table-header,.user-token-details .token-table .token-table-row{grid-template-columns:80px 120px 150px 150px 150px 80px 120px}.token-table-row:hover{background-color:#f8f9fa}.token-table-row.expired{background-color:#fff3f3;color:#6c757d}.token-table-row.expired:hover{background-color:#ffe0e0}.expired-indicator{color:#dc3545;font-weight:600;margin-left:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500}.form-group input[type=text],.form-group input[type=datetime-local]{width:100%;padding:.5rem;border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;box-sizing:border-box}.form-group input[type=datetime-local]{height:2.5rem}.form-group small{display:block;color:#6c757d;font-size:.875rem;margin-top:.25rem}.form-static-value{padding:.5rem;background-color:#f8f9fa;border:1px solid #ced4da;border-radius:.25rem;font-size:1rem}.toggle-token-count{background-color:#007bff;color:#fff;border:none;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:background-color .2s ease}.toggle-token-count:hover:not(:disabled){background-color:#0056b3}.toggle-token-count:disabled{opacity:.6;cursor:not-allowed}.generated-key{background-color:#f8f9fa;padding:1rem;border-radius:.25rem;margin:1rem 0;border-left:4px solid #28a745}.token-display{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-family:monospace;font-size:1.1rem}.toggle-token{background-color:#6c757d;color:#fff;border:none;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:background-color .2s ease}.toggle-token:hover{background-color:#545b62}.copy-token-button{background-color:#28a745;color:#fff;border:none;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:background-color .2s ease;margin-left:.5rem}.copy-token-button:hover:not(:disabled){background-color:#218838}.copy-token-button:disabled{opacity:.6;cursor:not-allowed}.warning{color:#856404;background-color:#fff3cd;border:1px solid #ffeaa7;padding:.75rem;border-radius:.25rem;margin:1rem 0}.refresh-button{background-color:#000;color:#fff;border:1px solid #000000;padding:.5rem 1rem;border-radius:.25rem;cursor:pointer;font-size:.875rem;transition:background-color .2s ease}.refresh-button:hover:not(:disabled){background-color:#333;border-color:#333}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.user-token-details{background-color:#f8f9fa;border-top:1px solid #dee2e6;padding:1rem}.token-table-container{overflow-x:auto;max-width:100%;margin:1rem 0}.token-table{min-width:1000px;width:100%}.user-token-details .token-table{background-color:#fff;border-radius:.25rem;overflow:hidden;box-shadow:0 1px 3px #0000001a;overflow-x:auto;max-width:100%}.user-table-header{display:grid;grid-template-columns:60px 120px 180px 80px 100px 120px 80px 100px 80px;gap:.5rem;padding:.75rem 1rem;background-color:#f8f9fa;font-weight:600;border-bottom:2px solid #dee2e6;align-items:center}.user-table-row{display:grid;grid-template-columns:60px 120px 180px 80px 100px 120px 80px 100px 80px;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid #dee2e6;align-items:center;transition:background-color .2s ease}.user-table-row:hover{background-color:#f8f9fa}.email-cell.expanded{word-break:break-all;white-space:normal}.token-table-row .expanded{word-break:break-all;white-space:normal;max-width:none!important}.token-name-truncated{cursor:pointer;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.role-badge.admin{background-color:#dc3545;color:#fff}.role-badge.user{background-color:#17a2b8;color:#fff}.status-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.status-badge.active{background-color:#28a745;color:#fff}.status-badge.inactive{background-color:#6c757d;color:#fff}.delete-button.small{background-color:#dc3545;color:#fff;border:1px solid #dc3545;padding:.25rem .5rem;font-size:.75rem;border-radius:.25rem;cursor:pointer;min-width:50px;transition:background-color .2s ease}.delete-button.small:hover:not(:disabled){background-color:#c82333;border-color:#bd2130}.delete-button.small:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1200px){.token-table-header,.token-table-row{grid-template-columns:70px 100px 120px 120px 120px 70px 100px}.user-table-header,.user-table-row{grid-template-columns:50px 100px 150px 70px 80px 100px 70px 80px 70px}}@media (max-width: 992px){.token-table-header,.token-table-row{grid-template-columns:60px 80px 100px 100px 100px 60px 90px;gap:.25rem;padding:.5rem}.user-table-header,.user-table-row{grid-template-columns:40px 90px 120px 60px 70px 90px 60px 70px 60px;gap:.25rem;padding:.5rem}}@media (max-width: 768px){.token-table-header,.token-table-row{grid-template-columns:1fr 80px;gap:.25rem;padding:.5rem}.user-table-header,.user-table-row{grid-template-columns:1fr 60px;gap:.25rem;padding:.5rem}.token-table-header div:nth-child(n+3),.token-table-row div:nth-child(n+3),.user-table-header div:nth-child(n+3),.user-table-row div:nth-child(n+3){display:none}}@media (max-width: 480px){.token-table-header,.token-table-row{grid-template-columns:1fr;gap:.25rem;padding:.5rem}.token-table-header div:nth-child(n+2),.token-table-row div:nth-child(n+2){display:none}.user-table-header,.user-table-row{grid-template-columns:1fr;gap:.25rem;padding:.5rem}.user-table-header div:nth-child(n+2),.user-table-row div:nth-child(n+2){display:none}}.service-usage-guide{max-width:1200px;margin:2rem auto;padding:2rem;background-color:#f8f9fa;border-radius:.5rem;border-left:4px solid #007bff}.service-usage-guide h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.guide-section{margin-bottom:2rem;padding:1rem;background-color:#fff;border-radius:.25rem;box-shadow:0 1px 3px #0000001a;color:#333}.guide-section h3{color:#333;margin-bottom:1rem;font-size:1.25rem}.endpoint-url{display:inline-block;padding:.5rem 1rem;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem;font-family:monospace;font-size:1rem;word-break:break-all}.curl-example{background-color:#2d2d2d;color:#f8f8f2;padding:1rem;border-radius:.25rem;font-family:monospace;font-size:.9rem;overflow-x:auto;line-height:1.4;margin:1rem 0;text-align:left}.note{background-color:#fff3cd;border:1px solid #ffeaa7;padding:1rem;border-radius:.25rem;margin-top:1rem;color:#856404}.note code{background-color:#f8f9fa;padding:.2rem .4rem;border-radius:.2rem;font-family:monospace}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.App{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:#282c34;color:#fff;padding:1rem;border-radius:8px;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center}.app-header h1{margin:0;font-size:1.5rem}.app-title-container{display:flex;flex-direction:column;align-items:flex-start}.app-main-title{margin:0;font-size:1.5rem;font-weight:700}.app-subtitle{font-size:.9rem;opacity:.8;margin-top:.25rem}.header-status-container{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.current-user-info{display:flex;align-items:center;gap:.5rem;font-size:.9rem;text-align:right;margin-bottom:.25rem}.user-status-container{display:flex;flex-direction:column;align-items:flex-end}.user-actions-container{display:flex;align-items:center;gap:1rem}.app-main{flex:1}.container{max-width:1200px;margin:0 auto}.user-management-section,.api-key-section,.login-form,.account-deletion-section{background:#f5f5f5;padding:2rem;margin-bottom:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#000}.user-management-section h2,.api-key-section h2{margin-top:0;color:#333;border-bottom:2px solid #282c34;padding-bottom:.5rem}.tab-navigation{display:flex;margin-bottom:1.5rem;border-bottom:1px solid #ddd}.tab-navigation button{background-color:#e9ecef;color:#495057;border:none;border-radius:4px 4px 0 0;padding:.75rem 1.5rem;margin-right:.5rem;cursor:pointer;font-size:1rem;transition:all .2s}.tab-navigation button.tab-active{background-color:#007bff;color:#fff}.tab-navigation button:hover:not(.tab-active){background-color:#dee2e6}.form-group{margin-bottom:1rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;font-weight:700;color:#000}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}button{background-color:#007bff;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}button:hover:not(:disabled){background-color:#0056b3}button:disabled{background-color:#6c757d;cursor:not-allowed}.delete-button{background-color:#dc3545}.delete-button:hover:not(:disabled){background-color:#c82333}.delete-button.small{padding:.25rem .5rem;font-size:.875rem}.error-message{color:#f44336;background-color:#ffebee;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #f44336}.success-message{color:#4caf50;background-color:#e8f5e9;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #4caf50}.info-message{color:#007bff;background-color:#e3f2fd;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #007bff}.warning-message{color:#ff9800;background-color:#fff3e0;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #ff9800}.generated-key{background-color:#e3f2fd;padding:1rem;border-radius:4px;margin:1rem 0;font-family:monospace;word-break:break-all}.warning{color:#ff9800;font-size:.9rem;margin-top:.5rem}.key-generation-section{background-color:#fff;padding:1.5rem;border-radius:4px;margin-bottom:2rem}.key-generation-section h3{color:#000;margin-top:0}.token-listing-section{background-color:#fff;padding:1.5rem;border-radius:4px}.token-listing-section h3{color:#000;margin-top:0}.user-table{margin-top:1rem;color:#000}.user-table-header{display:grid;grid-template-columns:50px 150px 150px 120px 100px 120px 100px 100px 80px;gap:.5rem;background-color:#f8f9fa;padding:.75rem;font-weight:700;border-bottom:2px solid #dee2e6;color:#000;white-space:nowrap}.user-table-row{display:grid;grid-template-columns:50px 150px 150px 120px 100px 120px 100px 100px 80px;gap:.5rem;padding:.75rem;border-bottom:1px solid #dee2e6;align-items:center;color:#000}.user-table-row>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-table-row>div.expanded{white-space:normal;word-break:break-all}.email-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.email-cell.expanded{white-space:normal;word-break:break-all}.user-table-row:last-child{border-bottom:none}.token-table{margin-top:1rem;color:#000}.token-table-header{display:grid;grid-template-columns:120px 1fr 150px 150px 80px 100px;gap:.5rem;background-color:#f8f9fa;padding:.75rem;font-weight:700;border-bottom:2px solid #dee2e6;color:#000}.token-table-row{display:grid;grid-template-columns:120px 1fr 150px 150px 80px 100px;gap:.5rem;padding:.75rem;border-bottom:1px solid #dee2e6;align-items:center;color:#000}.token-table-row:last-child{border-bottom:none}.status-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:700}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.role-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:700;margin-left:.5rem}.role-badge.admin{background-color:#ffc107;color:#212529}.role-badge.user{background-color:#6c757d;color:#fff}.token-display{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.toggle-token{background-color:#6c757d;color:#fff;border:none;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.875rem}.toggle-token:hover{background-color:#5a6268}.form-group-inline{display:flex;gap:1rem;align-items:end}.form-group-inline input{flex:1;min-width:150px}.token-list-form{margin-bottom:1.5rem}@media (max-width: 768px){#root{padding:1rem}.app-header{flex-direction:column;gap:1rem;text-align:center}.user-management-section,.api-key-section{padding:1rem}.container{max-width:100%}.token-table-header,.token-table-row,.user-table-header,.user-table-row{grid-template-columns:repeat(2,1fr);gap:.5rem;font-size:.875rem}.form-group-inline{flex-direction:column;align-items:stretch}.form-group-inline input,.form-group-inline button{width:100%}}.llm-test-section{background:#f5f5f5;padding:2rem;margin-bottom:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.llm-test-section h2{margin-top:0;color:#333;border-bottom:2px solid #282c34;padding-bottom:.5rem}.llm-test-section .form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.llm-test-section .form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.response-section{margin-top:2rem;padding:1rem;background-color:#fff;border-radius:4px;color:#000}.response-section h3{color:#000}.generated-response{text-align:left;color:#000}.generated-response strong{color:#000}.generated-response pre{background-color:#f8f9fa;padding:1rem;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:#000}.login-help{margin-top:1rem;padding:1rem;background-color:#e3f2fd;border-radius:4px;border-left:4px solid #007bff}.login-help p{margin:0;color:#007bff}.admin-registration-link{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px solid #eee}.link-button{background:none;border:none;color:#007bff;text-decoration:underline;cursor:pointer;font-size:.9rem;padding:.5rem}.link-button:hover{color:#0056b3;text-decoration:none}.admin-registration-form{background:#f5f5f5;padding:2rem;margin-bottom:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#000;max-width:500px;margin:2rem auto}.admin-registration-form h2{margin-top:0;color:#333;border-bottom:2px solid #282c34;padding-bottom:.5rem;text-align:center}.form-description{text-align:center;color:#666;margin-bottom:1.5rem;line-height:1.5}.admin-password-reset-form{background:#f5f5f5;padding:2rem;margin-bottom:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#000;max-width:500px;margin:2rem auto}.admin-password-reset-form h2{margin-top:0;color:#333;border-bottom:2px solid #282c34;padding-bottom:.5rem;text-align:center}.admin-password-reset-form .form-description{text-align:center;color:#333;margin-bottom:1.5rem;line-height:1.5}.admin-password-reset-form .form-group label{color:#333}.admin-password-reset-form .form-static-value{color:#333;background-color:#e9ecef;padding:.75rem;border-radius:4px;border:1px solid #ddd}.admin-password-reset-form .form-help{color:#333}.form-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.primary-button{background-color:#007bff;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.primary-button:hover:not(:disabled){background-color:#0056b3}.primary-button:disabled{background-color:#6c757d;cursor:not-allowed}.secondary-button{background-color:#6c757d;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.secondary-button:hover:not(:disabled){background-color:#5a6268}.secondary-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.account-deletion-content{margin-top:1rem}.account-deletion-content ul{margin:.5rem 0;padding-left:1.5rem}.account-deletion-content li{margin-bottom:.25rem}.account-deletion-actions{margin-top:1rem;text-align:center}.toggle-token-count{background-color:#6c757d;color:#fff;border:none;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.875rem}.toggle-token-count:hover:not(:disabled){background-color:#5a6268}.toggle-token-count:disabled{background-color:#6c757d;opacity:.6;cursor:not-allowed}.user-token-details{background-color:#fff;margin:.5rem 1rem 1rem;border-radius:4px;padding:1rem;border-left:3px solid #007bff}.user-token-details .token-table{margin-top:0}.user-token-details .token-table-header,.user-token-details .token-table-row{grid-template-columns:120px 1fr 150px 150px 80px 100px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;width:90%;text-align:center}.modal-content h3{margin-top:0;color:#333;margin-bottom:1rem}.modal-content p{margin:.5rem 0;color:#666}.modal-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.btn-primary{background-color:#007bff;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn-secondary:hover{background-color:#5a6268}@media (max-width: 768px){.user-token-details .token-table-header,.user-token-details .token-table-row{grid-template-columns:repeat(2,1fr);gap:.5rem;font-size:.875rem}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
