.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.login-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px;width:100%;max-width:400px;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:30px}.login-header h1{font-size:28px;color:#333;margin:0 0 8px}.login-header p{color:#999;font-size:14px;margin:0;font-weight:500}.login-form,.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:600;color:#333;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.form-group input{width:100%;padding:12px 14px;border:2px solid #e5e5e5;border-radius:8px;font-size:14px;font-family:inherit;transition:all .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f5f5;color:#ccc}.password-row{display:flex;gap:8px;align-items:center}.password-row input{flex:1 1 auto}.show-pass-btn{background:transparent;border:2px solid transparent;color:#667eea;padding:8px 10px;border-radius:8px;font-weight:700;cursor:pointer;transition:background .15s ease}.show-pass-btn:hover:not(:disabled){background:#667eea14}.show-pass-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;padding:12px;border-radius:6px;font-size:13px;margin-bottom:16px;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.login-button{width:100%;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-footer{text-align:center;color:#999;font-size:12px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.login-footer p{margin:0}@media (max-width: 480px){.login-box{padding:30px 20px;margin:20px}.login-header h1{font-size:24px}}body{font-family:Inter,system-ui,-apple-system,Arial,sans-serif;margin:0;background:#f7f9fc;color:#111}.app{max-width:1100px;margin:24px auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between}header h1{margin:0;font-size:20px}.controls{display:flex;gap:8px;align-items:center}.btn{padding:6px 10px;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer}.table-wrap{margin-top:16px;background:#fff;padding:12px;border-radius:8px;box-shadow:0 1px 2px #0000000a}.table-controls{display:flex;gap:8px;margin-bottom:8px}input{padding:6px 8px;border:1px solid #ddd;border-radius:6px}.snap-table{width:100%;border-collapse:collapse}.snap-table th,.snap-table td{text-align:left;padding:8px;border-bottom:1px solid #f0f0f0}.snap-table th{font-weight:600;font-size:13px;color:#333}.loading{padding:16px;text-align:center}.error{color:#b00020;background:#ffecec;padding:8px;border-radius:6px;margin-top:12px}
