.login-container[data-v-2ffb80c0]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dfe4f8 0%,#e9e4f5 25%,#e2dcf2 50%,#dcd8f0 75%,#e4def6 100%);background-size:300% 300%;animation:bgShift-2ffb80c0 18s ease-in-out infinite;padding:20px;position:relative;overflow:hidden}@keyframes bgShift-2ffb80c0{0%{background-position:0% 30%}50%{background-position:100% 70%}to{background-position:0% 30%}}.login-container[data-v-2ffb80c0]:before,.login-container[data-v-2ffb80c0]:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}.login-container[data-v-2ffb80c0]:before{width:460px;height:460px;background:rgba(102,126,234,.3);top:-140px;left:-120px;animation:orbFloat1-2ffb80c0 12s ease-in-out infinite}.login-container[data-v-2ffb80c0]:after{width:420px;height:420px;background:rgba(118,75,162,.24);bottom:-140px;right:-110px;animation:orbFloat2-2ffb80c0 14s ease-in-out infinite}@keyframes orbFloat1-2ffb80c0{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,40px) scale(1.12)}}@keyframes orbFloat2-2ffb80c0{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,-35px) scale(1.15)}}.login-card[data-v-2ffb80c0]{position:relative;z-index:1;background:rgba(255,255,255,.68);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.75);border-radius:16px;padding:40px;box-shadow:0 16px 40px #667eea38;width:100%;max-width:400px;overflow:hidden;animation:cardIn-2ffb80c0 .5s ease both}@keyframes cardIn-2ffb80c0{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.login-card[data-v-2ffb80c0]:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea 0%,#764ba2 100%)}.login-logo[data-v-2ffb80c0]{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #667eea40;position:relative;animation:logoBreath-2ffb80c0 4s ease-in-out infinite}.login-logo img[data-v-2ffb80c0]{width:52px;height:52px;object-fit:contain}@keyframes logoBreath-2ffb80c0{0%,to{transform:translateY(0);box-shadow:0 6px 18px #667eea40}50%{transform:translateY(-5px);box-shadow:0 12px 26px #667eea66}}.login-logo[data-v-2ffb80c0]:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:3px solid transparent;border-top-color:#667eea;border-right-color:#764ba2;opacity:0;transition:opacity .2s}.login-logo.is-loading[data-v-2ffb80c0]:after{opacity:1;animation:logoSpin-2ffb80c0 .9s linear infinite}@keyframes logoSpin-2ffb80c0{to{transform:rotate(360deg)}}.login-title[data-v-2ffb80c0]{text-align:center;margin-bottom:30px;color:#5a5f97;font-size:26px}.login-form[data-v-2ffb80c0],.form-group[data-v-2ffb80c0]{margin-bottom:20px}.form-group label[data-v-2ffb80c0]{display:block;margin-bottom:8px;font-weight:500;color:#555}.form-group input[data-v-2ffb80c0]{width:100%;padding:12px 15px;border:1px solid rgba(102,126,234,.25);border-radius:8px;font-size:16px;box-sizing:border-box;background:rgba(255,255,255,.75)}.form-group input[data-v-2ffb80c0]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.remember-group[data-v-2ffb80c0]{margin-bottom:18px}.remember-group .remember-label[data-v-2ffb80c0]{display:flex;align-items:center;gap:8px;margin-bottom:0;cursor:pointer;color:#6b6f85;font-size:14px;font-weight:400;-webkit-user-select:none;user-select:none}.remember-group .remember-checkbox[data-v-2ffb80c0]{width:16px;height:16px;padding:0;margin:0;flex:none;accent-color:#667eea;cursor:pointer}.login-button[data-v-2ffb80c0]{width:100%;padding:12px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:5px;font-size:16px;cursor:pointer;transition:transform .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-spinner[data-v-2ffb80c0]{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:logoSpin-2ffb80c0 .8s linear infinite;flex:none}.login-button[data-v-2ffb80c0]:hover:not(:disabled){transform:translateY(-2px)}.login-button[data-v-2ffb80c0]:disabled{opacity:.7;cursor:not-allowed}.error-message[data-v-2ffb80c0]{color:#e74c3c;text-align:center;padding:10px;border-radius:5px;background-color:#fdf2f2;border:1px solid #f5c6cb}@media (max-width: 768px){.login-container[data-v-2ffb80c0]{padding:10px}.login-card[data-v-2ffb80c0]{padding:20px;max-width:100%}.login-title[data-v-2ffb80c0]{font-size:24px;margin-bottom:20px}.form-group[data-v-2ffb80c0]{margin-bottom:15px}.form-group input[data-v-2ffb80c0]{padding:10px 12px;font-size:16px}.login-button[data-v-2ffb80c0]{padding:12px;font-size:16px}}@media (max-width: 480px){.login-card[data-v-2ffb80c0]{padding:15px}.login-title[data-v-2ffb80c0]{font-size:20px}}:root{--primary-light: #42d392;--primary-dark: #339966;--primary-gradient: linear-gradient( 135deg, var(--primary) 0%, var(--primary-dark) 100% );--bg-light: #f8f9fa;--card-bg: white;--text-primary: #2d3748;--text-secondary: #718096;--text-light: #ffffff;--border: #e2e8f0;--shadow: 0 4px 6px rgba(0, 0, 0, .1);--success: #42b983;--warning: #ff9500;--error: #ff3b30}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Helvetica Neue,Arial,sans-serif;color:var(--text-primary);background-color:var(--bg-light);line-height:1.6}#app{display:flex;flex-direction:column;min-height:100vh}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 20px}.card{background:var(--card-bg);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem;border:1px solid var(--border)}.btn{display:inline-block;padding:10px 20px;background:var(--primary-gradient);color:var(--text-light);border:none;border-radius:4px;font-size:16px;font-weight:500;cursor:pointer;text-align:center;text-decoration:none;transition:all .3s ease}.btn:hover{opacity:.9;transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary-gradient);color:var(--text-light)}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-outline:hover{background:var(--primary);color:var(--text-light)}.btn-secondary{background:#6c757d;color:var(--text-light)}.btn-success{background:var(--success);color:var(--text-light)}.btn-danger{background:var(--error);color:var(--text-light)}.btn-warning{background:var(--warning);color:var(--text-light)}.btn-info{background:#17a2b8;color:var(--text-light)}.btn-outline-secondary{background:transparent;color:#6c757d;border:1px solid #6c757d}.btn-outline-success{background:transparent;color:var(--success);border:1px solid var(--success)}.btn-outline-danger{background:transparent;color:var(--error);border:1px solid var(--error)}.btn-outline-warning{background:transparent;color:var(--warning);border:1px solid var(--warning)}.btn-outline-info{background:transparent;color:#17a2b8;border:1px solid #17a2b8}.btn-secondary:hover,.btn-success:hover,.btn-danger:hover,.btn-warning:hover,.btn-info:hover{opacity:.9;transform:translateY(-2px)}.btn-outline-secondary:hover{background:#6c757d;color:var(--text-light)}.btn-outline-success:hover{background:var(--success);color:var(--text-light)}.btn-outline-danger:hover{background:var(--error);color:var(--text-light)}.btn-outline-warning:hover{background:var(--warning);color:var(--text-light)}.btn-outline-info:hover{background:#17a2b8;color:var(--text-light)}.status-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.status-online{background-color:#42b9831a;color:var(--success)}.status-offline{background-color:#ff3b301a;color:var(--error)}.status-maintenance{background-color:#ff95001a;color:var(--warning)}@media (max-width: 768px){.container{padding:0 10px}.card{padding:1rem;margin-bottom:1rem}.btn{padding:8px 16px;font-size:14px}}@media (max-width: 480px){body{font-size:14px}.container{padding:0 5px}.card{padding:.75rem}.btn{padding:6px 12px;font-size:13px}}@media (hover: none) and (pointer: coarse){.btn:hover{opacity:1;transform:none}.btn:active{opacity:.9;transform:translateY(-1px)}}
