@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap";:root{font-family:Poppins,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:linear-gradient(135deg,#0575e6,#021b79);margin:0;min-width:320px;min-height:100vh}a{font-weight:500;color:#2c89f5;text-decoration:none;transition:color .2s ease}a:hover{color:#1a6dd4}button{border-radius:12px;border:none;padding:.6em 1.2em;font-size:1rem;font-family:inherit;cursor:pointer;transition:all .2s ease}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}.form-control,.form-select{border-radius:12px!important;border:1.5px solid #e0e0e0!important;transition:border-color .2s ease,box-shadow .2s ease!important;font-size:.95rem!important}.form-control:focus,.form-select:focus{border-color:#2c89f5!important;box-shadow:0 0 0 3px #2c89f526!important}.badge{border-radius:20px!important;padding:5px 12px!important;font-weight:500!important;font-size:.8rem!important;letter-spacing:.02em}.table{font-size:.92rem}.table thead th{font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;border-bottom:2px solid #e5e7eb!important}.table tbody tr{transition:background-color .15s ease}.modal-content{border-radius:20px!important;border:none!important;box-shadow:0 25px 60px #0000004d!important}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}@media(max-width:768px){.container-fluid{padding-left:16px!important;padding-right:16px!important}.table-responsive-custom{font-size:.85rem}}#root{width:100%;min-height:100vh}.app-container{width:100%;min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;width:100%;padding:20px}.card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 4px 24px #00000014;border:none;transition:box-shadow .2s ease}.card:hover{box-shadow:0 8px 32px #0000001f}h1{font-size:2rem}.btn-primary-custom{background:linear-gradient(135deg,#1a6dd4,#0f5bbf);color:#fff;border:none;border-radius:12px;font-weight:600;transition:all .2s ease;box-shadow:0 4px 12px #2c89f54d}.btn-primary-custom:hover{background:linear-gradient(135deg,#1a6dd4,#0f5bbf);box-shadow:0 6px 20px #2c89f566;color:#fff}.btn-primary-custom:disabled{opacity:1;background:#64748b;color:#fff;cursor:not-allowed;transform:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .4s ease-out}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .6s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.api-spinner-shell{display:flex;align-items:center;justify-content:center;width:100%}.api-spinner-shell--overlay{position:absolute;inset:0;padding:24px;background:#fffc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:inherit;z-index:20}.api-spinner-shell--fullscreen{position:fixed;inset:0;width:100vw;height:100vh;min-height:100vh;padding:24px;background:#03185173;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1080}.api-spinner-shell--panel{min-height:180px;padding:24px}.api-spinner-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;max-width:320px;width:100%;padding:24px 22px;border-radius:24px;background:linear-gradient(180deg,#fffffff5,#f4f8fff5);box-shadow:0 20px 45px #0f172a1f;text-align:center}.api-spinner-card--compact{max-width:280px;padding:18px;border-radius:20px}.api-spinner-visual{position:relative;width:76px;height:76px;display:flex;align-items:center;justify-content:center}.api-spinner-card--compact .api-spinner-visual{width:62px;height:62px}.api-spinner-ring{position:absolute;border-radius:50%;border-style:solid}.api-spinner-ring--outer{inset:0;border-width:3px;border-color:#2c89f529;border-top-color:#2c89f5;animation:spin 1s linear infinite}.api-spinner-ring--inner{inset:10px;border-width:2px;border-color:#ffb8002e;border-bottom-color:#ffb800;animation:spin 1.5s linear infinite reverse}.api-spinner-glow{position:absolute;inset:14px;border-radius:50%;background:radial-gradient(circle,#2c89f526,#2c89f500 72%)}.api-spinner-icon{color:#2c89f5;animation:pythonSpin 1.2s ease-in-out infinite}.api-spinner-icon--light{color:#fff}.api-spinner-copy{display:flex;flex-direction:column;gap:6px}.api-spinner-title{font-size:1rem;font-weight:700;color:#0f172a}.api-spinner-title--light{color:#fff}.api-spinner-subtitle{font-size:.86rem;line-height:1.5;color:#64748b}.api-spinner-subtitle--light{color:#ffffffc7}.api-spinner-inline{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:600}.api-spinner-inline--light{color:#fff}.api-spinner-inline__visual{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.api-spinner-inline__ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.28);border-top-color:currentColor;animation:spin .8s linear infinite}.error-state-wrapper{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;padding:24px}.error-state-card{width:min(560px,100%);text-align:center;background:#fffffff5;border-radius:20px;padding:32px 24px;box-shadow:0 16px 34px #021b7929}.error-state-icon-wrap{width:58px;height:58px;margin:0 auto 12px;border-radius:50%;background:#eef5ff;border:1px solid #dbeafe;display:flex;align-items:center;justify-content:center}.error-state-icon{font-size:1.7rem;color:#2c89f5}.error-state-code{display:inline-block;font-size:2.6rem;font-weight:700;line-height:1;color:#1a6dd4}.error-state-title{margin-top:12px;margin-bottom:10px;color:#0f172a}.error-state-description{margin:0 auto;max-width:520px;color:#475569}.error-state-actions{margin-top:22px;display:flex;justify-content:center}.error-state-btn-primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-width:148px;padding:10px 18px}.api-spinner-inline__icon{position:relative;font-size:10px;animation:pythonSpin 1s linear infinite}@keyframes pythonSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.08)}to{transform:rotate(360deg) scale(1)}}.text-gradient{background:linear-gradient(135deg,#fff,#e0e0e0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
