@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap";.portal-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f0f4f8;padding:1rem}.portal-bg-orb{display:none}.portal-login-card{width:100%;max-width:440px;background:linear-gradient(180deg,#111,#2a2a2a);padding:3rem 2.5rem;border-radius:8px;box-shadow:0 10px 30px #0006;text-align:center;color:#fff;position:relative;z-index:1}.portal-login-brand{margin-bottom:2rem}.portal-login-logo-text{display:flex;flex-direction:column}.portal-logo-name{font-size:3rem;font-weight:900;letter-spacing:-2px;line-height:1}.portal-logo-sub{font-size:.9rem;font-weight:700;color:#ccc;letter-spacing:.15em;text-transform:uppercase;margin-top:8px}.portal-login-title{font-size:1.8rem;font-weight:700;color:#fff;margin-bottom:.75rem;line-height:1.2}.portal-login-desc{font-size:.95rem;color:#ccc;line-height:1.4;margin-bottom:2.5rem}.portal-login-form{display:flex;flex-direction:column;gap:1.25rem;text-align:left}.portal-login-form label{display:block;font-size:.85rem;font-weight:700;color:#fff!important;margin-bottom:.6rem;letter-spacing:.1em;text-transform:uppercase}.portal-input-row{display:flex;height:48px;background:#fff!important;border-radius:6px;overflow:hidden;box-shadow:0 2px 5px #0003}.portal-input-icon{width:48px;background-color:#333;display:flex;align-items:center;justify-content:center;color:#bbb;border-right:1px solid #444444;flex-shrink:0}.portal-input-row input{flex:1;background:#fff!important;border:none!important;outline:none!important;color:#000!important;font-size:1rem;padding:0 1rem}.portal-input-row input::placeholder{color:#999}.portal-login-submit{width:100%;height:48px;background:var(--portal-success);color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;margin-top:1rem;box-shadow:0 4px 15px #10b9814d}.portal-login-submit:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}.portal-password-toggle{background:#fff;border:none;color:#666;cursor:pointer;padding:0 1rem;display:flex;align-items:center;transition:color .2s}.portal-password-toggle:hover{color:#000}.portal-login-help{text-align:center;font-size:.85rem;color:#999;margin-top:2rem;line-height:1.5}@media(max-width:480px){.portal-login-card{padding:2.5rem 1.5rem;max-width:100%}}.change-password-container{padding:2.5rem;display:flex;flex-direction:column;gap:2rem}.cp-section-header{display:flex;align-items:center;gap:1.5rem}.cp-icon-wrapper{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--portal-accent-subtle),transparent);border:1px solid var(--portal-glass-border);display:flex;align-items:center;justify-content:center;color:var(--portal-accent);flex-shrink:0;box-shadow:0 4px 12px #0000001a}.cp-title{font-size:1.5rem;font-weight:800;color:#fff;margin-bottom:.35rem;letter-spacing:-.5px}.cp-subtitle{font-size:.95rem;color:var(--portal-text-muted);line-height:1.6}.cp-info-box{font-size:.9rem!important;padding:1rem 1.25rem}.cp-info-box strong{font-weight:800;color:var(--portal-warning)}.cp-form{display:flex;flex-direction:column;gap:1.5rem;max-width:500px}.cp-divider{height:1px;background:var(--portal-glass-border);margin:.5rem 0}.cp-field-hint{font-size:.8rem;font-weight:700;margin-top:.4rem;padding-left:.25rem}.cp-field-hint.ok{color:var(--portal-success)}.cp-field-hint.error{color:var(--portal-error)}.cp-submit{width:100%;height:56px;font-size:1.05rem;margin-top:1rem}.cp-reset-btn{width:100%;justify-content:center}.portal-password-toggle{background:none;border:none;color:var(--portal-text-dim);cursor:pointer;padding:0 1rem;display:flex;align-items:center;transition:var(--portal-transition);flex-shrink:0}.portal-password-toggle:hover{color:var(--portal-accent)}@media(max-width:640px){.change-password-container{padding:1.5rem}.cp-section-header{flex-direction:column;text-align:center}.cp-form{max-width:100%}}:root{--portal-bg-from: #0f0f0f;--portal-bg-mid: #141414;--portal-bg-to: #1a1a1a;--portal-accent: #EF4444;--portal-accent-dark: #dc2626;--portal-accent-glow: rgba(239, 68, 68, .3);--portal-accent-subtle: rgba(239, 68, 68, .1);--portal-glass-bg: rgba(255, 255, 255, .03);--portal-glass-border: rgba(255, 255, 255, .05);--portal-glass-bg-strong: rgba(255, 255, 255, .05);--portal-text: #ffffff;--portal-text-muted: #94a3b8;--portal-text-dim: #64748b;--portal-success: #10B981;--portal-error: #EF4444;--portal-warning: #F59E0B;--portal-radius: 12px;--portal-radius-sm: 8px;--portal-shadow: 0 20px 50px rgba(0, 0, 0, .5);--portal-shadow-sm: 0 4px 12px rgba(0, 0, 0, .3);--portal-transition: all .2s cubic-bezier(.4, 0, .2, 1)}.portal-root *,.portal-root *:before,.portal-root *:after{box-sizing:border-box;margin:0;padding:0}.portal-root{font-family:Outfit,Inter,system-ui,-apple-system,sans-serif;color:var(--portal-text);-webkit-font-smoothing:antialiased;background-color:var(--portal-bg-from)}.portal-glass{background:#1a1a1a;border:1px solid rgba(255,255,255,.05);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow-sm)}.portal-glass-strong{background:#141414;border:1px solid rgba(255,255,255,.05);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow)}.portal-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 2rem;background:var(--portal-success);color:#fff;font-weight:700;font-size:1rem;border:none;border-radius:var(--portal-radius-sm);cursor:pointer;transition:var(--portal-transition);box-shadow:0 4px 12px #10b98133;white-space:nowrap;position:relative;overflow:hidden}.portal-btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:.5s}.portal-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px var(--portal-accent-glow);filter:brightness(1.05)}.portal-btn-primary:hover:not(:disabled):after{left:100%}.portal-btn-primary:active:not(:disabled){transform:translateY(0)}.portal-btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.portal-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:#ffffff08;color:var(--portal-text-muted);font-size:.95rem;font-weight:600;border:1px solid var(--portal-glass-border);border-radius:var(--portal-radius-sm);cursor:pointer;transition:var(--portal-transition)}.portal-btn-secondary:hover{background:#ffffff14;color:var(--portal-text);border-color:#ffffff40;transform:translateY(-1px)}.portal-btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.1rem;background:#ff4d4d14;color:var(--portal-error);font-size:.85rem;font-weight:700;border:1px solid rgba(255,77,77,.15);border-radius:12px;cursor:pointer;transition:var(--portal-transition)}.portal-btn-danger:hover:not(:disabled){background:#ff4d4d26;border-color:#ff4d4d59;transform:scale(1.02)}.portal-btn-danger:disabled{opacity:.3;cursor:not-allowed}.portal-input-group{display:flex;flex-direction:column;gap:.6rem}.portal-input-group label{font-size:.8rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--portal-text-muted);padding-left:.25rem}.portal-input-row{display:flex;align-items:center;height:56px;background:#ffffff0a;border:1px solid var(--portal-glass-border);border-radius:var(--portal-radius-sm);overflow:hidden;transition:var(--portal-transition)}.portal-input-row:focus-within{background:#ffffff0f;border-color:var(--portal-accent);box-shadow:0 0 0 4px var(--portal-accent-glow)}.portal-input-icon{width:52px;display:flex;align-items:center;justify-content:center;color:var(--portal-text-dim);flex-shrink:0;transition:var(--portal-transition)}.portal-input-row:focus-within .portal-input-icon{color:var(--portal-accent)}.portal-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--portal-text);font-size:1.05rem;font-family:inherit;padding:0 1.25rem 0 0}.portal-input-row input::placeholder{color:var(--portal-text-dim)}.portal-alert{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:var(--portal-radius-sm);font-size:.9rem;font-weight:600;line-height:1.5;animation:portal-alert-pop .4s cubic-bezier(.175,.885,.32,1.275) both}@keyframes portal-alert-pop{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.portal-alert-error{background:#ff4d4d1f;border:1px solid rgba(255,77,77,.2);color:var(--portal-error)}.portal-alert-success{background:#00ff951a;border:1px solid rgba(0,255,149,.2);color:var(--portal-success)}.portal-alert-warning{background:#ffcc001a;border:1px solid rgba(255,204,0,.2);color:var(--portal-warning)}.portal-spinner{display:inline-block;width:20px;height:20px;border:2.5px solid rgba(255,255,255,.2);border-top-color:currentColor;border-radius:50%;animation:portal-spin .6s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}@keyframes portal-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}.portal-animate-in{animation:portal-fade-in .6s cubic-bezier(.16,1,.3,1) both}.portal-animate-up{animation:portal-slide-up .5s cubic-bezier(.16,1,.3,1) both}.portal-shake{animation:portal-shake .6s cubic-bezier(.36,.07,.19,.97) both}.portal-status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:30px;font-size:.8rem;font-weight:700;letter-spacing:.02em}.portal-status-badge.active{background:#00ff951f;color:var(--portal-success);border:1px solid rgba(0,255,149,.25)}.portal-status-badge.inactive{background:#ff4d4d1f;color:var(--portal-error);border:1px solid rgba(255,77,77,.25)}.portal-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.portal-status-badge.active .portal-status-dot{box-shadow:0 0 10px currentColor;animation:pulse-dot 2s ease infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.device-list-container{display:flex;flex-direction:column;gap:1.5rem;padding:2.5rem}.device-list-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.device-list-title-group{display:flex;align-items:center;gap:1rem}.device-list-title{font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.5px}.device-list-count{font-size:.85rem;font-weight:700;color:var(--portal-accent);background:var(--portal-accent-subtle);border:1px solid var(--portal-glass-border);padding:.35rem .85rem;border-radius:30px}.device-refresh-btn{font-size:.9rem;padding:.6rem 1.1rem;font-weight:700}.device-list-info{font-size:.95rem;color:var(--portal-text-muted);line-height:1.6;max-width:600px}.device-list-loading{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding:4rem;color:var(--portal-text-muted);font-size:1rem;font-weight:500}.device-retry-btn{margin:1rem;align-self:flex-start}.device-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;gap:1.5rem;color:var(--portal-text-dim);text-align:center;background:#ffffff05;border-radius:24px;border:1px dashed var(--portal-glass-border)}.device-list-empty p{font-size:1rem;font-weight:500}.device-cards{display:flex;flex-direction:column;gap:1rem}.device-card{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 1.75rem;transition:var(--portal-transition);flex-wrap:wrap;position:relative;overflow:hidden}.device-card.deleting{opacity:0;transform:translate(40px) scale(.95);pointer-events:none}.device-card:hover{background:#ffffff0d;border-color:#ffffff26;transform:translateY(-2px);box-shadow:var(--portal-shadow-sm)}.device-card-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.06),transparent);border:1px solid var(--portal-glass-border);display:flex;align-items:center;justify-content:center;color:var(--portal-accent);flex-shrink:0;transition:var(--portal-transition);box-shadow:0 4px 12px #0000001a}.device-card:hover .device-card-icon{background:var(--portal-accent-subtle);transform:scale(1.05)}.device-card-info{flex:1;min-width:180px}.device-card-name{font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:.35rem;letter-spacing:-.2px}.device-card-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.device-card-type{font-size:.8rem;font-weight:700;color:var(--portal-accent);background:var(--portal-accent-subtle);padding:.25rem .75rem;border-radius:8px;border:1px solid rgba(0,242,255,.15)}.device-card-mac{font-size:.8rem;font-family:JetBrains Mono,Courier New,monospace;color:var(--portal-text-dim);letter-spacing:.02em}.device-card-date{font-size:.8rem;color:var(--portal-text-dim);margin-top:.4rem;font-weight:500}.device-card-status{flex-shrink:0}.device-card-actions{flex-shrink:0;min-width:120px;display:flex;justify-content:flex-end}.device-delete-msg{font-size:.85rem!important;padding:.5rem 1rem!important;white-space:nowrap}.portal-btn-danger.confirming{background:#ffcc001f;color:var(--portal-warning);border-color:#ffcc0059;animation:pulse-confirm 1s ease infinite}@keyframes pulse-confirm{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}@media(max-width:640px){.device-list-container{padding:1.5rem}.device-card{padding:1.25rem;gap:1rem}.device-card-status{display:none}.device-card-actions{width:100%;margin-top:.5rem}.device-card-actions button{width:100%}}.portal-dashboard-page{min-height:100vh;background:radial-gradient(circle at top right,#101828,#080a12);display:flex;flex-direction:column;position:relative;overflow-x:hidden}.portal-dashboard-page .portal-bg-orb-1{width:700px;height:700px;background:radial-gradient(circle,var(--portal-accent),transparent 75%);top:-250px;right:-200px;opacity:.08}.portal-dashboard-page .portal-bg-orb-2{width:600px;height:600px;background:radial-gradient(circle,#0066ff,transparent 75%);bottom:-150px;left:-150px;opacity:.06}.portal-dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.05);background:#141414}.portal-header-brand{display:flex;align-items:center}.portal-logo-name{font-size:1.5rem;font-weight:800;letter-spacing:-1px}.portal-logo-sub{font-size:.65rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;line-height:1;margin-top:2px}.portal-header-user{display:flex;align-items:center}.user-profile{display:flex;align-items:center;gap:.75rem;padding:.25rem 1rem;margin-right:.5rem;border-right:1px solid rgba(255,255,255,.1)}.user-info{display:flex;flex-direction:column;align-items:flex-end}.user-name{font-size:.85rem;font-weight:800;color:#fff;line-height:1.2}.user-role{font-size:.65rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.user-avatar{width:32px;height:32px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.header-nav{display:flex;gap:1.5rem;margin-right:1.5rem}.header-nav-link{background:none;border:none;color:#fff;text-decoration:none;font-size:.85rem;font-weight:500;opacity:.7;transition:all .2s;padding:.5rem 0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit}.header-nav-link:hover{opacity:1}.header-nav-link.active{opacity:1;border-bottom-color:var(--portal-accent)}.header-btn{background:none;border:none;color:#fff;display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;opacity:.8;transition:opacity .2s;padding:.5rem;cursor:pointer;font-family:inherit}.header-btn:hover{opacity:1}.header-btn.logout.confirming{color:var(--portal-warning)}.portal-dashboard-main{flex:1;max-width:1000px;width:100%;margin:0 auto;padding:2rem;display:flex;flex-direction:column;gap:2rem;position:relative;z-index:1}.portal-welcome-card{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:#141414;border:1px solid rgba(255,255,255,.05);border-radius:8px}.portal-welcome-avatar{width:48px;height:48px;border-radius:12px;background:#ffffff0d;display:flex;align-items:center;justify-content:center;color:var(--portal-accent)}.portal-welcome-name{font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.25rem}.portal-welcome-desc{font-size:.9rem;color:#94a3b8}.portal-welcome-card .portal-status-badge{position:absolute;top:1.5rem;right:1.5rem}.portal-tabs-wrapper{display:flex;flex-direction:column;gap:1.5rem}.portal-tabs{display:flex;gap:.5rem;padding:.5rem;border-radius:20px;width:fit-content;margin:0 auto}.portal-tab-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.85rem 1.75rem;background:transparent;border:none;border-radius:16px;color:var(--portal-text-dim);font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--portal-transition)}.portal-tab-btn:hover:not(.active){background:#ffffff0a;color:var(--portal-text-muted);transform:translateY(-1px)}.portal-tab-btn.active{background:var(--portal-accent-subtle);color:var(--portal-accent);border:1px solid var(--portal-glass-border);box-shadow:0 4px 12px #00f2ff1a;font-weight:700}.portal-tab-content{min-height:400px}.portal-footer{text-align:center;padding:2.5rem;font-size:.85rem;color:var(--portal-text-dim);position:relative;z-index:1;font-weight:500}@media(max-width:768px){.portal-dashboard-header{padding:1rem 1.5rem}.portal-user-info{display:none}.portal-dashboard-main{padding:2rem 1.25rem}.portal-welcome-card{padding:2rem;text-align:center;flex-direction:column}.portal-welcome-avatar{margin:0 auto}.portal-welcome-card .portal-status-badge{position:relative;top:0;right:0;margin-top:1rem}.portal-tabs{width:100%}.portal-tab-btn span{display:none}.portal-tab-btn{flex:1;padding:.85rem}}
