:root{--primary: #006da8;--primary-hover: #005685;--success: #10b981;--error: #ef4444;--bg-dark: #f0f2f5;--bg-card: #ffffff;--text-main: #333333;--text-muted: #666666;--border: #d1d5db;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06)}*{margin:0;padding:0;box-sizing:border-box;font-family:Outfit,sans-serif}body{background-color:var(--bg-dark);color:var(--text-main);min-height:100vh;display:flex;justify-content:center;align-items:center;overflow-x:hidden;position:relative}.background-animation{display:none}.circle{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float 10s infinite ease-in-out alternate}.circle-1{width:400px;height:400px;background:#3b82f6;top:-10%;left:-10%;animation-delay:0s}.circle-2{width:300px;height:300px;background:#8b5cf6;bottom:-10%;right:-10%;animation-delay:2s}.circle-3{width:250px;height:250px;background:#0ea5e9;top:40%;left:40%;animation-delay:4s}@keyframes float{0%{transform:translateY(0) scale(1)}to{transform:translateY(-30px) scale(1.1)}}.glass-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.container{width:100%;max-width:1200px;padding:2rem;transition:opacity .5s ease,transform .5s ease}.container.hidden{display:none;opacity:0;transform:translateY(20px)}.container.active{display:flex;flex-direction:column;opacity:1;transform:translateY(0)}.login-card{width:100%;max-width:440px;margin:0 auto;padding:3rem 2rem;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.logo-container{text-align:center;margin-bottom:.5rem}.logo-icon{width:64px;height:64px;background:var(--primary);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;margin:0 auto 1.5rem;box-shadow:0 4px 10px #006da833}h1{font-size:1.8rem;font-weight:600;letter-spacing:-.5px}.subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem;font-size:.95rem}.form-group{margin-bottom:.75rem}label{display:block;font-size:.75rem;font-weight:500;color:var(--text-muted);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}input[type=text],input[type=password],input[type=email],select{width:100%;padding:.5rem .75rem;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--text-main);font-size:.95rem;transition:all .3s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}select{background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23131313%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat,repeat;background-position:right .7em top 50%,0 0;background-size:.65em auto,100%}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #006da81a}input[readonly],input:disabled,select:disabled{background:#f3f4f6;color:var(--text-muted);cursor:not-allowed;border-color:#e5e7eb}input[readonly]:focus,input:disabled:focus,select:disabled:focus{box-shadow:none;border-color:#e5e7eb}input::placeholder{color:#94a3b880}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 4px #006da833}.btn-primary:hover{transform:translateY(-1px);background:var(--primary-hover);box-shadow:0 4px 8px #006da84d}.btn-secondary{background:transparent;color:var(--text-main);border:1px solid var(--border)}.btn-secondary:hover{background:#f3f4f6}.btn-sm{padding:.6rem 1.2rem;width:auto;font-size:.9rem}.error-msg,.success-msg{padding:.75rem 1rem;border-radius:8px;font-size:.9rem;margin-bottom:1.5rem;text-align:center}.error-msg{background:#fee2e2;border:1px solid #fca5a5;color:#b91c1c}.success-msg{background:#d1fae5;border:1px solid #6ee7b7;color:#047857;margin-top:1rem;margin-bottom:0}.hidden{display:none!important}.portal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;margin-bottom:2rem}.portal-header h2{font-size:2.2rem;font-weight:700}.portal-header .subtitle{margin-bottom:0;text-align:left;margin-top:.25rem}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width: 768px){.dashboard-grid{grid-template-columns:1fr 1fr}}.section-card{padding:2rem}.section-card h3{margin-bottom:.5rem;font-size:1.2rem;color:var(--primary)}.upload-zone{border:2px dashed rgba(255,255,255,.2);border-radius:16px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;margin-top:1.5rem;background:#0f172a66;position:relative}.upload-zone:hover,.upload-zone.dragover{border-color:var(--primary);background:#3b82f60d}.hidden-file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-content svg{color:var(--text-muted);transition:color .3s ease}.upload-zone:hover .upload-content svg{color:var(--primary)}.text-highlight{color:var(--primary);font-weight:500}.file-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.file-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.05)}.file-info{display:flex;align-items:center;gap:.75rem}.file-name{font-size:.9rem;font-weight:500}.loader-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:9999}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-left-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
