*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px;color:#333}.container{max-width:1200px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;text-align:center}header h1{font-size:2.5rem;margin-bottom:10px}header .subtitle{font-size:1.1rem;opacity:.9}main{padding:30px}.card{background:#f8f9fa;border-radius:8px;padding:25px;margin-bottom:25px;box-shadow:0 2px 4px rgba(0,0,0,.1)}.card h2{color:#667eea;margin-bottom:20px;font-size:1.5rem;border-bottom:2px solid #667eea;padding-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:20px;gap:20px;margin-bottom:20px}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;margin-bottom:8px;color:#555}.form-group .required{color:#e74c3c}.form-group input{padding:12px;border:2px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.button-group{display:flex;gap:10px;flex-wrap:wrap}.btn{padding:12px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.status-message{margin-top:15px;padding:12px;border-radius:6px;display:none}.status-message.show{display:block}.status-message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status-message.info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.curl-container,.results-container{background:#fff;border-radius:6px;padding:20px;min-height:150px}.no-results{text-align:center;color:#999;padding:40px;font-style:italic}.token-display{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:8px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.token-label{font-weight:600;font-size:1.1rem}.token-value{font-family:Courier New,monospace;background:hsla(0,0%,100%,.2);padding:12px 15px;border-radius:6px;word-break:break-all;font-size:.9rem}.token-display .copy-btn{padding:10px 20px;background:#fff;color:#667eea;border:none;border-radius:6px;cursor:pointer;font-weight:600;align-self:flex-start}.test-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:15px;gap:15px;margin-bottom:20px}.summary-item{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:15px;border-radius:6px;text-align:center}.summary-item .label{font-size:.9rem;opacity:.9;margin-bottom:5px}.summary-item .value{font-size:2rem;font-weight:700}.test-item{background:#f8f9fa;border-left:4px solid #ddd;padding:15px;margin-bottom:10px;border-radius:4px;cursor:pointer;transition:all .3s ease}.test-item:hover{background:#e9ecef}.test-item.passed{border-left-color:#28a745}.test-item.failed{border-left-color:#e74c3c}.test-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.test-item .test-name{font-weight:600;margin-bottom:5px;display:flex;align-items:center}.expand-icon{display:inline-block;margin-right:10px;font-size:.8rem;color:#667eea;font-weight:700}.test-item .test-name:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;border-radius:50%;text-align:center;line-height:20px;font-size:.8rem;color:#fff}.test-item.passed .test-name:before{content:"✓";background:#28a745}.test-item.failed .test-name:before{content:"✗";background:#e74c3c}.test-item .test-details{font-size:.9rem;color:#666}.test-item .test-endpoint{font-family:Courier New,monospace;font-size:.85rem;color:#667eea;background:#f8f9fa;padding:8px 12px;margin-top:8px;border-radius:4px;border-left:3px solid #667eea;word-break:break-all}.curl-category-header,.test-category-header{font-size:1.2rem;font-weight:600;padding:16px 20px;margin:20px 0 10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;text-align:center}.test-item .test-error{background:#fff3cd;border:1px solid #ffeaa7;padding:10px;margin-top:10px;border-radius:4px;color:#856404;font-family:monospace;font-size:.85rem}.test-response{margin-top:15px;padding:15px;background:#fff;border:1px solid #dee2e6;border-radius:6px}.response-header{font-weight:600;color:#667eea;margin-bottom:12px;border-bottom:2px solid #667eea;padding-bottom:5px}.response-status{margin-bottom:12px;padding:8px 12px;background:#f8f9fa;border-radius:4px;display:flex;align-items:center;gap:10px}.response-status .badge{padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.response-status .badge.success{background:#28a745;color:#fff}.response-status .badge.error{background:#e74c3c;color:#fff}.response-data pre{overflow-x:auto;font-family:Courier New,monospace;font-size:.85rem;max-height:400px;overflow-y:auto}.curl-item,.response-data pre{background:#282c34;color:#abb2bf;padding:15px;border-radius:6px}.curl-item{margin-bottom:15px;position:relative}.curl-item .curl-label{color:#61afef;font-weight:600;margin-bottom:8px}.curl-item .curl-command{font-family:Courier New,monospace;font-size:.9rem;white-space:pre-wrap;word-break:break-all;padding-right:80px}.curl-item .copy-btn{position:absolute;top:15px;right:15px;padding:6px 12px;background:#61afef;color:#fff;border:none;border-radius:4px;cursor:pointer}.curl-commands{display:flex;flex-direction:column;gap:15px}.curl-item .curl-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.curl-item .curl-method{padding:4px 12px;border-radius:4px;font-weight:600;font-size:.85rem;text-transform:uppercase}.curl-item .curl-method.get{background:#28a745;color:#fff}.curl-item .curl-method.post{background:#007bff;color:#fff}.curl-item .curl-name{font-weight:600;color:#e5c07b;font-size:1rem}.curl-item .curl-description{color:#98c379;font-size:.85rem;margin-bottom:12px;font-family:Courier New,monospace}.curl-item .curl-code{background:#1e2127;color:#abb2bf;padding:15px;border-radius:4px;font-family:Courier New,monospace;font-size:.85rem;white-space:pre-wrap;word-break:break-all;overflow-x:auto;margin:0 0 10px}footer{background:#f8f9fa;padding:20px;text-align:center;color:#666;font-size:.9rem}.spinner{border:3px solid #f3f3f3;border-top-color:#667eea;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;display:inline-block;margin-right:10px;vertical-align:middle}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){body{padding:10px}header h1{font-size:1.8rem}.form-grid{grid-template-columns:1fr}.button-group{flex-direction:column}.btn{width:100%}.test-summary{grid-template-columns:repeat(2,1fr)}}